29.07.2013 Views

Swingup en stabilisatie van een geïnverteerde roterende slinger

Swingup en stabilisatie van een geïnverteerde roterende slinger

Swingup en stabilisatie van een geïnverteerde roterende slinger

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Swingup</strong> <strong>en</strong> <strong>stabilisatie</strong> <strong>van</strong> e<strong>en</strong><br />

<strong>geïnverteerde</strong> roter<strong>en</strong>de <strong>slinger</strong><br />

Verslag FIT-stage<br />

Sietze <strong>van</strong> Buur<strong>en</strong><br />

Begeleider:<br />

Dr. H. Hasper<br />

30 mei 2006<br />

Sam<strong>en</strong>vatting<br />

Van e<strong>en</strong> <strong>geïnverteerde</strong> roter<strong>en</strong>de <strong>slinger</strong> is met behulp <strong>van</strong> regeltechniek <strong>en</strong> routine<br />

ontwikkeld, waarmee de <strong>slinger</strong> <strong>van</strong>uit hang<strong>en</strong>de positie in staande positie kan word<strong>en</strong><br />

gebracht. Tev<strong>en</strong>s stabiliseert deze routine de <strong>slinger</strong> in staande positie, zodat deze in<br />

staande positie blijft. Dit systeem is gesimuleerd in simulink met behulp <strong>van</strong> SimMechanics<br />

<strong>en</strong> gevisualiseerd met behulp <strong>van</strong> de virtual reality toolbox.<br />

1


Inhoudsopgave<br />

1 Inleiding 3<br />

2 Theorie 4<br />

2.1 De Furuta P<strong>en</strong>dulum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

2.2 Lineairisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.3 Slingertraject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

3 Simulaties 7<br />

3.1 Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

3.2 Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

4 Resultat<strong>en</strong> <strong>en</strong> discussie 13<br />

5 Conclusie 15<br />

6 Dankwoord 15<br />

7 App<strong>en</strong>dices 16<br />

A Matlab 16<br />

B Opstelling 18<br />

2


1 INLEIDING<br />

1 Inleiding<br />

De circulaire <strong>geïnverteerde</strong> p<strong>en</strong>dulum wordt ook wel aangeduid met de Furuta p<strong>en</strong>dulum,<br />

vernoemd naar de Japanse wet<strong>en</strong>schapper K. Furuta. Deze p<strong>en</strong>dulum bestaat uit e<strong>en</strong> arm<br />

met zijn draaipunt in het midd<strong>en</strong>. Aan één kant <strong>van</strong> deze arm is e<strong>en</strong> <strong>slinger</strong> bevestigd, die<br />

roteert in e<strong>en</strong> vlak wi<strong>en</strong>s normaal sam<strong>en</strong>valt met de arm. Initieel bevindt de <strong>slinger</strong> zich<br />

in hang<strong>en</strong>de positie. Het doel <strong>van</strong> het epxerim<strong>en</strong>t is de <strong>slinger</strong> <strong>van</strong>uit hang<strong>en</strong>de positie in<br />

staande positie te br<strong>en</strong>g<strong>en</strong> door middel <strong>van</strong> het beweg<strong>en</strong> <strong>van</strong> de arm <strong>en</strong> hierna de <strong>slinger</strong> in<br />

deze positie te houd<strong>en</strong>.<br />

Om de <strong>slinger</strong> omhoog te <strong>slinger</strong><strong>en</strong> zijn verschill<strong>en</strong>de strategieën mogelijk. In dit geval is<br />

gekoz<strong>en</strong> voor e<strong>en</strong> <strong>slinger</strong>traject dat wordt bepaald door de <strong>en</strong>ergie <strong>van</strong> de <strong>slinger</strong>.<br />

E<strong>en</strong> regelsysteem voor de <strong>slinger</strong> in staande positie met increm<strong>en</strong>tele uitwijking<strong>en</strong> valt vrij<br />

gemakkelijk af te leid<strong>en</strong> door het systeem te lineairiser<strong>en</strong> m.b.v. bijvoorbeeld Jacobian<strong>en</strong>.<br />

Door dit systeem vervolg<strong>en</strong>s te analyser<strong>en</strong> met Matlab kan e<strong>en</strong> regelsysteem word<strong>en</strong> verkreg<strong>en</strong><br />

voor controle <strong>van</strong> de <strong>slinger</strong> in staande positie.<br />

Beide bov<strong>en</strong>staande zak<strong>en</strong> zijn gecombineerd in e<strong>en</strong> Simulink model, waarbij het systeem zelf<br />

wordt gesimuleerd met behulp <strong>van</strong> SimMechanics. Dit is vervolg<strong>en</strong>s nog e<strong>en</strong>s gevisualiseerd<br />

met behulp <strong>van</strong> de Virtual Reality toolbox <strong>van</strong> Matlab.<br />

Aan het begin <strong>van</strong> het project was het de bedoeling dat er ook e<strong>en</strong> opstelling zou word<strong>en</strong><br />

ontworp<strong>en</strong> <strong>en</strong> gebouwd. Dit is laatste is echter nooit gebeurd, omdat dit te kostbaar bleek.<br />

De tek<strong>en</strong>ing <strong>van</strong> de opstelling die is ontworp<strong>en</strong> is terug te vind<strong>en</strong> in app<strong>en</strong>dix B.<br />

3


2 THEORIE<br />

2 Theorie<br />

2.1 De Furuta P<strong>en</strong>dulum<br />

De Furuta p<strong>en</strong>dulum bestaat uit e<strong>en</strong> arm (met l<strong>en</strong>gte 2l1) die geroteerd is onder e<strong>en</strong> hoek<br />

