- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
连续系统数字仿真数值积分法
第4章 连续系统的数字仿真-数值积分法 第3章从仿真原理方面讨论了连续系统的仿真方法。本章将从构造积分器的角度再对仿真方法做进一步的讨论。 4.1 欧拉法 数值积分法是把微分方程化成积分运算,再进一步化成代数运算的过程,主要解决如何构造一个积分器,然后求出积分器的差分方程的问题。有了积分器就能很容易地对系统进行仿真。 数值积分法最初是从数值计算的角度得到的。但是为了和第3章所讨论的方法统一起来,我们用插入离散-再现环节的方法,以状态空间描述为基础,推出线性系统数值积分法的仿真模型。 假设线性系统的状态空间描述为 式中:X为n×1维状态向量;U为r×l维输入向量;A为n×n维系统矩阵;B为n×r维输入矩阵;Y为m×1维输出向量;C为m×n维输出矩阵;D为m×r维传递矩阵。 (4-3) (4-4) (4-5) (4-6) (4-7) 简记为: X(k+1)= X(k)+Te(k) (4-8) 式(4-8)被称为欧拉公式。欧拉公式可以从 图4.2的几何图形中得到解释。 有了式(4-8),就很容易求出系统式(4-1)、式(4-2)的差分方程 X(k+1)= (I+AT)X(k)+TBU(k) (4-9) Y(k+1)= CX(k+1)+DU(k+1) (4-10) 例1: 某控制系统如图所示,输入为R=10阶跃函数,初始条件为0,试用欧拉法求输出仿真曲线。 X(k+1)= (I+AT)*X(k)+T*B*R(k) 仿真程序清单如下: #include stdio.h /*函数头文件声明 */ #include stdlib.h #include math.h #include string.h #include graphics.h float outputy[1][5501],ST,DT; int LP,VN; void dispcurve(); main() { float x11,x21,x31,x41,x10,x20,x30,x40,R; int i; x10=0;x20=0;x30=0;x40=0; outputy[0][0]=0; ST=15;DT=0.005; LP=ST/DT;VN=1; R=10; for (i=1;i=LP;i++) { x11=(1-DT/10)*x10-4*DT/10*x40+4/10*DT*R; x21=DT*x10+x20-DT*x40+DT*R; x31=DT/0.5*x20+(1-DT/0.5)*x30; x41=DT/0.1*x30+(1-DT/0.1)*x40; outputy[0][i]=x41; x10=x11;x20=x21;x30=x31;x40=x41; } dispcurve(); } 当DT0.2时,系统输出曲线稳定。 当DT=0.2时,系统输出曲线振荡发散。 程序为llx57.c 例题2:某控制系统如图所示,输入为R=20阶跃函数,初始条件为0,试用欧拉法求输出仿真曲线。 X(k+1)= (I+AT)*X(k)+T*B*R(k) 仿真程序清单如下: #include stdio.h /*函数头文件声明 */ #include stdlib.h #include math.h #include string.h #include graphics.h float outputy[1][5501],ST,DT; int LP,VN; void dispcurve(); main() { float x11,x21,x31,x10,x20,x30,R; int i; x10=0;x20=0;x30=0;outputy[0][0]=0; ST=10;DT=0.005; LP=ST/DT;VN=1;R=20; for (i=1;i=LP;i++)
文档评论(0)