Trim with Generated Simulink Code

7 views (last 30 days)
Jimmy Lu
Jimmy Lu on 26 Jul 2018
Edited: Jimmy Lu on 27 Jul 2018
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 Comments
TAB
TAB on 26 Jul 2018
Which Matlab version are you using ?

Sign in to comment.

Accepted Answer

Jimmy Lu
Jimmy Lu on 27 Jul 2018
Edited: Jimmy Lu on 27 Jul 2018
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.

More Answers (0)

Categories

Find more on Simulink Coder in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!