主要内容

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

バリアントとは,およびどのような場合にそれを使用するか

バリアントとは

万博1manbetx®では,バリアントブロックを使用して複数のバリアント要件に対応する1つのモデルを作成できます。このようなモデルには共通の固定構造と可変コンポーネントの有限セットがあります。可変コンポーネントは選択したバリアントの選択に応じてアクティブになります。したがって,結果としてアクティブになるモデルは,固定構造とバリアントの選択に基づいた可変コンポーネントの組み合わせになります。

バリアントブロックをモデル内で使用すると,バリアントの選択と呼ばれるさまざまな条件式でのモデルの再利用性に役立てることができます。このアプローチによって,用途,コストまたは操作上の考慮事項により決定する多様な顧客要件を満たすことができます。

以下のバリアントブロックをモデル設計に応じて使用できます。

  • 不同的子系统:階層モデル構造用。ブロックはバリアントシステムとして使用する 2 つの子系统ブロックをもつテンプレートです。バリアントに子系统ブロックと模型ブロックを追加できます。

  • 变体模型:階層モデル構造用。ブロックはバリアントシステムとして使用する 2 つの模型ブロックをもつテンプレートです。バリアントに模型ブロックと子系统ブロックを追加できます。

  • インラインバリアント:フラットなモデル構造用。

メモ

単一入力の变异来源/变体水槽ブロックのサンプル時間は,複数入力の变异来源/变体水槽ブロックとは異なる場合があります。サンプル時間の詳細については,サンプル時間とはを参照してください。

不同的子系统ブロックを使用すると,次のようなメリットがあります。

  • 模型ブロックと子系统ブロックをバリアントシステムとして混在させることができる

  • 柔軟なI / Oをサポートし,すべてのバリアントで入力端子と出力端子を同じ数にする必要がない

バリアントモデルを含む模型ブロックを,バリアントモデルを参照する模型ブロックを含む不同的子系统ブロックに変換するには,模型ブロックを右クリックし,[サブシステムとモデル参照)[変換](变体子系统)を選択します。代わりに,関数万博1manbetxSimulink.VariantManager.convertToVariantを使用することもできます。模型ブロックの名前またはブロックハンドルを指定します。変換されたモデルでは,元のモデルと同じ結果が生成されます。

複数のコンフィギュレーションのある自動車を表すモデルのシミュレーションを行う場合,これらのコンフィギュレーションには多くの類似点がある一方,燃料消費,エンジンのサイズ,排気規制などのプロパティが異なる可能性があります。考えられるすべてのコンフィギュレーションを共に表す複数のモデルを設計するのではなく,バリアントを使用して変動するコンフィギュレーションのみをモデル化できます。このアプローチでは,共通のコンポーネントは固定されます。

このモデルには,単一の不同的子系统ブロック内に2つのバリアントの選択が含まれます。バリアントの選択には,モデルの2つ以上のコンポーネントのコンフィギュレーションがあります。

バリアントを使用する利点

モデルベースデザインでバリアントを使用する場合,いくつかの利点が得られます。

  • バリアントは多くのシステム用の1つのモデルを設計する方法を提供します。

  • モデルのセクションをコメントアウトせずに,設計の可能性をバリアントとしてすばやくプロトタイプを作成できます。

  • バリアントは,再利用とカスタマイズを容易にするモジュール設計プラットフォームの開発に役立ちます。このアプローチは,複雑さを低減してワークフローの速度を改善します。

  • モデルのコンポーネントにいくつかの代替設定がある場合,固定コンポーネントや不変コンポーネントを変更することなく,これらの可変の代替設定を効率的に調べることができます。

  • シミュレーションまたはコード生成用に,同一のモデルから異なるバリアントコンフィギュレーションを使用できます。

  • 特定のテストスイート用に組み合わせる方法で,考えられるすべての設計のシミュレーションを実行できます。

  • 大規模な設計作業の場合,これらの設計をテストするプロセスを,マルチコアコンピューターのクラスターに分散できます。一方で,設計に固有なテストを効果的に管理するための代替設計用に,異なるテストスイートをマッピングできます。

  • 多数のバリアントをもつマスターモデルから,コンフィギュレーションのサブセットをもつ削減されたモデルを生成できます。

