The last entry in tspan must be different from the first entry. Error in ode45 (line 115) odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
6 ビュー (過去 30 日間)
古いコメントを表示
Anne Louise Barão
2020 年 7 月 23 日
コメント済み: Anne Louise Barão
2020 年 7 月 23 日
I found this code in an article and tried to run it on my 2014 matlab, but it is giving error on ODE45. The functions are in different programs, but in the same folder. I can't run it. Can someone help me?
function Q=q(t)
global Qstar
DQ=1;
Q=Qstar+DQ;
end
function Hdot=hdot(t,H)
global RHO G A1 A2 Hstar Qstar
Q=q(t);
k1=-A2*sqrt(2*G)/A1;
k2=1/RHO/A1;
Hdot=k1*sqrt(H)+k2*Q;
end
%Physical constants
global RHO G A1 A2 Hstar Qstar
RHO=1000; %(kg/m3)
G=9.8; %(m/sec2)
A1=pi/4;
A2=pi/400; %(m2)
Hstar=1; %(m)
Qstar=34.7711; %(kg/sec)
% Nonlinear step response
t0=0; %Initial time (sec)
tf=300; %Final time (sec)
H0=Hstar; %Steady-state value (m)
[tn,H] = ode45('Hdot',t0, tf, H0);
DHn=H-Hstar; % Subtract Hstar to obtain DH
% Linear step response
t=0:0.1:300;
k2=1/RHO/A1;
Omega=A2^2*G*RHO/A1/Qstar;
num=k2;
den=[1 Omega];
DH=step(num,den,t);
% Plot results in centimeters (cm)
plot(t,100*DH,tn,100*DHn,'--'); grid
xlabel('Time (sec)'), ylabel('DH (cm)')
0 件のコメント
採用された回答
Walter Roberson
2020 年 7 月 23 日
[tn, H] = ode45 ('Hdot', [t0, tf], H0);
3 件のコメント
Walter Roberson
2020 年 7 月 23 日
It works for me.
%Physical constants
global RHO G A1 A2 Hstar Qstar
RHO=1000; %(kg/m3)
G=9.8; %(m/sec2)
A1=pi/4;
A2=pi/400; %(m2)
Hstar=1; %(m)
Qstar=34.7711; %(kg/sec)
% Nonlinear step response
t0=0; %Initial time (sec)
tf=300; %Final time (sec)
H0=Hstar; %Steady-state value (m)
[tn,H] = ode45(@hdot,[t0, tf], H0);
DHn=H-Hstar; % Subtract Hstar to obtain DH
% Linear step response
t=0:0.1:300;
k2=1/RHO/A1;
Omega=A2^2*G*RHO/A1/Qstar;
num=k2;
den=[1 Omega];
DH=step(num,den,t);
% Plot results in centimeters (cm)
plot(t,100*DH,tn,100*DHn,'--'); grid
xlabel('Time (sec)'), ylabel('DH (cm)')
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Numerical Integration and Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!