主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

バス要素の初期条件の指定

バスの初期化は,特殊な形式の信号の初期化です。信号の初期化に関する一般的な情報は,信号と離散状態の初期化を参照してください。バス配列の信号の初期化の詳細については,バス配列の初期化を参照してください。

バスの初期化では,そのバスを使用するブロックの最初の実行で仿金宝app真软件®が使用するバス要素の値を指定します。既定の設定では,バス要素の初期値は,グラウンド値(0で表す)です。バスの初期化では,ゼロ以外の初期条件を指定しなければなりません。

バスの初期化機能を使用すると,以下の操作が可能です。

  • 異なるデータ型の信号の初期条件を指定する。

  • バスの各要素に異なる初期条件を適用する。

  • すべての要素に初期条件を指定することなくバスの要素のサブセットに初期条件を指定する。

  • 複数のブロック,信号,またはモデルに同じ初期条件を使用する。

バスの初期化をサポートするブロック

ブロックが以下の両方の条件を満たす場合は,そのブロックに入力するバスの値を初期化できます。

  • 初期値または初期条件ブロックパラメーターをもつ

  • バスをサポートする

次のブロックは,バスの初期化をサポートします。

  • 数据存储内存

  • 集成电路

  • 内存

  • 合并

  • 外港(ブロックが条件付きで実行されたコンテキスト内にある場合)

  • 收到

  • 率转换

  • 单位延迟

たとえば,单位延迟ブロックはバス対応ブロックです。その[ブロックパラメーター]ダイアログボックスには,[初期条件]パラメーターがあります。

以下をもつバスは初期化できません。

  • 可変サイズの信号

  • フレームベース信号

バスの初期化をサポートするための診断の設定

バスの初期化を有効にするには,シミュレーションを開始する前に,指定不足の初期化の検出コンフィギュレーションパラメーターを[簡易]に設定します。

初期条件構造体の作成

バスの初期値を表すために,部分的または完全な初期条件構造体を作成できます。初期条件構造体を作成するには,次のいずれかの方法を使用します。

  • MATLAB®ベースまたは仿金宝app真软件モデルワークスペースでMATLAB構造体を定義する。構造体を定義するか,完全な構造体の場合は,関数金宝appSimulink.Bus.createMATLABstructを使用できます。

  • バスの初期化をサポートするブロックの[ブロックパラメーター]ダイアログボックスで,初期条件パラメーターの構造体を評価する式を指定する。

MATLAB構造体の定義の詳細については,構造体配列を参照してください。

初期条件構造体で指定するフィールドは,バス要素の以下のデータ属性と完全に一致しなければなりません。

  • 名前

  • 次元

  • 実数/複素数

たとえば,実数の(2 x2)双配列であるバス要素を定義する場合,初期条件構造体でそのバス要素を実数の(2 x2)双配列に初期化するための値を定義します。

列挙 (枚举)データ型をもつ各バス要素に対して初期条件構造体のフィールドを明示的に指定します。

構造体フィールドのデータ型の制御

ターゲットバスのいずれかの要素が以外のデータ型を使用している場合,異なる手法を使用して,初期条件構造体のフィールドのデータ型を制御できます。選択する手法は,生成されたコードの効率性と可読性に影響します。初期条件構造体フィールドのデータ型の制御を参照してください。

初期化用の完全な構造体の作成

完全初期条件構造体は,バスの要素ごとに初期値を指定します。初期条件構造体はバス階層を映し出したもので、バス要素の属性が反映されています。

コード生成で完全構造体を指定すると,次のような利点があります。

  • 読みやすいコードを生成できます。

  • すべての信号を明示的に初期化するモデリング方法がサポートされます。

バスと同じ階層,名前,およびデータ属性をもつ完全MATLAB初期条件構造体の作成を効率化するには,関数金宝appSimulink.Bus.createMATLABStructを使用します。この関数は,指定しなかったすべての要素にそれらのグラウンド値を指定します。

この関数では,次のような複数の異なる種類の入力を使用できます。

  • 金宝app仿真软件。公共汽车オブジェクト名

  • 端子ハンドルの配列

バスエディターから関数を起動することができます。完全なMATLAB構造体を作成する公共汽车オブジェクトを選択し,[ファイル](MATLAB構造体の作成)メニュー項目を選択します。

構造体パラメーターが関連するバスと形状(階層と名称)が合っていない場合を検出するには,モデルアドバイザーを使用します。

  1. [モデル化)タブで[モデルアドバイザー]をクリックします。

  2. (好的)をクリックします。

  3. [タスク別][バスによる信号およびパラメーターのモデル化)で,[バス信号を使った構造体パラメーターの使用のチェック]を選択します。

  4. (このチェックを実行)ボタンをクリックします。

    モデルアドバイザーは,部分初期条件構造体を識別します。

構造体を作成した後に,MATLABエディターで編集できます。

初期化用の部分構造体の作成

部分初期条件構造体は,バスの要素のサブセットの初期値を指定します。部分初期条件構造体を使用する場合,金宝app仿真软件はシミュレーション中に,バス要素のすべてを表す完全な初期条件構造体を作成します。金宝app仿真软件は,部分初期条件構造体では値が明示的に割り当てられない各要素に個別のグラウンド値を割り当てます。

ブロックパラメーター値の部分構造体を指定すると,モデルを繰り返し作成するプロセスで役立ちます。部分構造体を使用することにより,バス内の信号のサブセットに照準を合わせた作業が可能になります。部分構造体を使用すると,金宝app仿真软件は未指定の信号を暗黙的に初期化します。

