matlab实时仿真微分方程

时间:2013-11-10 19:27:01

标签: matlab

我需要运行两个形状微分方程的交互式模拟:

der(x)= A  * x + c1 * y
der(y)= c2 * x + c3 * y

其中der(x)是x

的时间导数

但我需要能够在模拟实时运行时更改A

我是matlab的新手,但是我捅了一下所以我不是一个总菜刀

1 个答案:

答案 0 :(得分:1)

我过去有两种方法可以做到这一点。根据您使用的是Matlab的ode函数还是您自己的函数,不同的东西可能会更容易。

如果您正在实时绘制图形并使用自己的ODE求解器,则可以在一个时间步长运行求解器,绘制结果并使用keyPressFcn修改参数。这是我首选的方法,它的工作原理如下:首先打开你的图窗口

figHandle = figure('KeyPressFcn',@keyControl);

然后运行你的ODE求解器,一次一个步骤并绘制结果。 keyControl函数如下所示:

function keyControl(varargin)
    cmd = get(figHandle,'CurrentCharacter');
    switch double(cmd)
        case 30 % up arrow for example
    end
end

如果您使用的是Matlab ODE求解器,则可以使用OutputFcn修改某些数据(尽管这可能有点笨拙)。