solving a set of first order differential equations in simulink

I wish there is a way, maybe a block or something, to simulate a set of first order differential equations of any form (not restricted to be linear) easily. You know how difficult it is to build the system using basic blocks particularly when it is a high order nonlinear one. I got a clue on the Web. Is there a block called dee (differential equation editor)? I couldn't find anything about that in my Matlab 2012b help documentation or in the simulink library. Maybe it has been added in later versions, Huh?

Answers (2)

Hello Pouya, there is a way: use an embedded MATLAB function to define the differential equations, say Xdot = f(X), where X is the state vector. Then use an integrator block to compute X . Initial conditions can be defined either externally or internally (to the integrator block).

2 Comments

Thank you Mischa for your reply. you're certainly true. But this method has a limitation for my application. I'm doing Monte-Carlo simulation and I need to run my simulink consecutively with different parameters.I should be able to use set_param command from an script file to set the parameters for each run. have you heard about dee block? It sounds to be best fitted to my application, but I don't know why I can't find it in my Matlab.
Yes, I am familiar with the dee tool (simply type dee at the MATLAB command prompt, if you have it installed). I still recommend the general approach shown above because it gives you much more flexibility setting up the problem.
For MC simulations I would follow the procedure you outlined (using the Parallel Computing Toolbox, if available). See this demo for reference and this example .

Sign in to comment.

Hi,
How to set intial condtion Y(1)=1 in Simulink for ODE?

Categories

Find more on Simulink in Help Center and File Exchange

Products

Asked:

on 19 Jan 2014

Answered:

on 23 Dec 2018

Community Treasure Hunt

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

Start Hunting!