部分初期条件構造体を定義する場合は,次のようにします。

  • バスにあるフィールドのみ含めます。

  • バスにある1つ以上のフィールドを省略します。

  • 初期条件構造体内のフィールドがバス要素の入れ子レベルに対応するようにします。

  • 構造体とバスの両方の同じ入れ子レベル内で,バス要素とは異なる順序で構造体フィールドを指定できます。

メモ

初期条件構造体の値は,対応するバス要素の設計の最小値と最大値の範囲内になければなりません。金宝app仿真软件は,この範囲のチェックをブロック線図の更新時,モデルのシミュレーションの実行時に行います。

というバスがあり,これに3つの要素,すなわち一个B,およびCがあるとします。これらの要素にはそれぞれ次の特性があります。

  • 一个は2つの信号要素をもつ入れ子型バスです。

  • Bは単一信号です。

  • Cはバス一个を入れ子として含んでいる入れ子型バスです。

ex_bus_initial_conditionsモデルにはバスが含まれています。これは,更新後のモデルを示しています。

以下は,バス要素のバス階層,データ型,次元,および実数/複素数をまとめたものです。

A (sub1) A1 (double) A2 (int8, 5x1, complex) B (double) C (sub2) C1 (int16) C2 (sub1) A1 (double) A2 (int8, 5x1, complex)

以下の例では,K单位延迟ブロックの初期値に指定された初期条件構造体です。初期条件構造体はex_bus_initial_conditionsモデルのバスに対応しています。以下に,有効な初期条件の指定を示します。

有効な構文 説明
K.A.A1 = 3

3.を使用してバス要素Top.A.A1を初期化します。

K =结构(“C”、结构(C1, int16 (4)))

バス要素Top.C.C1int16です。対応する構造体フィールドでは,int16 (4)が明示的に指定されます。あるいは,明示的なデータ型を指定せずに,フィールドの値を4として指定することもできます。

K =结构(' B ' 3 ' ',结构(“A1”,4))

バス要素上面。B上面。一个は,バス内で同じ入れ子レベルにあります。同じ入れ子レベルのバス要素の場合,対応する構造体フィールドの順序は重要ではありません。

無効な部分初期条件構造体

以下の例では,K单位延迟ブロックの初期値に指定された初期条件構造体です。初期条件構造体はex_bus_initial_conditionsモデルのバスに対応しています。

3次のつの初期条件の指定は有効ではありません

無効な構文 構文が無効である理由
K.A.A2 = 3

値の次元と実数/複素数が一致していません。バス要素Top.A.A25 x1ですが,K.A.A21 x1です。Top.A.A2は複素数ですが,K.A.A2は実数です。

K.C.C2 = 3

スカラー値を使用して初期条件サブ構造体を初期化することはできません。

K =结构(' B ' 3 ' X ', 4)

バスに含まれないフィールドは指定できません(Xはバス内に存在しません)。

ブロックパラメーターを使用したバスの初期化

入力としてバスを受け取り,バス初期化をサポートするブロックの初期条件パラメーターを設定することによって,バスを初期化します(バスの初期化をサポートするブロックを参照)。

たとえば,单位延迟ブロックの[ブロックパラメーター]ダイアログボックスには,[初期条件]パラメーターがあります。

バスの初期化をサポートするブロックの場合は,以下のいずれかの方法を使用して,既定値0を置き換えることができます。

これら3つの方法のいずれにおいても初期条件構造体の定義が必要です(初期条件構造体の作成を参照)。バスの初期化には,ゼロ以外のスカラー値は指定できません。さらに0、初期条件構造体、金宝app仿真软件。参数オブジェクト以外の他のタイプの値は指定できません。

初期条件構造体を[ブロックパラメーター]ダイアログボックスで直接指定する代わりに,初期条件構造体をMATLAB変数として定義すると,以下のような利点があります。

  • 複数のブロックで初期条件構造体を再利用できる

  • 生成されたコードで調整可能なパラメーターとして初期条件構造体を使用できる

初期化用のMATLAB構造体

バスの初期条件を明示的に定義したMATLAB構造体を使用して,バスを初期化できます。

たとえば,单位延迟ブロックの[初期条件]パラメーターには,構造体を入力できます。

初期化用のMATLAB変数

正しい値による初期条件構造体として定義したMATLAB変数を使用して,バスを初期化できます。

たとえば,以下の部分構造体をベースワークスペース内に定義できます。

K =结构(“一个”结构(“A1”3),“B”4);

その後,K構造体を单位延迟ブロックの[初期条件]パラメーターとして指定できます。

初期化用の金宝app仿真软件。参数オブジェクト

价值プロパティの初期条件構造体を使用した金宝app仿真软件。参数オブジェクトを使用して,バスを初期化できます。

たとえば,ベースワークスペースに部分構造体Pを定義できます(前のセクションで説明したex_bus_initial_conditionsモデルを反映します)。

P = 金宝appSimulink.Parameter;P.DataType = 'Bus: Top';P.Value = 金宝appSimulink.Bus.createMATLABStruct(“顶级”);P.Value.A。A1 = 3;P.Value.B = 5;

その後,P構造体を单位延迟ブロックの[初期条件]パラメーターとして指定できます。

参考

ブロック

関数

オブジェクト

関連するトピック