Using Simulink | ![]() ![]() |
初期化コマンド
初期化コマンドでは、マスクワークスペースに常駐する変数を定義します。これらの変数は、マスクに対して定義されているすべての初期化コマンド、マスクされたサブシステム内のブロック、およびブロックアイコンを描くコマンド(描画コマンド)で使用することができます。
Simulinkは、つぎの場合に初期化コマンドを実行します。
初期化コマンドは、有効なMATLAB表現であり、MATLAB関数、演算子、およびマスクワークスペースで定義した変数から構成されています。初期化コマンドは、基本ワークスペース変数にはアクセスできません。初期化コマンドはセミコロンで終了し、結果がコマンドウィンドウに表示されないようにします。
マスクワークスペース
Simulinkは、つぎの場合、マスクワークスペース と呼ばれるローカルワークスペースを作成します。
マスクされたブロックは、基本のワークスペースまたは他のマスクワークスペースにアクセスすることはできません。
マスクワークスペースの内容には、マスクのパラメータに関連する変数と、初期化コマンドで定義された変数が含まれます。マスクワークスペース内の変数は、マスクされたブロックでアクセスすることができます。ブロックがサブシステムの場合、変数はサブシステム内のすべてのブロックでもアクセスすることができます。
マスクワークスペースは、M-ファイル関数で使用するローカルワークスペースに似ています。基になるブロックのダイアログボックスに入力した式とMask Editorで入力した初期化コマンドを、M-ファイル関数の各行とみなすことができます。そうすると、この "関数" に対するローカルワークスペースはマスクワークスペースに対応します。
本章の前半で説明した mx + b
の例では、Mask Editorは、ある変数をマスクパラメータと関連付けることによって、マスクワークスペースに明示的に m
と b
を作成します。しかし、マスクワークスペース内の変数は、マスクの基になるブロックには明示的には割り当てられません。その代わりに、マスクの基になるブロックは、マスクワークスペース内のすべての変数にアクセスします。基になるブロックは、マスクワークスペース内を調べて、変数を参照します。
下の図は、マスクダイアログボックスに入力した値をマスクワークスペース内の変数に反映させ(実線)、基になるブロックがそれらの変数へアクセスする(破線)様子を示しています。
初期化コマンドのデバッグ
keyboard
コマンドを追加します。詳細については、keyboard
コマンドに対するヘルプテキストを参照してください。dbstop if error
dbstop if warning
初期化コマンドでエラーが発生すると、実行は停止され、マスクワークスペースを調べることができます。詳細については、dbstop
コマンドに対するヘルプテキストを参照してください。
![]() | 変更可能なパラメータ | Iconページ | ![]() |