ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:502.44KB ,
资源ID:1280770      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1280770.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(控制系统仿真.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

控制系统仿真.docx

1、控制系统仿真 控制系统仿真实验报告姓名:大葱哥学号:班级:测控12022015.10.28实验一 经典的连续系统仿真建模方法一 实验目的1 了解和掌握利用仿真技术对控制系统进行分析的原理和步骤。2 掌握机理分析建模方法。3 深入理解一阶常微分方程组数值积分解法的原理和程序结构,学习用 Matlab 编写数值积分法仿真程序。4 掌握和理解四阶 Runge-Kutta 法,加深理解仿真步长与算法稳定性的关系。二 实验内容1.编写四阶 Runge_Kutta 公式的计算程序, 对非线性模型 (3) 式进行仿真。仿真程序:主程序:clcclear allu=zeros(2,1);u(1)=0.5%稳态

2、%u(1)=0.55;%阀位增大%10%u(1)=0.45;%阀位减小%10u(2)=0.15; h=zeros(1,2);h(1,1)=1.5;h(1,2)=1.4;hStep = 10;Hlevel = h;nCounter = 25;for t=0:hStep:(nCounter-1)*hStep h = Z06_SystemSimulation_Lab01_Nonlinear_RK4(hStep,t,h,u); Hlevel=Hlevel;h;endfigure(1)plot(0:hStep:nCounter*hStep,Hlevel)grid四阶龙格库塔算法:function RK4

3、_Result = Z06_SystemSimulation_Lab01_Nonlinear_RK4(h,t0,x0,u0)K1=Z06_SystemSimulation_Lab01_Linear_dxCompute(t0,x0,u0);K2=Z06_SystemSimulation_Lab01_Linear_dxCompute(t0+h/2,x0+h*K1/2,u0);K3=Z06_SystemSimulation_Lab01_Linear_dxCompute(t0+h/2,x0+h*K2/2,u0);K4=Z06_SystemSimulation_Lab01_Linear_dxComput

4、e(t0+h,x0+h*K3,u0);RK4_Result = x0 + h*(K1+2*K2+2*K3+K4)/6;(1)将阀位 u 增大 10和减小 10,观察响应曲线的形状;稳态仿真曲线:增大10%:减小10%:(2)研究仿真步长对稳定性的影响,仿真步长取多大时 RK4 算法变得不稳定?仿真步长的选取范围可以通过理论计算获知,这里我们通过仿真得到当步长大于63时,曲线发散,系统不再稳定,发散曲线如下图:(3) 利用 MATLAB 中的 ode45()函数进行求解, 比较与 (1) 中的仿真结果有何区别。2. 编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿

5、真仿真程序clcclear allclose allu=zeros(2,1);u(1)=0.0;%稳态% u(1)=0.05;%阀位增大%10% u(1)=-0.05;%阀位减小%10u(2)=0; h=zeros(1,2);h(1,1)=0;h(1,2)=0;hStep = 10;Hlevel = h;nCounter = 25;for t=0:hStep:(nCounter-1)*hStep h = Z06_SystemSimulation_Lab01_Linear_RK4(hStep,t,h,u); Hlevel=Hlevel;h;end Hlevel(:,1) = Hlevel(:,1

6、)+1.5; Hlevel(:,2) = Hlevel(:,2)+1.4;figure(3)plot(0:hStep:nCounter*hStep,Hlevel)gridhold on(1)将阀位增大 10和减小 10,观察响应曲线的形状;稳态仿真曲线:阀位增大%10:阀位减小%10:(2)研究仿真步长对稳定性的影响,仿真步长取多大时 RK4 算法变得不稳定?当步长大于62时,算法变得不再稳定(3)阀位增大 10和减小 10,利用 MATLAB 中的 ode45()函数进行求解阶跃响应,比较与(1)中的仿真结果有何区别。三 思考题1讨论仿真步长对稳定性和仿真精度的影响。仿真步长越长,系统越倾向

7、于不稳定,仿真步长越短,系统越稳定,但是需要的仿真时间越长。2 你是怎样实现阀位增大和减小10%的?对于非线性模型和线性模型方法一样吗? 通过改变u(1)的初值可以实现对阀位的增大和减小,由于线性模型法是对变量的变化量进行计算的,而非线性模型法是直接对变量进行计算,所以两种方法实现对阀位的增大和减小方面存在一些区别,不完全一致。四 实验总结通过本次实验我学会了Matlab的基本使用方法,对该软件有了一定程度的认识,同时对仿真步长对系统的稳定性和仿真精度的关系有了一定的理解,对一阶常微分方程组数值积分解法的原理和程序结构有了进一步的掌握,深入了解了Runge-Kutta法,对MATLAB软件的仿

8、真有了一定程度的认识,为以后的学习奠定了基础。实验二 面向结构图的仿真第一部分 线性系统仿真一 实验目的1 掌握理解控制系统闭环仿真技术。2 掌握理解面向结构图的离散相似法的原理和程序结构。3掌握 MATLAB 中 C2D 函数的用法,掌握双线性变换的原理。 二 实验内容 1.编写仿真程序,实现无扰动时给定值阶跃仿真实验仿真程序:%面向结构图的离散相似法,线性模型clcclear all%定义参数%A=2; %水箱横截面积ku=0.1/0.5; %阀门流量系数H10=1.5; %水箱1的平衡高度H20=1.4; %水箱2的平衡高度 alpha12 = 0.25/sqrt(H10); %水箱1流

9、向水箱2流量系数alpha2 = 0.25/sqrt(H20); %水箱2流出水流量系数R12=2*sqrt(H10)/alpha12; %线性化数学模型中的参数R2=2*sqrt(H20)/alpha2; %线性化数学模型中的参数H1SpanLo=0; %水箱1量程下限H2SpanLo=0; %水箱2量程下限H1SpanHi=2.52; %水箱1量程上限H2SpanHi=2.52; %水箱2量程上限Kp=1.78; %PI控制器比例系数Ti=85; %PI控制器积分时间常数R12*AR12Kc=Kp/Ti; %式(4)中参数bc=Ti; %式(4)中参数Kd = 1/A; %式(5)中参数

10、ad = 1/(A*R12); %式(5)中参数a1 = 1/(A*R12); %式(6)中参数K1 = ku/A; %式(6)中参数a2 = 1/(A*R2); %式(7)中参数K2 = 1/(A*R12); %式(7)中参数%定义初值%uc(1)=0; %Gc环节(8)的输入初值xc(1)=0; %Gc环节(8)的状态初值yc(1)=0; %Gc环节(8)的输出初值ud(1)=0; %Gd环节(9)的输入初值xd(1)=0; %Gd环节(9)的状态初值yd(1)=0; %Gd环节(9)的输出初值 u1(1)=0; %G1环节(10)的输入初值x1(1)=0; %G1环节(10)的状态初值y

11、1(1)=0; %G1环节(10)的输出初值u2(1)=0; %G2环节(11)的输入初值x2(1)=0; %G2环节(11)的状态初值y2(1)=0; %G2环节(11)的输出初值%nCounter = 70; %迭代次数T=10; %步长k=1;deltaQd=0; %扰动量H20_percent=(H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100; %稳态工作点的液位百分比H2=80; %给定液位百分比tend = nCounter*T;for t=T:T:tend k=k+1; uc(k)= (H2 - (y2(k-1)+H20-H2SpanLo)/(H2Sp

12、anHi-H2SpanLo)*100)/100; %系统(8)的输入百分比 ud(k)=deltaQd; %系统(9)的输入 u1(k)=yc(k-1); %系统(10)的输入 u2(k)=y1(k-1); %系统(11)的输入 xc(k) = xc(k-1) + Kc*T*uc(k-1); yc(k)=xc(k)+bc*Kc*uc(k); xd(k) = exp(-ad*T)*xd(k-1) + Kd/ad*(1-exp(-ad*T)*ud(k);yd(k)=xd(k); x1(k) = exp(-a1*T)*x1(k-1) + K1/a1*(1-exp(-a1*T)*u1(k);y1(k)

13、=x1(k); x2(k) = exp(-a2*T)*x2(k-1) + K2/a2*(1-exp(-a2*T)*u2(k);y2(k)=x2(k); endHlevel(:,1)=(y1+H10-H1SpanLo)/(H1SpanHi-H1SpanLo)*100;Hlevel(:,2)=(y2+H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100;yc=(yc+0.5)*100;y2sp=H2*ones(size(y1);yv=yc; textPositionH1=max(Hlevel(:,1); textPositionH2=max(Hlevel(:,2); H2St

14、eady=Hlevel(size(Hlevel(:,1),1),1)*ones(size(y1); xmax=max(0:T:tend); xmin=0; ymax=110; ymin=50; scrsz = get(0,ScreenSize); gca=figure(Position,5 10 scrsz(3)-10 scrsz(4)-90); %gca=figure(Position,5 10 scrsz(3)/2 scrsz(4)/1.5) set(gca,Color,w); plot(0:T:tend,Hlevel(:,1),r,LineWidth,2) hold on plot(0:

15、T:tend,Hlevel(:,2),b,LineWidth,2) hold on plot(0:T:tend,yv,k,LineWidth,2) hold on plot(0:T:tend,y2sp,g,LineWidth,2) hold on plot(0:T:tend,H2Steady,y,LineWidth,2) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/10 (ymax-ymin)/2+ymin-(ymax-ymin)/10,Color,r,LineWidth,6) text(tend/2+27,(ymax-ymin)/

16、2+ymin-(ymax-ymin)/10, 第1个水箱的液位H1,FontSize,16) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/6 (ymax-ymin)/2+ymin-(ymax-ymin)/6,Color,b,LineWidth,6) text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/6, 第2个水箱的液位H2,FontSize,16) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/4.2 (ymax-ymin)/2+

17、ymin-(ymax-ymin)/4.2,Color,g,LineWidth,6) text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/4.2, 第2个水箱的液位给定值,FontSize,16) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/3.2 (ymax-ymin)/2+ymin-(ymax-ymin)/3.2,Color,k,LineWidth,6) text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/3.2, 阀位变化情况,FontSize,16

18、) axis(xmin xmax ymin ymax); text(tend/5,ymax+1.5, 实验二 不考虑阀位饱和特性时的控制效果,FontSize,22) grid %hold off仿真实验曲线:由控制的效果可以看出,阀位的变化出现了超过100%的情况,这是控制系统中不允许出现的,说明控制功能需要改进。三 思考题在未考虑调节阀饱和特性时, 讨论一下两个水箱液位的变化情况, 工业上是否允许?讨论阀位的变化情况,工业上是否能实现?答:在未考虑调节阀饱和特性时,两个水箱的液位在阀位一开始大开时,H1,H2液位上升迅速,很快就达到预期值。但是其控制不能在工业上实现,没有实际可行度。除此之

19、外,阀位有其本身的最大最小的限制,在仿真中出现的超过100%的情况在现实生活中不可能出现,因此这一部分对应的控制效果在工业上不能实现。四 实验总结 通过本次实验,我对控制系统闭环仿真技术有了进一步的认识,掌握了面向结构图的离散相似法的原理和程序结构,了解了双线性变换的原理,收获颇丰。第二部分 含有非线性环节的控制系统仿真一 实验目的4 掌握理解控制系统闭环仿真技术。5 掌握理解面向结构图的离散相似法的原理和程序结构。6 掌握理含有非线性环节的控制系统的仿真方法。二 实验内容根据上面的各式,编写仿真程序,实现无扰动时给定值阶跃仿真实验仿真程序:%面向结构图的离散相似法,非线性模型clcclear

20、 allA=2;ku=0.1/0.5;H10=1.5;H20=1.4;alpha12 = 0.25/sqrt(H10);alpha2 = 0.25/sqrt(H20);R12=2*sqrt(H10)/alpha12;R2=2*sqrt(H20)/alpha2;H1SpanLo=0;H2SpanLo=0;H1SpanHi=2.52;H2SpanHi=2.52; Kp=3.91/2.2;Ti=0.85*100;%Kp=3.21;%Ti=99999999999999;ad = 1/(A*R12);a1 = 1/(A*R12);a2 = 1/(A*R2);Kc=Kp/Ti;bc=Ti;Kd = 1/A

21、;K1 = ku/A;K2 = 1/(A*R12);uc(1)=0;uv(1)=0;ud(1)=0;u1(1)=0;u2(1)=0;xc(1)=0;xv(1)=0;xd(1)=0;x1(1)=0;x2(1)=0;yc(1)=0;yv(1)=0;yd(1)=0;y1(1)=0;y2(1)=0;nCounter = 70;T=10;k=1;deltaQd=0;c=0.5;H20_percent=(H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100;H2set_percent=82;tend = nCounter*T;for t=T:T:tend k=k+1; uc(k)=

22、(H2set_percent - (y2(k-1)+H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100)/100; uv(k)=yc(k-1); ud(k)=deltaQd; if uv(k)c yv(k)=c; end if uv(k)-c yv(k)=0; end if uv(k)=-c yv(k)=uv(k); end u1(k)=yv(k); u2(k)=y1(k-1); xc(k) = xc(k-1) + Kc*T*uc(k-1); yc(k)=xc(k)+bc*Kc*uc(k); xd(k) = exp(-ad*T)*xd(k-1) + Kd/ad*(1-e

23、xp(-ad*T)*ud(k);yd(k)=xd(k); x1(k) = exp(-a1*T)*x1(k-1) + K1/a1*(1-exp(-a1*T)*u1(k);y1(k)=x1(k); x2(k) = exp(-a2*T)*x2(k-1) + K2/a2*(1-exp(-a2*T)*u2(k);y2(k)=x2(k);endHlevel(:,1)=(y1+H10-H1SpanLo)/(H1SpanHi-H1SpanLo)*100;Hlevel(:,2)=(y2+H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100;yv=(yv+0.5)*100;y2sp=H2se

24、t_percent*ones(size(y1); textPositionH1=max(Hlevel(:,1); textPositionH2=max(Hlevel(:,2); H2Steady=Hlevel(size(Hlevel(:,1),1),1)*ones(size(y1); xmax=max(0:T:tend); xmin=0; ymax=110; ymin=50; scrsz = get(0,ScreenSize); gca=figure(Position,5 10 scrsz(3)-10 scrsz(4)-90) %gca=figure(Position,5 10 scrsz(3

25、)/2 scrsz(4)/1.5) set(gca,Color,w); plot(0:T:tend,Hlevel(:,1),r,LineWidth,2) hold on plot(0:T:tend,Hlevel(:,2),b,LineWidth,2) hold on plot(0:T:tend,yv,k,LineWidth,2) hold on plot(0:T:tend,y2sp,g,LineWidth,2) hold on plot(0:T:tend,H2Steady,y,LineWidth,2) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax

26、-ymin)/10 (ymax-ymin)/2+ymin-(ymax-ymin)/10,Color,r,LineWidth,6) text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/10, 第1个水箱的液位H1,FontSize,16) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/6 (ymax-ymin)/2+ymin-(ymax-ymin)/6,Color,b,LineWidth,6) text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/6, 第2个

27、水箱的液位H2,FontSize,16) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/4.2 (ymax-ymin)/2+ymin-(ymax-ymin)/4.2,Color,g,LineWidth,6) text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/4.2, 第2个水箱的液位给定值,FontSize,16) line(tend/2 tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/3.2 (ymax-ymin)/2+ymin-(ymax-ymin)/3.

28、2,Color,k,LineWidth,6) text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/3.2, 阀位变化情况,FontSize,16) axis(xmin xmax ymin ymax); text(tend/5,ymax+1.5, 实验三 考虑阀位饱和特性时的控制效果,FontSize,22) grid %hold off仿真实验曲线:三 思考题与实验三相比,考虑调节阀饱和特性前后,响应有何不同?答:与实验三相比,调节饱和特性阀前后调进行对比,H1、H2的液位在考虑饱和特性之后,响应曲线比不考虑的时候略微平缓一些,阀位的调节没有出现超过10

29、0%的情况。四 实验总结通过本次实验,我认识了面向结构图的离散相似法的原理和程序结构,掌握了理含有非线性环节的控制系统的仿真方法。实验三 采样系统的仿真一 实验目的1 掌握理解数字控制系统的仿真技术。2 掌握理解增量式 PID 数字控制器的实现方法。二 实验内容 1根据上面的各式,编写仿真程序。仿真程序:clcclear allclose all;A=2;ku=0.1/0.5;H10=1.5;H20=1.4;alpha12 = 0.25/sqrt(H10);alpha2 = 0.25/sqrt(H20);R12=2*sqrt(H10)/alpha12;R2=2*sqrt(H20)/alpha2;H1SpanLo=0;H2SpanLo=0;H1SpanHi=2.52;H2SpanHi=2.52;K

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2