φ. Deze arm is bevestigd aan e<strong>en</strong> motor die het systeem aandrijft. De arm <strong>en</strong> motor hebb<strong>en</strong><br />

sam<strong>en</strong> e<strong>en</strong> traagheidsmom<strong>en</strong>t I1 <strong>en</strong> frictiecoeëffici<strong>en</strong>t <strong>van</strong> de motor is d1. De <strong>slinger</strong> (<strong>van</strong><br />

l<strong>en</strong>gte 2l2, traagheidsmom<strong>en</strong>t I2 <strong>en</strong> massa m) is bevestigd aan deze arm <strong>en</strong> is geroteerd onder<br />

e<strong>en</strong> hoek θ. De frictiecoëffici<strong>en</strong>t <strong>van</strong> de <strong>slinger</strong> is d2.<br />

2l 2<br />

I 2<br />

µ<br />

2l 1<br />

Figuur 1: Schematische tek<strong>en</strong>ing <strong>van</strong> e<strong>en</strong> Furuta p<strong>en</strong>dulum.<br />

Met behulp <strong>van</strong> Langragian<strong>en</strong> kunn<strong>en</strong> de bewegingsvergelijking<strong>en</strong> voor de dit systeem word<strong>en</strong><br />

bepaald. De kinetische <strong>en</strong>ergie <strong>van</strong> het systeem is<br />

T = 1<br />

2 (I2 + ml 2 2) ˙ θ 2 + 1<br />

2 (I1 + ml 2 1 + (I2 + ml 2 2) sin 2 θ) ˙ φ 2 − ˙ θ ˙ φml1l2 cos θ (1)<br />

De pot<strong>en</strong>tiële <strong>en</strong>ergie <strong>van</strong> de <strong>slinger</strong> bedraagt<br />

Hiermee wordt de Langrangiaan<br />

Á<br />

V = mgl2 cos θ (2)<br />

L = T −V = 1<br />

2 (I2 +ml 2 2) ˙ θ 2 + 1<br />

2 (I1 +ml 2 1 +(I2 +ml 2 2) sin 2 θ) ˙ φ 2 − ˙ θ ˙ φml1l2 cos θ −mgl2 cos θ (3)<br />

Gebruik mak<strong>en</strong>d <strong>van</strong> de Lagrange vergelijking resulteert dit in de twee bewegingsvergelijking<strong>en</strong>:<br />

¨φ(I1 + ml 2 1 + (I2 + ml 2 2) sin 2 θ) + 2 ˙ θ ˙ φ(I2 + ml 2 2) sin θ cos θ<br />

− ¨ θl1l2 cos θ + ˙ θ 2 ml1l2 sin θ = u − d1 ˙ φ<br />

¨θ(I2 + ml 2 2) − ¨ φml1l2 cos θ − ˙ φ 2 (I2 + ml 2 2) sin θ cos θ<br />

4<br />

I 1<br />

−mgl2 sin θ = −d2 ˙ θ<br />

(4)<br />

(5)


2 THEORIE 2.2 Lineairisatie<br />

2.2 Lineairisatie<br />

Om vergelijking (4) <strong>en</strong> (5) te kunn<strong>en</strong> lineairiser<strong>en</strong>, moet<strong>en</strong> deze eerst word<strong>en</strong> omgeschrev<strong>en</strong><br />

naar de vorm<br />

⎡ ⎤<br />

x3<br />

dx<br />

⎢ x4 ⎥<br />

= f(x) + g(x)u = ⎢ ⎥<br />

dt ⎣ f3(x) ⎦<br />

f4(x)<br />

+<br />

⎡ ⎤<br />

0<br />

⎢ 0 ⎥<br />

⎣ g3(x) ⎦ u (6)<br />

g4(x)<br />

hierbij is x := [φ, θ, ˙ φ, ˙ θ] T <strong>en</strong> u het koppel <strong>van</strong> de motor. Verder staan f3(x), f4(x), g3(x) <strong>en</strong><br />

g4(x) voor<br />

f3(x) = [k2(−d1x3 − 2x3x4 sin x2 cos x2 − k3x 2 4 sin x2)<br />

+ k3(−d2x4 + k2x 2 3 sin x2 cos x2 + mgl2 sin x2) cos x2]/K<br />

f4(x) = [(k1 + k2 sin 2 x2)(−d1x4 + k2x 2 3 sin x2 cos x2mgl2 sin x2)<br />

g3(x) = k2<br />

K<br />

+ k3(−d1x3 − 2x3x4 sin x2 cos x2 − k3x 2 4 sin x2) cos x2]/K<br />

g4(x) = k3 cos x2<br />

K<br />

waarbij k1 = I1 + ml 2 1, k2 = I2 + ml 2 2, k3 = ml1l2 <strong>en</strong> K = k2(k1 + k2 sin 2 x2) − k 2 3 cos 2 x2.<br />

Bov<strong>en</strong>staande vergelijking<strong>en</strong> kunn<strong>en</strong> word<strong>en</strong> gelineairiseerd met behulp <strong>van</strong> de methode die<br />

is beschrev<strong>en</strong> in [4]. Er zal e<strong>en</strong> korte uitleg word<strong>en</strong> gegev<strong>en</strong> <strong>van</strong> deze lineairisatie, voor meer<br />

details word<strong>en</strong> verwez<strong>en</strong> naar de g<strong>en</strong>oemde refer<strong>en</strong>tie.<br />

In deze lineairsatiemethode wordt gebruikt gemaakt <strong>van</strong> e<strong>en</strong> b<strong>en</strong>adering <strong>van</strong> de Taylor ontwikkeling<br />

op e<strong>en</strong> vergelijking in de vorm <strong>van</strong><br />

(7)<br />

(8)<br />

