|
|
Filter-Funktion fuer zeitdiskrete Messdaten nutzen |
|
FMK |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 19.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2015, 17:59
Titel: Filter-Funktion fuer zeitdiskrete Messdaten nutzen
|
|
|
|
|
Hallo Zusammen,
ich schlage mich seit geraumer Zeit mit der Filter-Funktion rum und bin leider noch keinen Meter weiter gekommen. Ich habe zeitdiskrete Messdaten aus dem Oszi und PSCAD aufgenommen und moechte nun mithilfe der Filter-Funktion das Ausgangssignal erhalten.
Zuerst berechne ich analytisch die Uebertragungsfunktion, die einem PT1-Glied entspricht und diskretisiere sie. Dann filtere ich den Eingang.
Herauskommen sollte wie in meiner Simulation aus einer Sprungfunktion eine gedaempfte Antwort (Antwort -Referenz), jedoch spuckt mir Matlab mit dem Code eher eine skalierte Sprungfunktion (Filter Ausgang) aus.
Hat jemand ne Idee was da schiefgelaufen ist.
Danke im Vorraus,
FMK
edit winkow: bitte code umgebung benutzen
Beschreibung: |
|
Download |
Dateiname: |
untitled3.png |
Dateigröße: |
12.97 KB |
Heruntergeladen: |
635 mal |
Beschreibung: |
|
Download |
Dateiname: |
untitled2.png |
Dateigröße: |
13.17 KB |
Heruntergeladen: |
607 mal |
Beschreibung: |
|
Download |
Dateiname: |
untitled.png |
Dateigröße: |
15.02 KB |
Heruntergeladen: |
609 mal |
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2015, 18:12
Titel: Re: Filter-Funktion fuer zeitdiskrete Messdaten nutzen
|
|
Sicher, dass Du nicht
den2=[Ts 1]
meinst?
Sicher, dass Du nicht
sys = tf(num2, den2, 1E-9);
meinst? Und danach: sicher, dass Du nicht
sys = tf(num2, den2);
meinst?
Du definierst hier zeitdiskrete Übertragungsfunktion mit Parametern, die mutmaßlich zu einem kontinuierlichen System gehören. Und da
num
und
den
einfach nur Skalare sind, ist diese Übertragungsfunktion eine reine Verstärkung.
PS: Guck Dir auch mal an, was ein Debugger ist und wie man den von Matlab benutzt. Das wird Dir sicherlich bei der Fehlersuche behilflich sein.
|
|
|
FMK |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 19.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 09:38
Titel:
|
|
Danke fuer die schnelle Antwort und den Debug fuer die Faktoren.
Auf die Antwort stellt sich fuer mich natuerlich die Frage, wie ich mein zeitdiskretes Eingangssignal dann mit der Uebertragungsfunktion mit num und den mein Ausgangssignal bekomme?
Das mit den Vektoren fuer die Uebertragungsfunkions habe ich leider nicht verstanden.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 09:43
Titel:
|
|
FMK hat Folgendes geschrieben: |
Auf die Antwort stellt sich fuer mich natuerlich die Frage, wie ich mein zeitdiskretes Eingangssignal dann mit der Uebertragungsfunktion mit num und den mein Ausgangssignal bekomme? |
Ich glaube, Du suchst
lsim
.
Zitat: |
Das mit den Vektoren fuer die Uebertragungsfunkions habe ich leider nicht verstanden. |
Ein PT1 mit der Zeitkonstante 100s.
Ein System mit der Zeitkonstante 0.01s. Und so, wie Du Deine Variablen genannt hast, nehme ich an, dass Du das willst und nicht das, was im ersten Beispiel steht (was Du aber gemacht hast).
|
|
|
FMK |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 19.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 13:15
Titel:
|
|
Danke fuer die Erklaerung der Eingabe von num und den.
Leider bekomm ich bei lsim das gleiche raus wie mit der filter-Funktion. Die Daempfung ist einfach nicht dabei, was vergesse ich da?
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 13:16
Titel:
|
|
Wie lautet denn die Ausgabe, wenn Du auf der Konsole
sys
eingibst?
|
|
|
FMK |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 19.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 13:53
Titel:
|
|
sys =
389.5
--------------
2.102e07 z + 1
Sample time: 1e-12 seconds
Discrete-time transfer function.
entspricht einem PT1 Glied mit 1.853E-5 / (1+s4.7578E-
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 14:01
Titel:
|
|
Guck Dir mal mit
step
die Sprungantwort davon an. Oder wenn Du es besser lesen kannst mit
pzmap
den Pol-Nullstellenplan. Oder mit
impulse
die Impulsantwort. Oder mit
bode
da Bodediagramm. An sich ist es egal - in dem Fall sind alle recht aussagekräftig...
Und dann fängst Du nochmal von vorne an, zu prüfen, wie Du auf diese Parameter gekommen bist und an welcher Stelle es schief gelaufen ist :)
|
|
|
FMK |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 19.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 14:28
Titel:
|
|
%Calculate analytical transfer function
C1 = 400E-12;
Danke fuer den Tip. Hab jetzt mal folgendes gemacht:
C2 = 0.9E-6;
R1 = 56000;
R2 = 5100;
Rs1 = 119;
Rs2 = 60;
X = Rs2*Rs2+R1*Rs2+R2*Rs2+R1*Rs2+R2*Rs2;
num = (R2*Rs2)/(Rs1*C2*X);
den = (C1+C2)/(Rs1*C1*C2);
K = num/den; % amplifier
Ts = 1/den; % delay
den2 = [1 Ts]; %or [1 Ts]
num2 = K; % or K
sys = tf(num2, den2);
step(sys);
Heraus kommt eine amplitude groesser als 1 und gedampft. Wie kann das sein? Das Signal sollte doch kleiner werden.
Hab das ganze mal mit K und Ts in ein aehnliches Programm wie simulink eingegeben, da passen die Parameter.
Wenn ich
sys = tf(num2, den2, 1E-12); eingebe kommt die richtige skalierung raus aber wieder der einheitsprung ohne daempfung.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2015, 14:32
Titel:
|
|
Da kann ich mich leider nur selbst zitieren:
Zitat: |
Sicher, dass Du nicht den2=[Ts 1] meinst? |
Und der Vollständigkeit halber:
doc tf
Nachtrag: Du kannst auch nicht einfach zeitkontinuierliche Parameter mit einer Samplingrate in
tf
stecken und erwarten, dass die Funktion dir das dem zeitkontinuierlichen System entsprechende zeitdiskrete System zurück gibt.
tf
gibt Dir dann zwar ein zeitdiskretes System zurück, aber das mit den Parametern, die Du übergeben hast. Was Du vermutlich meinst, ist:
Steht aber an sich auch ziemlich genau so in der Doku zu tf.
|
|
|
FMK |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 19.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.08.2015, 09:45
Titel:
|
|
Vielen Dank fuer die letzte Antwort und die Geduld. Hat wunderbar geklappt.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.08.2015, 09:46
Titel:
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|