Übertragungsfunktion aus sweep bestimmen

OP #2095309
Hallo,
Zuerst einmal ein großes Lob an dieses Forum. ich habe mich gerade erst 
angemeldet aber bereits häufig gute Tips gefunden.

Nun habe ich ein Problem, für das ich leider keine Lösung finde.

Ich habe eine Messreihe aufgenommen. Dabei habe ich ein mechanisches 
System mit einem Sinus-Sweep-Signal angeregt. Gemessen habe ich den 
Ausgang des Systems. Mein Ziel ist es jetzt aus den Messwerten die 
Übertragungsfunktion zu bestimmen die nach möglichkeit stabil und 
invertierbar sein sollte.

Zuerst habe ich die "System identification Toolbox" von Matlab 
verwendet. Diese Toolbox liefert mir auch viele schöne arx oder n4sid 
Modelle. leider jedoch alle nicht stabil und invertierbar.

Mein Gedanke war jetzt die Methode der kleinsten Fehlerquadrate 
anzuwenden. Hier hört es leider mit meinem Verständnis ein wenig auf. 
Was muss ich denn genau annähern?

Ich habe versucht G=fft(Ausgang)./fft(Eingang) dann erhalte ich einen 
Vektor mit zahlreichen komplexen Einträgen. Kann ich aus diesen 
Einträgen die Übertragungsfunktion annähern?

Viel habe ich schon darüber gelesen, dass man das System zur 
Systemidentification lieber mit einem Rechtecksignal anregen sollte. Das 
ist mir leider nicht möglich, da so das System zerstört werden würde.

Vielleicht könnt Ihr mir weiterhelfen
OP
Soo... ich habe nochmal ein bisschen weiter versucht und jetz mit der 
Methode der kleinsten Fehlerquadrate folgende Übertragungsfunktion 
angenähert:

Transfer function:

0.01995 z^5 + 0.0231 z^4 + 0.1962 z^3 + 0.06428 z^2 + 0.02985 z + 
0.001591
------------------------------------------------------------------------ 
--
      z^5 - 0.815 z^4 + 0.6934 z^3 - 0.4193 z^2 - 0.2116 z + 0.1136

Sampling time: 5e-005

Daraus ergeben sich folgende Polstellen und Nullstellen

poleG =

   0.0610 + 0.9150i
   0.0610 - 0.9150i
  -0.4579
   0.7656
   0.3852


zeroG =

  -0.4150 + 3.0384i
  -0.4150 - 3.0384i
  -0.1341 + 0.3527i
  -0.1341 - 0.3527i
  -0.0595

Mein Problem ist jetzt nur, dass ich die Funktion weder kausal 
invertieren kann noch ist sie stabil. Gibt es irgendwie noch einen 
anderen Trick wie ich diese Funktion stabil gestalten kann bzw. 
invertieren kann?

hoffentlich kann mir jemand helfen.

mit freundlichen Grüßen
Christoph

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.