WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zwei Massen Schwinger System Identification Toolbox

 

TREX
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 26.08.2014, 08:41     Titel: Zwei Massen Schwinger System Identification Toolbox
  Antworten mit Zitat      
Zunächst mal Hallo
ich bin neu im Forum und habe zu meiner Frage bis jetzt noch nichts gefunden deswegen Frage ich hier einfach mal.

Ich beschäfftige mich zur Zeit mit der Parameteridentifikation an einem Zwei Massen Schwinger. Dies ist für mich vollkommenes Neuland.

Da ich dieses Thema im Rahmen einer Bachelorarbeit zugewiesen bekommen habe wurde mir vorgegeben diese Parameteridentifikation mit der System Identification Toolbox zu realisieren.

Von meinem Zwei Massen Schwinger habe ich sowohl ein Eingangs als auch ein Ausgangs Signal welches ich auch bereits in die Tollbox eingefügt habe.

Mit der state space Methode erhalte ich auch Ergebnisse für meinen Zustandsraum allerdings suche ich nur einen Parameter und die ausgegebenen Werte der Toolbox passen nicht zu den vorgegebenen Parametern.

Nun zu meiner Frage:

Kann ich verschiedenen (bekannte) Parameter vorgeben damit ich dann nur die Unbekannten erhalte?
Wie gesagt für mich ist das alles Neuland weswegen ich für jeden Tipp dankbar bin.

Gruß TRex
Private Nachricht senden Benutzer-Profile anzeigen


TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 26.08.2014, 09:45     Titel:
  Antworten mit Zitat      
Vllt nochmal anders formuliert und etwas konkreter:

Wie kann ich Zustandsraummodelle in die System Identification Toolbox eingeben??

Gruß TRex
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2014, 19:17     Titel:
  Antworten mit Zitat      
Hallo TRex,

Zitat:
Kann ich verschiedenen (bekannte) Parameter vorgeben damit ich dann nur die Unbekannten erhalte?

Ja das ist möglich. Allerdings meines Wissens nach nur über die Befehlszeileneingabe und nicht über das ident-Tool. Für nähere Infos wie du Parameter fixierst sieh dir z.B. das dritte Example auf http://www.mathworks.de/de/help/ident/ref/idss.html oder die Seite http://www.mathworks.de/de/help/ide.....red-parameterization.html an.

Zitat:
Mit der state space Methode erhalte ich auch Ergebnisse für meinen Zustandsraum allerdings suche ich nur einen Parameter und die ausgegebenen Werte der Toolbox passen nicht zu den vorgegebenen Parametern.

Kann es sein das du die Subspace-Methode meinst?

Vg Vega
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 31.08.2014, 19:35     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Antwort vega!

Zitat:
Kann es sein das du die Subspace-Methode meinst?


Ja ich meine die Subspace Methode, habe aber auch mit der PEM Versuche unternommen.

Ich bin soweit gekommen dass ich meinen Datensatz mit Hilfe des ident tool zu einer 100% übereinstimmung bringe. (Das System also identifiziert werden kann. Habe allerdings selber keine Angaben gemacht.)
Wenn ich allerdings ein idss Modell erstelle und die PEM anwende erhalte ich keine Übereinstimmungen bzw. ich bekomme die Ausgabe:
Zitat:
Error using pem (line 103)
The loss function cannot be computed. The
initial model, if specified, may be unstable.
Consider setting estimation focus to
"stability" or "simulation".


Könnte das bedeuten, dass mein System mit den von mir angegebnen Parametern nicht identifizierbar ist?

gruß TRex
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2014, 20:34     Titel:
  Antworten mit Zitat      
100 % Übereinstimmung? Dann sind das aber sicherlich keine gemessenen Daten sondern "künstlich" generierte?!?

Die Fehlermeldung würde ich jetzt mal so interpretieren, dass du beim Erstellen des Modells irgendwo einen Fehler gemacht hast. Wie bist du denn an die Modellordnung bzw. Parameter gekommen? Abgeleitet aus der Physik?
Ggf. auch mal die beiden angegebenen Optionen versuchen.

Zitat:
Könnte das bedeuten, dass mein System mit den von mir angegebnen Parametern nicht identifizierbar ist?


Könnte durchaus sein. Deshalb oben die Frage nach der Entstehung des Modells.

Kannst du denn das was du bisher gemacht hast hoch laden?

Vg vega
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 31.08.2014, 21:01     Titel:
  Antworten mit Zitat      
Zitat:
100 % Übereinstimmung? Dann sind das aber sicherlich keine gemessenen Daten sondern "künstlich" generierte?!?

