1、G0=tf(1,7 1);np,dp=pade(5,2);Gp1=tf(np,dp);Gd=G0*Gp1;G1=tf(2,35 1);Gp2=tf(np,dp);Go=G1*Gp2;Kc=1.5;G3=feedback(Go,Kc);G4=Gd*G3;Kd=1:4length(Kd)G=Kd(i)*G4;step(G);pause %等键盘从图形可以看出,随着扰动通道增益Kd的增加,系统的稳态误差增加,并且扰动作用下的输出响应也增加。放大系数Kd愈大,被控制量的超调量愈大,一般要求Kd愈小愈好)。(2)时间常数对控制系统的影响时间常数T是指当被控对象受到阶跃输入信号作用后,被控量以初始速度变化
2、,达到新的稳态值所需的时间。时间常数T是因为物料或能量的传递需要通过一定的阻力而引起的,反映了被控变量的变化快慢,因此T是对象的一个动态参数。%研究控制通道时间常数T对系统的影响T=25 35 45;length(T)G0=tf(2,T(i) 1);np,dp=pade(10*T(i)/35,2);Gc=feedback(Kc*G1,1);pause;end 假设被控对象的传递函数为G0(s)=2e-10s/(Ts+1),考核系统在单位阶跃信号作用下,不同T值(25,35,45)下系统的响应,运行下列matlab语句,观察响应曲线,得出有关结论。从图形可以看出,随着T的变大,系统的振荡频率变小
3、,系统的动态响应变慢,过渡过程时间加长。时间常数T小,对象动态响应快,控制及时,有利于克服干扰;但T过小,会引起过渡过程的振荡,不利于控制质量提高,因此,T应适当;)设T0=35,改变扰动通道的时间常数Td(10,35,50),观察扰动阶跃响应曲线。4 %研究扰动通道不同时间常数对系统的影响 G1=feedback(G0,Kc);Td=10 35 50;length(Td)Gd=tf(5,Td(i) 1);G=Gd*G1;pause 系统扰动通道的时间常数Td越大,扰动对输出的影响越缓慢,有利于系统克服干扰的影响,提高控制系统质量。时间常数Td愈大,干扰对被控量的影响愈平缓,时间常数Td愈小,
4、干扰对被控量的影响愈大,因此一般要求Td大一些为好;(3)时滞对控制系统的影响控制通道的时滞t0时滞t0指输出变量的变化落后于输入变量变化的时间。滞后的产生是由于介质的输送或热质传递需要一段时间所引起的,时滞t0也反映了被控对象的动态特性。时滞t0的存在使系统的稳定性变差,用t0/T0反映系统时滞的相对影响,t0/T00.2时,简单的控制系统已很难满足要求,要考虑负责方案。试增加t0考察对曲线的影响。扰动通道的时滞 扰动通道的td不会对系统的稳定性产生影响,仅仅表示扰动进入系统的时间先后对系统的动态品质没有影响。三、 实验报告画出各段语句的图形,得出相关结论。实验2 比例积分微分控制规律特性分
5、析一、实验目的本实验通过比例、积分和微分单独的作用及大小的变化,验证比例、积分和微分环节对系统的余差及稳定性的影响。二、实验内容1、比例作用 假设被控系统为Gp(s)=e-50s/(36s+1) r(t)只采用比例控制策略,研究不同Kp值下,闭环系统阶跃响应曲线:u(t)+y(t)运行下列matlab语句,观察响应曲线,得出有关结论。%tf函数:传递函数定义 参数:分子、分母G0=tf(1,36,1);% pade函数:参数1表示e的(-多少s);参数2表示用几阶来逼近np,dp=pade(50,2);G1=tf(np,dp);% GpGp=G0*G1;% P数组表示不同的Kp值P=0.5,0
6、.7,0.9,1,1.5 ;% hold on表示图形可以叠加hold on;length(P) Gc=feedback(P(i)*Gp,1,-1); %定义反馈结构 %求阶跃响应 结论:随着Kp值的变化,控制系统的余差减少,但振荡加剧,振荡周期缩短。2、积分作用假设被控系统为Gp(s)=e-50s/(36s+1),只采用积分策略,研究不同的Ki值下,闭环系统的响应曲线。%研究积分速度对系统调节的影响clearKi=0.005,0.01,0.015,0.02;length(Ki) Gc=tf(Ki(i),1,0) G=feedback(Gc*Gp,1,-1);结论:积分作用可以消除余差,但增大
7、Ki将会降低系统的稳定性,甚至会导致系统不稳定。3、微分作用 由于微分作用不单独采用,所以研究比例微分作用,改变微分时间常数Td,观察系统的闭环系统的响应曲线。%Td对系统调节的影响Kp=0.8;Td=20:5:35; Gc=tf(Kp*Td(i),1,1) G=feedback(Gc*Gp,1); step(G); pause;余差存在,随着Td增加,系统的稳定性变差。4、PID算法比较首先介绍一个函数:1、零极点增益模型形式G(S)= k(S-Z1)(S-Z2)(S-Zm)/(S-P1)(S-P2)(S-Pn)式中: k: 系统增益;z1,z2,zm: 系统零点;p1,p2,pn: 系统极
8、点;注:对实系数的传函模型来说,系统的零极点或者为实数,或者以共轭复数的形式出现。系统的传函模型给出以后,可以立即得出系统的零极点模型。2、在MATLAB下的输入形式在MATLAB里,连续系统可直接用向量z、p、k构成的矢量组【z,p,k】表示系统,即:k=k;z=z1;z2;zm;p=p1;p2;pn;3、函数命令zpk( )在MATLAB中,用函数命令zpk( )来建立控制系统的零极点增益模型,或者将传函模型或者状态空间模型转换为零极点增益模型。zpk( )函数命令的调用格式为:sys = zpk ( z,p,k ) G(S)=6(S+1.9294)(S+0.03530.9287i)/(S
9、+0.95671.2272i)(S-0.04330.6412i)解:k = 6;z = -1.9294;-0.0353+0.9287*i;-0.0353-0.9287*i;p = -0.9567+1.2272*i;-0.9567-1.2272*i;+0.0433+0.6412*i;+0.0433-0.6412*i;G = zpk(z,p,k)假设系统的模型为Gp=10/(s+1)(s+2)(s+3)(s+4),研究不同调节器下闭环系统阶跃响应。%研究不同调节器下闭环系统阶跃响应。Gp=zpk(,-1;-2;-3;-4,10);Kp=6.2; % P调节Gc=Kp;G1=feedback(Gp*
10、Gc,1);step(G1);Ki=1;Gc=tf(Ki,1,0);G2=feedback(Gp*Gc,1);step(G2);Kp=5.5;Ti=2.5; % PI调节Gc=tf(Kp*1,1/Ti,1,0);G3=feedback(Gp*Gc,1);step(G3);Kp=6;Td=0.4; % PD调节Gc=tf(Kp*Td,1,1);G4=feedback(Gp*Gc,1);step(G4);Kp=7.4;Ti=1.5;Td=0.38; % PID调节Gc=tf(Kp*Td,1,1/Ti,1,0);G5=feedback(Gp*Gc,1);step(G5);得出各种控制策略的特点。实验
11、3 数字PID控制算法的实现学习传递函数到离散方程的转换方法。学习数字PID控制算法的编写过程。本实验的PID控制算法采用积分分离的PID算法,假设被控对象为具有时延的惯性环节Gp(s)=e-80s/(60s+1),系统的采样周期为20s,延迟时间为4个采样周期,则被控对象被离散化为yout(k)=-den(2)*y(k-1)+num(2)*u(k-5);采用分段积分分离方式,根据误差绝对值的不同采用不同的积分强度。输入中设定值r(k)=40,控制器输出限制在-110,110内,运行以下语句,比较与普通PID控制的阶跃响应。% 积分分离式 PID% 采样时间ts=20;% 被控对象离散化sys
12、=tf(1,60,1,inputdelay,80); %描述被控对象dsys=c2d(sys,ts,zoh); %进行Z变换 num,den=tfdata(dsys,v%求Z变换分子分母u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;for k=1:1:200; time(k)=k*ts; % 离散化对象 yout(k)=-den(2)*y_1+num(2)*u_5; %离散化后u与y的关系 % I separation rin(k)=40; error(k)=rin(k)-yout(k); ei
13、=ei+error(k)*ts; %ei积分项 M=2; %通过在此处改变M取值来选择是用普通PID或积分分离PID if M=1 %采用分段积分分离方式 if abs(error(k)=30&abs(error(k)=20&=30; beta=0.6;=10&=20; beta=0.9; else beta=1.0; end elseif M=2 %不采用积分分离方式 end kp=0.80; ki=0.005; kd=3.0; u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+beta*ki*ei; % 控制器的输出限制 if u(k)=110 u(k)=
14、110; if u(k)为命令提示符,在命令提示符后面键入一个MATLAB命令时,MATLAB会立即对其进行处理,并显示处理结果。这种方式简单易用,但在编程过程中要修改整个程序比较困难,并且用户编写的程序不容易保存。如果想把所有的程序输入完再运行调试,可以用鼠标点击快捷或File|New|M-file菜单,在弹出的编程窗口中逐行输入命令,输入完毕后点击Debug|Run(或F5)运行整个程序。运行过程中的错误信息和运行结果显示在命令窗口中。整个程序的源代码可以保存为扩展名为“.m”的M文件。在介绍MATLAB的强大计算和图象处理功能前,我们可以先运行一个简单的程序。设系统的闭环传递函数为:求系
15、统的时域响应图,可输入下面的命令: num=1,4; den=1,2,8;step(num,den)图4动态响应时域图程序运行后会在一个新的窗口中显示出系统的时域动态响应曲线,如图4。用鼠标左键点击动态响应曲线的某一点,系统会提示其响应时间和幅值。按住左键在曲线上移动鼠标的位置可以很容易的根据幅值观察出上升时间、调节时间、峰值及峰值时间,进而求出超调量。如果想求根轨迹,可将程序的第三行变为rlocus(num,den),求伯德图可改为bode(num,den)。所不同的是,在根轨迹和伯德图中,G(s)为开环传递函数。MATLAB的语法规则类似于C语言,变量名、函数名都与大小写有关,即变量A和a
16、是两个完全不同的变量。应该注意所有的函数名均由小写字母构成。MATLAB是一个功能强大的工程应用软件,它提供了相当丰富的帮助信息,同时也提供了多种获得帮助的方法。如果用户第一次使用MATLAB,则建议首先在提示符下键入DEMO命令,它将启动MATLAB的演示程序。用户可以在此演示程序中领略MATLAB所提供的强大的运算和绘图功能。2MATLAB基本操作命令本节简单介绍与本书内容相关的一些基本知识和操作命令。(1)简单矩阵的输入MATLAB是一种专门为矩阵运算设计的语言,所以在MATLAB中处理的所有变量都是矩阵。这就是说,MATLAB只有一种数据形式,那就是矩阵,或者数的矩形阵列。标量可看作为
17、11的矩阵,向量可看作为n1或1n的矩阵。这就是说,MATLAB语言对矩阵的维数及类型没有限制,即用户无需定义变量的类型和维数,MATLAB会自动获取所需的存储空间。输入矩阵最便捷的方式为直接输入矩阵的元素,其定义如下:(1) 元素之间用空格或逗号间隔;(2) 用中括号()把所有元素括起来;(3) 用分号(;)指定行结束。例如,在MATLAB的工作空间中,输入:则输出结果为:矩阵a被一直保存在工作空间中,以供后面使用,直至修改它。MATLAB的矩阵输入方式很灵活,大矩阵可以分成n行输入,用回车符代替分号或用续行符号()将元素续写到下一行。例如:以上三种输入方式结果是相同的。一般若长语句超出一行,则换行前使用续行符号()。在MATLAB中,矩阵元素不限于常量,可以采用任意形式的表达式。同时,除了直接输入方式之外,还可以采用其它方式输入矩阵,如:(1) 利用内部语句或函数产生矩阵;(2) 利用M文件产生矩阵;(3) 利用外部数据文件装入到指定矩阵。(2)复数矩阵输
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1