如何用ODE45对输入的u进行仿真 - MATLAB。

问题描述 投票:0回答:1

我有两个函数句柄。

A = @(x, y, z) [10*y - 10*x; 28*x - z*x - y; x*y - 8/3*z]
B = @(u) [u; 0; 0]

我怎样才能在MATLAB中用控制变量u模拟它们?控制变量u是时变的。

matlab simulation differential-equations ode45
1个回答
1
投票

你可以使用。

[t,out] = ode45(@(t,vars) myfunction(t,vars,U),tsim,xyz0);
x = out(1);
y = out(2);
z = out(3);

其中 U 的值。u, 是模拟时间(最终时间o时间向量)和 xyz0 是变量初始条件的向量。x, yz 的形式[x0 y0 z0]。我的函数 定义为:

function dxyz= myfunction(t,vars,u)

    x = vars(1);
    y = vars(2);
    z = vars(3);

    % u varying with a condition
    if t>1
        u = newValue;
    end

    % u is a function of time u=f(t)
    u = 2*t;

    A = [10*y - 10*x; 28*x - z*x - y; x*y - 8/3*z];
    B = [u; 0; 0];
    dxyz = A+B;

end
© www.soinside.com 2019 - 2024. All rights reserved.