zearo 发表于 2007-6-8 17:55

如何在m文件中实现simulink中的du/dt实时求导功能?

不想用simlink环境仿真。在设计控制器的中间步骤中用到中间量的导数,在simulink中可以用du/dt模块轻松实现,但到m文件中如何实现呢?请指教!谢谢先。

eight 发表于 2007-6-8 17:56

原帖由 zearo 于 2007-6-8 17:55 发表 http://www.chinavib.com/forum/images/common/back.gif
不想用simlink环境仿真。在设计控制器的中间步骤中用到中间量的导数,在simulink中可以用du/dt模块轻松实现,但到m文件中如何实现呢?请指教!谢谢先。

help diff

zearo 发表于 2007-6-8 18:39

按照help 里面 diff 的用法不行,请帮忙看看

例如
在如下系统方程中,假设控制 u 为 Y(2) 的导数,简单写成 u=diff(Y(2)),那么运算时 u=[],不可用,如何解决呢?
主程序为
function DuffingM
P1 = 0.4;
P2 = -1.1;
P3 = 1.0;
P4 = 1.8;
w = 1.8;
tspan=;
Y0=;
=ode45('Duffing',tspan,Y0,[],P1,P2,P3,P4,w);

系统方程为:
function DY=Duffing(t,Y,flag,P1,P2,P3,P4,w)
switch flag
    case ''
       u = diff(Y(2))
   DY=;
end

eight 发表于 2007-6-8 23:08

原帖由 zearo 于 2007-6-8 18:39 发表 http://www.chinavib.com/forum/images/common/back.gif
例如
在如下系统方程中,假设控制 u 为 Y(2) 的导数,简单写成 u=diff(Y(2)),那么运算时 u=[],不可用,如何解决呢?
主程序为
function DuffingM
P1 = 0.4;
P2 = -1.1;
P3 = 1.0;
P4 = 1.8;
w = 1.8; ...

请仔细看 diff 的例子。另外,从数学上说,要求某一点的导数,能脱离它的周围点吗?
页: [1]
查看完整版本: 如何在m文件中实现simulink中的du/dt实时求导功能?