0

これは非常に単純な問題かもしれませんが、シミュレーションの実行中に関数を実行するためにシミュレーション時間を使用したいと考えています。たとえば、シミュレーション時間が 14 秒(or >=14 & <20 s)を超える場合は、パラメーターの値を変更します。助けてください、次のコードは何もしません。ありがとう。

a=0;
set_param('model','SimulationCommand','Start');
b=0;

for i=1:1:500000 % 1ms sampling rate
    timer(:,1)=get_param('model','SimulationTime');
    if timer>=14
        a=1;    
        b=1;
    end
end
4

2 に答える 2

0

私は matlab を使用していませんが、1 つ気づいたことは、スクリプトがループを実行し、絶対に生成されないことです。これは、スクリプトがフレームごとに繰り返し呼び出されるのではなく、一度に実行されることを示しています。このスクリプトが 1 回実行されると仮定すると、タイム ステップごとに実行されるコールバックを登録することになると思います。 TimerFcnを参照してください。このコールバックでは、タイマーを確認し、それに応じてアクションを実行します。Timer Callback Functionsもありますが、そこにあるコードはあなたが持っているものとはかなり異なるため、関連性があるかどうかはわかりませんでした。

于 2014-03-17T20:09:13.287 に答える