Cコードへのモデルエクスポート
Cコードへのエクスポート
エクスポートを実行すると、モデル固有の*.cファイルに加え、出力タイプに応じて以下のファイルが生成されます:
|
タイプ |
生成されるサンプルファイル |
用途 |
|---|---|---|
|
Model Prediction (Basic) |
mexPredict.c |
MATLAB MEXファイルの生成 |
|
slPredict.c |
Sファンクションの生成 |
MEXファイル
MEXファイルは、エクスポートされたモデルから、MATLAB®で以下のようにして生成することができます:
mex mexPredict.c -DNUMINPUTs=<n_outputs> -DCALLFUNC=predict_<output> -output predict_<output>
<n_outputs> = 出力の数
これにより、predict_<output>Matlab.mexw64というファイルが生成され、MATLAB®から以下のように呼び出すことができます。
[1.1 2.2 3.3 ...]= n_inputsの要素
この結果は以下のようになります:
ans = 23.32343
Sファンクション
エクスポートされたモデル用のSファンクションは、MATLAB®で以下のようにして生成することができます。
mex slPredict.c -DNUMINPUTS=<n_inputs> -DCALLFUNC=predict_<output> -output predict_<output>
<n_inputs> = 入力の数
これにより、predict_<output>Simulink.mexw64というファイルが生成されます。
エクスポートされたファイルpredict_<output>.cのフォーマット(3つの有効な入力を持つモデル)
#include <math.h>
void predict_Fuel_mass(double* pInArray, double* pOutPrediction)
{
[...]
}
上記の例は以下のように使用できます。
extern predict_Fuel_mass(double*, double*);
double modelInput[3];
double modelOutput;
modelInput[0] = 1.1;
modelInput[1] = 2.2;
modelInput[2] = 3.3;
predict_Fuel_mass(modelInput, modelOutput);
ここで、modelOutput変数には入力ベクトル[1.1, 2.2, 3.3]用のモデル予測が格納されます。