2016-04-30 15 views
0

Rapid Acceleratorを使用する際にSimulinkがすべての依存関係を気にすることが多かったため、バグを発見しました。Simulink Rapid Acceleratorで可変入力データを再構築

基本的には、同じモデルではあるが入力データが異なる(「ワークスペースから」のMATLABワークスペースからの)何百もの繰り返しを繰り返しています。

Simulinkは入力データの依存関係を無視してしまい、新しい入力データに合わせてターゲットを再構築しません。今

私はすべての繰り返しのために強制的に再構築することができますが、これは最適化されたモデルのポイントではありません...

私はちょうど構築された入力+リンカ(containg 1つのファイルをコンパイルするのSimulinkを伝えることができますどのようにすべての反復)、全体のモデルを構築するよりも?

この方法でもうまくいかない場合はどうすれば最初に再構築する必要がありますか?

どちら

Simulink.BlockDiagram.buildRapidAcceleratorTarget('my_model'); 

より多くのシミュレーションターゲットの設定で「(ライブラリを含む)すべてを再構築」に設定すると、再構築に思える....

答えて

0

これだ、バグではありません十分に文書化された事実。 「ワークスペースから」ブロックを含むモデルは、ラピッドアクセラレータターゲットにコンパイルされた場合

は、スタンドアロンの実行可能ファイルは、コンパイル時で、彼らは 持っているものと同等のサイズと値で、ワークスペース内のすべての関連する変数が含まれます。

これは、Quick-n-dirtyノーマルモードのシミュレーションを除いて、デフォルトで「From Workspace」のようなブロックを避ける十分な理由です。

あなたが考えてみればそれは明白なの一種である - あなたのモデルは、その最初の実行時にワークスペースに

myVar = [1 2 3]; 

を変数を使用する場合に何が起こるかを検討したが、次の実行時に、あなたが

を設定
myVar = [1 2 3 4 5 6 7 8 9 10]; 

このような柔軟性はMATLAB/Simulink環境では些細なことですが、CやC++などの言語で実装する方がはるかに難しくなります。 Rapid Accelerationターゲットにこの柔軟性を与えることは可能ですが、が可能ですが、私はそれをお勧めしません。

あなたのモデルに、より良いモデルパラメータを使用することが、より良いアプローチです。これらは、例えば、in this blog post、および他の様々な場所について詳述されている。

+0

実際、このことについて**本当に確信していますか?それまでの間、私は特定のことを試してみましたが、 "From Workspace"ブロックのワークスペースデータを変更すると、私はまだ_correct_結果を得ていることに気付きました!私は間違いなくRapid Acceleratorを使用します。あなたの引数wrt "From Workspace"は有効ではありません:この場合、合理的に良いコンパイルチェーンは自動的にすべての依存ファイル(通常はより小さいサブセット)を構築します。これはまさに "make"の動作であり、 。しかし、私のテストに基づいて、これは本当ですか? – divB

+0

もう1つの発言:おそらく、この動作が変更されています(私はR2015aを使用しています)? – divB

+0

待って、何?したがって、ワークスペースのデータを変更すると、再構築しなくても別の出力が得られますか?それで...あなたの問題は何ですか?私が知っていることは、それがR2010a(私がまだ使用しているもの、残念なことに)で動作しないということです。それがモデルパラメータとチューニング可能性の全体のポイントです...まあ、おそらく彼らはそれを変えました、私はそう望みます。 –

関連する問題