Verfasst am: 27.05.2014, 22:15
Titel: Berechnung von Transferfunktion (tf Funktion)
Hallo Zusammen,
könntet Ihr mir vielleicht Ratschläge zur Berechnung von Transferfunktionen in Matlab geben?!?
Eine Transferfunktion (TF) ist das Verhältnis zwischen Output und Input eines Signals oder Zeitreihe. Matlab hat hierfür die Funktion tf, allerdings werden in dieser Matlabfunktion der Output bzw. Input durch Polynome (Gleichungen) beschrieben.
Da in meinem Beispiel keine mathematische Beschreibung der Zeitreihe vorliegt, wollte ich direkt mit den Werten dieser Zeitreihen rechnen. Die Werte werden eingelesen und in den Matrizen Input und Output gespeichert.
Für die Berechnung der Transferfunktionen habe ich mir folgenden kleinen Code geschrieben:
Wenn Ihr den Code einmal laufen lasst, wird die Transferfunktion im Plot dargestellt und es zeigen sich Spannungskonzentrationen aufgrund des Inputs. Rein mathematisch gesehen ist das Ergebnis richtig, obwohl die Spannungskonzentrationen meiner Ansicht nach keinen Sinn ergeben.
Ich hatte schon an Filterfunktionen gedacht, bin mir aber nicht sicher ob das zielführend wäre.
Habt Ihr eine Idee wie ich mit den Werten der Input und Output Matrizen eine vernünftige Transferfunktion bilden kann?!?
Hallo,
vielen Dank für Deine Antwort SkyRazor! Dein Tipp war gut, die Funktion tfestimate müsste mein Problem lösen.
Jetzt stehe ich aber vor dem nächsten Problem, den in der Dokumentation steht:
Zitat:
The transfer function is the quotient of the cross power spectral density (Pyx) of x and y and the power spectral density (Pxx) of x.
So wie ich das jetzt der Dokumentation entnehme, muss ich den Output mit der Funktion cpsd (Cross power spectral density) und den Input mit der Funktion dspdata.psd (Power spectral density) in den Frequenzbereich überführen.
Die beiden Signale für den Input und den Output (siehe Anhang), besitzen sowohl positive als auch negative Werte und sind im Zeitbereich!
Aber wie gehe ich da vor?!? Leider habe ich nur sehr wenig Erfahrung im Umgang mit "Signalverarbeitung". Sorry...
Invalid value for Data. Data must be a vector or matrix containing real, positive values.
Daher meine Frage, wie kann ich die Funktion:
dspdata.psd und cpsd
für die 2 Zeitreihen (Input, Output) mit positiven als auch negativen Werten anwenden, um im Anschluss die Funktion tfestimate nutzen zu können?
Sorry, für meine Unwissenheit.
Der Grünschnabel
Output.txt
Beschreibung:
Output-Zeitreihe mit positiven und negativen Werten. Vektor (1 x 1500)
Hallo Zusammen,
wie schon oben beschrieben, möchte ich aus einer Zeitreihe eine PSD ableiten um später die Funktion tfestimate verwenden zu können. Ich habe erste Erfolge verzeichnet, benötige dennoch euren Ratschlag.
Mit folgendem Code berechne ich mir meine PSD für meinen Input:
Das Ergebnis des gezeigten Codes ist im Anhang unter "Matlab_Solution.fig" zu finden. Wenn ich diese Lösung mit der Lösung von LabView vergleiche (LabViwe_DB.fig), ist zwar der Verlauf ähnlich aber die Werten unterscheiden sich. Könnt Ihr mir da weiterhelfen?!?
Und wie kann ich die PSD in "lineare Einheiten" (so die Bezeichnung in LabView) in Matlab erzeugen? Das Ergebnis der "linearen Einheiten" findet Ihr in "LabView_Linear.fig"
Vielen Dank im Voraus und über Hinweise und Eure Hilfe wäre ich Euch sehr dankbar...
Der Grünschnabel
Input.txt
Beschreibung:
Der Input ist ein Beschleunigungsverlauf im Zeitbereich.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.