systemidentifikation anhand Bodediagramm aus Messdaten
itsme87
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.08.2011, 11: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, 12: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]);
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.
leider bin ich im Bereich der Regelungstechnik extrem unerfahren.
Ist es möglich die ARMA-Funktion zu verwenden um die Transferfunktion zu bestimmen falls nur die Bodemessung (also kein Testsignal) vorliegt ?
Im Anhang könnt ihr meine Bodemessung sehen. Hierfür habe ich einen Netzwerkanalysator verwendet welcher Sinussignale mit bestimmten Frequenzen nach und nach ausgibt und daraus den Amplituden und Phasengang bestimmt.
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.