(9)<br />

(10)<br />

˙xi = fi(x, u) (11)<br />

In dit geval is dit vergelijking (6). De methode is afhankelijk <strong>van</strong> e<strong>en</strong> zog<strong>en</strong>aamd operation<br />

point (xi0, ui0). Welke wordt toegepast op de uiteindeiljke notatie<br />

˙x ∗ i = ˙xi − ˙xi0 x ∗ i = xi − xi0 u ∗ i = ui − ui0 (12)<br />

Voor ons systeem geldt echter dat deze operation points 0 zijn; xi0 = ui0 = 0. Met de<br />

bov<strong>en</strong>staande uitdrukking<strong>en</strong> wordt (11) gelineairiseerd tot<br />

˙x ∗ = Jxx ∗ + Juu ∗<br />

In de Jacobian<strong>en</strong> Jx <strong>en</strong> Ju kom<strong>en</strong> de Taylor-approxomaties tevoorschijn:<br />

Jx =<br />

⎡<br />

⎢<br />

⎣<br />

∂f1<br />

∂x1<br />

.<br />

∂fn<br />

∂x1<br />

· · ·<br />

. ..<br />

· · ·<br />

∂f1<br />

∂xn<br />

.<br />

∂fn<br />

∂xn<br />

⎤<br />

⎥<br />

⎦ Ju =<br />

5<br />

⎡<br />

⎢<br />

⎣<br />

∂f1<br />

∂u1<br />

.<br />

∂fn<br />

∂u1<br />

· · ·<br />

. ..<br />

· · ·<br />

∂f1<br />

∂um<br />

.<br />

∂fn<br />

∂um<br />

⎤<br />

(13)<br />

⎥<br />

⎦ (14)


2 THEORIE 2.3 Slingertraject<br />

Voor het geval dat hier wordt behandeld is f1 = f(x) <strong>en</strong> f2 = g(x). Wordt bov<strong>en</strong>staande<br />

theorie toegepast op verglijking (6), dan wordt de volg<strong>en</strong>de state space vergelijking verkreg<strong>en</strong>:<br />

⎡<br />

⎤ ⎡ ⎤<br />

0 0 1 0<br />

⎢ 0 0 0 1 ⎥ ⎢ ⎥<br />

˙x = ⎢<br />

⎥ x + ⎢ ⎥<br />

⎣ 0<br />

⎦ ⎣ ⎦ u (15)<br />

gm2l1l2 D<br />

0 gml2(ml2 1 +I1)<br />

D<br />

Hierbij is D = ml 2 2I1 + (ml 2 1 + I1)I2.<br />

− d1(ml2 2 +I2)<br />

D<br />

− md1l1l2<br />

D<br />

− md1l1l2<br />

D<br />

− d2(ml2 1I1) D<br />

0<br />

0<br />

ml 2 2 +I2<br />

D<br />

ml1l2<br />

D<br />

Met behulp <strong>van</strong> de LQR-functie <strong>van</strong> Matlab kan aan de hand <strong>van</strong> de bov<strong>en</strong>staande state<br />

space vergelijking nu e<strong>en</strong> feedback parameter word<strong>en</strong> bepaald waarmee het systeem voor<br />

increm<strong>en</strong>tele verandering<strong>en</strong> kan wordt gestabiliseerd.<br />

Dit zal word<strong>en</strong> gedaan in paragraaf 3.1.<br />

2.3 Slingertraject<br />

Er zijn veel strategieën om e<strong>en</strong> <strong>slinger</strong> omhoog te <strong>slinger</strong><strong>en</strong>. Bij deze FIT-stage is de methode,<br />

die wordt voorgesteld door ˚Aström <strong>en</strong> Furuta in [5] gebruikt. Hier wordt de g<strong>en</strong>ormaliseerd<br />

<strong>en</strong>ergie <strong>van</strong> de p<strong>en</strong>dulum als criterium gebruikt.<br />

De bewegingsvergelijking <strong>van</strong> e<strong>en</strong> <strong>en</strong>kele p<strong>en</strong>dulum is:<br />

I2 ¨ θ − mgl1 sin θ + mal2 cos θ = 0 (16)<br />

Hierbij is frictie <strong>van</strong> het draaimechanisme <strong>van</strong> de <strong>slinger</strong> verwaarloosd. Verder is a de versnelling<br />

<strong>van</strong> het ophangpunt <strong>van</strong> de <strong>slinger</strong> (voor ons systeem geldt: a = ¨ φl1). In [5] wordt<br />

voorgesteld de <strong>en</strong>ergie te normaliser<strong>en</strong> met mgl2 <strong>en</strong> het nulpunt <strong>van</strong> de <strong>en</strong>ergie te kiez<strong>en</strong> als de<br />

<strong>slinger</strong> zich in staande positie bevindt. De resulteert in de volg<strong>en</strong>de g<strong>en</strong>ormaliseerde <strong>en</strong>ergie:<br />

⎛<br />

E = mgl2 ⎝ 1<br />

⎞<br />

2<br />

˙θ<br />

+ cos θ − 1⎠<br />

(17)<br />

2<br />

ω0<br />

<br />

mgl2<br />

Hierbij is ω0 ≡ . De <strong>en</strong>ergie is zo g<strong>en</strong>ormaliseerd dat deze 0 als maximum heeft. Wordt<br />

I2<br />

(17) gediffer<strong>en</strong>tieerd naar de tijd dan wordt dit (m.b.v. (16)):<br />

dE<br />

dt = I2 ˙ θ ¨ θ − mgl ˙ θ sin θ = −mul ˙ θ cos θ (18)<br />

