ich verwende für eine Optimierungsaufgabe die Response Optimization aus der Simulink Design Optimization. Bei Verwendung der GUI in Simulink über Analysis/Response Optimization können diverse Plots zu Designvariablen und in meinem Fall zu einem optimierten Signal ausgegeben wereden. Da ich die Response Optimization aber als Teil eines größeren Skripts durchlaufen lassen möchte, habe ich die Optimierung als Matlab Code ausgeben lassen. Die Optimierung ansich funktioniert auch und ich bekomme als Zwischenschritte die Iterationen, F-count, f(x), stepsize und die first-order optimality im Command Window angezeigt.
Meine Frage ist: Gibt es eine Möglichkeit die verwendeten DesignVars für die einzenlen Iterationen anzeigen zu lassen und im Optimalfall auch plotten zu können? Mir würde eine Übersicht nach der Optimierung reichen, das heißt es muss nicht während der Iterationsschritte sein.
Da ich die Response Optimization aber als Teil eines größeren Skripts durchlaufen lassen möchte, habe ich die Optimierung als Matlab Code ausgeben lassen. Die Optimierung ansich funktioniert auch und ich bekomme als Zwischenschritte die Iterationen, F-count, f(x), stepsize und die first-order optimality im Command Window angezeigt.
Wie sieht der MATLAB-Code denn aus? Generell würde ich zu Plot Functions raten, siehe
https://de.mathworks.com/help/optim/ug/plot-functions.html
Nach Abschluss der Optimierung kannst du die Ergebnisse natürlich weiterverarbeiten (insbesondere auch plotten) wie du willst.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Len
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 29.09.2020, 14:39
Titel:
Hallo Harald,
vielen Dank für die schnelle Antwort. Ich habe den von Simulink automatisch generierten Code unten aufgeführt. Wenn ich ihn in Matlab durchlaufen lasse werden meine meine beiden DesignVariablen A und B mit den Werten ersetzt, die output maximieren. Ich würde gerne eine Art Verlauf zwischenspeichern. Ich kann mir gut vorstellen, dass die Werte schon irgendwo zwischengespeichert werden, ich weiß nur nicht wo
Viele Grüße
Len
Code:
function[Optimized_DesignVars, Info] = sdo_model(DesignVars)
%SDO_model
%
% Solve a design optimization problem for the model model.
%
% The function returns optimized parameter values, Optimized_DesignVars, % and optimization termination information, Info.
%
% The input argument, DesignVars, defines the model parameters to optimize, % if omitted the parameters specified in the function body are optimized.
%
% Modify the function to include or exclude new design requirements or % change the optimization options.
%
% Auto-generated by SDOTOOL on 28-Sep-2020 17:46:29.
%
%% Create Optimization Objective Function
%
% Create a function that is called at each optimization iteration % to evaluate the design requirements.
%
% Use an anonymous function with one argument that calls model_optFcn.
optimfcn = @(P) model_optFcn(P,Simulator,Requirements);
%% Optimize the Design
%
% Call sdo.optimize with the objective function handle, parameters to % optimize, and options. [Optimized_DesignVars,Info] = sdo.optimize(optimfcn,DesignVars,Options);
%% Update Model
%
% Update the model with the optimized parameter values.
sdo.setValueInModel('model',Optimized_DesignVars);
end
function Vals = model_optFcn(P,Simulator,Requirements)
%model_OPTFCN
%
% Function called at each iteration of the optimization problem.
%
% The function is called with a set of parameter values, P, and returns % the objective value and constraint violations, Vals, to the optimization % solver.
%
% See the sdoExampleCostFunction function and sdo.optimize for a more % detailed description of the function signature.
%
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.