DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… ·...

8
C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 1/8 Homepgae: http://www.home.hs-karlsruhe.de/~kero0001/ Download der Dateien: http://www.home.hs-karlsruhe.de/%7Ekero0001/dgln/zweidgln.zip DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos-Effekte infolge Gleitreibung Hinweis: In folgenden Links findet man einige Beispiele mit DC-Motoren: http://www.home.hs-karlsruhe.de/~kero0001/DC_Motor/DcMot_1.pdf http://www.home.hs-karlsruhe.de/~kero0001/HantelMotor/MotorUnsymHantel4.pdf http://www.home.hs-karlsruhe.de/~kero0001/PaddelChaos/PadChaos3.pdf EinVideo dazu: Aktive Dämpfung/Entdämpfung eines Pendels Video2 Anordnung: An der waagerechten Welle eines Gleichstrom-Motors (DC-Motor) ist ein Pendel montiert (Länge L, Masse m). Infolge der Lager-Reibung wirkt bei der Motordrehung ein Reibungsdrehmoment rGL* sign(w), w= Winkelgeschwindigkeit= dx/dt, x= Winkel des Pendels gegen die Vertikale. Der Motor hat den Ohmschen Widerstand R. Bei Drehung mit der Winkelgeschwindigkeit w entsteht die induzierte Spannung kg * w. Die am Motor angelegte Spannung sei uM . Der Maschensatz ergibt uM = R*i + kg*w , also ist der Strom i= (uM-kg*w)/R . Der Strom i erzeugt das Drehmoment kg*i. Zur Drehdynamik: J = m*L*L = Massenträgheitsmoment, m*g*L*sin(x) = Drehmoment infolge der Schwerkraft. An die Motorwelle ist ein DC-Tachogenerator angekoppelt. An dessen Klemmen entsteht die Spannung uTG = kgTG * w . Diese Spannung wird elektronisch verstärkt (Verstärkungsfaktor V) Der Tachogenerator liefert also die Spannung V * kgTG* w Diese Tacho-Spannung wird an den DC-Motor gelegt, folglich entsteht der Motorstrom i = (uM - kg*w)/R = ( V*kgTG * w – kg*w ) /R. Der Strom erzeugt das Drehmoment kg*i = kg * ( V * kgTG * w – kg*w ) /R Aus diesen Überlegungen folgen die DGLn des Systems: dx/dt = w J* dw/dt = - m *g * L * sin(x) – rGL * sign(w) + kg/R * (V * kgTG * w – kg*w ) Für die Simulation mit Matlab ergeben sich die folgenden wesentlichen Zeilen (vgl die Matlabdatei): x = x + w*dt; w = w+(-m*g*L*sin(x)-rGL*sign(w)+ kg/R*(V*kgTG*w - kg*w) )*dt/J; t = t+ dt Für die Simulation mit Simulink ergibt sich folgendes Modell:

Transcript of DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… ·...

Page 1: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 1/8

Homepgae: http://www.home.hs-karlsruhe.de/~kero0001/ Download der Dateien: http://www.home.hs-karlsruhe.de/%7Ekero0001/dgln/zweidgln.zip

DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos-Effekte infolge Gleitreibung

Hinweis: In folgenden Links findet man einige Beispiele mit DC-Motoren: http://www.home.hs-karlsruhe.de/~kero0001/DC_Motor/DcMot_1.pdf http://www.home.hs-karlsruhe.de/~kero0001/HantelMotor/MotorUnsymHantel4.pdf http://www.home.hs-karlsruhe.de/~kero0001/PaddelChaos/PadChaos3.pdf EinVideo dazu: Aktive Dämpfung/Entdämpfung eines Pendels Video2

