DC-Motor mit aktiver Dämpfung/Entdämpfung, Chaos …kero0001/DC_Motor/Aktive_D%E4mpfun… ·...
-
Upload
nguyentruc -
Category
Documents
-
view
214 -
download
0
Transcript of 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. 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:
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.
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
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
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
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!
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.
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.' )