Aan de hand <strong>van</strong> deze vergelijking wordt voor de versnelling <strong>van</strong> het ophangpunt het volg<strong>en</strong>de<br />

voorgesteld:<br />

u = satng(k(E − E0))sign( ˙ θ cos θ) (19)<br />

Hierbij is k e<strong>en</strong> ontwerpparameter <strong>en</strong> de functie satng is e<strong>en</strong> functie die het bereik begr<strong>en</strong>st<br />

op ng, de maximale acceleratie <strong>van</strong> het ophangpunt. Hier dus equival<strong>en</strong>t ana de maximale<br />

versnelling <strong>van</strong> de motor. E0 is het gew<strong>en</strong>ste <strong>en</strong>ergi<strong>en</strong>iveau <strong>en</strong> bov<strong>en</strong>staande functie zal<br />

tracht<strong>en</strong> dit niveau te bereik<strong>en</strong>.<br />

Deze zog<strong>en</strong>aamde ‘bang-bang’-strategie is gebruikt om de <strong>slinger</strong> naar de <strong>geïnverteerde</strong> toestand<br />

te <strong>slinger</strong><strong>en</strong>.<br />

6


3 SIMULATIES<br />

3 Simulaties<br />

Er zijn simulaties uitgevoerd in Matlab zelf <strong>en</strong> met behulp <strong>van</strong> Matlab toolbox Simulink. De<br />

simulaties in Matlab zijn ondere andere gebruikt om e<strong>en</strong> feedback parameter te bepal<strong>en</strong>. In<br />

het model in Simulink is deze feedback gecombineerd met de ‘bang-bang’-strategie die wordt<br />

beschrev<strong>en</strong> in paragraaf 2.3. Zodo<strong>en</strong>de is gepoogd het (regel)systeem te simuler<strong>en</strong>.<br />

3.1 Matlab<br />

De LQR-methode is toegepast op de, in paragraaf 2.2 afgeleide state space vergelijking. Voor<br />

de volledige code hier<strong>van</strong> wordt verwez<strong>en</strong> naar app<strong>en</strong>dix A.<br />

Voor e<strong>en</strong> systeem in de vorm <strong>van</strong><br />

met e<strong>en</strong> feedback K toegevoegd<br />

˙x = Ax + Bu (20)<br />

y = Cx (21)<br />

u = Kx (22)<br />

kan met behulp <strong>van</strong> de matlabfunctie lqr de parameter K word<strong>en</strong> bepaald. Nu verandert<br />

vergelijking 20, zodat de feedback kan word<strong>en</strong> meeg<strong>en</strong>om<strong>en</strong>:<br />

PSfrag replacem<strong>en</strong>ts<br />

˙x = Acx + Br (23)<br />

y = Cx (24)<br />

Hierin is Ac = A − BK. Merk op dat er nu e<strong>en</strong> input variabele r is. In figuur 2 is de<br />

p<strong>en</strong>dulum angle<br />

staprespons te zi<strong>en</strong> <strong>van</strong> het systeem met feedback K.<br />

Hoek (deg) →<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-2<br />

-2.5<br />

arm angle<br />

p<strong>en</strong>dulum angle<br />

-3<br />

0 0.5 1 1.5 2 2.5<br />

Tijd (s) →<br />

3 3.5 4 4.5 5<br />

Figuur 2: De step-response <strong>van</strong> het systeem met feedback K.<br />

In figuur 2 is te zi<strong>en</strong> dat de armhoek niet terug loopt naar nul, maar op e<strong>en</strong> zeker waarde<br />

blijft stek<strong>en</strong>. Dit is de zog<strong>en</strong>aamde steady state error. In [4] wordt op pagina’s 323-327<br />

7


3 SIMULATIES 3.1 Matlab<br />

PSfrag replacem<strong>en</strong>ts<br />

hier over gesprok<strong>en</strong>. De steady state error blijkt e<strong>en</strong> waarde te hebb<strong>en</strong> <strong>van</strong> 1/K11. K11 is<br />

de eerste waarde in de parameter K. Vervolg<strong>en</strong>s wordt e<strong>en</strong> methode voorgesteld g<strong>en</strong>aamd<br />

tracking waarmee de steady state error kan word<strong>en</strong> verholp<strong>en</strong>. Het resultaat hier<strong>van</strong> is te<br />

zi<strong>en</strong> in 3.<br />

P<strong>en</strong>dulum angle<br />

Hoek (deg) →<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-2<br />

Arm angle<br />

P<strong>en</strong>dulum angle<br />

-2.5<br />

0 0.5 1 1.5 2 2.5<br />

Tijd (s) →<br />

3 3.5 4 4.5 5<br />

Figuur 3: De step-response <strong>van</strong> het systeem met feedback K <strong>en</strong> tracking om te comp<strong>en</strong>ser<strong>en</strong> voor<br />

de steady state error.<br />

Omdat in het Simulink model ook nog andere onzekerhed<strong>en</strong> zijn meeg<strong>en</strong>om<strong>en</strong>, zoals bijvoorbeeld<br />

de beperking<strong>en</strong> <strong>van</strong> de motor, zal de feedbackparameter zeker <strong>en</strong>ige aanpassing<strong>en</strong><br />

moet<strong>en</strong> ondergaan voor gebruik in de simulatie. Dit is dan ook de red<strong>en</strong> dat is beslot<strong>en</strong><br />

tracking niet mee te nem<strong>en</strong> in het simulink model.<br />

8


3 SIMULATIES 3.2 Simulink<br />

3.2 Simulink<br />

De bov<strong>en</strong>ste laag <strong>van</strong> het systeem is te zi<strong>en</strong> in figuur 4. Deze laag bestaat uit e<strong>en</strong> aantal<br />