Anordnung: An der waagerechten Welle eines Gleichstrom-Motors (DC-Motor) ist ein Pendel montiert (Länge L, Masse m). Infolge der Lager-Reibung wirkt bei der Motordrehung ein Reibungsdrehmoment rGL* sign(w), w= Winkelgeschwindigkeit= dx/dt, x= Winkel des Pendels gegen die Vertikale. Der Motor hat den Ohmschen Widerstand R. Bei Drehung mit der Winkelgeschwindigkeit w entsteht die induzierte Spannung kg * w. Die am Motor angelegte Spannung sei uM . Der Maschensatz ergibt uM = R*i + kg*w , also ist der Strom i= (uM-kg*w)/R . Der Strom i erzeugt das Drehmoment kg*i. Zur Drehdynamik: J = m*L*L = Massenträgheitsmoment, m*g*L*sin(x) = Drehmoment infolge der Schwerkraft. An die Motorwelle ist ein DC-Tachogenerator angekoppelt. An dessen Klemmen entsteht die Spannung uTG = kgTG * w . Diese Spannung wird elektronisch verstärkt (Verstärkungsfaktor V) Der Tachogenerator liefert also die Spannung V * kgTG* w Diese Tacho-Spannung wird an den DC-Motor gelegt, folglich entsteht der Motorstrom i = (uM - kg*w)/R = ( V*kgTG * w – kg*w ) /R. Der Strom erzeugt das Drehmoment kg*i = kg * ( V * kgTG * w – kg*w ) /R Aus diesen Überlegungen folgen die DGLn des Systems:

dx/dt = w J* dw/dt = - m *g * L * sin(x) – rGL * sign(w) + kg/R * (V * kgTG * w – kg*w ) Für die Simulation mit Matlab ergeben sich die folgenden wesentlichen Zeilen (vgl die Matlabdatei): x = x + w*dt; w = w+(-m*g*L*sin(x)-rGL*sign(w)+ kg/R*(V*kgTG*w - kg*w) )*dt/J; t = t+ dt Für die Simulation mit Simulink ergibt sich folgendes Modell:

Page 2: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

dcmot5.mdl

Rück-kopplung

ode 5 (Dormand-Prince)

Die DGL für die Winkelgeschwindigkeit w ist

J* dw/dt = - m *g * L * sin(x) - rGL * sign(w) + kg/R * (V * kgTG * w - kg*w )

1/s

xst

uM

w

x

t

1/s

kg/R

kg

1/J

V* kgTG* u

m*g*L*sin (u)

rGL* sgn(u)

Zunächst einige Aufrufe und Erkenntnisse:

0 1 2 3 4 5 6 7 8 9 10-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

Winkel x

bild 1, m=0.1, L=0.2, xst=0.314159265359, dt=0.005, rGL=0.002, V=0, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=0.1*pi;dt=0.005;tmax=10;rGL=0.002;bild=1;V=0; ode=5; rdcmot6 Verstärkung V=0, also Motorklemmen kurzgeschlossen. Man erkennt, dass die Amplituden „linear“ abnehmen. Das ist typisch für Gleitreibung. Weiter erkennt man, dass die roten Punkte (Tephys-Algor.) auf der durchgezogenen Kurve liegen (Simulink mit ode=5, Dormand-Prince)

0 1 2 3 4 5 6 7 8 9 10-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

Winkel x

bild 2, m=0.1, L=0.2, xst=0.314159265359, dt=0.005, rGL=0.002, V=0, ode=1

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=0.1*pi;dt=0.005;tmax=10;rGL=0.002;bild=2;V=0; ode=1; rdcmot6 Hier wurde Simulink mit dem Solver ode1 (=Euler) betrieben, durchgezogene Kurve. Man erkennt, dass der Solver ode1 sehr ungenau ist.

Page 3: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 3/8

0 5 10 15 20 25 30-0.4

-0.2

0

0.2

0.4

Winkel x

