0

Simulink には「Matlab Function」というモジュールがあり、Simulink フロー ダイアグラムでカスタム関数を作成できます。

Simulink Matlab 関数モジュールに単純な関数を実装しました。私の関数には、Matlab のビルトイン への呼び出しが含まれていますrms()。Simulink モデルを実行すると、次のエラーが発生します。

The function 'rms' not supported for standalone code generation

rmsSimulink モデルの Matlab 関数から削除すると、エラーはなくなり、モデルは問題なく実行されます。

質問:

  • rmsSimulink でMatlab を使用する方法はありますか?
  • Simulink 内で使用できないネイティブの Matlab 呼び出しは他にもたくさんありますか?
4

2 に答える 2

1

私は、 learnvstの回答で行われたいくつかのポイントを明確にして拡張したかっただけです.

MATLAB Function ブロックを含むモデルをシミュレートしようとしているだけで、コード生成を明示的に実行しようとしていない場合でも、not supported for standalone code generationエラーが発生します。

Learnvstが示したように、コード生成で使用できる関数には複数の制限があります。ただし、モデルをシミュレートするだけの場合は、これらの「ブラックリストに記載された」関数をextrinsicとして指定すると、Simulink でこれを実行できます。これにより、Simulink は、関数がシミュレーション目的でのみ使用され、コード生成の一部ではないことを認識できます。

特定のケースでは、への呼び出しの前に次のコード行を追加しますrms

coder.extrinsic('rms');

MATLAB 関数で関数を外部関数として宣言すると、コード生成を実行している場合でも役立つことがよくあります。たとえば、シミュレーション中にコマンドを使用してデータを可視化したい場合がありますが、コマンドが生成されたコードの一部であるplot必要はありません。plot

関数を外部関数として宣言する方法の詳細については、このドキュメントを参照してください。

于 2012-11-01T14:06:40.490 に答える
0

エラーのnot supported for standalone code generation一部は、Matlab Coder のような製品を使用して実行可能コードまたはネイティブ コードを作成しようとしていることを示唆しています。この場合、コアの Matlab とツールボックスの両方で直接使用できない単純な呼び出しが多数あります。コーダー製品は、言語のサブセットのみをサポートします。詳細については、こちらをご覧ください。. .

http://www.mathworks.co.uk/products/matlab-coder/description2.html

への呼び出しに関してrmsは、二乗平均の根を計算するだけです。のようなものを使用して代替案を作成してみてください。. .

sqrt(mean(x.^2))

...x信号はどこにありますか。

于 2012-10-31T23:52:43.917 に答える