subsystem<strong>en</strong>. De kracht die wordt uitgeoef<strong>en</strong>d op de motor <strong>van</strong> de Furuta p<strong>en</strong>dulum (figuur<br />

5) wordt bepaald door de ‘swingup’-routine (figuur 8) of de ‘standup’-routine (figuur 9). Deze<br />

keuze wordt gemaakt door het het subsysteem in figuur 7. Verder moet de hoek θ <strong>van</strong> de<br />

<strong>slinger</strong> word<strong>en</strong> aangepast wil deze bruikbaar zijn voor het de ‘standup’-routine. Dit wordt<br />

gedaan in het subsysteem dat is afgebeeld in figuur 6.<br />

Tev<strong>en</strong>s is in figuur 4 e<strong>en</strong> VRSink te zi<strong>en</strong> waarmee er e<strong>en</strong> simpele visualisatie is gemaakt <strong>van</strong><br />

de Furuta p<strong>en</strong>dulum.<br />

Saturation<br />

Switch<br />

Furuta<br />

P<strong>en</strong>dulum<br />

Force<br />

Standup<br />

Control<br />

Á<br />

µ<br />

ForcedÁ=dt<br />

dµ=dt<br />

µ<br />

Force µ=dt<br />

On=Off<br />

Swing<br />

Up<br />

Control<br />

µ<br />

Á<br />

µ<br />

Meting<br />

Á<br />

Meting<br />

dÁ=dt<br />

dµ=dt<br />

A<br />

B<br />

µ<br />

Correction<br />

Corr<br />

section<br />

µ<br />

Section<br />

Determination<br />

Figuur 4: Het eerste niveau <strong>van</strong> het Simulink model.<br />

B<br />

A<br />

µ<br />

Arm<br />

rotation<br />

P<strong>en</strong>dulum<br />

rotation<br />

VR Sink<br />

De maximale sterkte <strong>van</strong> de motor kan word<strong>en</strong> gesimuleerd met het ‘Saturation’-blok. Dit<br />

blok kan echter ook word<strong>en</strong> gebruikt om de kracht op e<strong>en</strong> dusdanige wijze te beperk<strong>en</strong> zodat<br />

de <strong>slinger</strong> met minimale snelheid de <strong>geïnverteerde</strong> positie bereikt of nadert. Als de snelheid<br />

namelijk te groot is zal de ‘standup’-routine niet in staat zijn om de <strong>slinger</strong> te stabiliser<strong>en</strong><br />

<strong>en</strong> zal de <strong>slinger</strong> doorschiet<strong>en</strong>. Hierna zal de ‘swingup’-routine tracht<strong>en</strong> nog meer <strong>en</strong>ergie<br />

toe te voeg<strong>en</strong> aan de <strong>slinger</strong> met als gevolg dat het alle<strong>en</strong> maar moeilijker wordt om deze<br />

te stabiliser<strong>en</strong>. Als de snelhed daar<strong>en</strong>teg<strong>en</strong> minimaal is, is het voor de ‘standup’-routine<br />

gemakkelijker om de p<strong>en</strong>dulum in ev<strong>en</strong>wichtspositie te br<strong>en</strong>g<strong>en</strong> <strong>en</strong> daar te houd<strong>en</strong>. Dit komt<br />

omdat de ‘standup’-routine tot stand is gekom<strong>en</strong> aan de hand <strong>van</strong> e<strong>en</strong> lineairisatie <strong>en</strong> deze<br />

werkt dus alle<strong>en</strong> goed voor increm<strong>en</strong>tele uitwijking<strong>en</strong>.<br />

Er zijn dus meerdere waard<strong>en</strong> voor de saturation waarmee de p<strong>en</strong>dulum succesvol omhoog kan<br />

word<strong>en</strong> ge<strong>slinger</strong>d. Voor hogere waard<strong>en</strong> zull<strong>en</strong> er <strong>van</strong>zelfsprek<strong>en</strong>d minder <strong>slinger</strong>beweging<strong>en</strong><br />

9


3 SIMULATIES 3.2 Simulink<br />

Env<br />

Machine<br />

Environm<strong>en</strong>t<br />

Initial<br />

Condition<br />

Á<br />

Ground<br />

Actuator<br />

Arm<br />

S<strong>en</strong>sor<br />

K Friction<br />

Initial<br />

Condition<br />

µ<br />

Actuator<br />

5<br />

dÁ=dt<br />

K<br />

S<strong>en</strong>sor<br />

K<br />

Friction<br />

S<strong>en</strong>sor<br />

Force<br />

1<br />

2<br />

Á<br />

P<strong>en</strong>dulum<br />

S<strong>en</strong>sor<br />

K<br />

6<br />

dµ=dt<br />

Figuur 5: Het model <strong>van</strong> de Furuta p<strong>en</strong>dulum gerealiseerd m.b.v. SimMechanics.<br />

1<br />

µ<br />

1<br />

0<br />

1<br />

0<br />

3<br />

µ<br />

Meting<br />

4<br />

Á<br />

Meting<br />

nodig zijn, maar deze kunn<strong>en</strong> in de realiteit mogelijk niet word<strong>en</strong> gehaald door de motor.<br />

Andere beperking<strong>en</strong> <strong>van</strong> het systeem zoals de reactietijd <strong>en</strong> dodetijd (<strong>van</strong> de motor of tandwiel<strong>en</strong>)<br />

zijn te simuler<strong>en</strong> in Simulink. Dit is niet te zi<strong>en</strong> in figuur 4, maar er is wel gekek<strong>en</strong><br />

naar de invloed hier<strong>van</strong> op het model.<br />

Figuur 5 toont het SimMechanics model <strong>van</strong> de Furuta p<strong>en</strong>dulum. Er is voor SimMechanics<br />

