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

조회 수: 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에서 モデル化에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!