Hallo, ich hab selber noch keinen Regler programmiert. Jetzt würde ich gerne eine bestehende Antriebsregelung umbasteln, bzw. eigentlich den Controller noch ein paar mehr Sachen machen lassen. Drum ganz allgemein: Wie sorge ich dafür, dass der Regler nachher wieder genauso arbeitet wie vorher? Mit etwas Pech habe ich ja nachher andere Totzeiten. Wie passe ich dann den Regler so an, dass er wieder arbeitet? Ich könnte ja den Algorithmus erst mal als y[k] = ... schreiben und dann eine Laplace-Rücktransformation durchführen. Dann hätte ich das ganze mit Totzeiten formuliert, die ich dann irgendwie messen müsste...oder bin ich da auf dem falschen Dampfer? Ich hab auch irgendwas mit z-Transformation im Hinterkopf...aber wirklich schlüssig bin ich mir noch nicht. Darum danke schon mal für jeden Tipp! :)
Du schreibst "ich könnte ja den Algorithmus erst mal als y[k] = ... schreiben". Wie ist der Algorithmus denn gegenwärtig formuliert?
Ok, das war nicht ganz klar: Momentan ist es einfach C-Code, natürlich nicht mit Array- oder Indexschreibweise, aber im Prinzip ist es natürlich schon die y[k] = ... - Formulierung. Nun würde mich interessieren, wenn ich auf den Controller noch ein paar Tasks packe, wie ich dann die Regelung anpassen muss, damit sie nachher wieder genau so gut arbeitet...
Falls jemand ein paar passende Stichpunkte hat, wie man das prinzipiell angehen kann, wäre mir schon sehr geholfen :) Danke schon mal!
In den seltensten Faellen ist der Algorithmus als y[k]:=.. mit Ruecktransformation, sondern ganz normal im Zeitbereich. Zuerst muss man die Struktur herausfinden, die Linerisierungen, die Koeffizienten. Dann sieht man was man hat. Bei einem genuegend einfachen Problem kann man einen Regler neu ausm Boden stampfen und etwas an den Koeffizienten rumschrauben.
Worum geht's denn ueberhaupt ? Gibt es ein modell einer Strecke, dh ist sie simulierbar, was ist die wesentliche Zeitkonstante, kann man objekt probieren oder eher nicht, usw...
Also, das ganze ist eine feldorientierte Regelung, die nur als Code existiert, ein Streckenmodell gibt es nicht. Was meinst Du denn mit "Objekt probieren"?
Ich gehe davon aus, dass der Regelalgorithmus mit konstanter Frequenz aufgerufen wird. Im Normalfall bleibt also etwas Idlezeit dazwischen übrig. Die kannst Du anknabbern. Ansonsten könntest Du vielleicht den Regler-Code optimieren und die gesparte Zeit wiederum für die zusätzlichen Tasks verwenden.
Es gibt objekte, da kann man nicht mal probieren und schrauben, zB eine Seilbahn, da geht was kaputt. Bei einem motor aufm' Tisch kann man am Objekt probieren. Aber eine Idee des Streckenverhaltens muus ja existieren.
Solange aber die selben Abtastzeiten eingehalten werden, müsste man ja mit einem anderen Rahmenbedingungen (andere Tasks/anderer Controller/Betriebssystem/Scheduling usw.) einfach die alte Regelung übernehmen können, richtig?
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.