主要内容

複数のモデルで生成されたコ,ドの結合

コードジェネレーターで複数のモデルまたはモデルの複数のインスタンスに対して生成されたコードを1つの実行可能プログラムに結合するには,以下の手法を使用します。

メモ

S-Functionシステムタ,ゲット(rtwsfcn.tlc)は,複数のモデルに対して生成されたコ,ドの結合をサポ,トしません。

シミュレ,ションおよびコ,ド生成用にモデルを結合するには,モデル参照の使用を検討してください。モデル参照は,以下で役に立ます。

  • シンボルの名前の整合性

  • アルゴリズム全体の必須スケジュ,ル

  • モデルコンフィギュレ,ションの整合性

異なるモデル用にコ,ドを結合するときの考慮事項

異なるモデルに対して生成されたコードを結合する(つまり,参照モデルを使用しない)場合は,次の点について考慮してください。

  • デ,タはグロ,バルです。シンボル(名前)の競合が生じる可能性があります。

  • モデルのコンフィギュレーションパラメーターの設定は,ハードウェアのワードサイズなどの設定を含め,一致しなければなりません。

  • コードの再利用と共有は準最適である可能性があります(共有のユーティリティ関数,スケジューリング,ソルバーの複製コードなど)。

  • スケジューリングはより複雑になる可能性があります(たとえば,モデルにそれぞれの倍数ではない定期的なサンプル時間が含まれ,共通のタイマー割り込みからのスケジューリングがさらに複雑になる可能性があります)。

  • 連続時間と状態を使用するプラントモデルでは,モデルを接続する連続時間信号は,モデル内の連続時間信号のように単一のソルバーで処理されず,数値のわずかな差が生じる可能性があります。

モデル間でのデ,タの共有

モデル間では一方向の信号接続を使用します。これらの接続はモデルの呼び出し順に影響します。たとえば,模型からの出力信号をmodelBへの入力として使用する場合,模型出力の計算が最初に呼び出されます。

タ@ @ミングの問題

複数のモデルまたはモデルの複数のインスタンスに対して生成されたコードを結合する場合は,以下を実行します。

  • 同じソルバ,モ,ド(シングルタスクまたはマルチタスク)を使用してモデルを構成する。

  • モデルで連続状態を使用する場合,同じソルバ,を使用してモデルを構成する。

モデルの基本レ,トが異なる場合,メ,ンプログラム(rt_malloc_main.cなど)はモデルの最大公約数レトでタマ割り込みが起こるように設定しなければなりません。メ@ @ンプログラムはそれぞれのモデルを一定の時間間隔で呼び出します。

デ,タのログ作成とエクスタ,ナルモ,ドに関するサポ,ト

マルチモデルプログラムはモデルごとに別々のmatファルにデタのログを作成できます。

マルチモデルプログラムのモデルの1だけがエクスタナルモドを使用できます。

デ,タの所有権の制御

嵌入式编码器ソフトウェアがある場合,信号,パラメーター,状態などの個々のデータ項目に対して,オーナーを指定できます。デ,タ項目のオ,ナ,はデ,タ項目の定義,メモリ割り当ておよび初期化を生成します。たとえば,生成コ,ドでグロ,バル変数として表示されるように,ストレ,ジクラスを金宝app仿真软件。信号オブジェクトに適用する場合,組み合わされたモデルのいずれかをオブジェクトのオーナーとして指定します。そのモデルに対して生成されたコ,ドにより,変数が定義されます。

モデル参照を使用する場合,生成コードをモジュール化し,チームで作業する際のデータの所有権を明確にすることができます。

モデル参照を使用しない場合,デ,タ項目の定義が重複して生成されるのを回避できます。たとえば,金宝app仿真软件。参数オブジェクトをベ,スワ,クスペ,スに保存して,ストレ,ジクラスExportedGlobalを適用するとします。このオブジェクトを使用する2つの個別のモデルからコードを生成すると,各モデルは対応するグローバル変数に対して定義を生成します。代わりに,オブジェクトのオ,ナ,を指定し,定義を生成するのはそのオ,ナ,のみにすることができます。

デ,タ項目のオ,ナ,を指定するには,次を行います。

  1. ストレ,ジクラスをデ,タ項目に適用します。Structストレ,ジクラスを使用してパラメ,タ,デ,タを構造体に整理する(嵌入式编码)を参照してください。

  2. [オ,ナ,]プロパティの値を指定して,デ,タ項目のオ,ナ,を設定します。

  3. モデルコンフィギュレションパラメタ[デ,タ定義の配置にデ,タオブジェクトからオ,ナ,を使用する]を選択します。

デタ定義と宣言の所有権およびファル配置の詳細にいては,控制在生成的文件中全局数据定义和声明的放置(嵌入式编码)を参照してください。

複数のモデルまたはモデルの複数の▪▪ンスタンスに対して生成されたコ▪▪ドの結合

コ,ドを結合している各モデルに対して,コ,ドを生成します。

  1. システムターゲットファイルGRTをベースまたはERTベースのシステムターゲットファイルに設定します。結合するモデルのシステムタゲットファルは同じでなければなりません。

  2. アプリケーションにそのモデルの複数のインスタンスを含める場合は,モデルコンフィギュレーションパラメーター[コドンタフェスのパッケジ化][再利用可能な関数]に設定します。ERTベースのシステムターゲットファイルを指定した場合は,オプションで,モデルの各インスタンスへのメモリの割り当てを静的または動的どちらで実行するかによって,モデルコンフィギュレーションパラメーター[モデルの初期化に動的メモリ割り当てを使用]を設定できます。

  3. ソ,スコ,ドを生成します。コドジェネレタは,生成されたファル模型. cに割り当て関数を含めます。割り当て関数は,モデルの各。

各モデルのソ,スコ,ドを生成した後に,以下を実行します。

  1. 結合している各モデルのコドをコンパルします。

  2. モデル用に生成されたmakefileを1のmakefileに結合します。

  3. rt_malloc_main.cなどのメ@ @ンプログラムを変更して,結合されたシミュレ@ @ションエンジンを作成します。メ▪▪ンプログラムは各モデルに対して生成されたコ▪▪ドを初期化して呼び出します。

  4. Makefileを実行します。Makefileはオブジェクトファ▪▪ルとメ▪▪ンプログラムを実行可能プログラムにリンクします。

関連するトピック