どのような場合にバリアントを使用するか

バリアントは,単一の統合されたブロック線図1でつのモデルの複数の実装を指定するのに役立ちます。以下にバリアントを使用できる3つのシナリオを示します。

  • 複数のシミュレーション,コード生成,テストワークフローを表すモデル。

  • コンポーネントレベルで複数の設計の選択肢が含まれるモデル。

    バリアントの選択を表す子系统ブロックは,親の不同的子系统ブロックの入力端子と出力端子とは数が異なる入力端子および出力端子をもつことができます。バリアントの選択の入力端子と出力端子のマッピングを参照してください。

  • テストモデルをデバッグモデルと区別する場合など,大部分は類似していてもわずかな変動があるモデル。

    左側のテストモデルは固定された設計です。右側の同じテストモデルには,デバッグ目的で導入されたバリアントが含まれています。

万博1manbetx仿真软件はブロック線図の更新時とコードのコンパイル時にアクティブなバリアントを選択します。

万博1manbetxにおけるバリアントの表現のオプション

次のブロック内で1つ以上のバリアントをバリアントの選択として表現できます。

变异来源ブロックと变体水槽ブロック

不同的子系统ブロックと变体模型ブロック

バリアントの選択の表現

端子数

子系统または模型ブロック

選択肢の階層を許可

なし

あり

バリアントの選択における入力端子と出力端子の数の不一致

万博1manbetx仿真软件は非アクティブな端子を無効にする

万博1manbetx仿真软件は非アクティブな端子を無効にする

既定のバリアントを指定するオプション

あり

あり

制御端子のサポート

なし

あり

スタンドアロンファイルとして保存できる

なし

なし

物理モデリングの接続端子をサポートする

なし

部分的

