Numerical solution of non-linear model
4 ビュー (過去 30 日間)
古いコメントを表示
hi all;
I have a model for liquid level in a tank as;
dh/dt = (F/dA) - (B*sqrt(h))/dA,
Where B,d,A are constants,
I want to get the numerical solution for a step input change in F, say 0.4
using Euler method or any other suitable numerical method.
Thanks.
2 件のコメント
採用された回答
Luca Fenzi
2016 年 10 月 4 日
編集済み: Luca Fenzi
2016 年 10 月 4 日
I think that equation can be recast as: h'(t)=(F/dA) - (B*sqrt(h(t)))/dA, d,B,A,F constants Instead of using Euler method I will prefer the buil in function ode23 or ode4, since they will provide you better simulations
% Parameters of the model
B=1;
A=1;
F=1;
d=1;
% Parameters for the simulations
tspan=[0,5] % time interval of the simulations
h0=0; % Intial data
% simulation with ode23
[t,h] = ode23(@(t,h) F/(d*A) - B*sqrt(h)/d*A, tspan, h0);
% simulation with ode45
% [t,h] = ode23(@(t,h) F/(d*A) - B*sqrt(h)/d*A, tspan, h0);
% Show the results:
plot(t,h)
xlabel('t')
ylabel('h(t)')
2 件のコメント
Luca Fenzi
2016 年 10 月 5 日
I did not understand your question, what variable is the temperature? (h(t)?)
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!