Forum: Digitale Signalverarbeitung / DSP Wie verschiedene Sprungantworten am besten verarbeiten?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von lklar (Gast)


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

von lklar (Gast)


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

von Bernd (Gast)


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

von Systemgewinner (Gast)


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

von Systemgewinner (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Eventuell kann auch die Annahme IT1 falsch sein. Was versuchst du zu 
Regeln und musst du später einen bestimmten Regler verwenden?

von lklar (Gast)


Angehängte Dateien:

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

von jan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Tja, vielleicht ist dein System nicht linear sodass Sprungantworten 
nicht reichen? Kannst du vielleicht die Parameter in Abhängigkeit der 
Eingangsspannung interpolieren?

von lklar (Gast)


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

von jan (Gast)


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

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.

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