Control: Plant Input
モデル要素Control_PlantInput要素は、機構システムまたはプラントへの入力を定義します。
説明
これは、線形化されたプラントモデルの作成や、連成シミュレーションに必要となる情報の一部です。Control_PlantOutput要素を使用して、プラントへの出力を指定することも必要です。入力と出力が与えられると、LinearタイプのSimulateコマンドを使用して、次の線形化された状態空間形式でマトリクスを計算できます。
x は状態ベクトル、uは入力変数、yは出力変数です。A、B、C、およびDは、それぞれ状態マトリクス、入力マトリクス、出力マトリクス、および直接フィードスルーマトリクスです。これらのマトリクスは多くの場合、制御システム設計の開始点として役に立ちます。
フォーマット
<Control_PlantInput
id = "integer"
[ label = "string" ]
num_element = "integer"
variable_id_list = "integer, integer, ..., integer"
[ hold_order = "integer" ]
[ sampling_period = "real" ]
[ offset_time = "real" ]
{
usrsub_dll_name = "string"
usrsub_fnc_name = "string"
usrsub_param_string = "USER([par_1, ..., par_n])"
|
interpreter = "string"
script_name = "string"
usrsub_fnc_name = "string"
usrsub_param_string = "USER([par_1, ..., par_n])"
}
/>
属性
- id
- 要素識別番号(整数 > 0)。この番号は、すべてのControl_PlantInput要素の中で一意です。
- label
- Control_PlantInput要素の名前。
- num_element
- このControl_PlantInput要素を使用して指定されるプラントへの入力の数。num_element > 0。
- hold_order
- Control_PlantInputから伝搬する制御信号に適用される補間の次数を指定します。デフォルト値は1.0です。
- variable_id_list
- プラントへの入力を定義する変数のIDのリストを指定します。このリストの長さは、num_elementの値と等しくなります。
- sampling_period
- 入力ポートのサンプル時間を指定します。0.0の値は連続サンプリングを指定し、ゼロ以外の値は、離散サンプリングを指定します。負の値にはできません。デフォルト値は0.0です。ほとんどの場合、この値をデフォルト値から変更する必要はありませんが、離散サンプリングが必要なモデルの場合は除きます。このパラメータが使用されるのは、MATLAB/Simulinkを使用した連成シミュレーションの場合のみです。 3
- offset_time
- 各入力ポートのサンプル時間オフセットを指定します。サンプル時間オフセットは、sampling_periodより確実に小さい必要があります(後者がゼロでない場合)。sampling_periodが0.0(連続)の場合は、offset_timeもデフォルトで0.0になります。ほとんどの場合、この値をデフォルト値から変更する必要はありませんが、離散サンプリングが必要なモデルの場合は除きます。このパラメータが使用されるのは、MATLAB/Simulinkを使用した連成シミュレーションの場合のみです。
- usrsub_dll_name
- ユーザーサブルーチンを含むDLLまたは共有ライブラリのパスと名前を指定します。MotionSolveはこの情報を使用して、実行時にDLL内のユーザーサブルーチンを読み込みます。このキーワードは、type = USERSUBの場合にのみ使用します。
- usrsub_fnc_name
- このパラメータにより、ユーザーサブルーチンの名前を指定できます。この属性が指定されない場合は、デフォルト名PINSUBが使用されます。このキーワードは、type = USERSUBの場合にのみ使用します。
- interpreter
- ユーザースクリプトが記述されたインタープリタ型言語を指定します(例: 有効なインタプリタ言語の選択肢については、 User-Written Subroutinesを参照してください。
- script_name
- usrsub_fnc_nameで指定されたルーチンを含むユーザー作成スクリプトのパスと名前を指定します。
- usrsub_param_string
- データファイルからユーザー定義のPINSUBに渡されるパラメータのリスト。このキーワードは、type = USERSUBの場合にのみ使用します。このパラメータは、“USER(parameter 1, par 2,..., par n)”のように設定します(各パラメータはユーザーが選択します)。
例

- プラント入力:全体座標系のX軸に沿ってスライダーに作用する制御力(Fc)。
- プラント出力:振り子角度θ。
プラント入力は次のように定義できます:
<Control_PlantInput
id = "303001"
num_element = "1"
variable_id_list = "6"
hold_order = "1"
/>
Reference_Variable 6によって制御力(Fc)が定義されます。
<Reference_Variable
id = "6"
type = "EXPRESSION"
expr = "0.0"
/>
コメント
- Control_PlantInput要素を使用して指定された出力には、PINVAL関数を使用してアクセスします。この関数は、MotionSolveの式から直接呼び出して、SYSFNC()とSYSARY()を使用してユーザーサブルーチン内で使用できます。
Control_PlantOutputとControl_PlantInputは、連成シミュレーションで使用されます。これは、問題が2つのソルバーに分かれるシナリオです。これら2つのソルバーは連携して問題を解析し、必要な情報をControl_PlantOutputおよびControl_PlantInputオブジェクトを使用して交換します。一般的なシナリオは、機構システムの制御です。制御システムは制御ソフトウェアでモデル化され、機構システムはMotionSolveでモデル化されます。機構システムは現在実行している内容をコントローラーに通知し、コントローラーはこの情報に基づいて適用する制御力を決定します。この情報は継続的に、または離散サンプリングステップで交換されます。Control_PlantInputは、コントローラーからモデルに入力される内容をMotionSolveに通知します。Control_PlantOutputは、コントローラーに送信する情報をMotionSolveに通知します。ユーザーサブルーチンのオプションは、連成シミュレーションで使用されます。連成シミュレーションの詳細については、MotionSolveと他のソフトウェアとの連携をご参照ください。
- Simulink内の離散(のみの)システムでは、sampling_periodが離散時間(ゼロ以外など。ゼロは連続サンプリングです)に設定される必要があります。このように設定しないと、シミュレーションは実行されず、エラーが発生します。
- Simulink主導のモデルから行う連成シミュレーションの場合は、ユーザーにとって都合がいい数のControl_PlantInputを作成してください。MotionSolveモデルを表すS-Functionによって適宜更新が行われます。MV-7002:Simulinkとの連成シミュレーションに例を示します。
- Simulink Coderライブラリを使用した連成シミュレーションの場合は、適切なインターフェースコミュニケーションをセットアップするために、Simulinkモデル内のOutportと同数のControl_PlantInputを作成してください。(例えば、各OutportにControl_PlantInputを1つずつ。Simulinkモデルの出力はMotionSolve(プラント)モデルへの入力になります。)MV-7005: Matlab/Simulink生成のコード(Simulink Coder)とMotionSolveのリンクに例を示します。
- MotionSolveモデル(.xml)内に見つかるControl_PlantInputの順序(行番号順、上から下)は、変数が正しい順序で交換されるよう、Simulinkモデル内のOutportのIDの順序に一致していなければなりません。Simulink主導の連成シミュレーションの場合は、S-Functionへの入力順序についても同じことが当てはまります。
- 1つのSimulink Coderライブラリ連成シミュレーションについて、使用されているSimulink Coderライブラリを一意に認識する1つの整数を持つようにusrsub_param_stringを設定します。この番号(ID)は、このSimulink Coderライブラリに使用されているすべてのControl_PlantInputおよびControl_PlantOutputについて同じでなければなりません。