systemidentifikation anhand Bodediagramm aus Messdaten
itsme87
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.08.2011, 12:34
Titel: systemidentifikation anhand Bodediagramm aus Messdaten
Hallo zusammen,
ich habe folgendes Problem:
Es geht um einen Prüfstand bei dem bestimmt Größen geregelt werden sollen. Zur Systemidentifikation wurde eine Regelgröße mit einem Test-Chirp-Signal beaufschlagt.
Aus den gemessenen Daten und dem Chirp-Signal erstelle ich mir ein Bodediagramm.
Zur Systemidentifikation will ich jetzt das erhaltene Bodediagramm mit einfachen Übertragungsgliedern nachbilden.
Hier gelingt es mir aber nur entweder den Amplitudengang oder den Phasengang exakt nachzubilden.
Hat hier vielleicht eine Idee woran das liegen könnte. Sollte doch eigentlich einigermaßen zusammenpassen.
Oder kann es an Messungenauigkeiten liegen?
Vielen Dank schonmal für die Hilfe und viele Grüße,
itsme87
ein Bild des Bodediagramms und ein Bsp. für die Nachbildung wären für das Verständnis hilfreich. Ohne das kann man auch schwer genaue Hilfestellung geben.
Es gibt auch sonst noch Parameter Schätzverfahren zur Modellbildung, wenn du das Testsignal und die Systemantwort als Daten vorliegen hast...z.B. mit einem ARMAX Modell.
itsme87
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.08.2011, 13:20
Titel:
Hi,
sorry habe ich gar nicht drangedacht. Die Frequenzen oberhalb von 10Hz wurden nicht angeregt, daher interessiert der Bereich nicht.
Verräts du uns jetzt auch noch wie du die Spektren nachgebildet hast...was für ein Modell und welche Ordnung. Meine Vermutung wäre jetzt ein PT2 mit D < 1 bei der Phase und ein PTn mit n>2 beim Betragsspektrum.
Kannst ja folgendes Skript ausprobieren...musst halt mal mit den Ordnungen na, nb und nc rumspielen.
Code:
TS= ....; % Abtastzeit % Y = gemessener Ausgang % U = gemessener Eingang = Testsignal
dataset=iddata(Y,U,TS);
% Ordnung von Zähler na und Nenner nb der Übertragungsfunktion des Modells % nc am besten = nb wählen und nk = 1 lassen
na=4; nb=4; nc=4; nk=1;
sysid = armax(dataset,[na nb nc nk]);
sys=tf(d2d(sysid,TS))
fpe1=fpe(sysid) [yh,fit]=compare(dataset,sysid);
disp('fit ARMAX Modell'); disp(fit);
figure(1);
compare(dataset,sysid);
hold on;
T = 0:TS:((length(Y)-1)*TS) ;
plot(T,Y,'r');
hold on;
plot(T,U,'r');
ylabel('y(t)');
xlabel('Zeit in s');
title('Vergleich Modell und reales System');
grid on;
itsme87
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.08.2011, 14:20
Titel:
Man merkt dass ich noch nicht sonderlich forenerfahren bin.
Also hier die verwendeten Modelle:
für die Variante mit richtigem Phasengang:
g1*g2*gt
Da ich eine deutlich ältere Matlab Version als du habe, hast du wohl die Toolbox nicht...weshalb er dann auch nicht die Funktion armax() kennt.
Edit: Was ist denn die genaue Fehlermeldung?
Ich habe gerade festgestellt, dass man für das schon vorher verwendete iddata ebenfalls diese Toolbox benötigt. Also musst du sie ja haben, wenn der Befehl funktioniert.
Habe es gerade bei mir getestet...mit deinem System g1:
Probier das mal und poste bitte die genaue Fehlermeldung!
Code:
TS= 1/200; % Abtastzeit % Y = gemessener Ausgang % U = gemessener Eingang = Testsignal
N = 2^12;
T = 0:TS:(N-1)*TS
Y=step(g1,T);
U=ones(length(Y),1);
dataset=iddata(Y,U,TS);
% Ordnung von Zähler na und Nenner nb der Übertragungsfunktion des Modells % nc am besten = nb wählen und nk = 1 lassen
na=4; nb=4; nc=4; nk=1;
sysid = armax(dataset,[na nb nc nk]);
sys=tf(d2d(sysid,TS))
fpe1=fpe(sysid) [yh,fit]=compare(dataset,sysid);
disp('fit ARMAX Modell'); disp(fit);
figure(1);
compare(dataset,sysid);
hold on;
% T = 0:TS:((length(Y)-1)*TS) ; plot(T,Y,'r--');
hold on;
plot(T,U,'g--');
ylabel('y(t)');
xlabel('Zeit in s');
title('Vergleich Modell und reales System');
grid on;
Allerdings funktioniert diese Schätzverfahren nur bei System mit kleineren Ordnungen gut und man muss halt vorher bereits die Ordnung des Modells festlegen.
Options and Permissions
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.