ブロック線図をエディ​ターのプログラミング​で実行したい。

2 次查看(过去 30 天)
narui asano
narui asano 2020-7-15
编辑: Yoko 2020-7-17
ブロック線図で作成したモデルをエディターの画面で実行することができません。具体的にはsim関数を用いて、作成したモデルを実行するとワークスペースには変数が実装されるが、それをエディターに読み込むことができません。以下にその構文を示します。どのようにしたらエディター画面でモデルを実行できますか?よろしくお願いします。
function y=simple_fitness(x)
x=1:2;
assignin('base','model_x1',x(1));
assignin('base','model_x2',x(2));
sim('model1.slx');
y=evalin('base','out.model_y');
end

回答(1 个)

Yoko
Yoko 2020-7-17
编辑:Yoko 2020-7-17
関数の中で、Simulink モデルのシミュレーションを実行し、結果を出力したいということでしょうか?
assignin などを使わずに、Simulation Input というオブジェクトを使用することで、上記実現できます。
参考までに、モデルに 'a' という変数を持つモデルのシミュレーションを実行し、出力結果を渡す一例を下記に記述します。
function y = call_simulink_model(a)
model = 'simple_model';
% シミュレーションに必要な情報を格納するオブジェクトを作成
simIn = Simulink.SimulationInput(model);
% 出力信号の設定
simIn = simIn.setVariable('SaveOutput','on');
simIn = simIn.setVariable('OutputSaveName','yout');
% 変数値の設定
simIn = simIn.setVariable('a',a);
out = sim(simIn);
y = out.yout{1};
plot(y)
end
Simulink.SimulationInput クラスに関する詳細は、下記のドキュメントを参照しながら、色々と試してみてください。

类别

Help CenterFile Exchange 中查找有关 Simulink 環境のカスタマイズ 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!