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