Differential equation in embedded block in simulink ?
4 views (last 30 days)
Show older comments
Jean Sébastien
on 13 Mar 2012
Commented: Rishabh singh
on 19 May 2020
Dears all,
I have a simulink with several degreees of freedom (springs, mass and damping). I try to replace a part of it by an embedded function containing a differential equation coded with matrix mass, stiffness and damping.
My problem is to make simulink understand that in the embedded function there is a differential equation (X ==> dX)
If the embedded function is not link with other simulink object, i can't put an integrator on the output and feed it into the input of the block.
If i replace one spring (with little mass on each extremity) and try to say displacement on my first mass is the same that displacement on the mass before in the simulink model (X(n-1)=X(n)) that is feeding my embedded function with the output of the mass before in simulink. The model does'nt run well. I think it's because i can't loop the output of the emebedded block in its input so simulink doesn't understand that its a differential equation.
Is there any solution ?
I hope my question is understandable....
Thanks a lot for your help.
0 Comments
Accepted Answer
Kaustubha Govind
on 13 Mar 2012
I don't think the Embedded MATLAB Function block is a good choice to solver differential equations. I would recommend using S-Functions instead. For a MATLAB S-function demo that uses continuous states to implement an integrator block, type this at the MATLAB prompt:
>> msfcndemo_limintm
You should be able to use this as an example to implement your own differential equation block.
2 Comments
Guy Rouleau
on 14 Mar 2012
Yes, the s-function will not make difference between K and [1;2;3;4] is K is defined in the MATLAB workspace.
More Answers (1)
Guy Rouleau
on 14 Mar 2012
If you need to generate code and consequently use the EML block, you might want to use the trick described here:
The trick is to generate Dx in the EML block, feed that to an integrator that will compute x and feed that back to your EML block.
1 Comment
See Also
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!