Hallo, folgendes: ich erstelle gerade experimentell eine Regelstrecke. Dazu gehe ich als lineare Annäherung von einem IT1-Glied aus. Dazu habe ich die Messgröße bei verschiedenen Sprüngen der Stellgröße (in dem Fall verschiedene Spannungen)aufgenommen. Durch die approximierte Gerade und der Verzugszeit komme ich somit auf meine Parameter K und T für G(s)=K/[s(1+sT)] die Probe h(T)=K*T*e^(-1) trifft auch in den aufgenommenen Sprungantworten gut zu. Nun habe ich bei den einzelnen Läufen nicht die volle Spannung draufgegeben, aber immer Teiler. Mein erster Plan für die Aufstellung der finalen Übertragungsfunktion war einfach auf den Einheitssprung zu normieren und K immer durch die Sprungspannung zu teilen. K weicht nach der Normierung schon gegenüber den anderen Aufnahmen ab, aber es bleibt sehr grob in dem ungefähren Bereich. Auch die Zeitkonstante ändert sich nicht stark. Frage ist, wie man die unterschiedlichen Ergebnisse am Besten zu der finalen Funktion zusammenfasst. Mittelwerte von K bilden? Gäbe es da bei dem IT1-Glied noch eine bessere Methode? Oder einfach den P-Anteil des Reglers hinterher adaptiv anpassen?
Niemand eine Idee? Mittlerweile habe ich ein Skript, das an die Daten zum späteren Zeitpunkt eine Gerade anlegt und unterscheiden kann um welche Ordnung der zeitlichen Verzögerung es sich handelt... dennoch weiß ich immer noch nicht so recht, ob die Daten des kleinen oder des großen Spannungssprungs entscheidender sind
Ich für meinen Teil, verstehe einfach dein Problem nicht. Vielleicht geht es anderen Lesern ähnlich. Vielleicht stellst du zur Unterstützung ein paar Bildchen zur Verfügung? Ansonsten: Sprungantwort ist Sprungantwort. Ich weiß nicht, wie man da zu verschiedenen Ergebnissen kommen kann.
Wenn ich dich richtig verstehe hast du versucht eine Übertragungsfunktion empirisch zu schätzen. Dazu hast du das System mit Sprüngen verschiedener Höhen angeregt? Du unterstellst deinem System näherungsweise IT1 verhalten. Die verschiedenen Sprungantworten decken sich aber nicht mit den geschätzten Parametern K und T der einzelnen Sprungantworten. Wie wäre es mit einem Least-Squares Curve Fitting? Schau mal in die system identification toolbox von matlab.
Eventuell kann auch die Annahme IT1 falsch sein. Was versuchst du zu Regeln und musst du später einen bestimmten Regler verwenden?
Also ich gehe nach der experimentellen Modellbildung aus den Bildern vor. Dabei entscheide ich, wenn die Probe für IT1 versagt, welches a_n aus der Liste am Nähsten dran ist (Ergebnis von h(Tu)/(Tu*S).. somit kann mein Skript zwischen 1. und 4. Ordnung oder einem Error wählen... Das Skript macht das aber ganz gut und die Sprungantwort der aufgestellten ÜF ist fast deckungsgleich mit den tatsächlichen Messwerten.. Problem ist halt nur, dass z.B. ein Sprung von 0 auf 20 V nach Normierung auf 1 ein (leicht!) anderes Ergebnis liefert als von 0 auf 10 V. Z.B. beim einen K=55 und beim anderen K=50... es ist vielleicht nicht so entscheidend, aber dennoch könnte man ja überlegen, was die höhere Priorität hat. Wenn die Spannung z.B. zu klein ist, lässt sich auch nicht mehr so einfach eine Gerade da reinlegen, weil eine Reibung dann überwiegt..
Tja, vielleicht ist dein System nicht linear sodass Sprungantworten nicht reichen? Kannst du vielleicht die Parameter in Abhängigkeit der Eingangsspannung interpolieren?
Die Ergebnisse zeigen doch, dass eine lineare Annäherung gar nicht so abwägig ist. Es geht hier um einen Linearmotor, wobei ich hier eine Linearisierung bzgl. der Spannung mache.. im Normalfall ist es tatsächlich bzgl. des Stroms, der dann separat noch mal zu regeln ist. Allerdings sind die Sollsprünge der Führungsgröße in der Realität immer nur sehr klein, sodass diese erste Annäherung mit einem scharf ausgelegten Regler ausreichen könnte
Aber du sagst doch selbst, dass das System von der Höhe der Sprunganregung abhängig ist. Du hast sozusagen eine Schaar von Sprungantworten in abhängigkeit der Eingangsspannung oder habe ich das missverstanden? Ein lineares System wird durch eine Sprungantwort charakterisiert. Dabei ist die Höhe des Sprungs irrelevant. Ist in der Praxis halt nicht immer so... Was du ausprobieren könntest: - Mitteln der ermittelten Parameter und gucken, ob das Modell für den gesamten Wertebereich der Stellgröße aureichend genau ist - Wenn nicht -> mehrere Sprungantworten bestimmen und zwischen denen umschalten, z.B. indem verschiedene Intervalle definierst. Verallgemeinerung wäre eine Lookuptable für die Modell Parameter - Oder gucken, ob sich die Parameter deines Modells einigermaßen glatt verhalten, dann könntest du kontinuierlich zwischen den Parametern in Abhängigkeit deines Eingangssignales interpolieren - Oder du findest eine andere Modellstruktur, die eben jene Größe direkt mitbetrachtet, könnte nichtlinear werden ;) Es gibt z.B. Hammerstein-Wiener Modelle, wo am Eingang eine Nichtlinearität ist (das kann ja auch einfach nur eine Kennlinie sein!) und dahinter das lineare Modell. Ich weiß natürlich nicht, welche Vorgehensweise hier wirklich sinnvoll ist..
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.