www.mikrocontroller.net

Forum: PC-Programmierung Regelungsalgorithmus


Autor: Stub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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! :)

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du schreibst "ich könnte ja den Algorithmus erst mal als y[k] = ... 
schreiben". Wie ist der Algorithmus denn gegenwärtig formuliert?

Autor: Stub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Stub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls jemand ein paar passende Stichpunkte hat, wie man das prinzipiell 
angehen kann, wäre mir schon sehr geholfen :) Danke schon mal!

Autor: 6641 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: 6641 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Stub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, das ganze ist eine feldorientierte Regelung, die nur als Code 
existiert, ein Streckenmodell gibt es nicht. Was meinst Du denn mit 
"Objekt probieren"?

Autor: StinkyWinky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: 6641 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: StinkyWinky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das sehe ich auch so.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.