コメントの選択(

なし

なし

さらに,变异来源ブロックおよび变体水槽ブロックを使用してバリアントの選択を表現できます。これらのブロックにより,モデル全体でバリアント条件の伝播が可能になり,モデル参照階層を通じて条件を伝播できます。

モデルの階層構造内の複数のレベルでバリアントを作成できます。

バリアントの選択の入力端子と出力端子のマッピング

不同的子系统ブロックは子系统ブロックまたは模型ブロックとして表されるバリアントの選択のコンテナーです。不同的子系统ブロックが上流のモデルコンポーネントから受信する入力は,バリアントの選択の入力端子と出力端子にマッピングされます。

バリアントの選択を表す子系统ブロックと模型ブロックは,親の不同的子系统ブロックの入力端子と出力端子とは数が異なる入力端子および出力端子をもつことができます。ただし,次の条件を満たさなければなりません。

  • バリアントの選択の入力端子名が親の变体子系统で使用される入力端子名のサブセットである。

  • バリアントの選択の出力端子名が親の变体子系统で使用される出力端子名のサブセットである。

  • バリアントの選択が制御端子をもつ場合,データ入力端子の名前は制御端子の名前と一致しなければならない。

万博1manbetx仿真软件のシミュレーションの実行中は,不同的子系统ブロックの非アクティブな端子は無効になります。

バリアントのバッジ

各バリアントブロックには,そのブロックに関連付けられたバッジがあります。バリアントバッジの色とアイコンは,バリアントブロックのステータスを示しています。また,一部のバリアントコマンドへの迅速なアクセスも提供します。これらのコマンドにアクセスするには,バリアントバッジを右クリックします。

バリアントのバッジ

バリアントソース

バリアントシンク

バリアントサブシステム

オプションが選択されていない場合の既定のバリアントバッジ。

[バリアント制御モード][ラベル]が選択され,[ラベルモードのアクティブな選択肢)オプションからアクティブなバリアント選択が選択されているバリアントブロック。

[ゼロアクティブバリアント制御を許可)オプションが選択されているバリアントブロック。

[バリアント制御モード][式]が選択され,[バリアントのアクティベーションのタイミング][ブロック線図の更新)が選択されているバリアントブロック。

[バリアント制御モード][式]が選択され,[バリアントのアクティベーションのタイミング][ブロック線図の更新時にすべての選択肢を解析]が選択されているバリアントブロック。

[バリアント制御モード][式]が選択され,[バリアントのアクティベーションのタイミング][コードのコンパイル]が選択されているバリアントブロック。

[バリアント制御モード][sim / codegenの切り替え]が選択され,[バリアントのアクティベーションのタイミング][ブロック線図の更新)が選択されているバリアントブロック。

[バリアント制御モード][sim / codegenの切り替え]が選択され,[バリアントのアクティベーションのタイミング][ブロック線図の更新時にすべての選択肢を解析]が選択されているバリアントブロック。

[バリアントサブシステムの外部に条件を伝播する]オプションが選択されているバリアントブロック。

なし

なし

[バリアントのアクティベーションのタイミング][ブロック線図の更新)が選択され,[ゼロアクティブバリアント制御を許可)オプションが選択されているバリアントブロック。

[バリアントのアクティベーションのタイミング][ブロック線図の更新時にすべての選択肢を解析]が選択され,[ゼロアクティブバリアント制御を許可)オプションが選択されているバリアントブロック。

[バリアントのアクティベーションのタイミング][コードのコンパイル]が選択され,[ゼロアクティブバリアント制御を許可)オプションが選択されているバリアントブロック。

[バリアントのアクティベーションのタイミング][ブロック線図の更新)が選択され,[バリアントサブシステムの外部に条件を伝播する]オプションが選択されているバリアントブロック。

なし

なし

[バリアントのアクティベーションのタイミング][ブロック線図の更新時にすべての選択肢を解析]が選択され,[バリアントサブシステムの外部に条件を伝播する]オプションが選択されているバリアントブロック。

なし

なし

[バリアントのアクティベーションのタイミング][コードのコンパイル]が選択され,[バリアントサブシステムの外部に条件を伝播する]オプションが選択されているバリアントブロック。

なし

なし

[ゼロアクティブバリアント制御を許可)オプションと[バリアントサブシステムの外部に条件を伝播する]オプションが選択されているバリアントブロック。

なし

なし

[バリアント制御モード][sim / codegenの切り替え]が選択され,[バリアントサブシステムの外部に条件を伝播する]オプションが選択されているバリアントブロック。

なし

なし

コメントアウトとコメントスルー

ブロックの一部をシミュレーションから除外し,そのブロックをモデルから物理的に削除することなく,万博1manbetx仿真软件モデルをシミュレートする場合について考えます。万博1manbetx仿真软件の[コメントアウト]コマンドと[コメントスルー]コマンドを使用すると,ブロックをシミュレーションから除外することができます。モデル化要件に応じて,次のオプションを使用できます。

  • コメントアウト:選択されたブロックをシミュレーションから除外します。信号は終了し,接地します。

  • コメントスルー:選択されたブロックをシミュレーションから除外します。信号は通過します。ブロックをコメント スルーするには、ブロックの入力端子と出力端子の数が同じでなければなりません。

[コメントアウト]オプションまたは[コメントスルー]オプションにアクセスするには,ブロックを右クリックして,コンテキストメニューでモデル化要件に基づいて[コメントアウト]または[コメントスルー]のいずれかを選択します。

あるいは,ブロックを選択して,Ctrl + Shift + Xを押してコメントアウトするか,Ctrl + Shift + Yを押してコメントスルーすることもできます。

get_paramコマンドおよびset_paramコマンドを使用することで,コメント化されたブロックの状態をプログラムによって表示または変更できます。たとえば,次のようにします。

  • get_param (gcb,“评论”);%查看块的注释状态

  • set_param (gcb,“评论”,“上”);%注释掉一个块

  • set_param (gcb,“评论”,“通过”);%通过块进行注释

  • set_param (gcb,“评论”,“关闭”);取消注释块

ブロックをコメントアウトすると,ブロックの出力端子の信号名は無視されます。シミュレーション中にこうした信号を含めるには,信号名をブロックの入力端子に追加しなければなりません。

[コメントアウト][コメントスルー]は,次のブロックではサポートされていません。轮廓尺寸ブロック,外港ブロック重复端口ブロック,连接端口ブロック,参数尺寸。ブロック,参数输出港ブロック,数据存储内存ブロック,信号发生器ブロック,Goto标签可见性ブロック,ブロックおよび虽然ブロック。

関連する例

詳細