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

2 vues (au cours des 30 derniers jours)
narui asano
narui asano le 15 Juil 2020
Modifié(e) : Yoko le 17 Juil 2020
ブロック線図で作成したモデルをエディターの画面で実行することができません。具体的には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

Réponses (1)

Yoko
Yoko le 17 Juil 2020
Modifié(e) : Yoko le 17 Juil 2020
関数の中で、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 クラスに関する詳細は、下記のドキュメントを参照しながら、色々と試してみてください。

Catégories

En savoir plus sur モデル化 dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!