Forum: Digitale Signalverarbeitung / DSP / Machine Learning Gleichstrommotor Zeitdiskretes Modell?


von Henry (Gast)


Lesenswert?

Hallo Zusammen, ich habe einen einfache Gleichstrommotor mit der 
Übertragungsfunktion:

G(s)= n(s)/ua(s) = (kT/2pi) / (LA*J/(RA*kL+kM*kT)*s^2) + 
((J*RA+LA*kL)/RA*kL+kM*kT)*s + 1

Wie bekomme ich das zeitdiskrete Modell rechnerisch und als 
Blockschaltbild? Ich habe zwar Formeln zu Abtastregelung, bzw 
Digitalregelung gefunden, aber ich komme rechnerisch irgendwie nicht 
weiter. Dann gibt es noch Verfahren mit Z-Transformatiuon und inverse, 
ich blicke da nicht mehr durch.

: Verschoben durch Admin
von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Henry schrieb:
> Wie bekomme ich das zeitdiskrete Modell rechnerisch

So wie in den Grundlagen der Regelungstechnik gelernt ;-) Ich hab in 
meinem Beispiel mal den Motor durch eine allgemeine Übertragungsfunktion 
ersetzt. Die Koeffizienten können ja beliebig ersetzt werden.

: Bearbeitet durch User
von Henry (Gast)


Lesenswert?

Vielen Dank. Eine Frage: Das Ganze kann doch beispielsweise mit einem 
Abtastregler realisiert werden. Wenn aber von einem allgemeinen 
Zeitdiskreten Modell die Rede ist, um welche Art von Regler handelt es 
sich dann?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ich habe die Frage leider nicht verstanden.
Das Ganze [was, der Motor ?] kann mit einem Regler realisiert werden?
Wenn von einem zeitdiskreten Modell [was hat das mit einem Regler zu 
tun?] die Rede ist?

Vielleicht nochmals zur Erklärung meiner Rechnung.
Du hast die Übertragungsfunktion G(s) eines Gleichstrommotors im 
Frequenzbereich gegeben. Das hat noch nichts mit Regelungstechnik zu 
tun. Nun kann man diese Übertragungsfunktion zurück in den Zeitbereich 
transformieren oder aber auch in den z-Bereich. Genau das habe ich 
getan. Aus dem z-Bereich lässt sich sehr elegant eine rekursive 
Differenzengleichung bilden, auch das habe ich getan.  Es bleibt aber 
immer noch nur ein Gleichstrommotor.

Nun kann man einen Gleichstrommotor natürlich regeln. Die Regelung kann 
vollständig kontinuierlich (analog) erfolgen oder digital. Dazu ist 
natürlich ein entsprechender Regelkreis aufzubauen. In diesem Regelkreis 
kann wiederum der Regler quasikontinuierlich oder zeitdiskret arbeiten. 
Im ersten Fall würde man die Integrale und Differentiale durch 
entsprechende mathematische Operationen approximieren.  Im zweiten Fall 
würde man tatsächlich im z-Bereich einen Regler entwerfen.

Wie lautet Deine Frage?

von Henry (Gast)


Lesenswert?

Ich bezog es auf den Gleichstrommotor ohne Regler. Deine Rechnung habe 
ich ähnlich hergeleitet. Ich habe durch die Partialbruchzerlegun die 
Nullstellen und anschließend per Koeffizientenvergleich A und B 
berechnet. Anschliessend g(k*T)= Az/(z-e^s1kT)+Bz/(z-e^s2kT) errechnet. 
Es gibt noch andere Verfahren aber so ist es am einfachsten meiner 
Meinung nach.

Eine Frage noch. Wie gehe ich bei der Polvorgabe vor, beispielsweise für 
einen Regler?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Henry schrieb:
> Eine Frage noch. Wie gehe ich bei der Polvorgabe vor, beispielsweise für
> einen Regler?

Wie ganz klassisch.
Im geschlossenen Regelkreis sind ja für das Motorbeispiel 3 Pole 
vorzugeben.
Ein Pol sollte s1=-1 sein, da ja ein stationäres Verhalten gewünscht 
ist. Die beiden anderen dominierende Polpaare sollten so gewählt werden, 
dass die Überschwingweite, die Überschwingzeit und die Beruhigungszeit 
so sind wie gewünscht. Der Zeiger des konjugiert komplexen Polpaares 
kann ja direkt in diese Parameter umgerechnet werden.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Nachtrag

Kurze Beispielrechnung im s-Bereich für einen kleinen Gleichstroimmotor 
mit PI-Regler. Nun nur noch in den z-Bereich bringen.

von Henry (Gast)


Lesenswert?

Hallo,

dennoch ist mir nicht ganz klar, wie ich das beispielsweise in Matlab 
realisieren kann. Als Beispiel sei ein Regler durch Polvorgabe, als 
Dead-Beat und als LQR.

Bei der Polvorgabe habe ich es wie folgt gemacht, wobei mir unklar ist, 
wie ich optimale Pole finden:


%Gleichstrommotor
zs=[kT/(2*pi)];
ns=[J*LA (J*RA + LA*kL) (RA*kL + kT*kM)];
GMotor=tf(zs, ns);

p1=80; (p1*s^2)
p2=9; (s)

%Koeffizientvergleich
b1=1;
b0=p1-(82.82*b1);
a1=(p2-(900*b1+82.82*b0))/43.41;
a0=(1-(900*b0))/43.41;

%Regler
zr1=[a1 a0];
nr1=[b1 b0];
Regler1=tf(zr1,nr1)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ok also ein Dead-Beat-Regler soll es sein.
Bei Reglern mit endlicher Einstellzeit wird ja gefordert, dass die Pole 
der Führungsübertragungsfunktion alle im Ursprung der z-Ebene liegen. 
Der Ansatz für Gw(Z) muss also so aussehen, dass ein n-facher Pol im 
Ursprung liegt.

von Henry (Gast)


Lesenswert?

Wie realisiere ich das für das obige Beispiel in Matlab für Dead Beat 
und Polvorgabe sowie LQR?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.