bild 3, m=0.1, L=0.2, xst=0.314159265359, dt=0.005, rGL=0.002, V=26, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=0.1*pi;dt=0.005;tmax=30;rGL=0.002;bild=3;V=26; ode=5; rdcmot6 Hier ist Verstärkungsfaktor V=26. Dadurch wird die Reibung deutliche verringert, vgl mit Bild 1. Auffällig ist die „ungewöhnliche“ Art der Amplituden-Abnahme. Weder geradlinige Abnahme (wie bei Gleitreibung), noch „exponentielle“ Abnahme (wie bei viskoser Reibung, „nach innen gewölbt“), sondern „nach außen gewölbt“ Man beachte weiterhin, dass auch hier die mit dem Tephys-Algorithmus gerechnete Kurve (rote Punkte) auf der mit der mit ode = 5 berechneten Kurve (durchgezogene Kurve).

0 5 10 15 20 25 30-4000

-3000

-2000

-1000

0

1000

Winkel x

bild 4, m=0.1, L=0.2, xst=0.314159265359, dt=0.005, rGL=0.002, V=26, ode=1

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=0.1*pi;dt=0.005;tmax=30;rGL=0.002;bild=4;V=26; ode=1; rdcmot6 Hier wurde mit Solver ode=1 (= Euler) gerechnet. Man erkennt, dass Euler total falsch rechnet, denn die Amplitude steigt an auf riesige Werte : ca. 3000, d.h. der Motor hat sich 3000/(2*pi) = 477 mal um seine Achse gedreht.

Demo des Chaos-Effektes: Hinweis: Weitere Beispiele für Chaoseffekte infolge Gleitreibung auf dieser Homepage: http://www.home.hs-karlsruhe.de/~kero0001/Drehos/DREHOSZ5s.html http://www.home.hs-karlsruhe.de/~kero0001/Chaos_Effekt/SimuZweiChaosEff1.pdf http://www.home.hs-karlsruhe.de/~kero0001/hub60/hub_60.html

0 10 20 30 40 50 60 70 80 90 100-0.4

-0.2

0

0.2

0.4

Winkel x

bild 8, m=0.1, L=0.2, xst=0.314159265359, dt=0.001, rGL=0.002, V=28.1797, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=0.1*pi;dt=0.001;tmax=100;rGL=0.002;bild=8;V=28.1797; ode=5; rdcmot6 Hier ist der Verstärkungsfaktor V=28.1797. Es ergibt sich nach langer Zeit eine Amplitudenabnahme auf Null

Page 4: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 4/8

0 20 40 60 80 100 120-1

-0.5

0

0.5

1

Winkel x

bild 9, m=0.1, L=0.2, xst=0.314159265359, dt=0.001, rGL=0.002, V=28.17976, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=0.1*pi;dt=0.001;tmax=120;rGL=0.002;bild=9; V=28.17976; ode=5; rdcmot6 Hier ist der Verstärkungsfaktor V=28.17976. Jetzt kommt der Motor nicht zur Ruhe, sondern rotiert weiter. Man beachte die nur winzige Änderung des Verstärkungsfaktors V: hier ist V=28.17976, beim vorhergehendem Bild war V=28.1797, dort kam der Motor Ruhe. Dieser winzige relative Unterschied (2e - 6) verursacht also eine völlig andere Situation: Entweder zur Ruhe kommen oder rotieren. Wegen dieser „unstetigen Abhängigkeit von einem Parameter“ wollen wie dies Verhalten als Chaos-Effekt bezeichnen. Weitere „chaosartige“ Effekte ergeben sich auch bei der Variation der anderen Parameter: Gleitreibung rGL Startwinkel xst Pendel-Länge L

Page 5: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 5/8

Variation der Gleitreibung rGL

0 50 100 150-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4Winkel x

bild 6, m=0.1, L=0.2, xst=0.3, dt=0.001, rGL=0.001156225, V=21, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=0.3;dt=0.001;tmax=150; rGL=0.001156225; bild=6;V=21; ode=5; rdcmot6 Endzustand: Ruhe

0 50 100 150-1

