-2

C コードに変換して別の場所で使用する予定の simulink モデルがあります。simulink モデルで変数を設定するために「入力ポート」を定義しました。

State Space ブロックの一部として入力変数を使用する方法を見つけようとしていますが、すべてを試してみましたが、他の方法がわかりません。

前述のように、これは C/C++ コードに変換されるため、いずれにしても matlab を使用するオプションはありません。

状態空間ブロック パラメーターで行列 A を使用するとします。行列 A は、A= [Input1 0; 入力 2 0; 0 入力 3]

Input1 2 3 などの値を設定して、コードを介して入力の値を変更できるようにしたいと考えています。

4

2 に答える 2

3

Simulink では、パラメーターと信号の間に非常に明確な違いがあります。パラメーターはダイアログに入力されるものであり、シグナルはブロックに入力またはブロックから出力されるものです。

State-Space ブロックの行列はパラメーターとして定義されるため、信号をそれらに入力することはできません。

2 つのオプションがあります。

  1. State-Space ブロックを使用しないでください。むしろ、より基本的なブロック (つまり、積分器、合計、積のブロック) を使用して状態空間モデルを独自に開発してください。これは小さなモデルでは実行可能ですが、あまりお勧めできません。

  2. ブロックのパラメーターは通常、調整可能であることに注意してください。コードを生成すると、ファイルの 1 つになりmodel_name_data.c、これにはパラメーター構造体が含まれ、パラメーターを変更できます。

どちらの場合も、単にモデル設計の観点から、モデルへの変更が意味をなすようにするのはあなた次第であることに注意してください (たとえば、ループを不安定にしないなど)。

于 2016-03-11T17:04:49.997 に答える