清华大学《控制工程基础》课件5_清华控制工程基础课件

2020-02-27 教学课件 下载本文

清华大学《控制工程基础》课件5由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“清华控制工程基础课件”。

由此得

数字PID调节器的脉冲传递函数为

系统的闭环传递函数为

系统在单位阶跃输入时输出量的稳态值为

由该例可见,由于积分的控制作用,对于单位阶跃输入,稳态误差为零。由于微分控制作用,系统的动态特性得到很大改善,调节时间缩短,超调量减小。

PID控制器参数的调整方法

1)极点配置法

将系统闭环极点配置在希望极点上,利用解析法确定PID参数。2)瞬态响应法

如果被控对象的阶跃响应如下图所示,其瞬态响应曲线的最大斜率为

,时延为

根据

可确定P,PI和PID控制器的参数。

3)极限灵敏度法

这种方法要求首先用比例控制器来控制系统,逐步增大控制器增益,直到闭环系统达到稳定的边缘,系统处于恒幅振荡状态,测出控制器的增益

和系统振荡周期

。根据这两个参数就可以确定控制器的参数。

数字PID控制器的改进

如果单纯地用数字PID控制器去模仿模拟调节器,效果是有限的。充分发挥计算机运算速度快、逻辑判断功能强、编程灵活等优势,才能达到更好的性能。

(1)积分项的改进

(ⅰ)积分分离

在一般的PID控制中,当有较大的扰动或大幅度改变给定值时,由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调和长时间的波动。特别对于变化缓慢的过程,这一现象更为严重。为此,可采用积分分离措施,即偏差较大时,取消积分作用;当偏差较小时才将积分作用投入。

(ⅱ)抗积分饱和

因长时间出现偏差或偏差较大,计算出的控制量有可能溢出,或小于零。作为防止积分饱和的办法之一,可对计算出的控制量u(k)限幅,同时,把积分作用切除掉。

(iii)消除积分不灵敏区

由于计算机字长的限制,当运算结果小于字长所能表示的数的精度时,计算机就作为“零”将此数丢掉。当计算机的运行字长较短,采样周期T也短,而积分时间又较长时,容易出现小于字长的精度而丢数,此积分作用消失,称为积分不灵敏区。

为了消除积分不灵敏区,通常采用以下措施:

①增加A/D转换位数,加长运算字长,这样可以提高运算精度。

②当积分项连续n次出现小于输出精度ε的情况时,不要把它们作为“零”舍掉,而是把它们一次次累加起来,直到累加值大于ε时,输出该值,同时把累加单元清零。

(2)微分项的改进

标准的PID控制算式,对具有高频扰动的系统,微分作用响应过于灵敏,容易引起系统振荡,降低调节品质。为了克服这一不足,同时又要使微分作用有效,可以在PID控制输出串联一阶惯性环节,抑制高频噪声,这就组成了不完全微分PID控制器。

(3)时间最优PID控制

根据快速时间最优控制原理,使系统从一个初始状态转到另一个状态所经历的过渡时间最短的最优系统,采用开关控制(Bang-Bang控制)系统。但Bang-Bang控制很难保证足够高的定位精度,因此对于高精度的快速伺服系统,宜采用Bang-Bang控制和线性控制相结合的方式,在定位线性控制段采用数字PID控制就是可选的方案之一。

最少拍系统

在数字随动系统中,最少拍系统的设计占据重要的地位。对于最少拍系统,侧重快速性,即系统通过最少的采样周期使系统稳态误差为零。

1.最少拍控制器设计

当输入

时,当输入

时,当输入

时,………………………………………… 综上,其典型输入z变换式可归结为

其中,A(z)为不包含

因式的的多项式。

令,则

稳态误差为零,即

可见应有

根据最少拍要求,W(z)=1,则

当输入

时,(一拍)当输入

时,(二拍)当输入

时,(三拍)

因为

所以

可见,最少拍系统针对不同的输入,其数字控制器的D(z)也不同。不难看出,最少拍系统要求闭环极点在z平面原点。另外,最少拍系统不一定是无波纹系统。

最少拍控制器的设计是使系统对某一典型输入的响应为最少拍,但对于其它典型输入不一定为最少拍,甚至会引起大的超调和静差。