-0.5

0

0.5

1

Winkel x

bild 7, m=0.1, L=0.2, xst=0.3, dt=0.001, rGL=0.00115622, V=21, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor.

clear; m=0.1;L=0.2;xst=0.3;dt=0.001;tmax=150; rGL=0.00115622; bild=7;V=21; ode=5; rdcmot6 Endzustand: Aufklingend Amplitude, anschließend Rotation. Der relative Unterschied der benutzten Werte rGL ist 4e-6.

Variation des Startwinkels xst

0 50 100 150-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

Winkel x

bild 9, m=0.1, L=0.2, xst=0.298369, dt=0.001, rGL=0.00115, V=21, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2; xst=0.298369; dt=0.001;tmax=150;rGL=0.00115;bild=9;V=21; ode=5; rdcmot6

Page 6: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 6/8

0 50 100 150-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

Winkel x

bild 10, m=0.1, L=0.2, xst=0.2983699, dt=0.001, rGL=0.00115, V=21, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2; xst=0.2983699; dt=0.001;tmax=150;rGL=0.00115;bild=10;V=21; ode=5; rdcmot6 Auch hier bewirkt der winzige relative Unterschied im Startwinkel (3e-6) völlig verschiedenes Verhalten: zur Ruhe kommen oder anwachsende Amplitude. Drum die Bezeichnung Chaos-Effekt

Variation der Pendel-Länge L

0 50 100 150-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

Winkel x

bild 12, m=0.1, L=0.202173, xst=0.3, dt=0.001, rGL=0.00115, V=21, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1; L=0.202173; xst=0.3; dt=0.001;tmax=150;rGL=0.00115;bild=12;V=21; ode=5; rdcmot6

0 50 100 150-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Winkel x

bild 13, m=0.1, L=0.20217, xst=0.3, dt=0.001, rGL=0.00115, V=21, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.20217;xst=0.3; dt=0.001;tmax=150;rGL=0.00115;bild=13;V=21; ode=5; rdcmot6 Man erkennt, das auch der Parameter Pendellänge L einen Chaos-Effekt bewirkt

Anschließend Aufrufe zum aktiven Dämpfen der Pendelschwingung

Das Prinzip ist sehr einfach: Man muss lediglich die an den Motor angelegte Spannung umpolen. Dann bewirkt das Motor-Drehmoment ein Gegenkopplung und damit eine Dämpfung der Pendelschwingung. Also Verstärkungsfaktor V negativ wählen!

Page 7: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 7/8

0 5 10 15 20 25 30-1.5

-1

-0.5

0

0.5

1

1.5

Winkel x

bild 2, m=0.1, L=0.2, xst=1.5, dt=0.003, rGL=0.001, V=0, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=1.5; dt=0.003;tmax=30;rGL=0.001;bild=2;V=0; ode=5; rdcmot6 Zunächst V=0, also Motorklemmen kurzgeschlossen. Diese Pendelschwingung soll durch Gegenkopplung gedämpft werden.

0 5 10 15 20 25 30-1.5

-1

-0.5

0

0.5

1

1.5

Winkel x

bild 3, m=0.1, L=0.2, xst=1.5, dt=0.003, rGL=0.001, V=0, ode=1

--> t/sec, rote Punkte: Matlab mit Tephysalgor. clear; m=0.1;L=0.2;xst=1.5; dt=0.003;tmax=30;rGL=0.001;bild=3;V=0; ode=1; rdcmot6 Auch hier V=0. Wieder die Erkenntnis, dass der Solver ode1 (Euler) sehr ungenau rechnet

0 5 10 15-1.5

-1

-0.5

0

0.5

1

1.5

Winkel x

bild 6, m=0.1, L=0.2, xst=1.5, dt=0.003, rGL=0.001, V=-20, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor.

