私はMatlab Simulinkを初めて使用し、シミュレーション全体でノンストップで実行されるMatlab Function Blockにループを実装しようとしています。入力:
単純なクロックから「t」を入力して、シミュレーションが続くまで継続させます。
"v" と "i" は特定の "p*" 値を与えるもので、出力 "D" を少し変更することで、この "p*" 値が大きくなったり小さくなったりするかどうかを確認したい (モデル全体で "v"と "i" は "D" の影響を受けます)
function D = fcn(v,i,t)
%#codegen
p1 = v*i;
D = 0.5;
D = D + 0.05;
while t > 0
p2 = v*i;
if p1 > p2
D = D - 0.05;
else
D = D + 0.05;
end;
p1 = p2;
end;
Function Block は正しいと言っていますが、実行を開始するとフリーズします。私がやりたかった次のステップ (しかし、そこには到達できませんでした) は、小さなタイマーを入れて、このループを 0.01 秒ごとに実行することです。それはMatlab Function Blockに準拠していますか、それともこれを達成する方法はありますか?