ハイブリッドシステム​をシミュレーションす​るにはどうすれば良い​ですか?

Simulinkで、連続システムと離散システムが混在したシステム(ハイブリッドシステム)をシミュレーションしようとすると、サンプル時間に関するエラーが出ます。
(エラー例)
input port 2 におけるブロック 'f14/Aircraft Dynamics Model/Sum1' のサンプル時間 [0 0] は、出力端子 1 における 'f14/Gain' のサンプル時間 [0.1 0] と異なります。2 つの端子間に Rate Transition ブロックを挿入することを検討してください。あるいは、コンフィギュレーションパラメータダイアログボックスのサンプル時間の診断ペインで未指定のレート変換に対する診断アクションを制御することができます。

 Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 25 Oct 2013

0 votes

固定ソルバを使ってハイブリッドシステムをシミュレーションする場合に、固定ソルバオプションのタスクとサンプル時間オプションの[周期的なサンプル時間のタスクモード]オプションにおいて、"Auto(オート)"や"MultiTasking(マルチタスキング)"を選択した場合に、上記エラーが生じます。
ハイブリッドシステムは、連続システムの連続サンプル時間(Ts=0)と、離散システムのサンプル時間の、2つ以上の異なるサンプル時間を持つマルチタスクのシステムです。
このような場合、下記の1.~4.に示すように、純粋にシミュレーションだけを行うのか、それとも最終的にはターゲット上で動作させるのかによって対応が異なります。純粋にシミュレーションだけを行うのであれば、シングルタスキングを選択することでシミュレーション可能です。しかし、最終的にコード生成までを考慮している場合は、マルチタスキングで実行する必要があります。
1. 純粋なシステム解析のためのシミュレーション
→ シングルタスク or マルチタスク(通常はシングルタスクで可能)
2. 最終的にターゲット上でシングルタスク動作
→ シングルタスク
3. 最終的にターゲット上でマルチタスク動作
→ マルチタスク
ターゲット環境がリアルタイム・マルチタスクで動作する場合、タスク間でデータの整合性を保つ必要があるため、不正なレート遷移を未然に防止する必要があります。「モード」をマルチタスク設定にしておけば、シミュレーションの実行前にレート遷移が正常に行われているかどうかをチェックすることができて便利です。
「モード」が「マルチタスク」、あるいは「オート」設定でサンプル時間が複数あるモデルの場合、モデルに下記のような制約条件が課されます。
・「シングルタスク」
シミュレーション実行時に、サンプル時間が異なるブロックの接続(これをサンプリングレートの遷移と呼びます)をチェックしません。
・「マルチタスク」or 「オート」設定複数のサンプル時間あり
サンプル時間を複数含むモデルについてのみ指定可能です。シミュレーション実行時に、サンプリングレートの遷移をチェックします。不正な遷移があれば、エラーが出力されます。このような場合、サンプル時間が変わるところすべてにRate Transition ブロックを挿入し、サンプル時間を出力先のブロックのサンプル時間を設定します。

Plus de réponses (0)

Catégories

En savoir plus sur シミュレーション条件の構成 dans Centre d'aide et File Exchange

Produits

Version

R2009b

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!