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.
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?
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.
Es scheint sich hier aber mehr um ein generelles mathematisches Problem zu handeln, als um ein FPGA-Problem, oder?
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?
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.
Das Problem scheint mir hier die Abtastung mit Faktor 10. Ein bissl wenig!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.