文档详情

Digital Control of Dynamic Systems 动态系统的数字控制实验答案.doc

发布:2019-09-06约2.42千字共8页下载文档
文本预览下载声明
experiment 1: The heat exchanger has the approximate transfer function design a PID controller so that the closed-loop system has a rise time tr15sec and overshoot MP10% to a step input command. Use MATLAB and plot its step response, then change PID’s three parameters (K,TI and Td) from large to small respectively and plot the responses, summarize their control effect. 由 (1) 设由上式可得 又由 得 加之 则 则 故取 那么又由此可得 综上所求得连续PID控制器(连续PID控制器) 或者 (2)根据G(s)和求出的D(s)用Matlab编程如下: np=4; dp=conv(conv([4,1],[10,1]),[1,1]); ant=tf(np,dp); nc=conv([4,1],[10*2.24,1*2.24]); dc=[14,0]; lead1=tf(nc,dc); sysol=lead1*ant; gcg=feedback(sysol,1); step(gcg) 运行的结果如下: 实验2 等效法设计数字控制器 已知对象传递函数 及以下指标: 1、阶跃响应的超调低于10%; 2、调节时间小于10秒; 3、对于斜率为0.01rad/sec的速度输入跟踪误差小于0.01rad; 为系统设计一连续的控制器,之后分别取采样周期为上升时间的六分之一和十分之一对该控制器进行离散等效,用编程方式编写相应的仿真程序,获得仿真结果,对结果进行分析。 求解D(s) 由 设 于是H(s)= (1) 又 (2) 通过(1)、(2)式可推得 其中满足 (1) 则 (2) 则=0.46 (3) 综合取 所以 编程求step响应 程序exp21c.m np=1; dp=[6 1 0]; ant=tf(np,dp); nc=[6*1.44 1*1.44]; dc=[1 1.44]; lead1=tf(nc,dc); sysol=lead1*ant; syscl=feedback(sysol,1); step(syscl,r) 其中1.55(s) 编程求ramp响应,并观察是否满足要求 程序exp22c.m np=1; dp=[6 1 0]; ant=tf(np,dp); nc=[6*1.44 1*1.44]; dc=[1 1.44]; lead1=tf(nc,dc); sysol=lead1*ant; syscl=feedback(sysol,1); t=[1:0.1:20]; u=0.01*t; lsim(syscl,u,t) 用mat中的函数实现数字控制系统,=0.155(s) 程序exp22dmatch.m %T=0.155,matched np=1; dp=[6 1 0]; ant=tf(np,dp); nc=[6*1.44 1*1.44]; dc=[1 1.44]; lead1=tf(nc,dc); sysol=lead1*ant; antd=c2d(ant,0.155,zoh); lead1d=c2d(lead1,0.155,matched); sysold=lead1d*antd; syscl=feedback(sysol,1); syscld=feedback(sysold,1); ud=0.1*feedback(lead1d,antd,-1); step(syscl,r,syscld,k,ud,b); 运行程序2得step图 用零极点匹配(Z-O-M)的方法求D(z) 因为 零点: 极点: 映射后:=0.9745 =0.8 设 又由 由等式两边得 7.8431 其中算得 由MATLAB求得 7.844 z - 7.644 lead1d=------------------- z - 0.8 用零阶保持(Z-O-H)的方法求G(z) 因为 则 根据附录表B.2得 由MATLAB求得 0.001985 z + 0.0019
显示全部
相似文档