私はMatlab/Simulinkを初めて使いましたが、ソフトウェアからSimulinkモデルとのインターフェースが必要です。リアルタイム入力を備えた連続Simulinkモデルを実行しますか?
現時点では、単純なSimulink関数 'Inc'を作成しました。この関数は、定数1と出力を持つ加算ブロックに1つの入力を持ちます。私はTo/From Workspaceブロックを使用しており、simin = [0,0; 5,0; 5,1; 10,1]などの時間/値ベクトル入力を使用して一定時間にわたってシミュレーションを実行できます。
私のやりたいことは、継続的にモデルを実行することですか?あらかじめ定義された時間ベースのベクトルではなく、リアルタイムでワークスペースの値を読み込みますか?
これを設定する方法がわかりません。 Matlab/Simulinkでこれを行うことはできますか?
要約すると、私はsiminとsimoutを単一の値、つまりsimin = 1とし、次の固定ステップでモデルを連続的に(無限に)実行したいとします。simoutはsimout = 2に更新されます。さまざまな間隔でワークスペース
ありがとうございました。私はイベントリスナー技術を使って何かを稼働させており、tcpclientを使用して、外部システムからモデルへのリアルタイム更新をストリーミングしています。私は、イベントリスナーで実行されるスクリプトに一時停止(TimeStep)を追加して、リアルタイム実行速度までモデルを遅らせる必要があることに気付きました。これは正しい気がしない、私はどこかで設定を逃したことがありますか? – MattP
はい、Simulink自体はリアルタイムシステムではありません。最初は、Windowsやその他のリアルタイムではないO/Sで動作しますが、モデルは本質的に速く実行されます。モデルの複雑さのために、リアルタイムよりも速くても遅くてもかまいません。高速であれば、実行を疑似リアルタイムに遅らせるためのツールがあります。たとえばhttp://uk.mathworks.com/matlabcentral/fileexchange/21908-simulink%C2%AE-real-time-実行。 – am304
またはその1つ:http://uk.mathworks.com/matlabcentral/fileexchange/29107-real-time-pacer-for-simulink – am304