matlab 连续系统离散化,连续系统的离散化方法.ppt

连续系统的离散化方法

第四章 连续系统的离散化方法 4.1 常微分方程的数值解法 其一般公式为 解:因欧拉法的递推公式为 4.1.3 龙格-库塔法 将 2、 其意义如下:用欧拉法以斜率先求取一点, 再由此点求得另一斜率 四阶龙格-库塔法的计算公式为: 其中, 四阶/五阶龙格-库塔法系数表 4.1.4 微分方程数值解的MATLAB实现 1、 微分方程组中的方程个数必须等于初始条件数,这是求微分方程特解所必须的条件。 6、输入参数options表示选项参数(包括tol,trace),可缺省,即取默认值,tol是控制结果精度的选项对ode23( )函数取 ,对ode45( )函数取 。trace为输出形式控制变量,如果trace不为0,则 例 4-1 求解常微分方程 首先编制M文件,并且函数名和M文件名相同。 function xdot=wffc_1(t,x) %定义t,x,xdot和文件名 xdot=[0 1;-1 0]*x+[0;1]*(2+t^2/pi); %状态方程的表示形式 编制M文件,并且函数名和M文件名相同。 function xdot=vdpl(t,x) xdot=zeros(2,1); %赋初值,并规定向量的维数。 xdot(1)=x(2); %对第一个微分方程进行描述 xdot(2)=2*(1-x(1)^2)*x(2)-x(1); %对第二个微分方程进行描述 在命令窗口键入[t,x]=ode45('vdpl',[0,20],[1;1]),可得微分方程的数值解,其前10组数据如下: 若在命令窗口输入ode45(@wffc_1,[0,10],[-1;1]),则可得到系统状态曲线,而不输出数据。如图4-4所示。 仿真时间参数设置如图4-8所示。 4.2数值解法的稳定性及选择原则 4.2.1 数值解法的稳定性 2.梯形法 4.2.2 数值解法的选择原则 一般来说,选择数值计算方法从以下原则考虑: 1、精度问题 数值计算的精度主要受下面三类误差影响。截断误差、舍入误差和积累误差。 其中截断误差同数值算法的阶次有关,阶次越高,截断误差越小,一般减小步长可减小每一步的截断误差。舍入误差则与计算机字长有关,字长越长,舍入误差越小。积累误差是上述两类误差积累的结果,它同积分时间长短有关。一般积分步长越小,则积累误差越大(在一定的积分时间下)。所以,在一定的数值计算方法下,若从总误差考虑,必定有一个最佳步长值。 2、计算速度问题 计算速度决定于计算的步数以及每一步积分所需的时间,而每一步的计算时间同数值计算方法有关。例如四阶龙格-库塔法每一步需要求四个斜率值,花费较多的时间(但精度高)。在积分方法确定时,应在保证一定的计算精度下尽量能选用较大的步长(必须满足数值稳定的条件),以缩短积分时间(有时往往选用变步长的算法)。 3、数值解的稳定性 数值算法实际上就是将微分方程化成差分方程进行求解,对一个稳定的微分方程组,经过变换得到的差分方程不一定稳定。不同的数值计算方法有不同的稳定域。从稳定性角度看,隐式比显式好。 4.3数值算法中的“病态”问题 4.3.1 “病态”微分方程 采用四阶龙格-库塔法,选取固定步长的仿真方法,取h=0.01, A = -21 19 -20 19 -21 20 40 -40 -40 >> eig(A) ans = -2.0000 -40.0000 +40.0000i -40.0000 -40.0000i “病态(stiff)”方程。表述如下: 一般线性常微分方程组: 4.3.2 “病态”系统的仿真方法 采用自动变步长数值计算方法 4.4 连续系统状态方程的离散化 连续定常系统状态方程为: 在MATLAB命令窗口输入: MATLAB还提供了c2dm( )函数来作类似的变换,其调用格式为: [G,H,Cd,Dd]=c2dm(A,B,C,D,T,‘选项’) 它与c2d函数的区别在于,它可以允许用户自己选择变换方法。 MATLAB的控制工具箱还给出了离散状态方程转化为连续状态方程的函数d2c( ),其调用格式为: [A,B]=d2c(G,H,T) 除了d2c( ) 函数外,MATLAB还提供了d2cm( )函数,其调用格式为: [A, B, C, D]=d2cm(G, H, Cd, Dd, T,‘选项’) 其中转换方法的选项意义如表4-2所述。 对上面采用Tustin变换得到的结果,采用如下的变换可得到原来的连续状态方程 [A,B,C,D]=d2cm(G,H,Cd,Dd

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值