このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
入力信号またはマスクパラメーターの各要素またはサブ配列で実行を繰り返し,結果を連結するサブシステム
金宝appSimulink / Ports &子系统
HDL编码器/端口和子系统
为每个子系统ブロックは,シミュレーションタイムステップ中に入力信号またはマスクパラメーター配列の各要素またはサブ配列で実行を繰り返すサブシステムを作成するための開始点として事前構成されている子系统ブロックです。
サブシステム内のブロックのセットは,元の信号またはマスクパラメーター配列の1つの要素またはサブ配列に適用されるアルゴリズムを表します。サブシステム内の为每一个ブロックでは,サブシステム入力またはマスクパラメーターを要素またはサブ配列に分解する処理,および個別の結果を連結して出力信号にする処理を設定できます。ブロックパラメーター[分割次元]および[分割幅]で,入力信号またはマスクパラメーター配列をスライスする次元と各スライスの幅をそれぞれ指定します。行ベクトルを分割するには,[分割次元]を2
に指定します。列ベクトルを分割するには,[分割次元]を1
に指定します。パラメーター(分割オフセット]を使用して,分割の間のギャップまたはオーバーラップを指定します。データのサブセットに対する処理を制限するには[反復回数]を指定します。このブロックパラメーターの詳細については,为每一个を参照してください。
このサブシステム内では,状態をもつ各ブロックは,処理対象の各要素またはサブ配列ごとに独立した状態セットを維持します。したがって,このサブシステムの操作は動作の点で、元の入力信号またはマスク パラメーター配列の各要素についてサブシステムの内容をコピーし、そのコピーを使用して各要素を処理することに似ています。
特定のモデルの場合,为每个子系统ブロックは,金宝app®编码器™生成コードでのコードの再利用の向上も行います。スカラーアルゴリズムが同じである,2つの再利用可能な原子子系统ブロックを格納したモデルが,信号の各要素に適用されるとします。これらのサブシステムの入力信号次元が異なる場合,金宝app仿真软件编码器生成コードには2つの異なる関数が含まれます。これら2つのサブシステムを入力の各要素を同じアルゴリズムで処理するように設定された2つの同じ为每个子系统ブロックに置き換えることができます。この場合,金宝app仿真软件编码器生成コードは,入力信号の要素数でパラメーター化される1つの関数で構成されます。モデルの为每个子系统ブロックの一意のインスタンスごとに1回呼び出されるので,この関数は2回呼び出されることになります。これらのケースのそれぞれに対して,入力信号の要素はそれぞれ異なる値をもちます。
ラピッドアクセラレータモードでモデルのシミュレーションを行う場合,仿真金宝app软件为每个子系统はのより高速なシミュレーションのため,マルチコア実行を使用します。金宝app仿真软件は,対象となる各为每个子系统について,ラピッドアクセラレータモードで実行される最初の2タイムステップを自動的にプロファイリングして,並列実行時間と逐次実行時間を比較します。続いて,金宝app仿真软件は,そうすることによって実行時間の速度が増すようであれば,シミュレーション実行の後続のタイムステップにおいて,並列のマルチコア実行に为每个子系统を指定します。为每个子系统入れ子にされたの場合,マルチコア実行は最上位サブシステムにのみ適用されます。連続状態または函数调用者为每个子系统ブロックを含むにはマルチコア実行は適用されません。
为每个子系统特定のについてマルチコア実行を抑止するには,(为每个子系统ブロック自身ではなく)サブシステム内の为每一个ブロックのMultithreadedSim
パラメーターを“关闭”
に設定します。
set_param (ForEachBlockName“MultithreadedSim”,“关闭”)
モデル内のすべての为每个子系统についてマルチコア実行を抑止するには,モデルコンフィギュレーションパラメーターMultithreadedSim
を“关闭”
に設定します。
set_param (ModelName“MultithreadedSim”,“关闭”)
マルチコア実行を再度有効にするには,関連するMultithreadedSim
パラメーターを既定値である“汽车”
設定に戻します。
例については,为每个子系统を使用したマルチスレッドシミュレーションを参照してください。
为每个子系统ブロックは,C-MEX s函数と所二级MATLAB®s函数の両方をサポートします。ただし,s函数が次の手法のいずれかを使用して複数の実行インスタンスをサポートすることが条件です。
C-MEX s函数はmdlSetWorkWidths
メソッドでss金宝appSupportsMultipleExecInstances(年代,真的)
を宣言しなければなりません。
2级MATLAB函数は,设置メソッドで块。金宝appSupportsMultipleExecInstances = true
を宣言しなければなりません。
上述の仕様を使用する場合:
DWorkや块I / Oなどの実行時データを,グローバル変数または永続変数を使用して,あるいはs函数のユーザーデータ内でキャッシュしないでください。
为每个子系统ブロックでは,mdlStart
からmdlTerminate
までのs函数の各実行メソッドは,s函数によって処理される各要素に対して1回呼び出されます。したがって,mdlTerminate
に対する繰り返しの呼び出しで同じメモリを開放することのないように注意する必要があります。たとえば,mdlSetWorkWidths
内でランタイムパラメーターのメモリを割り当てるC-MEX s函数について考えます。mdlTerminate
でこのメモリを開放する必要があるのは1回だけです。解決策として,mdlTerminate
をはじめて呼び出した後にポインターを空に設定します。
为每个子系统ブロックには次の制限と回避方法があります。
制限 | 回避方法 |
---|---|
为每个子系统内のバスまたはバス信号の配列のログを直接記録できない。 |
次のいずれかの方法を使用します。
|
次のいずれかの条件が成立する場合,为每个子系统内にある参照モデル内の信号のログを記録することができない。
|
1つ目の条件については,アクセラレータモードを使用してください。 2つ目の条件については,ノーマルモードまたはラピッドアクセラレータモードを使用してください。 |
为每个子系统内のブロックの状態のログを記録することはできない。 |
シミュレーション状態を保存し,元に戻します。 |
为每个子系统内の模型ブロックをシミュレートするのに,ノーマルモードが使用できない。 |
アクセラレータモードまたはラピッドアクセラレータモードを使用してください。 |
入力信号と出力信号がベクトル(1次元か2次元の行ベクトルまたは列ベクトル)である場合,内容が同じ2つの为每个子系统に対して再利用可能コードが生成される。n次元の入力信号と出力信号の場合,再利用可能なコードが生成されるのは,信号が分割される次元が最も高い次元であるときだけである。 |
信号次元を並べ替えて,分割次元と連結次元をn次元信号の最も高い大きさが1でない次元に変換します。 |
为每个子系统ブロックでは以下の機能はサポートされません。
为每个子系统内に以下のブロックやs函数を含めることはできません。
数据存储内存ブロック,数据存储读取ブロック,または数据存储写ブロック
入力が结构随着时间的推移
で,時間フィールドが空の場合の从工作空间ブロック
ブロックを保存する到工作空间データと到文件データ
サブシステム境界を越える转到ブロックと从ブロック
シミュレーションモードがノーマルに設定された参照モデル
シャドウ轮廓尺寸
导函数
为每个子系统をサポートするブロックの完全なリストを確認するには,MATLABコマンドラインで”showblockdatatypetable
“と入力します。
以下の信号のタイプは使用できません。
システム内での外部ストレージクラスがある信号
サブシステムの入力境界と出力境界でのフレーム信号
可変サイズの信号
サブシステム内での線形化点の作成
サブシステム内のブロックのヤコビアンフラグの伝播。J.Mi.BlockAnalyticFlags.jacobian
を使用すれば,MATLABでこの状態を確認できます。このとき,J
がヤコビアンオブジェクトです。为每个子系统ブロックのヤコビアンの正確性を検証するには,次を実行します。
为每个子系统のヤコビアンのタグを調べます。“not_金宝appsupported”
の場合,ヤコビアンは正しくありません。
为每个子系统から各ブロックを移動して,そのヤコビアンを計算します。いずれかのブロックが“not_s金宝appupportedの場合,または警告タグが含まれている場合は,每个子系统のヤコビアンは正しくありません。
以下の種類のコード生成は実行できません。
金宝app仿真软件编码器s函数ターゲットの生成
次の両方の条件を満たす金宝app仿真软件编码器コード生成
Stateflow®またはMATLAB函数ブロックがサブシステム内にある場合。
このブロックが、数据存储内存ブロックやExportedGlobal
ストレージクラスの金宝app仿真软件。信号
オブジェクトなどのサブシステム外のグローバルデータにアクセスしようとしている場合。
PLCコード生成