0

私は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に準拠していますか、それともこれを達成する方法はありますか?

4

1 に答える 1