一般来说,针对一种典型的输入函数设计,得到系统的闭环脉冲传递函数,用于次数较低的输入函数时,系统将出现较大的超调,响应时间也会增加,但在采样时刻的误差为零。反之,当一种典型的最少拍特性用于次数较高的输入函数时,输出将不能完全跟踪输入以致产生稳态误差。由此可见,一种典型的最少拍闭环脉冲传递函数只适应一种特定的输入而不能适应于各种输入。

另外,系统过渡过程虽然能在有限拍内结束,但对采样周期T也有一定的限制,要求采样周期T不能太短,否则要求系统具有很大的控制功率,而且当系统中某些元件发生饱和现象时,系统不再遵循最小拍控制规律;同时,系统所有极点都要控制在z平面的原点,这是理论上的分析,要实现该条件是非常苛刻的,实际上系统的参数不是恒定不变的,由于温度变化、元件老化等原因引起系统参数微小变化,都会使系统性能变差。

控制工程基础

(第十一章)

清华大学

第十一章

Matlab软件工具 在控制系统分析和综合中的应用

•Matlab基本特点

•控制系统在Matlab中的描述 •进行部分分式展开

•控制系统的时间响应分析 •控制系统的频域响应分析 •控制系统的根轨迹图 •系统稳定性分析 •Simulink仿真工具

1、matlab基本特点

Matlab简介:

•1980年前后,美国moler博士构思并开发;

•最初的matlab版本是用fortran语言编写,现在的版本用c语言改写; •1992年推出了具有划时代意义的matlab 4.0版本;并于1993年推出了其windows平台下的微机版,6.5版是比较新的版本。Matlab语言特点:

Matlab以复数矩阵为最基本的运算单元,既可以对它整体地进行处理,也可以对它的某个或某些元素进行单独地处理。在matlab中,数据的存储/输入/输出都是以矩阵为基础的,矩阵和其它变量不需要预先定义。matlab语言最基本的赋值语句结构为

变量名列表=表达式

等号右边的表达式可以由分号结束,也可以由逗号或换行结束,但它们的含义是不同的。如果用分号结束,则左边的变量结果将不在屏幕上显示出来,否则将把左边返回矩阵的内容全部显示出来。如

» A=[1,0,1;1,0,0;2,1,0];

» B=[1,0,2;2,1,1;1,0,1] B =

0

0

在matlab下,矩阵A和矩阵B的乘积(假定 其中A,B矩阵是可乘的)可以简单地由运 算C=A*B求出 » C=A*B C =

0

0

而D=A.*B称点乘积运算,即表示A和B矩阵 的相应元素之间直接进行乘法运算,然后

将结果赋给D矩阵,点乘积运算要求A和B矩 阵的维数相同。» D=A.*B D=

0

0

0

0

0

Matlab下提供了两种文件格式: m文件,matlab函数

•M文件是普通的ascii码构成的文件,在这样的文件中只有由matlab语言所支持的语句,类似于dos下的批处理文件,它的执行方式很简单,用户只需在matlab的提示符>>下键入该m文件的文件名,这样matlab就会自动执行该m文件中的各条语句。它采用文本方式,编程效率高,可读性很强。

•Matlab函数是最常用的特殊m文件,该函数是由function语句引导,其基本格式如下

Function 返回变量列表=函数名(输入量列表)

注释说明语句段

函数体语句

调用时在matlab的提示符下键入函数名,并包括输入变量。类似于c语言的子程序调用。如 Function plot_sin(xmin,xmax)X=xmin:min(0.01,(xmax-xmin)/100):xmax;Plot(x,sin(x));% This is a demo

2、控制系统在matlab中的描述

要分析系统,首先需要能够描述这个系统。例如用传递函数的形式描述系统

在matlab中,用num=[b1,b2,…,bm,bm1]和den=[a1,a2,…,an,an1]

分别表示分子和分母多项式系数,然后利用下面的语句就可以表示这个系统

sys=tf(num,den)其中tf()代表传递函数的形式描述系统,还可以用零极点形式来描述,语句为

sys1=zpk(sys)

而且传递函数形式和零极点形式之间可以相互转化,语句为

[z,p,k] = tf2zp(num,den)

