Simulink.MSFcnRunTimeBlock
Level-2 MATLAB S-Function ブロックに関する実行時の情報を取得する
説明
このクラスによって、Level-2 MATLAB® S-Function または他の MATLAB プログラムで Simulink® から情報を取得したり、Level-2 MATLAB S-Function ブロックに関する情報を Simulink に提供したりできます。Simulink は、モデル内の各 Level-2 MATLAB S-Function ブロックに対して、このクラスのインスタンスを作成します。Simulink はモデルの更新やシミュレーションを実行するときに、Level-2 MATLAB S-Function のコールバック メソッドにこのオブジェクトを渡します。これにより、コールバック メソッドは、Simulink とブロックに関連する情報のやり取りをすることができます。詳細については、Write Level-2 MATLAB S-Functionsを参照してください。
シミュレーション中に Level-2 MATLAB S-Function ブロックに関する情報を取得するために、MATLAB プログラムのこのクラスのインスタンスも使用できます。詳細については、シミュレーション中のブロック データへのアクセスを参照してください。
Level-2 MATLAB S-Function のテンプレート matlabroot
/toolbox/simulink/blocks/msfuntmpl.m
では、以下の多数のメソッドの使用方法を示します。
派生クラス
なし
プロパティのまとめ
名前 | 説明 |
---|---|
多次元信号を利用するために Level-2 MATLAB S-Function を有効にします。 | |
S-Function のどのダイアログ パラメーターが調整可能かを指定します。 | |
可変サンプル時間 S-Function での隣のサンプル ヒットの時間。 |
メソッドのまとめ
名前 | 説明 |
---|---|
このブロックのダイアログ パラメーターを、ランタイム パラメーターとして登録します。 | |
このブロックのランタイム パラメーターを更新します。 | |
現在のシミュレーションの段階で、サンプル時間が一定であるかどうかを判定します。 | |
現在のシミュレーション タイム ステップがメジャー タイム ステップであるかどうかを判定します。 | |
現在のシミュレーション時間が、このブロックでハンドルされるタスクがアクティブな時間であるかどうかを判定します。 | |
現在のシミュレーション時間が、このブロックでハンドルされる複数のタスクがアクティブな時間であるかどうかを判定します。 | |
このブロックに対するコールバック メソッドを登録します。 | |
2 進小数点のみのスケーリングで固定小数点データ型を登録します。 | |
小数部の勾配、固定小数点の指数、バイアスで指定された、[勾配 バイアス] スケーリングで、固定小数点データ型を登録します。 | |
[勾配 バイアス] スケーリングをもつデータ型を登録します。 | |
このブロックを使用するモデルに対するシミュレーション ターゲットを生成するために、このブロックの TLC ファイルを使用するかどうかを指定します。 | |
このブロックの、継承される入力端子のコンパイル前の属性を設定します。 | |
このブロックの出力端子の継承されるコンパイル前の属性を設定します。 | |
このブロックの端子の precompiled 属性を既定値に設定します。 | |
ブロックがビューアーかどうか指定します。 | |
カスタム パラメーターの情報を Simulink Coder™ ファイルに書き込みます。 |
プロパティ
AllowSignalsWithMoreThan2D
Level-2 MATLAB S-Function が多次元信号を使用できるようにします。setup
メソッドで AllowSignalsWithMoreThan2D
プロパティを設定する必要があります。
boolean
RW
DialogPrmsTunable
S-Function のダイアログ パラメーターが調整可能かどうかを指定します。AutoRegRuntimePrmsメソッドを呼び出す場合、調整可能なパラメーターは、ランタイム パラメーターとして登録されます。SimOnlyTunable
パラメーターはランタイム パラメーターとして登録されないことに注意してください。たとえば、以下の行は 3 つのダイアログ パラメーターを初期化します。最初のパラメーターは調整可能ですが、2 番目のパラメーターは調整可能ではありません。3 番目のパラメーターはシミュレーション中のみ調整可能です。
block.NumDialogPrms = 3; block.DialogPrmsTunable = {'Tunable','Nontunable','SimOnlyTunable'};
配列
RW
NextTimeHit
可変サンプル時間 S-Function での隣のサンプル ヒットの時間。
double
RW
メソッド
AutoRegRuntimePrms
ブロックの調整可能なダイアログ パラメーターを、ランタイム パラメーターとして登録します。
AutoRegRuntimePrms;
MATLAB S-Function の調整可能なパラメーターの既定の名前は、MSFcnParameter
、MSFcnParameter1
、… MSFcnParameterN
です。AutoRegRuntimePrms
に cell 配列を渡して別の名前を割り当てることができます。AutoRegRuntimePrms
を PostPropagationSetup
メソッドで使用して、このブロックの調整可能なダイアログ パラメーターをランタイム パラメーターとして登録します。
AutoUpdateRuntimePrms
ブロックのランタイム パラメーターを更新します。
AutoUpdateRuntimePrms;
ProcessParameters
を呼び出している際に、ランタイム パラメーターの値を自動的に更新します。
IsDoingConstantOutput
これが、シミュレーションでサンプル時間一定の期間であるかどうかを判定します。
bVal = IsDoingConstantOutput;
これが、シミュレーションのサンプル時間が一定の期間である場合、すなわち、Simulink が、シミュレーション中に変更できないブロック出力の値を計算する、シミュレーションの開始での期間である場合には true を返します (定数サンプル時間を参照)。端子ベースのサンプル時間をもつ S-Function の Outputs
メソッドにおいてこのメソッドを使用して、一定のサンプル時間、すなわち、[inf, 0]
をもつ端子の出力を不必要に計算することを回避します。
function Outputs(block) . . if block.IsDoingConstantOutput ts = block.OutputPort(1).SampleTime; if ts(1) == Inf %% Compute port's output. end end . . %% end of Outputs
詳細については、Specifying Port-Based Sample Timesを参照してください。
IsMajorTimeStep
現在のタイム ステップが、メジャー タイム ステップであるか、マイナー タイム ステップであるかを判定します。
bVal = IsMajorTimeStep;
IsSampleHit
現在のシミュレーション時間が、このブロックでハンドルされるタスクがアクティブな時間であるかどうかを判定します。
bVal = IsSampleHit(stIdx);
stIdx
照会されるサンプル時間のグローバル インデックス。
サンプル ヒットが stIdx
に生じたかどうかを判定する複数のサンプル時間を MATLAB S-Function がもつ場合、Outputs
または Update
ブロックのメソッドにおいて使用します。サンプル時間インデックス stIdx
は、Simulink モデルのグローバル インデックスです。たとえば、3 つのサンプルレート 0.1、0.2、0.5 を含むモデルと、2 つのレート 0.2、0.5 を含む MATLAB S-Function ブロックを考えます。MATLAB S-Function において、block.IsSampleHit(0)
は、レート 0.2 ではなくレート 0.1 に対して true を返します。
このブロックのメソッドは、C-MeX S-Function の ssIsSampleHit
に似ていますが、ssIsSampleHit
は、S-Function に含まれるサンプル時間のみに基づいて値を返します。たとえば、サンプルレート 0.2 と 0.5 をもつ上記モデルが C-MeX S-Function に含まれる場合、ssIsSampleHit(S,0,tid)
は、レート 0.2 に対して true
を返します。
マルチレート システムに対するグローバルなサンプル時間インデックスの使用を回避するには、端子ベースのサンプル時間を使用します (Simulink.BlockPortData
を参照)。
IsSpecialSampleHit
現在のシミュレーション時間が、このブロックで実行される複数のタスクがアクティブな時間であるかどうかを判定します。
bVal = IsSpecialSampleHit(stIdx1,stIdx1);
stIdx1
照会される最初のタスクのサンプル時間のインデックス。
stIdx2
照会される 2 番目のタスクのサンプル時間のインデックス。
Outputs
または Update
ブロック メソッドを使用して、異なるレートで実行する複数のタスクで共有されるデータの有効性を確保します。サンプル ヒットが stIdx1
で発生し、さらに同じタイム ステップで stIdx2
でも発生する場合は、true を返します (C-Mex S-Function の ssIsSpecialSampleHit
に類似)。
IsSpecialSampleHit
マクロを使用する場合、低速サンプル時間は高速サンプル時間の整数倍でなければなりません。
RegBlockMethod
ブロック コールバック メソッドを登録します。
RegBlockMethod(methName, methHandle);
methName
登録されるメソッドの名前。
methHandle
登録されるコールバック メソッドの MATLAB 関数ハンドル。
methName
と methHandle
で指定されるブロックのコールバック メソッドを登録します。このメソッドは、S-Function が実現するブロックコールバック メソッドを指定するために、Level-2 MATLAB S-Function の関数 setup
で使用します。
RegisterDataTypeFxpBinaryPoint
2 進小数点のみのスケーリングで固定小数点データ型を登録します。
dtID = RegisterDataTypeFxpBinaryPoint(isSigned, wordLength, fractionalLength, obeyDataTypeOverride);
isSigned
符号付データ型の場合は
true
。符号なしデータ型の場合は
false
。wordLength
データ型の総ビット数。符号ビット数を含みます。
fractionalLength
データ型における、バイナリ ポイントの右側のビット数。
obeyDataTypeOverride
true
は、サブシステムに対する Data Type Override 設定が満たされていることを示します。Data Type Override の値に応じて、結果のデータ型はDouble
、Single
、ScaledDouble
、または関数の他の引数で指定される固定小数点データ型になります。false
は、Data Type Override 設定が無視されていることを示します。
このメソッドは、Simulink ソフトウェアで固定小数点データ型を登録し、データ型 ID を返します。データ型 ID は、入力端子と出力端子のデータ型、ランタイム パラメーター、DWork の状態を指定するのに使用できます。これは、DatatypeSizeのように、このクラスのインスタンスに対して定義された、標準データ型のすべてのアクセス メソッドでも使用できます。
2 進小数点のみのスケーリングで固定小数点データ型を登録したい場合には、この関数を使用してください。あるいは、固定小数点を登録する他の関数を使用することもできます。
語長、小数部の勾配、固定小数点の指数、バイアスを指定して、[勾配 バイアス] スケーリングをもつデータ型を登録する場合はRegisterDataTypeFxpFSlopeFixexpBiasを使用してください。
[勾配 バイアス] スケーリングをもつデータ型を登録する場合は、RegisterDataTypeFxpSlopeBiasを使用してください。
登録されたデータ型が、Simulink 組み込みデータ型のいずれかでない場合は、Fixed-Point Designer™ ライセンスが確認されます。
RegisterDataTypeFxpFSlopeFixexpBias
小数部の勾配、固定小数点の指数、バイアスで指定される、[勾配 バイアス] スケーリングで固定小数点データ型を登録します。
dtID = RegisterDataTypeFxpFSlopeFixexpBias(isSigned, wordLength, fractionalSlope, fixedexponent, bias, obeyDataTypeOverride);
isSigned
符号付データ型の場合は
true
。符号なしデータ型の場合は
false
。wordLength
データ型の総ビット数。符号ビット数を含みます。
fractionalSlope
データ型の小数部の勾配。
fixedexponent
データ型の勾配の指数。
bias
データ型のスケーリングのバイアス。
obeyDataTypeOverride
true
は、サブシステムに対する Data Type Override 設定が満たされていることを示します。Data Type Override の値に応じて、結果のデータ型はTrue Doubles
、True Singles
、ScaledDouble
、または関数の他の引数で指定される固定小数点データ型になります。false
は、Data Type Override 設定が無視されていることを示します。
このメソッドは、Simulink ソフトウェアで固定小数点データ型を登録し、データ型 ID を返します。データ型 ID は、入力端子と出力端子のデータ型、ランタイム パラメーター、DWork の状態を指定するのに使用できます。これは、DatatypeSizeのように、このクラスのインスタンスに対して定義された、標準データ型のすべてのアクセス メソッドでも使用できます。
語長、小数部の勾配、固定小数点の指数、バイアスを指定して固定小数点データ型を登録したい場合は、この関数を使用してください。あるいは、固定小数点を登録する他の関数を使用することもできます。
2 進小数点のみのスケーリングでデータ型を登録するには、RegisterDataTypeFxpBinaryPointを使用してください。
[勾配 バイアス] スケーリングをもつデータ型を登録する場合は、RegisterDataTypeFxpSlopeBiasを使用してください。
登録されたデータ型が、Simulink 組み込みデータ型のいずれかでない場合は、Fixed-Point Designer ライセンスが確認されます。
RegisterDataTypeFxpSlopeBias
[勾配 バイアス] スケーリングをもつデータ型を登録します。
dtID = RegisterDataTypeFxpSlopeBias(isSigned, wordLength, totalSlope, bias, obeyDataTypeOverride);
isSigned
符号付データ型の場合は
true
。符号なしデータ型の場合は
false
。wordLength
データ型の総ビット数。符号ビット数を含みます。
totalSlope
データ型のスケーリングの総勾配。
bias
データ型のスケーリングのバイアス。
obeyDataTypeOverride
true
は、サブシステムに対する Data Type Override 設定が満たされていることを示します。Data Type Override の値に応じて、結果のデータ型はTrue Doubles
、True Singles
、ScaledDouble
、または関数の他の引数で指定される固定小数点データ型になります。false
は、Data Type Override 設定が無視されていることを示します。
このメソッドは、Simulink ソフトウェアで固定小数点データ型を登録し、データ型 ID を返します。データ型 ID は、入力端子と出力端子のデータ型、ランタイム パラメーター、DWork の状態を指定するのに使用できます。これは、DatatypeSizeのように、このクラスのインスタンスに対して定義された、標準データ型のすべてのアクセス メソッドでも使用できます。
[勾配 バイアス] スケーリングで固定小数点データ型を登録したい場合は、この関数を使用してください。あるいは、固定小数点を登録する他の関数を使用することもできます。
2 進小数点のみのスケーリングでデータ型を登録するには、RegisterDataTypeFxpBinaryPointを使用してください。
語長、小数部の勾配、固定小数点の指数、バイアスを指定して、データ型を登録する場合は、RegisterDataTypeFxpFSlopeFixexpBiasを使用してください。
登録されたデータ型が、Simulink 組み込みデータ型のいずれかでない場合は、Fixed-Point Designer ライセンスが確認されます。
SetAccelRunOnTLC
Simulink のアクセラレータ モードに対するコードを生成するには、ブロックの TLC ファイルを使用するかどうかを指定します。
SetAccelRunOnTLC(bVal);
bVal
'true'
(TLC ファイルを使用)、または'false'
(インタープリター モードでブロックを実行) になります。
アクセラレータと共に実行するコードを生成するために、ブロックが TLC ファイルを使用する必要があるかどうかを指定します。このオプションが 'false'
である場合、このブロックは、インタープリター モードで実行されます。例については、Simulink モデル msfcndemo_timestwo の S-Function msfcn_times_two.m
を参照してください。
メモ
既定の JIT アクセラレータ モードでは、ユーザー作成の TLC S-Function のインライン化はサポートされていません。詳細については、アクセラレータ モードの動作とS-Function 実行の制御を参照してください。
SetPreCompInpPortInfoToDynamic
このブロックの、継承される入力端子のコンパイル前の属性を設定します。
SetPreCompInpPortInfoToDynamic;
このブロックの入力端子のコンパイルされた情報 (次元、データ型、実数/複素数、サンプリング モード) を初期化し、継承されるようにします。
SetPreCompOutPortInfoToDynamic
このブロックの出力端子の継承されるコンパイル前の属性を設定します。
SetPreCompOutPortInfoToDynamic;
ブロックの出力端子のコンパイルされた情報 (次元、データ型、実数/複素数、サンプリング モード) を初期化し、継承されるようにします。
SetPreCompPortInfoToDefaults
このブロックの端子の precompiled 属性を既定値に設定します。
SetPreCompPortInfoToDefaults;
ブロックの端子のコンパイルされた情報 (次元、データ型、実数/複素数、サンプリング モード) を既定値に初期化します。既定の設定では、端子は、データ型 double
をもつ、実数のスカラーのサンプルされた信号を受け取ります。
SetSimViewingDevice
このブロックがビューアーであるかどうかを指定します。
SetSimViewingDevice(bVal);
bVal
'true'
(viewer の場合)、または'false'
(viewer でない場合) になります。
ブロックがビューアー/スコープであるかどうかを指定します。このフラグが指定されている場合、ブロックは、シミュレーション中のみ使用され、自動的に消去されるので生成コードには含まれません。
SupportsMultipleExecInstances
For Each Subsystem 内での S-Function の使用をサポートするかどうかを指定します。
SupportsMultipleExecInstances(bVal);
bVal
'true'
(S-Function をサポート) または'false'
(S-Function を非サポート) です。
S-Function が For Each Subsystem 内で機能できるかどうかを指定します。
WriteRTWParam
コード生成に使用される Simulink Coder 情報ファイルに、カスタム パラメーターを書き込みます。
WriteRTWParam(pType, pName, pVal)
pType
書き込まれるパラメーターのタイプ。有効な値は
'string'
および'matrix'
です。pName
書き込まれるパラメーター名。
pVal
書き込まれるパラメーターの値。
MATLAB S-Function の WriteRTW
メソッドにおいて、カスタム パラメーターを書き込むために使用します。これらのパラメーターは、S-Function に対する TLC ファイルでコードをどのように生成するかを決めるために使う一般的な設定です。
バージョン履歴
R2006a より前に導入