实验四 达林算法仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四 达林算法仿真
一、实验目的
1.设计达林算法的Simulink 仿真模型;
2.用S 函数实现达林算法;
3.观察达林算法中的滞后时间常数和采样周期的选取对系统输出的影响。
二、实验内容 被控对象:1
42)(+=S S G 1.达林算法仿真模型
达林算法的SIMULINK 仿真模型如图4.1所示。达林算法适用于一、二阶惯性加纯滞后环节对象,仿真模型仅对工业控制中常见的一阶惯性加纯滞后环节对象作仿真。
图4.1 达林算法仿真模型
1.达林算法的S 函数实现
达林算法控制器的S 函数程序darlincon.m 清单如下:
function[sys,x0,str,ts]=darlincon(t,x,u,flag,Ttao,T1,K,Tao,T )
global umax k1 k2 k3 uk ek_1 N
switch flag
case 0,
sizes=simsizes;
sizes.NumContStates=0;sizes.NumDiscStates=0;
sizes.NumOutputs=1;sizes.NumInputs=1;
sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;
sys=simsizes(sizes);str=[];
ts=[T 0];
umax=50;N=floor(Tao/T);
uk=zeros(N+2,1);ek_1=0;k1=exp(-T/Ttao);
k2=exp(-T/T1);k3=(1-k1)/K/(1-k2);
case 3,
ek=u;
uk(1)=k3*(ek-k2*ek_1)+k1*uk(2)+(1-k1)*uk(N+2);
if uk(1)>umax
uk(1)=umax;
end
if uk(1)<-umax
uk(1)=-umax;
end
ek_1=ek;
uk(2:N+2)=uk(1:N+1);
sys=[uk(1)];
case{1,2,4,9}
sys=[];
otherwise
error(['Unhandled flag',num2str(flag)]);
end
3.参数设置及系统输出曲线
程序中的斜体部分就是有关的达林算法实现所用的变量和语句。假设对象模型为s e s s G 301
42)(-+=,要求闭环系统时间常数s T 5.4=τ,取采样周期T=1s 。先按对象的参数去设置控制器参数,然后运行仿真模型。仿真结果如图4.2所示。
若欲缩短调节时间,可将闭环时间常数改为s T 2=τ,采样周期仍为T=1s ,再次仿真。仿真结果如图4.3所示。
(a)系统输出 (b )控制量
图4.2 闭环时间常数为4.5s 时的仿真结果
(a)系统输出(b)控制量
图4.3 闭环时间常数为2s时的仿真结果
从图4.2中可见,动态过程确实缩短了,请注意控制量也相应增大了,这是符合实际”情况的。观察图4.2和图4.3的系统输出都没有纹波出现,说明在纯滞后时间是采样周期的整数倍时,无论闭环系统时间常数丁。是大于还是小于惯性时间常数,系统输出都是没有纹波的。倘若纯滞后时间不是采样周期的整数倍时,系统输出将会发生波动。设 =2s,采样周期改为T=1.3s,再次仿真,仿真结果如图4.4所示。若再缩短采样周期,系统的输出波动将更厉害,可以试做一下。
(a)系统输出(b)控制量
图4.4闭环时间常数为2s时,采样周期为1.3s的仿真结果
三、实验预习要求
(1)掌握达林算法;
(2)设计达林算法控制器。
四、实验报告要求
(1)记录不同滞后时间常数和采样周期时系统输出曲线;
(2)分析不同滞后时间常数和采样周期时系统输出曲线的影响。
4.5,4,2,3,1
2,4,2,3,1
2,4,2,3,1.3