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 commentaires

TAB
TAB le 26 Juil 2018
Which Matlab version are you using ?
Jimmy Lu
Jimmy Lu le 26 Juil 2018
Matlab 2017a

Connectez-vous pour commenter.

 Réponse acceptée

Jimmy Lu
Jimmy Lu le 27 Juil 2018
Modifié(e) : Jimmy Lu le 27 Juil 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.

Plus de réponses (0)

Catégories

En savoir plus sur Simulink Coder dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by