gekoz<strong>en</strong> <strong>en</strong> niet voor e<strong>en</strong> model m.b.v. mathematische uitdrukking<strong>en</strong> in Simulink om het<br />

model overzichtelijk te houd<strong>en</strong>. Tev<strong>en</strong>s vall<strong>en</strong> aanpassing<strong>en</strong> (zoals bijvoorbeeld wijziging<strong>en</strong><br />

<strong>van</strong> traagheidsmom<strong>en</strong>t<strong>en</strong>, frictiecoëffici<strong>en</strong>t<strong>en</strong>, beginposities, etc.) <strong>van</strong> het model gemakkelijker<br />

door te voer<strong>en</strong>.<br />

Het model bestaat uit twee licham<strong>en</strong> - e<strong>en</strong> arm <strong>en</strong> e<strong>en</strong> <strong>slinger</strong> (met gegev<strong>en</strong> traagheidst<strong>en</strong>sors)<br />

- die via e<strong>en</strong> draaipunt met elkaar zijn verbond<strong>en</strong>. De arm is op zijn beurt via e<strong>en</strong> draaipunt<br />

1<br />

Correction<br />

Figuur 6: Correctie <strong>van</strong> <strong>van</strong> p<strong>en</strong>dulumhoek om<br />

bewerking<strong>en</strong> mogelijk te mak<strong>en</strong>.<br />

¼<br />

¼<br />

1 µ<br />

><br />

0<br />

10<br />

1<br />

section<br />

OR<br />

C<br />

><br />

<<br />

C<br />

Figuur 7: Dit model bepaalt wanneer er<br />

moet word<strong>en</strong> gekoz<strong>en</strong> voor de ‘standup’- of de<br />

‘swingup’-routine.<br />

1<br />

µ


3 SIMULATIES 3.2 Simulink<br />

1<br />

Force<br />

0<br />

Switch<br />

8<br />

C<br />

Desired<br />

Energy<br />

cos<br />

E<br />

µ<br />

dµ=dt<br />

Energy<br />

Figuur 8: De ‘swingup’-routine.<br />

0<br />

On=Off<br />

3<br />

verbond<strong>en</strong> aan vast punt, in figuur 5 weergegev<strong>en</strong> door ‘Ground’. Weerstand in deze draaipunt<strong>en</strong><br />

wordt gesimuleerd door de snelheid, verm<strong>en</strong>igvuldigd met de frictiecoëffici<strong>en</strong>t, te lat<strong>en</strong><br />

uitwerk<strong>en</strong> op dit draaipunt via e<strong>en</strong> actuator. Via de outputs θ meting <strong>en</strong> φ meting word<strong>en</strong><br />

gegev<strong>en</strong>s voor de visualisatie geëxporteerd. Omdat de hoekmeting die wordt geproduceerd<br />

door SimMechanics e<strong>en</strong> discontinuiïteit bevat op het punt waarop de <strong>slinger</strong> de <strong>geïnverteerde</strong><br />

positie bereikt. Is er e<strong>en</strong> correctie doorgevoerd voor de variabele θ. Dit gebeurt door het<br />

subsysteem ‘θ Correction’, welke te zi<strong>en</strong> is in figuur 6 op pagina 10.<br />

In figuur 7 wordt bepaald in welke sectie de <strong>slinger</strong> zich bevindt. Wanneer θ ∈ [−20 ◦ , 20 ◦ ],<br />

1<br />

Force<br />

