用Matlab求解二阶常微分方程

用Matlab求解二阶常微分方程,matlab,ode,Matlab,Ode,我正在尝试解决我的ODE问题,我的代码如下 function zdot = dynamics(t,z) % Function solves the constant power vehicle dynamics ODE for a specified grade function % z(1)=Distance traveled (m) and z(2)=Vehicle speed (m/s) z(1)' = f(t,z(1)) z(2)' = f(t,z1,(z

我正在尝试解决我的ODE问题,我的代码如下

function zdot = dynamics(t,z)
    % Function solves the constant power vehicle dynamics ODE for a specified grade function
    % z(1)=Distance traveled (m) and z(2)=Vehicle speed (m/s)
    z(1)' = f(t,z(1))
    z(2)' = f(t,z1,(z2))
    [t,z]=ode45('dynamics',[0 180],[0; 0]);
    p=261; m = 44806; pta = 0.371; eff=0.94; cf=0.60; cd=0.78; ch=0.95;
    c1=0.047285; c2=0.0328; c3=4.58; cr=1.25; a=10.7; g=0.06;

    F = min(9.8066*m*pta*cf, 3600*eff*p/(z(2)*3.6));
    Ra = c1*cd*ch*a*(z(2)*3.6)^2;
    Rr = 9.8066*cr*(c2*z(2)*3.6+c3)*m/1000;
    Rg = 9.8066*m*g;
    zdot = [z(2); (F-Ra-Rr-Rg)/m];
    % Call ODE function
    [t,z] = ode45('dynamics',[0 180],[0; 0]);
    % Save distance and speed vectors
    x = z(:,1); u=z(:,2)*3.6;
    % Plot profiles
    subplot(2,1,1); plot(t,u); xlabel('Time (s)'); ylabel('Speed (km/h)')
    subplot(2,1,2); plot(x,u);xlabel('Distance (m)'); ylabel('Speed (km/h)')
end
我一直收到这个 错误:文件:Q.m行:4列:7
等号左侧的表达式不是要定义局部函数的赋值的有效目标

function zdot = dynamics(t,z)
     F = min(9.8066*m*pta*cf, 3600*eff*p/(z(2)*3.6));
    Ra = c1*cd*ch*a*(z(2)*3.6)^2;
    Rr = 9.8066*cr*(c2*z(2)*3.6+c3)*m/1000;
    Rg = 9.8066*m*g;
    zdot = [z(2); (F-Ra-Rr-Rg)/m];
end

然后可以通过
ode45

正确地调用它。你的问题是什么?我一直得到这个错误:File:Q.m Line:4 Column:7等号左边的表达式不是赋值的有效目标。你想用
z'=3
这样的语句实现什么。