正在加载图片...
数字信号处理 四、常微分方程数值解 控制系统的模型很大一部分是常微分方程形式的,求取它们的解析解比较困难,一般使 用数值解。常微分方程数值解一般使用逐步积分的方法实现, Runge-Kutta法是应用最多的 种微分方程数值解的方法。 MATLAB提供了两种 Runge-Kutta法函数 It, x]=ode23(fun? tO, tf, xO, tol, trace) It, x]F=ioe45(fun?, to, tf, xo, tol, trace) 这两种方法格式相同。其中xfun为定义的常微分方程函数名,该函数必须以为输出,以 t、x为输入。输入变量t0、t为积分的启始和中止时间,单位是秒。x0为初始的状态向量。 tol控制结果的精度,可以缺省。一般来说,ode45比ode3运算速度快一些 考虑描述经典的 Var der pol微分方程 a24(1-x x dt 求解中将这高阶方程等价变换为一阶方程组,重新定义变量,变换为 令x1=xx2=d/dt 则dldt=x2 dx2/dt=u(1-x12)x2-x1 把它写成函数: function yp=vdp(t, x) yp(2)=2+(1-x(1)^2)*x(2}x(1)%令 在命令行求解这个方程 [tx]=ode45(dp?0,20,[1;1); plot(t, x(, 1 ), t, x(, 2) %画出x和dx/dt的时域波形+图x和d/dt的时域波形数字信号处理 8 四、常微分方程数值解 控制系统的模型很大一部分是常微分方程形式的,求取它们的解析解比较困难,一般使 用数值解。常微分方程数值解一般使用逐步积分的方法实现,Runge-Kutta 法是应用最多的 一种微分方程数值解的方法。MATLAB 提供了两种 Runge-Kutta 法函数: [t,x]=ode23(fun?t0,tf,x0,tol,trace) [t,x]=ioe45(fun? ,t0,tf,x0,tol,trace) 这两种方法格式相同。其中 xfun 为定义的常微分方程函数名,该函数必须以 为输出,以 t、x 为输入。输入变量 t0、tf 为积分的启始和中止时间,单位是秒。x0 为初始的状态向量。 tol 控制结果的精度,可以缺省。一般来说,ode45 比 ode23 运算速度快一些。 考虑描述经典的 Var der Pol 微分方程 求解中将这高阶方程等价变换为一阶方程组,重新定义变量,变换为: 令 x1=x x2=dx/dt 则 dx1/dt=x2 dx2/dt=u(1-x12 )x2-x1 把它写成函数: function yp=vdp(t,x) yp(1)=x(2); yp(2)=2*(1-x(1)^2)*x(2)-x(1); %令 u=2 在命令行求解这个方程: [t,x]=ode45(dp?0,20,[1 ;1]_); plot(t,x(:,1),t,x(:,2)); %画出 x 和 dx/dt 的时域波形+图 x 和 dx/dt 的时域波形
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有