Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frage zu Zustandsraum und Beobachter


von Bert (Gast)


Lesenswert?

Hallo Forum,

ich möchte folgendes tun. Ich möchte ein dynamisches System mit einem 
Zustandsregler regeln. (Nur eine Übung mit Simulink, kein richtiges 
System)

Jetzt habe ich zunächst eine Zustandsrückführung entworfen. Und zwar 
greife ich in meinem System die Zustände ab und führe sie über die 
Reglermatrix auf den Eingang u zurück. Es funktioniert so, nicht 
überraschend.

Als nächsten Schritt dachte ich mir, möchte ich das mit einem Beobachter 
erweitern. Mal angenommen, dass die Zustände meines Systems nicht 
zugreifbar sind, dann brauche ich ja einen solchen Beobachter. Also habe 
ich ein zweites solches System aufgebaut in meinem Simulink Diagramm, wo 
man nun auf die Zustände zugreifen kann. Es ist ein Luenberg Beobachter, 
welcher den Input u und den Output y des zu beobachtenden Systems 
betrachtet und daraus die Zustände rekonstruiert. Dies funktioniert auch 
noch relativ gut.

Jetzt möchte ich den Beobachter digital machen. Ich habe mir überlegt, 
dass man in der Praxis ja auch nicht ein 'analoges' System als 
Beobachter ausführen kann, sondern den Beobachter vermutlich immer 
digital in einem Mikrocontroller nachbildet, und der Mikrocontroller 
macht dann auch gleich die Zustandsrückführung. Also habe ich mir das 
Zustandsraummodell meines Beobachters digitalisiert:
ist die neue Systemmatrix (für den dig. beobachter)

und

die Matrix c bleibt gleich.

Jetzt kann ich doch in meinem Mikrocontroller rechnen:

y = c * x;
x = A_d * x + b_d * u;

und dann erhalte ich so meinen Output. Ist das richtig? Muss ich da was 
beachten, wenn ich ein Zustandsraummodell derart digital realisiere? 
Kann man das überhaupt so machen wie ich mir das Vorstelle, oder wie 
wendet man einen Zustandsregler praktisch an? der ist doch immer 
digital, oder nicht?

: Verschoben durch Admin
von TestX .. (xaos)


Lesenswert?

du musst aus dem lapace-zustandsraum über eine bilineare 
möbiustransformation die gleichung in den Z zustandsraum transformieren. 
danach kommst du über die inverse z-transformation in den zeitdiskreten 
bereich - in dieser form kannst du dann das ganze implementieren.

nur denk an die definition von e^AT - damit du das ganze richtig 
umwandelst...sonst kommt da nur schrott bei raus..

von Bert (Gast)


Lesenswert?

Hi Andi,
jau, das mit e^AT habe ich aus dem Buch Lunze: Regelungstechnik Bd 2.
Damit ist natürlich die Matrizenexponentialfunktion gemeint:

I + A + (AT)^2/2! + (AT)^3/3! + ...

das ist also klar. Das Integral unten auch, lässt sich ja einfach 
berechnen. Und gemäss dem Buch ist das Zustandsraummodell mit den 
Matrizen Ad und bd dann:

x[k+1] = A*x[k] + b*u[k]
y[k] = c*x[k]

aber ich frage mich, ob man das dann wirklich so einfach rechnen kann.

Kann ich davon ausgehen, dass die Regelstrecke sich mehr oder weniger 
gleich verhält, ob der beobachter jetzt digital oder analog ist? Beim 
digitalen Beobachter habe ich im Prinzip ja immer Sprünge drin und zudem 
noch die Totzeit die von der Abtastung her rührt.

von innerand i. (innerand)


Lesenswert?

Bert schrieb:


> und dann erhalte ich so meinen Output. Ist das richtig? Muss ich da was
> beachten, wenn ich ein Zustandsraummodell derart digital realisiere?

Grundsätzlich sollte das schon passen. Ist halt eine Transformation vom 
s in den z Bereich. Einfach mal das Bode der beiden Systeme in matlab 
übereinander legen, dann sieht man ja die Unterschiede.

: Bearbeitet durch User
von innerand i. (innerand)


Lesenswert?

Bert schrieb:

> Kann ich davon ausgehen, dass die Regelstrecke sich mehr oder weniger
> gleich verhält, ob der beobachter jetzt digital oder analog ist? Beim
> digitalen Beobachter habe ich im Prinzip ja immer Sprünge drin und zudem
> noch die Totzeit die von der Abtastung her rührt.

Das kommt wie immer darauf an. Wenn dein System (damit mein ich jetzt 
den µC oder was auch immer den Beobachter berechnet) schnell genug bzw. 
T klein genug ist, dann kann man von einem quasi-kontinuierlichen System 
ausgehen und somit davon, dass es sich mehr oder weniger gleich verhält.

Grundsätzlich ergibt sich aus der Abtastung aber eine zusätzliche 
Phasenrückdrehung.

Aber wie gesagt, einfach mal das Bode der beiden Systeme (bei 
unterschiedlichen Ts ansehen), damit sieht man die Unterschiede.

von Bert (Gast)


Lesenswert?

Okay danke erstmal für eure Tipps.
Das sieht hier schon ganz ordentlich aus in Simulink.
Allerdings frage ich mich, ob ich die Beobachterrückführung L auch 
genauso berechnen kann, wie beim analogen Zustandsregler?

Beim analogen Zustandsregler würde man ja in Matlab z.B. rechnen:

L = acker(A',c',[pole])'

kann man das beim digitalen Zustandsraummodell auch so machen? also

L = acker(Ad',c',[pole])'
??

von oskimo (Gast)


Lesenswert?

Ja, ist möglich. Du solltest aber darauf achten, dass du jetzt bei 
deinem digitalen System die Pole innerhalb des Einheitskreises verteilst 
und nicht mehr versuchst sie in die linke s-Halbebene zu legen.

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.