Trim with Generated Simulink Code

7 ビュー (過去 30 日間)
Jimmy Lu
Jimmy Lu 2018 年 7 月 26 日
編集済み: Jimmy Lu 2018 年 7 月 27 日
I've used Simulink Coder to generate the C code for the grt target. The idea is to generate an executable such that MATLAB and Simulink are not needed to run the model. I've managed to create a wrapper C application to work with the generated code. But I'm having trouble performing the trimming operation. In order for the model to be useful, trimmed conditions would need to be found prior to simulation (in many cases, finding the trimmed conditions is more important than simulation).
Under MATLAB, I was able to create a Newton-Raphson trimming routine. The jacobian is obtained by running the model command to get the outputs/derivatives at t=0. The problem is that, with the generated code, I only have three exposed extern functions available to me: model_initialize, model_step, and model_terminate. model_step updates the derivatives/outputs, but it only provides the results at the end of the first time step, not at t=0.
Any suggestion as to I should tackle this?
  2 件のコメント
TAB
TAB 2018 年 7 月 26 日
Which Matlab version are you using ?
Jimmy Lu
Jimmy Lu 2018 年 7 月 26 日
Matlab 2017a

サインインしてコメントする。

採用された回答

Jimmy Lu
Jimmy Lu 2018 年 7 月 27 日
編集済み: Jimmy Lu 2018 年 7 月 27 日
This is more of a hack. For a $10k product, I really think breaking the model_step method into separate evaluation and update methods is essential.
Within the rt_ertODEUpdateContinuousStates method, I bypass everything after and including the line:
local_numjac(si,x0,f0,fac,dfdx)
The state derivatives were calculated prior to this and the subsequent section is the integration scheme.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSimulink Coder についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by