Verfasst am: 31.05.2013, 15:10
Titel: Optimierung/Minimierung von Fehlerquadraten
Hallo liebe Community,
ich habe folgendes Problem:
Durch die Faltung eines Eingangssignals mit einer Übertragungsfunktion (im Frequenzbereich) bekomme ich ein theoretisches Ausgangssignal. Das möchte ich nun mit dem experimentellen über die Fehlerquadrate vergleichen. Die beiden Variablen "Pe" und "t_mean" der Übertragungsfunktion sind dabei so zu optimieren, dass die Fehlerquadrate minimal werden.
In der Theorie ist mir das alles soweit klar geworden, aber ich bekomme es einfach nicht in Matlab umgesetzt. Hier mein Code:
% Zuweisung der Funktionen EIngang = x, Übertragung = m, Ausgang = y
x = E(A1,t01,xc1,w1,y01,t);
m = Uebertr(Pe,t_mean,t);
y_exp = E(A2,t02,xc2,w2,y02,t);
% Faltung mit Fouriertransformation und Berechnung Systemantwort (Frequenzbereich)
F_y_pred_freq = fft(x,10000).*fft(m,10000);
y_pred_freq = ifft(F_y_pred_freq,10000)*dt;
Hier könnte das Problem sein, dass meine Übertragungsfunktion "m" ja bereits die optimierungsvariablen "Pe" und "t_mean" beinhalten, die aber vom Optimierer ja garnicht angefasst werden (da sie nicht in der Optimierungsfunktion stehen).
Mir fällt aber leider keinerlei Workaround ein...
Die Fehlerquadrate für eine fixe Vorgabe von Pe und t_mean zu berechnen funktioniert übrigens!
mit deinem Code macht er zumindest schonmal etwas.
Das Ergebnis ist
Code:
Local minimum possible.
lsqnonlin stopped because the final change in the sum of squares relative to
its initial value is less than the default value of the function tolerance.
die sind in x. sollte also nicht allzu schwer sein daran zu kommen
Marcus Aurelius
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.06.2013, 10:36
Titel:
super, vielen Dank!
Es scheint so ganz gut zu funktionieren. Darf ich fragen, wieso du -y_exp hinter die Gleichung geschrieben hast?
Gruß
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
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.