2011-12-08 4 views
1

Simulinkでは、複数のバスで同じ(些細ではない)操作を実行する必要があります。 私はその操作をサブシステムとして実装して再利用することを考えましたが、うまくいきませんでした。Simulink/Reuseサブシステムのバス信号をコピーせずに反復する

バス内の信号/バスを繰り返し処理して、同じ操作を複数回適用し、結果を再度バンドルすることができるのだろうかと思います。どうすればいい?

+0

サブシステムで発生した問題についてもう少し詳しく教えてください。それはバス間の信号の異なる名前に関連していますか? –

+0

私はサブシステムを別々のモデルにする必要があります。彼らはアクセラレータモードでは、コンパイルされませんが、私は通常のモードに私は1つのインスタンスを使用することができますに切り替えるとき。 – sunside

答えて

0

私は今このソリューションをテストするMatlabを持っていません。私はあなたのバスがすべて同じ次元と構造であると仮定します。

  • このタイプのinportoutportを設定するバスエディター(あなたのバスの 共通の構造に対応する)
  • とタイプ(バスオブジェクト)を定義し、ライブラリ
  • でブロックを作成します。
  • bus selectorを使用してデータを分解し、 操作を実行し、bus creatorでバスを再構成します。セレクタ/作成者の名前 は、定義したタイプの名前です。
  • 各信号でこのブロックを使用します。
  • タイプを.matファイルにエクスポートして読み込むことを忘れないでください。
+0

ライブラリブロックは私が今やっていることです。バスの要素の数に依存しない一般的な解決策がありますか?foreachループのようなものですか? – sunside

1

あなたはどのリリースをお使いですか? R2010b以降を使用している場合は、バスのアレイとfor-eachサブシステムを使用できます。この仕組みの詳細については、documentationを参照してください。これは、繰り返したいバスがまったく同じ構造を持つ場合にのみ機能します。

関連する問題