Forum: FPGA, VHDL & Co. Impelemtierung eines Störgrößenbeobachters auf FPGA/VHDL


von Robert M. (andro86)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bemühe mich gerade einen Störgrößenbeobachter zu implementieren. Von 
der Strucktur sieht er so aus wie auf dem angehängten MatLab Modell. Es 
handelt sich um eine einfache I-Regelstrecke, dem ein einfacher 
(nachgebildeter) Zustandsregler vorgeschaltet ist. Dieser Zustandsregler 
besitzt intern einen PWM-Generator, der die Regelgröße auf einen festen 
Wertebereich von 0-500 abbildet und somit einen Flaschenhals in meinem 
Code darstellt. Und genau hier ist mein Problem, da die 
Integrierer-Vorverstärkung gerade einmal nur 0,1 beträgt, gehen mir bei 
der zeitdiskreten Wertverarbeitung des FPGAs zu viele Werte verloren. 
Was ist damit meine ist in Ergebnisse zu sehen. e_Obs_gain ist der Wert, 
der nach dem Integrier-Vorverstärker raus kommt und e_Obs_gain_fix ist 
der Wert, mit dem mein FPGA arbeitet. Durch diesen Quantisierungsfehler 
erreiche ich nicht meinen Sollwert und ich wollte nachfragen, ob ihr 
irgendwelche Tips habt, wie ich das compensieren kann.
Mit mehr Nachkommastellen arbeiten geht hier nicht wegen dem 
PWM-Generator, der den Eingangswert des Integrators auf 500 begrenzt.

von Klakx (Gast)


Lesenswert?

Da ich noch nicht genau drin stecke nochmal gefragt..
Nutzt du jetzt den Wertebereich schon voll aus?

Und kannst du das mit den 0,1 nochmal erklären?

Idealisiert ohne PWM bräuchtest du wieviele Werte?

von Robert M. (andro86)


Lesenswert?

Mein Regelsystem besteht aus einem Step-Down als Stellglied mit dem Duty 
Cycle als Stellgröße. Die Regelstrecke ist demnach meine Drossel.

Die 0.1 kommen so zusammen: Meine Regelstrecke hat eine Zeitkonstante 
von T_L = 100 µs. Die zu regelnde Größe taste ich mit Ta = 10 µs. Damit 
ergibt sich für die Verstärkung meines zeitdiskreten Integrators Ta/ T_L 
= 0,1.

Ich könnte den kompletten Wertebereich meines PWM-Generators voll 
ausnutzen, jedoch spuckt mir der Quantisierungsfehler stärker in die 
Suppe je kleiner der verwendete Wertebereich ist.

Der PWM-Generator (im Bild im Block Current Control i_L2 Observer) muss 
drinen sein, weil er zur Streckennachbildung dazu gehört.

von Schlumpf (Gast)


Lesenswert?

Es scheint sich hier aber mehr um ein generelles mathematisches Problem 
zu handeln, als um ein FPGA-Problem, oder?

von Robert M. (andro86)


Lesenswert?

Schlumpf schrieb:
> Es scheint sich hier aber mehr um ein generelles mathematisches Problem
> zu handeln, als um ein FPGA-Problem, oder?

was genau meinst du?

von Schlumpf (Gast)


Lesenswert?

Robert M. schrieb:
> was genau meinst du?

Dass du das gleiche Problem in eine Simulation hast, bei einer 
Implementierung auf einen µC, oder einem Aufbau mit diskreten 
Bauteilen..
Es ist ein Problem der Dimensionierung deiner Regelschleife und nicht 
ein Problem, dass erst bei der Implementierung auf ein FPGA auftritt, 
weil das FPGA zu klein, langsam,.. ist.

von Kommunikator (Gast)


Lesenswert?

Das Problem scheint mir hier die Abtastung mit Faktor 10. Ein bissl 
wenig!

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Mich würde mal interessieren was hier rausgekommen ist. TE?

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.