clear; m=0.1;L=0.2;xst=1.5; dt=0.003;tmax=15;rGL=0.001;bild=6;V= - 20; ode=5; rdcmot6 Hier V= - 20. Erkenntnis Dadurch etwas stärkere Dämpfung erreicht.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1

-0.5

0

0.5

1

1.5

Winkel x

bild 7, m=0.1, L=0.2, xst=1.5, dt=0.003, rGL=0.001, V=-100, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor.

clear; m=0.1;L=0.2;xst=1.5; dt=0.003;tmax=5;rGL=0.001;bild=7;V= - 100; ode=5; rdcmot6 HierV=-100, dadurch deutlich größere Dämpfung erreicht.

Page 8: DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… · C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 2/8

C:\Si05\Halter\tests\Aktive_Dämpfung_Entdämpfung.docProf. Dr. R. Kessler, , S. 8/8

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

Winkel x

bild 9, m=0.1, L=0.2, xst=1.5, dt=0.003, rGL=0.001, V=-800, ode=5

--> t/sec, rote Punkte: Matlab mit Tephysalgor.

clear; m=0.1;L=0.2;xst=1.5; dt=0.003;tmax=2;rGL=0.001;bild=9;V= - 800; ode=5; rdcmot6

Hier V= - 800. Erkenntnis: Man kann die aktive Dämpfung so einstellen, dass das Pendel ohne Überschwingen zur Ruhe kommt . ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Anschließend das zugehörige Matlab-Programm:

% rDCmot6.m RunDatei für Simulink-Modell DCmot5.mdl mit aktiver Dämpfung und Entdämpfung %clear; m=0.1;L=0.2;xst=0.5*pi;dt=0.01;tmax=20;rGL=0.005;bild=2;V=0;ode=5;rdcmot6 %clear; m=0.1;L=0.2;xst=0.1*pi;dt=0.01;tmax=50;rGL=0.002;bild=4;V=28.2; ode=5; rdcmot6 % Auch "aktive Dämpfung", mit V < 0 % clear; m=0.1;L=0.2;xst=0.5*pi;dt=0.01;tmax=20;rGL=0.002;bild=3;V=-200; ode=5; rdcmot6 format compact; g=9.81; J=m*L*L; R=10 ; kg=0.08; kgTG= 0.1*kg; if bild==1 dcmot5; pause; end ; % Simulink-Modell auf Bildschirm if ode==1 sim( 'dcmote5' ); end ; % Euler if ode==5 sim( 'dcmot5' ); end ; % Dormand-Prince S1=[ 'bild ' ,num2str(bild)]; S2=[ ', m=' ,num2str(m)]; S3=[ ', L=' ,num2str(L,12)]; S4=[ ', xst=' ,num2str(xst,12)]; S5=[ ', dt=' ,num2str(dt)]; S6=[ ', rGL=' ,num2str(rGL,12)]; S7=[ ', V=' ,num2str(V,10)]; S8=[ ', ode=' ,num2str(ode)]; tit=[S1,S2,S3,S4,S5,S6,S7,S8]; figure(bild); clf reset; plot(t,x); %plot(t,x,t,uM); ylabel ( 'Winkel x' ); grid on; title(tit); disp( 'das war Simulink' ); pause; %+++++++++ jetzt mit reinem Matlab (Tephys-Algor.) ') ++++++++++ % Plotwerte deklarieren: Np=floor(tmax/dt); tp=zeros(Np,1); xp=tp; % Startwerte: x=xst; w=0; k=0; t=0; while t < tmax k=k+1; tp(k)=t; xp(k)=x; % Plotwerte speichern x=x+w*dt; % x = Winkel, w = Winkelgeschwindigkeit w=w+(-m*g*L*sin(x)-rGL*sign(w)+ kg/R*(V*kgTG*w - kg *w) )*dt/J; t=t+dt; end ; hold on; plot(tp,xp, 'm:' ); xlabel( '--> t/sec, rote Punkte: Matlab mit Tephysalgor.' )