[num,den] = zp2tf(z,p,k)当传递函数复杂时,应用多项式乘法函数conv()等实现。例如

den1=[1,2,2]

den2=[2,3,3,2]

den=conv(den1,den2)

3、进行部分分式展开

对于下列传递函数

num和den分别表示传递函数的分子和分母的系数,即

num=[bo,bl,…,bn]

den=[1,al.…,an] 命令

[r,p,k]=residue(num,den)

将求出传递函数的部分分式展开式中的留数、极点和余项,即得到

例:

对于下列系统传递函数

分子分母表示为

num=[0,1,3]

den=[1,3,2] 采用命令

[r,p,k]=residue(num,den)得到

[r,p,k]=residue(num,den)

r=2.0000

-1.0000 p=

-1.0000 -2.0000 k= [] 即

反之,利用下列命令

[num,den]=residue(r,p,k)可以将部分分式展开式返回到传递函数多项式之比的形式,即得到

[num,den]=residue(r,p,k)num=

0.0000

1.0000

3.0000 den= 1.0000

3.0000

2.0000 当包含m重极点时,部分分式展开式将包括下列m项:

对于下列系统传递函数

分子分母表示为

num=[0,1,2,3]

den=[1,3,3,1] 采用命令

[r,p,k]=residue(num,den)

得到

num=[0 1 2 3]; den=[1 3 3 1];

[r,p,k]=residue(num,den)

r= 1.0000 0.0000 2.0000 p=

-1.0000 -1.0000 -l.0000 k= [] 即

4、线性系统的时间响应分析

Matlab的Control工具箱提供了很多线性系统在特定输入下仿真的函数,例如连续时间系统在阶跃输入激励下的仿真函数step(),脉冲激励下的仿真函数impulse()及任意输入激励下的仿真函数lsim()等,其中阶跃响应函数step()的调用格式 [y,x]=step(sys,t)或[y,x]=step(sys)

其中sys可以由tf()或zpk()函数得到,t为选定的仿真时间向量,如果不加t,仿真时间范围自动选择。此函数只返回仿真数据而不在屏幕上画仿真图形,返回值y为系统在各个仿真时刻的输出所组成的矩阵,而x为自动选择的状态变量的时间响应数据。如果用户对具体的响应数值不感兴趣,而只想绘制出系统的阶跃响应曲线,则可以由如下的格式调用step(sys,t)或step(sys)

求取脉冲响应的函数impulse()和step()函数的调用格式完全一致,而任意输入下的仿真函数lsim()的调用格式稍有不同,因为在此函数的调用时还应该给出一个输入表向量,该函数的调用格式为

[y,x]=lsim(sys,u,t)

式中,u为给定输入构成的列向量,它的元素个数应该和t的个数是一致的。当然该函数若调用时不返回参数,也可以直接绘制出响应曲线图形。例如

sys=tf(num,den)

t = 0:0.01:5;

u = sin(t);

lsim(sys,u,t)

为单输入模型sys对u(t)=sin(t)在5秒之内的输入响应仿真。

MATLAB还提供了离散时间系统的仿真函数,包括阶跃响应函数dstep(),脉冲响应函数dimpulse()和任意输入响应函数dlsim()等,它们的调用方式和连续系统的不完全一致,读者可以参阅MATLAB的帮助,如在MATLAB的提示符>>下键入help dstep来了解它们的调用方式

时域分析常用函数如下:

step

对指定输入的连续输出 gensig

频率响应乃奎斯特图

nichols

零极点图

使用时可以利用他们的帮助,如help bode。

另外,命令ltiview可以画时域响应和频域响应图,利用help ltiview查看使用说明。

对于下列系统传递函数

下列MATLAB Programl1.4将给出该系统对应的伯德图。其伯德图如图4所示。

----MATLAB Programl1.4----

num=[0,0,50];

den=[25,2,1];

bode(num,den)

grid

title('Bode Diagram of G(s)=50/(25s^2+2s+1)')

如果希望从0.01弧度/秒到1000弧度/秒画 伯德图,可输入下列命令:

w=logspace(-2,3,100)

bode(num,den,w)该命令在0.01弧度/秒和100弧度/秒之间 产生100个在对数刻度上等距离的点

