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

parameter durch optimierer vergleichen

 

soneil39
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 03.11.2011, 10:37     Titel: parameter durch optimierer vergleichen
  Antworten mit Zitat      
habe messedaten und muss ich die pargameter für ein modell finden. anschließend eine güte funktion finden um die gefundene parameter durch ein optimierer zu vergleichen . kann jemand mir dabei helfen
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.11.2011, 14:10     Titel: Re: parameter durch optimierer vergleichen
  Antworten mit Zitat      
Hallo soneil39,

Das sind zu wenige Details um sinnvoll helfen zu können.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
soneil39
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 03.11.2011, 19:39     Titel:
  Antworten mit Zitat      
ich soll ein modell eines system anhand von vorhandenen messwerten numerisch aproximieren.hierzu soll geeignete gütefunktion hergeleitet. die system matrizen habe ich schon gefunden. jetzt soll die güte funktion gefunden werden. danke jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.11.2011, 19:59     Titel:
  Antworten mit Zitat      
Hallo,

das ist zwar etwas detaillierter, aber wo genau suchst du Unterstützung?

In welcher Form liegt das Modell vor? MATLAB? Simulink? Sollen lediglich Parameter identifiziert werden oder geht es um mehr?

Die Gütefunktion ergibt sich aus deiner Anwendung und sollte also von dir kommen. Wenn dir gar nichts besseres einfällt, kannst du die Summe der quadratischen Abweichungen von Simulation und Messdaten verwenden.

Bitte die Frage möglichst präzise stellen und dabei auch daran denken, dass wir deine Anwendung ja nun nicht vor uns haben; sonst wird es schwierig, dir zu helfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
soneil39
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 08.11.2011, 12:13     Titel:
  Antworten mit Zitat      
wie kann ich die Summe der quadratischen Abweichungen von Simulation und Messdaten verwenden?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.11.2011, 12:32     Titel:
  Antworten mit Zitat      
Code:

brauchst aber die optimization toolbox falls es das is wonach du suchst
Private Nachricht senden Benutzer-Profile anzeigen
 
soneil39
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 08.11.2011, 14:36     Titel:
  Antworten mit Zitat      
die function kann ich schon aufrufen. aber ich glaube ich eine function dafür. ich habe keine ahnung wie das machen kann
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.11.2011, 16:13     Titel:
  Antworten mit Zitat      
Hallo soneil39,

versuche dich bitte so klar wie möglich auszudrücken. Verstehst du deinen letzten Beitrag denn, wenn du ihn nochmal durchliest?

Da du leider immer noch nicht wirklich die Rückfragen beantwortet hast, versuche ich es mal anders.

Du brauchst:
simdata - die simulierten Daten
modell - eine Funktion, die Modellparameter a und Systemeingang x entgegennimmt und Systemausgang y zurückgibt, also der Form
Code:
function y = modell(a,x)


Dann kannst du lsqnonlin so aufrufen:
Code:
p = lsqnonlin(@(p) simdata - modell(p, x),p0)
wobei p0 Startwerte für die Parameter sind.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
soneil39
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 09.11.2011, 12:10     Titel:
  Antworten mit Zitat      
die simulierte daten habe ich (nur mit parameter). die function habe ich noch probleme.
die function lautet
Dx= A *x + B*u_messdaten
y_simulierte=C'*x
Die Matrizen A,B,C habe ich schon gefunden.
ich muss y_simulierte berechnen.
dazu möchte ich die kleinste quadratische abweichung verwenden.
meine frage ist:
wie kann ich das alles in matlab formulieren mit betrachtung von lsqnonlin
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.11.2011, 13:08     Titel:
  Antworten mit Zitat      
Hallo,
Zitat:
die simulierte daten habe ich (nur mit parameter).

Das verstehe ich nicht. Simulierte Daten sind normalerweise so, wie sie sind, und fertig. Was bedeutet das "nur mit parameter"?

Code:
   Dx= A *x + B*u_messdaten
    y_simulierte=C'*x

Das scheint ein Differentialgleichungssystem zu sein. Das kann z.B. mit ode45 gelöst werden.

Zitat:
dazu möchte ich die kleinste quadratische abweichung verwenden.

Die Abweichung zwischen was und was?

Zitat:
meine frage ist:
wie kann ich das alles in matlab formulieren mit betrachtung von lsqnonlin

Um die Frage zu beantworten, muss erstmal die Problemstellung klar sein. Leider ist das trotz wiederholter Nachfragen bisher nicht der Fall.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
soneil39
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 09.11.2011, 13:41     Titel:
  Antworten mit Zitat      
ich habe die U_mess und Y_mess zu verfügung.
die kleinste quadratische abweichung muss zwischen (Y_sim-Y_mess) sein.
meine modell hat folgende gleichung
Dx= A*x+B*U_mess
Y_sim=C.x.
Die Matrizen A,B,C haben 3x3 dimension und enthalten nur paramater (p1.....bis p27).
diese Parameter sollen gefunden werden.
ich glaube diese kann ich finden. in dem ich eine function definiere und dann mit Lsqnonlin lösen
danke Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.11.2011, 13:48     Titel:
  Antworten mit Zitat      
Hallo,

jetzt ist mir immerhin klar, was du eigentlich erreichen willst. Ich würde dir aber dringend raten, an deinen Formulierungen zu arbeiten. Die Aussagen "Die Matrizen A,B,C habe ich schon gefunden" und "Die Matrizen A,B,C haben 3x3 dimension und enthalten nur paramater (p1.....bis p27).
diese Parameter sollen gefunden werden." widersprechen sich nämlich vollkommen.
Da letzteres im Gesamtkontext sinnvoll ist, gehe ich von letzterem aus.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
soneil39
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 09.11.2011, 14:29     Titel:
  Antworten mit Zitat      
ja das stimmt die parameter sollen gefunden werden.
danke nochmal
Private Nachricht senden Benutzer-Profile anzeigen
 
soneil39
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.10.11
Wohnort: wuppertal
Version: ---
     Beitrag Verfasst am: 14.11.2011, 12:55     Titel:
  Antworten mit Zitat      
hi harald
hast du es gefunden?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.11.2011, 22:23     Titel:
  Antworten mit Zitat      
Hallo,

ich kann nur nochmal sagen, dass du an deinen Formulierungen arbeiten solltest. Nach dem, was du gesagt hast, bin ich nämlich davon ausgegangen, dass du jetzt weißt, wie du das Problem angehen musst.

Ungetesteter Ansatz mit 27 Unbekannten, die auf die Matrizen "aufgeteilt" werden.

Code:
function abweichung = simulation(p, u_mess, y_mess)
A = reshape(p(1:9), 3, 3);
B = reshape(p(10:18), 3, 3);
C = reshape(p(19:27), 3, 3);

x = ode45(@(x) A*x + B*u_mess, zeit, y0); % Simulationszeitraum und Anfangswerte sind einzusetzen
y_simuliert = C' * x;
abweichung = y_simuliert - y_mess


Aufruf:
Code:
p = lsqnonlin(@(p) simdata - modell(p, u_mess, y_mess),p0) % Startwerte für die Parameter sind einzusetzen


Grüße,
Harald
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.