Ja um die Funktion der Toolbox zu versthehen habe ich in Simulink ein Modell erstellt welches ein Zwei-Massenschwinger abbildet.

Ich habe dann die Bewegungsgleichungen aufgestellt und daraus meine Zustandsraumdarstellung ermittlet.

Mein Code lautet wie folgt:
Code:
clc
A=[0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 0 0 ];
B=[0 0 0 0]';
C=[0 1 0 0];
D=0;
K=zeros(4,1);
x0=[0; 0; 0; 0];

Model_object=idss(A,B,C,D,K,'Ts',0.5);


%Model_object.As=[0 1 0 0; nan nan nan nan; 0 0 0 1; nan nan nan nan ];
Model_object.As=[0 1 0 0; 1.5 0.01 -0.5 -0.01; 0 0 0 1; -0.25 -0.005 0.25 0.005 ];
Model_object.Bs=[0 -1 0 0]';
Model_object.Cs=[0 1 0 0];
Model_object.Ds=0;
Model_object.Ks=Model_object.k;
Model_object.x0s=[0;0;0;0];

m=pem(dataZweiMassenModell2,Model_object)

[A,B,C,D]=ssdata(m)


Mit allen Bekannten müsste doch eine Übereinstimmung von 100% zustande kommen oder?
Aber selbst das funktioniert nicht.

Anbei habe ich eine Skizze meines Modells gehängt.
Die Werte haben sich in letzter zeit schon des öfteren geändert deswegen diese bitte nicht zu ernst nehmen.

Daraus ist meine state space modell entstanden.

Gerne hätte ich dir auch meine iddata zur verfügung gestellt weiß aber leider nicht wie ich sie hier hoch laden kann.

gruß tobi

Zwei Massen Schwinger.jpg
 Beschreibung:

Download
 Dateiname:  Zwei Massen Schwinger.jpg
 Dateigröße:  693.2 KB
 Heruntergeladen:  791 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2014, 08:38     Titel:
  Antworten mit Zitat      
Hallo,

was bezüglich des Eingangssignals noch beachtet werden sollte, dass das System genügend angeregt wird. Auch sollte das System/Signal zu Beginn stationär sein, siehe z.B. der Befehl linmod

Zitat:
Gerne hätte ich dir auch meine iddata zur verfügung gestellt weiß aber leider nicht wie ich sie hier hoch laden kann.

Du könntest deine "Messwerte" zippen und dann hochladen. Infos über die möglichen Dateiformate + Größe findest du hier:
http://www.gomatlab.de/attach_rules,f,66.html

Ich komme voraussichtlich erst heute Abend dazu mir das mal genauer anzuschauen, vielleicht kannst du ja bis dahin noch die Messwerte uploaden.
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 01.09.2014, 21:59     Titel:
  Antworten mit Zitat      
Sorry das ich erst jetz Antworte hab aber zur zeit leider mehrere offene Baustellen bei meiner Arbeit.

Habe die Datei mal als zip angehängt.
Diese Daten wurden wie bereits beschrieben in Simulink mit Sim Mechanics erstellt.
Die Feder- und Dämpferkonstanten im Simulink-Modell entsprechen denen in der Bilddatei.
Das Modell wird konstant mit einem Sinus angeregt.

Vielen Dank für deine Hilfe

gruß TRex

dataZweiMassenModell2.zip
 Beschreibung:

Download
 Dateiname:  dataZweiMassenModell2.zip
 Dateigröße:  75.91 KB
 Heruntergeladen:  599 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.09.2014, 20:36     Titel:
  Antworten mit Zitat      
Hallo,

habe dein Code mal etwas abgewandelt, um zu zeigen wie man gewisse Parameter einschränkt bzw. frei gibt für die Optimierung:

Code:

load dataZweiMassenModell2.mat

plot(dataZweiMassenModell2)

A=[0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 0 0 ];
B=[0 0 0 0]';
C=[0 1 0 0];
D=0;
K=zeros(4,1);
x0=[0; 0; 0; 0];
Ts = 0.5;
Model_object=idss(A,B,C,D,K,'Ts',Ts);

% Alle Parameter werden identifiziert:
model_free=pem(dataZweiMassenModell2,Model_object,ssestOptions('Display','on'));

% Freie Parameter für Identifikation def.:
Model_object.Structure.a.Free=zeros(size(A));
Model_object.Structure.a.Free=eye(size(A));

Model_object.Structure.a.Value
Model_object.Structure.a.Free

model_structured=pem(dataZweiMassenModell2,Model_object,ssestOptions('Display','on'));


Das Optimierungsergebnis ist jetzt natürlich nicht optimal.

