Numerical solution of non-linear model
2 ビュー (過去 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 件)
参考
カテゴリ
Help Center および File Exchange で Assembly についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!