对于下列系统传递函数

下列MATLAB Programl1.5将给出该系统对应的伯德图。其伯德图如图5所示。

----MATLAB Programl1.5----num=[10,30];den1=[1,2,0];den2=[1,1,2];den=conv(den1,den2);w=logspace(-2,3,100);bode(num,den,w)grid title('Bode Diagram of G(s)=10(s+3)/s(s+2)(s^2+s+2)')

对于下列系统传递函数

下列MATLAB Programl1.6将给出该系统对应的乃奎斯图。其乃奎斯特图如图6所示。----MATLAB Programl1.6----

num=[0,0,50];

den=[25,2,1,];

nyquist(num,den)

title('Nyquist Plot of G(s)=50/(25s^2+2s+1)')

考虑由下列方程定义的系统:

该系统包含两个输入量和两个输出量。这里存在4种正弦输出-输入关系:Y1(jω)/U(、ljω)Y2(jω)/Ul(jω)、Y1(jω)/U2(jω)和Y2(jω)/U2(jω)。试画出该系统的奈魁斯特图。

A=[-1-1;6.5 0];B=[1 1;1 0];C=[1 0;0 1];D=[0 0;0 0];nyquist(A,B,C,D)

6、控制系统的根轨迹图

通常采用下列MATLAB命令画根轨迹

rlocus(num,den)

利用该命令,可以在屏幕上得到画出的根轨迹图。增益向量K自动被确定。命令rlocus既适用于连续系统,也适用于离散时间系统。对于定义在状态空间内的系统,其命令为

rlocus(A,B,C,D)

MATLAB在绘图命令中还包含自动轴定标功能。

对于一单位反馈控制系统,其开环传递函数为

下列MATLAB Programl1.7将给出该系统对应的根轨迹图。其根轨迹图如图7所示。

---------MATLAB Programl1.7-----------num=[1,3];den1=[1,2,0];den2=[1,1,2];den=conv(den1,den2);rlocus(num,den)v=[-10 10-10 10];axis(v)grid title('Root-Locus Plot of G(s)=K(s+3)/s(s+2)(s^2+s+2)')

7、系统稳定性分析

给定一个控制系统,可利用MATLAB在它的 时域、频域图形分析中看出系统的稳定性,并可直接求出系统的相角裕量和幅值裕量。此外,我们还可通过求出特征根的分布更 直接地判断出系统稳定性。如果闭环系统 所有的特征根都为负实部则系统稳定。

例如,给出控制系统闭环传递函数为

» num=[3,2,1,4,2] num =» den=[3,5,1,2,2,1] den =» [z,p]=tf2zp(num,den)

z =

0.4500 + 0.9870i

0.45000.6801i

-0.4403 + 0.3673i

-0.44030.6801i 以上求出具体的零极点、画出零极点分布、明确指出系统不稳定,并指出引起系统不稳定的具体右根。

8、Simulink仿真工具

如果控制系统的结构很复杂,则若不借助专用的系统建模软件,在过去很难准确地把一个控制系统的复杂模型输入给计算机,对之进行分析和仿真。1990年MathWorks软件公司为MATLAB提供了新的控制系统模型图形输入与仿真工具,命名为SIMULINK,这一名字的含义相当直观,SIMU(仿真)与LINK(连接),亦即可以利用鼠标器在模型窗口上“画”出所需的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真或线性化。这种法的一个优点是,可以使得一个很复杂系统的输入变得相当容易且直观。

首先根据一个例子来说明控制系统框图模型的建立,这是一个简化的调速系统。我们看如何利用Simulink工具输入这个框图,然后再进行分析。具体利用Simulink建立框图的方法见网络辅助教学中“控制工程基础”第11章有关内容。

下图是Matlab中Simulink工具建立的例题框图。可以点击图中Simulation下的start图标开始仿真,然后双击框图中的scope,查看仿真图形。其他仿真命令大家可以自行学习。

《清华大学《控制工程基础》课件5.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
清华大学《控制工程基础》课件5
点击下载文档
相关专题 清华控制工程基础课件 清华大学 课件 控制工程 清华控制工程基础课件 清华大学 课件 控制工程
[教学课件]相关推荐
    [教学课件]热门文章
      下载全文