{1<br />

K<br />

Mux<br />

3<br />

4 dÁ=dt<br />

dµ=dt<br />

Figuur 9: De ‘standup’-routine.<br />

waarbij het nulpunt <strong>van</strong> θ de <strong>geïnverteerde</strong> positie is, wordt de ‘standup’-routine in werking<br />

gesteld. Bij alle andere hoek<strong>en</strong> wordt de ‘swingup’-routine in werking gesteld. In figuur 8 is<br />

het subsysteem voor de ‘swingup’-routine te zi<strong>en</strong>. Dit is in wez<strong>en</strong> e<strong>en</strong> realisatie in simulink<br />

<strong>van</strong> vergelijking (19). Voor de gew<strong>en</strong>ste <strong>en</strong>ergie is e<strong>en</strong> waarde <strong>van</strong> 0.1 gekoz<strong>en</strong>.Tev<strong>en</strong>s is te<br />

zi<strong>en</strong> dat er e<strong>en</strong> On/Off input is voor de routine. Dit is gedaan om te verkom<strong>en</strong> dat de<br />

2<br />

µ<br />

1<br />

Á<br />

µ<br />

1<br />

dµ=dt<br />

2<br />

Figuur 10: De visualisatie <strong>van</strong> de Furuta P<strong>en</strong>dulum m.b.v. de virtual reality toolbox<br />

11


3 SIMULATIES 3.2 Simulink<br />

routine doorrek<strong>en</strong>t, terwijl di<strong>en</strong>s output niet wordt gebruikt.<br />

Figuur 9 laat het subsysteem <strong>van</strong> de ‘standup’-routine zi<strong>en</strong>. In feite is dit niet meer <strong>van</strong><br />

de verm<strong>en</strong>igvuldiging <strong>van</strong> in 3.1 berek<strong>en</strong>de feedback parameter. Wel zijn hier via het trial<br />

& error de nodige aanpassing<strong>en</strong> op gedaan, om het ‘standup’-routine naar behor<strong>en</strong> te lat<strong>en</strong><br />

werk<strong>en</strong>.<br />

De visualisatie is gemaakt om sneller te kunn<strong>en</strong> inzi<strong>en</strong> hoe verandering<strong>en</strong> <strong>van</strong> de verschill<strong>en</strong>de<br />

parameters op het systeem uitwerk<strong>en</strong>. E<strong>en</strong> scre<strong>en</strong>shot <strong>van</strong> de uiteindelijke visualisatie is te<br />

zi<strong>en</strong> in figuur 10.<br />

12


4 RESULTATEN EN DISCUSSIE<br />

4 Resultat<strong>en</strong> <strong>en</strong> discussie<br />

Helaas zijn er ge<strong>en</strong> meetresultat<strong>en</strong> <strong>van</strong> opstelling, omdat deze nooit is gerealiseerd. Hier zull<strong>en</strong><br />

dus alle<strong>en</strong> maar de resultat<strong>en</strong> <strong>van</strong> de opstelling word<strong>en</strong> besprok<strong>en</strong>.<br />

In figuur 11 <strong>en</strong> figuur 12 zijn respectievelijk de hoek <strong>van</strong> de arm, φ, <strong>en</strong> de hoek <strong>van</strong> de<br />

p<strong>en</strong>dulum, θ, uitgezet teg<strong>en</strong> de tijd. Zoals blijkt uit figuur 12 heeft de <strong>slinger</strong> bij deze acceleratiesterkte<br />

vijf <strong>slinger</strong>beweging<strong>en</strong> nodig om de <strong>slinger</strong> om hoog te br<strong>en</strong>g<strong>en</strong>.<br />

PSfrag replacem<strong>en</strong>ts<br />

PSfrag replacem<strong>en</strong>ts<br />

φ (rad) →<br />

θ (rad) →<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

-4<br />

0 1 2 3<br />

Tijd (s) →<br />

4 5 6<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

Figuur 11: De hoek φ uitgezet teg<strong>en</strong> de tijd.<br />

-4<br />

0 1 2 3<br />

Tijd (s) →<br />

4 5 6<br />

Figuur 12: De hoek θ uitgezet teg<strong>en</strong> de tijd.<br />

Als extra onzekerhed<strong>en</strong> aan het systeem word<strong>en</strong> toegevoegd, zoals dodetijd <strong>en</strong> de responstijd<br />

<strong>van</strong> het systeem. Wordt voor deze waarde respectievelijk 1% <strong>van</strong> het de totale acceleratie <strong>en</strong><br />

13


4 RESULTATEN EN DISCUSSIE<br />

10 ms gekoz<strong>en</strong>, dan reageert het systeem nog naar behor<strong>en</strong> <strong>en</strong> verschill<strong>en</strong> de resultat<strong>en</strong> - afgezi<strong>en</strong><br />

<strong>van</strong> <strong>en</strong>ige kleine discrepanties - niet noem<strong>en</strong>swaardig. Vergelijking met de meetgegev<strong>en</strong>s<br />

<strong>van</strong> e<strong>en</strong> experim<strong>en</strong>teel model is echter gew<strong>en</strong>st <strong>en</strong> zou e<strong>en</strong> logische stap zijn.<br />

14


6 DANKWOORD<br />

5 Conclusie<br />

Alhoewel de het simulatiemodel redelijk goed overe<strong>en</strong>stemming lijkt met de werkelijkheid,<br />

zoud<strong>en</strong> di<strong>en</strong>s resultat<strong>en</strong> wel moet<strong>en</strong> geverifiëerd met behulp <strong>van</strong> e<strong>en</strong> experim<strong>en</strong>tele opstelling.<br />

E<strong>en</strong> aantal b<strong>en</strong>adering<strong>en</strong> <strong>van</strong> de realiteit zoals e<strong>en</strong> eindige motoracceleratie (als gevolg <strong>van</strong> het<br />

eindige bereik <strong>van</strong> e<strong>en</strong> versterker), alineaire overdracht <strong>van</strong> de tandwiel<strong>en</strong> als gevolg <strong>van</strong> de<br />

backlash of de motor <strong>en</strong> de responstijd <strong>van</strong> de comp<strong>en</strong>sator zijn meeg<strong>en</strong>om<strong>en</strong>. Echter kunn<strong>en</strong><br />

schatting<strong>en</strong> <strong>van</strong> de invloed <strong>van</strong> deze invloed<strong>en</strong> onjuist zijn of zijn er nog andere invloed<strong>en</strong> die<br />

niet zijn meeg<strong>en</strong>om<strong>en</strong>, hetge<strong>en</strong> zou moet<strong>en</strong> word<strong>en</strong> nagegaan.<br />

Ook zou e<strong>en</strong> betere lineairisatiemethode kunn<strong>en</strong> word<strong>en</strong> gebruikt, zoals bijvoorbeeld wordt<br />

beschrev<strong>en</strong> in [2] <strong>en</strong> [9]. Hierdoor zou het systeem beter te stabiliser<strong>en</strong> zijn in <strong>geïnverteerde</strong><br />

positie.<br />

Het <strong>slinger</strong>traject zoals dat nu in het model is toegepast, is ook verbetering vatbaar. Aan de<br />

hand [5] zou e<strong>en</strong> nog effici<strong>en</strong>ter <strong>slinger</strong>traject kunn<strong>en</strong> word<strong>en</strong> gemaakt. Afhankelijk <strong>van</strong> de<br />

motorsterkte word<strong>en</strong> daar verschill<strong>en</strong>de strategieën voorgesteld.<br />

6 Dankwoord<br />

Graag zou ik Dr. H. Hasper will<strong>en</strong> bedank<strong>en</strong> voor de assist<strong>en</strong>tie bij deze FIT-stage.<br />

15


A MATLAB<br />

7 App<strong>en</strong>dices<br />

A Matlab<br />

De code voor het bepal<strong>en</strong> <strong>van</strong> de feedbackparameter zoals is beschrev<strong>en</strong> in paragraaf 3.1.<br />

% Script_Cir_P<strong>en</strong>dulum.m<br />

%--------------------------------------------------------------------------<br />

% FIT-Stage S.W. <strong>van</strong> Buur<strong>en</strong><br />

% Inverted P<strong>en</strong>dulum op e<strong>en</strong> circulaire baan.<br />

% Script file met test <strong>van</strong> de transferfuncties.<br />

%--------------------------------------------------------------------------<br />

%Opruim<strong>en</strong><br />

clear all;<br />

close all;<br />

%Declaraties<br />

m = .27; %Massa P<strong>en</strong>dulum<br />

L1 = .22; %1/2 L<strong>en</strong>gth Arm<br />

L2 = .1; %1/2 L<strong>en</strong>gth P<strong>en</strong>dulum<br />

g = 9.81; %Gravity Constant<br />

d1 = .00005; %Rotor/Arm Friction (Bearing + Motor)<br />

d2 = .000005; %P<strong>en</strong>dulum Rolling Friction (Bearing)<br />

I1 = 6.7e-5; %Mom<strong>en</strong>t of Inertia Arm<br />

I2 = 2.16e-7; %Mom<strong>en</strong>t of Inertia P<strong>en</strong>dulum<br />

Tau = .5; %Input Output delay<br />

%Definities <strong>van</strong> constant<strong>en</strong><br />

%Inverted position<br />

D = m*L2^2*I1+(m*L1^2+I1)*I2;<br />

%State Space Definition<br />

A = [0 0 1 0;<br />

0 0 0 1;<br />

0 g*m^2*L1*L2^2/D -d1*(m*L2^2+I2)/D -m*d1*L1*L2/D;<br />

0 g*m*L2*(m*L1^2+I1)/D -m*d1*L1*L2/D -d2*(m*L1^2+I1)/D];<br />

B = [0;<br />

0;<br />

(m*L2^2+I2)/D;<br />

m*L1*L2/D];<br />

C = [1 0 0 0;<br />

0 1 0 0;<br />

0 0 0 0;<br />

0 0 0 0];<br />

D = [0; 0; 0; 0];<br />

sys_ss = ss(A, B, C, D);<br />

[NUM,DEN] = ss2tf(A,B,C,zeros(4,1))<br />

16


A MATLAB<br />

%Feedback Design<br />

%Controllability<br />

%fprintf(’\nThe rank is %d.\n’,rank(ctrb(A,B)));<br />

k1 = 500;<br />

k2 = 1000;<br />

k3 = 200;<br />

k4 = 500;<br />

Q = [k1 0 0 0;<br />

0 k2 0 0;<br />

0 0 k3 0;<br />

0 0 0 k4];<br />

R = 8;<br />

%LQR-methode<br />

[K, S, e] = lqr(sys_ss, Q, R)<br />

An = A - B*K;<br />

sys_lqr = ss(An, B, C, 0);<br />

%Tracking met integral control<br />

Ke = [-30 0 0 0];<br />

Am = [An B*Ke;<br />

-C zeros(l<strong>en</strong>gth(C),l<strong>en</strong>gth(Ke))];<br />

Bm = [B;<br />

zeros(l<strong>en</strong>gth(B),1)];<br />

Cm = [C zeros(l<strong>en</strong>gth(C))];<br />

sys_trck = ss(Am, Bm, Cm, 0);<br />

sys_trck_delay = ss(Am, Bm, Cm, 0,’ioDelay’,Tau);<br />

17


B OPSTELLING<br />

B Opstelling<br />

Er is e<strong>en</strong> opstelling bedacht <strong>en</strong> ontworp<strong>en</strong> met behulp <strong>van</strong> autocad. Weg<strong>en</strong>s te hoge kost<strong>en</strong><br />

is deze opstelling echter nooit gemaakt.<br />

Figuur 13: De opstelling getek<strong>en</strong>d in Autocad.<br />

18


Refer<strong>en</strong>ties<br />

[1] Marion, J.B. <strong>en</strong> Thornton, S.T., Classical dynamics of particles and systems, Harcourt,<br />

Orlando, (1995).<br />

[2] Sugie, R. and Fujimoto, K., Controller design for an inverted p<strong>en</strong>dulum based op approximate<br />

linerarization International journal of robust and nonlinear control 8, 585-597<br />

(1998).<br />

[3] Nise, N.S., Control systems <strong>en</strong>gineering, Addison-Wesley, M<strong>en</strong>lo Park, 2 nd edition, (1995).<br />

[4] Dutton, K. et.al., The art of control <strong>en</strong>gineering, Addison-Wesley, Essex, 657-664 (1997).<br />

[5] ˚Aström, K.J. <strong>en</strong> Furuta, K., Swinging up a p<strong>en</strong>dulum by <strong>en</strong>ergy control, Proc. IFAC<br />

World Congress, 13, (1996).<br />

[6] Frad<strong>en</strong>, J., Handbook of modern s<strong>en</strong>sors, AIP Press, Woodbury, 2 nd edition, (1997).<br />

[7] B<strong>en</strong>tley, J.P., Principles of Measurem<strong>en</strong>t systems, Pr<strong>en</strong>tice Hall, Essex, 3 rd edition,<br />

(1995).<br />

[8] Stimac, A.K., Standup and Stabilization of the Inverted P<strong>en</strong>dulum, Massachusetts Institute<br />

of Technology, Massachussetts, (1999).<br />

[9] Nair, S., Ehrich, L., A Normal Form for Energy ShapingL Application to the Furuta<br />

P<strong>en</strong>dulum, Proc. 41st Conf. Decision and Control, 2002.<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!