Winkelregelung mit SIMULINK - home.hs

Werbung
Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, wiregsi2.doc
Seite 1
Homepage: http://www.home.fh-karlsruhe.de/~kero0001/ E-Mail: <[email protected]>
Winkelregelung mit SIMULINK
Zum Vergleich die Tephys-Datei winkre20.txt:
siehe
http://www.home.fh-karlsruhe.de/~kero0001/winkelreg/winkelreg.html
1 y1=0 { y1 = Messkanal12 des Digitalsziloskops}
2 y2=0 { y2 = Messkanal 2 des Digitalsziloskops}
3 del=-0.25-tauf*f
4 d=drei(f*t+del) { d= Dreieckfunktion, Frequenz f, Phase del, anzupassen an Messfigur}
5 W0=aW*ja(t-t1)*ja(t2-t)+ar*sign(d-sw)+ap*ja(d-sw) { W0=Quelle für Führgröße: aW=
Amplitude Rechteckimpuls im Zeitbereich t1 bis t2; ar = Amplitude des aus dem Dreieck d gewonnenen
Rechtecks, ap = einseitiges Rechteck, ebenfalls aus Dreieck gewonnen}
6 W=W+begr((W0-W)/TW,vma,vmi)*dt { W = Führgröße, anstiegsbegrenzt und verrundet}
7 J=J0+2*mK*rK*rK {J = Trägheitsmoment: J0=Trägheitsmoment des Motors und der
Gewindestange M6. 2*mK*rK*rK = zusätzliches Trägheitsmoment der beiden Masse-Klötze mit
Radialabstand rK von der Achse und Masse mK }
8 x=nein(t-tauf)*uxst/kx+ja(t-tauf)*(x+w*dt) {x = Winkel der Motorachse (im Bogenmaß). Bis zur
Zeit tauf wird x auf dem Startwert uxst/kx festgehalten und dann losgelassen.}
9 X=kx*x { X = Spannung des Winkel-Potentiometers ( X=Regelgröße = die zu regelnde Größe). kx =
Sensorkonstante. }
10 DA=Td*(ja(kon)*(W-X-WXalt)/dt-nein(kon)*kx*w) { DA = D-Anteil des PD-Reglers. Bei
kon >0 wird die Regeldifferenz W-X differenziert. Bei kon <= 0 wird nur - X differenziert}
11 WXalt=W-X { Wxalt = „alter Wert“ von W-X, für Bildung des D-Anteils }
12 uM=ja(reg)*begr(Ap*(W-X+DA),max,min)+nein(reg)*U0 { uM = Stellgröße des
PD-Reglers = Ausgang des Leistungs- Spannungsfolgers. uM ist begrenzt auf die Maximalspannung max
und die Minimalspannung min }
13 i=(uM-kg*w)/R { i = Motorstrom. Die Motorinduktivität wird hier vernachlässigt. kg*w ist die
Spannung, die durch die Rotation der Motorwelle induziert wird. kg = „ Generatorkonstante“, w =
Winkelgeschwindigkeit}
14 w=ja(t-tauf)*(w+(kg*i-rv*w-rGL*sign(w)-rtu*w*abs(w))*dt/J) { w =
Winkelgeschwindigkeit der Motorwelle. Bis zum Zeitpunkt tauf wird die Motorwelle festgehalten, vgl.
Formel für Winkel x . rv*w =“viskoses“ Reibmoment, rGL*sign(w) = „Gleitreibungsmoment“, rtu*w*abs(w)
= „turbulentes“ Reibmoment }
15 t=t+dt { t = Zeit. Schrittweite dt nach Genauigkeitsansprüchen wählen. }
Jetzt die Winkelregelung mit SIMULINK simuliert:
Datei wireg3.m
Kessler,12.11.00
ar
-
Winkelregelung, ähnlich Tephyswinkre20.txt
+
+
+
-
Ap
1/R
max
min
W 0
i
+
+
kg
+
w
1/J
-
1/s
1/s
i
Td
du/dt
uM
rGL*sgn(u)+rv*u+rtu*u*abs(u)
t
kg
Clock
X
kx
Die beiden nachfolgenden "Parameter-Zeilen" als gemeinsamen Block mit Maus
"kopieren" (copy) und in Matlab "einfügen" (paste) und mit <Return> aktivieren.
Dann in Simulink Schaltfläche Simulation/Start anklicken.
Pulsgenrator: 1/f; 1/(2*f); 2*ar; tauf;
load wi20m;
M20=[wi20m(1:1024,1),wi20m(1:1024,2)];
figure;plot(1:1024,M20); grid;
figure(1);plot(t,W0, t,X,t,uM/10);grid;
gtext(['Ap=',num2str(Ap),', Td=',num2str(Td) ]);
tauf=2.05;f=0.0328; ar= -1.78; tmax=50;rv=0;rGL=0.005; rtu=0;J=0.002478;
kg=0.08;R=10; kx=0.36;Td=0;Ap=50;max=13;min= -13;dt=0.01;
Zum Zeichen der Simulationskurven die nachfolgenden
beiden Zeilen in Matlab einfügen und mit <Return> aktivieren
figure(1);plot(t,W0,'w', t,X,'w',t,uM/10,'w');grid;
gtext(['Ap=',num2str(Ap),', Td=',num2str(Td) ]);
Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, wiregsi2.doc
Seite 2
Homepage: http://www.home.fh-karlsruhe.de/~kero0001/ E-Mail: <[email protected]>
Wie die SIMULINK- Simulation starten?
1 Den „Kommentar-Text“ mit den Parametern ( tauf=... bis dt = 0.01; ) mit Maus markieren, dann mit Maus
„kopieren“, dann mit Maus in „Matlab-Ebene“, dort rechts vom Matlab-Zeichen >> mit Maus einfügen (=paste)
und dann mit Taste <Return> aktivieren. Damit sind Matlab die Parameter bekannt.
2 Dann in Simulink mit Mausklick auf „Schaltfläche“ Simulation/Start . Dann mit Maus in Simu link den
„Kommentar-Text“ figure(1)....bis num2str(..) markieren, kopieren und in Matlab einfügen und mit <Return>
aktivieren: dadurch entsteht das Matlab-Bild.
3. Dann mit Maus in die Bild: es entsteht Fadenkreuz. Durch Mausklick werden die beiden Parameter Ap und Td
ins Bild geschrieben.
4
Die weiteren Parameter-Änderungen direkt in der Matlab-Ebene. Starten wieder in Simulink-Ebene mit
Schaltfläche Simulation/Start
Tephysbild
Für die SIMULINK- Schaltung wird hier bewusst eine sehr primitive Methode zum Starten und ParameterÄndern angewendet. Man wird erkennen, dass das sehr umständlich ist. Viel eleganter kann man SIMULINK
laufen lassen mit Hilfe einer „Editor-Datei“. Beispiele dafür finden sich in den SIMULINK-Beispielen
auf meiner Homepage http://www.home.fh-karlsruhe.de/~kero0001/
A p = 5 0 ,
T d = 0
5
4
3
2
1
0
-1
-2
-3
-4
-5
0
1 0
2 0
3 0
4 0
5 0
Bei obigem Bild nur P-Regler (Ap=50, Td = 0), Simulation entspricht dem Experiment, vgl. TephysBilder
Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, wiregsi2.doc
Seite 3
Homepage: http://www.home.fh-karlsruhe.de/~kero0001/ E-Mail: <[email protected]>
Ap=50,
Td=0.2
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0
1 0
2 0
3 0
4 0
5 0
Bei obigem Bild Ap= 50, Td = 0.2 ( vgl. Zahlen in der Figur)
max=213,
Td=0
25
20
15
10
5
0
-5
-10
-15
-20
-25
0
10
20
30
40
50
Bei der obigen Figur P-Regler(AP=50, Td =0), ABER bewusst FALSCH simuliert: max = 213 (statt 13) und
min = -213 (statt –13). Folglich riesige Stellgröße uM und viel zu wenig Dämfung
Herunterladen