Versuche doch mal das System mit mehreren Sprüngen unterschiedlicher Sprunghöhen anzuregen. Zu Beginn sollte das System wie gesagt eingeschwungen sein.
Auch wenn du abschätzen kannst, in welchen Bereichen sich deine Parameter bewegen, solltest du dies vorab möglichst realistisch angeben. Bspw. ist bei dir ja zunächst der Eingangsmatrix null.

Wie sieht dein Zustandsraummodell aus (mit Parametern)?

Gruß vega
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 03.09.2014, 09:27     Titel:
  Antworten mit Zitat      
Vielen Dank Vega,

mit Hilfe deines Codes ist es gelungen mein System zu fixieren.
Habe ihn dann noch etwas angepasst. Zunächst hatte ich gute Ergebnisse als noch mehrere frei Variablen waren.
Nach dem ich nur die von mir gesuchten Frei lies konnte ich nur noch Kontinuierlich und nicht mehr diskret rechnen. Außerdem sind die Ergebnisse sehr schlecht.
Habe eine Stufenanregung eingebaut.
Mit gleichem Ergebnis.

Meine Vermutung:
Mein Simulink Modell spiegelt nicht meinen Zwei Massen Schwinger richtig wieder.


Im laufe des Tages werde ich mal alles Hochladen.

Mein Zustandsraummodell sieht folgendermaßen Aus:

A=[0 1 0 0; -1.5 -0.01 0.5 0.01; 0 0 0 1; 0.25 0,005 -0,25 -0,005]
B=[0 1 0 0]'
C=[0 0 0 1]
D=0
K=[0 0 0 0]'

gruß TRex
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 03.09.2014, 09:57     Titel:
  Antworten mit Zitat      
So wie versprochen das Modell, der angepasste Code von Vega und eine Code zum erstellen der IDData.
Wie gesagt die ZRM ist wie oben beschrieben.

Leider weicht das beste Ergebnis mit einer Übereinstimmung von ca.83%
deutlich davon ab.

Meine Vermutung ist wie gesagt, dass das Modell in Simulink nicht meinen
Zwei Massenschwinger richtig abbildet.

gruß TRex

ZweiMassenSchwinger.zip
 Beschreibung:

Download
 Dateiname:  ZweiMassenSchwinger.zip
 Dateigröße:  18.38 KB
 Heruntergeladen:  575 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2014, 11:18     Titel:
  Antworten mit Zitat      
Ah ok, so sollte das mit dem Zustandsraummodell passen. Hatte nur bedenken, weil du in einem vorherigen Post andere Vorzeichen hattest...

Zitat:
Meine Vermutung ist wie gesagt, dass das Modell in Simulink nicht meinen
Zwei Massenschwinger richtig abbildet.


Das kannst du ganz einfach probieren in dem du dir die obigen Matrizen nimmst, in den Simulink-Block für ein Zustandsraummodell eingibst und diese Modell parallel zum Sim Mechanics Modell schaltest. Bei gleichem Eingang (sowie Anfangszuständen) muss das Ergebnis identisch sein.

Gruß vega
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 03.09.2014, 12:23     Titel:
  Antworten mit Zitat      
Ah Entschuldig dieser Fheler ist mir zwischenzeitlich aufgefallen hab aber vergessen es hier zu posten.

Danke für den Tipp mit dem State Space Block in Simulink.
Wusste nicht das es einen Solchen gibt.

Die Kurven sehen sich zwar ähnlich allerdings sind die Werte nicht identisch. Die Schwingung ist leicht verschoben und die Amplitude weicht um den Faktor 100 voneinander ab.

Werde das System jetzt mittels des State Space Modells simulieren.

Gruß TRex
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 03.09.2014, 12:58     Titel:
  Antworten mit Zitat      
So mein Simulink Modell war schonmal falsch.

Jetzt Mache ich die Parameteridentifikation auf basis des State Space Modells:

Ergebnis die Übereinstimmung kommt auf 99.88% wenn ich alle Parameter variabel lasse die von der Dämpfung abhängen.

Das Problem:
Es kommen nicht die richtigen Werte raus.
Also nicht die die in meinem Zustandsraummodell stehen.

Woran kann das liegen??

Gruß TRex
Private Nachricht senden Benutzer-Profile anzeigen
 
TREX
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 26.08.14
Wohnort: Rlp
Version: R2012b
     Beitrag Verfasst am: 03.09.2014, 13:57     Titel:
  Antworten mit Zitat      
So wie es aussieht konnte ich das Problem lösen.
Habe eine Rechteck Funktion verwendet.

Wenn ich Zeit habe werde ich genaueres berichten.

Gruß TRex
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.