Hallo, Folgendes: Ich regle ein mechanisches System mit einem Raspberry Pi und die Programmlaufzeit beträgt dabei 10 ms. Nun habe ich die Matrizen und den Regler kontinuierlich ausgelegt und lediglich für die Simulation in MatLab einen Zero-Order-Hold-Block verwendet. Man spricht also von einer "quasi-kontinuierlichen Reglung". In der Literatur steht dazu, dass man diese verwenden kann, wenn die Abtastzeit "hinreichend klein" ist. Aber wie genau prüft man das? Ist der Nachweis schon erfüllt, wenn das System mit gewünschtem Verhalten stabilisiert? (In der Praxis funktioniert das System, möchte es aber nun formell begründen)
Das ist eine sehr akademische Frage. Geht es Dir um eine "theoretische" oder praxisrelevante Antwort?
> Aber wie genau prüft man das?
Wenn du ein Signal mit dem Oszi anzeigen willst, wie ueberpruefst du
welche Bandbreite du brauchst? :-) Das ist der umgekehrte Fall.
Du koenntest schauen was die groessten Frequenzen sind die in deiner
Mechanik vorkommen und dann einen Faktor x hoeher abtasten. Diesen
Faktor x kannst du dir dann noch auf der Basis der notwendigen
Aufloesung herleiten.
Olaf
Das hat ja mit der/den Zeitkonstanten des Systems zu tun. Liegt diese um ein zigfaches hoeher als die Abtastperiode, dann handelt es sich um die besagte quasikontinuierliche Regelung (sollte Literaturwerte dafuer geben). Wenn du dann bei deiner kontinuierlichen Auslegung nicht an den Stabilitaetsraendern bist, ist Stabilitaet anzunehmen. Wenn du was dazulernen willst, dann berechne die Systemstabilitaet auch noch fuer die diskrete Abtastung (z-Transformation).
Jandro schrieb: > Ist der Nachweis > schon erfüllt, wenn das System mit gewünschtem Verhalten stabilisiert? Wer will den "Nachweis"? Wenn es nur für Deine Belange ist und Stabilität als Ziel ausreicht: Ja, fast. Du kannst mit maximalem Störsignal langsam durchsweepen und sicherstellen, daß nichts aufschwingt. Rechnerisch: Wenn die kontiniuerliche Stabilität nachgewiesen ist, mußt Du nur noch nachweisen, daß Deine Abtastfrequenz ca 10 mal größer als die Wurzel des größten finiten Eigenwerts Deines Systems ist. Wenn es nicht nur um Stabilität, sondern auch um Folgegenauigkeit oder Störunterdrückung geht, wird es komplizierter. Nachtrag: Wenn der Regler mit Integer arbeitet, geht auch zu kleine Abtastzeit, weil die Rundungsfehler überhand nehmen. Das kann insbesondere beim D-Anteil relvant werden. (Bei Float kann das auch passieren, aber deutlich schwieriger. Bei double fast unmöglich.)
:
Bearbeitet durch User
Heute nicht mehr so relevant wie noch vor 25 Jahren ist der Fall den der TO gerade nicht anwenden möchte: Man kann auch Systeme zeitdiskret regeln, wenn deren Bandbreite groß gegenüber der Tastzeit ist. Dann gelten aber angepasste Entwurfsverfahren und bestimmte Randbedingungen. Mit modernen Prozessorsystemen ist "Echtzeit" häufig einfacher zu erreichen. Was immer noch bleibt sind Verzögerungen und Störungen in den Sensoren/Wandlern. Und das macht dann Zustandsregler, Sensorfusion etc. attraktiv. Frage/Hinweis @TO: Wie groß ist denn der Jitter von dem 10ms Task auf dem Raspi?
Solche Dinge sind eigentlich mit MATLAB hinreichend gut zu untersuchen, wenn die Totzeiten an den richtigen Stellen eingesetzt und simuliert werden. Sobald da mehrere im Spiel sind, die in unterschiedlichen Regelungszweigen agieren, wird es etwas mühsam, dass händisch zu berechnen und zu bewerten. Auch die Nichtlineare RT versagt da regelmäßig und liefert nur Grundaussagen über das Ausmaß von Überschwinger, Regelungsabweichungen und die Güte der Stabilität. Mit einer numerischen Simulation kommt man dem sehr gut bei.
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.