1. 引言
随着科技的发展,人们对自动控制系统各种指标的要求日益严苛。对于一个自动控制系统,若调整系统的参数仍无法达到要求的各项性能指标,就需要在系统中附加某些装置,其目的是为了更改系统的构成,使系统拥有一个更完善的性能,满足指标要求。早期超前校正器的设计往往过分依赖于试凑的方法、重复劳动较多,运算量较大,同时又难以得到满意的结果。MATLAB作为一种高性能软件和编程语言,以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作环境中,是进行控制系统计算机辅助设计的方便可行的实用工具。因此,随着计算机的飞速发展和MATLAB软件的普及,本论文借助MATLAB软件,通过编写函数和程序,可以较容易地设计出超前校正器,避免了繁琐的计算和绘图过程,从而为线性控制系统的设计提供了一种简单有效的途径。
2. 研究内容
2.1. 校正及方法介绍
根据装置在系统中的不同连接方式,控制系统校正方式可分为串联校正、反馈校正、前馈校正和复合校正四种 [1] 。本设计采用串联校正的方法,选择该种方法主要是由于串联校正法对信号形式的变换更为简单,同时该种方法也广泛应用于实际校正系统中。常见的串联校正方法有比例校正、比例微分校正、比例积分校正、比例微分–积分校正等 [2] 。
设计校正装置的方法主要有以下几种:
时域法是一种对系统进行研究改善的方法,一般应用于时域,它是为了改变给定的原系统传递函数,增加分子分母多项式,使改善性能后的系统在控制水平上达标。频率法是另一种设计方法,通过在原系统上叠加合适的校正装置,调整原有开环系统的bode图,使得调整后系统的bode图符合性能指标的要求 [3] 。系统性能与bode图中低频有关,可以用截止频率ωc、相角裕度γ来反映。本设计主要采用的方法是根轨迹法。
2.2. 根轨迹法概述
根轨迹法是通过反馈控制系统开环传递函数和闭环特征方程之间的联系提出的一种分析和设计线性定常控制系统的方法 [4] 。无需直接求解特征方程,而是用图解法求解系统的闭环特征根。所谓根轨迹就是开环系统的某一参数从零变到无穷时,闭环系统特征式的根在复平面上移动的轨迹 [5] 。通俗的说就是通过固定的零极点及变化的参数画出特征方程根的位置,不必计算详细的特征方程根,而是用画图的方式解决。
2.3. 具体设计工作
本设计首先通过MATLAB分析原系统性能,仿真出原系统根轨迹图和响应曲线,因原系统不满足指标,应加以校正,故通过MATLAB设计一个校正装置,得出各个环节的数值并与原系统性能叠加,再用Simulink搭建校正前和校正后系统的模型,得到仿真结果。比对结果,得出结论。
3. 基于根轨迹法的校正原理及步骤
本文用根轨迹法对系统进行校正的基本思想是:假设控制系统有一对闭环主导极点,这样系统的动态性能就可以近似地用这对主导极点所描述的二阶系统来表征 [6] 。因此在设计校正器之前必须先把系统时域性能指标转化为一对希望的闭环主导极点通过超前校正器的引入,使校正后的系统工作在这对希望的闭环主导极点处.而闭环的其它极点或远离s平面的虚轴,或靠近某一个闭环零点。
3.1. 根轨迹法校正的基本原理
主导极点:主导极点是一个重要的分析要点,设计校正前首先要分析系统,而主导极点就能很好的用于对系统的分析,引入主导极点概念后,才会想到要把其他极点零极点对消减少对系统性能的影响,尤其是在高阶系统中。根轨迹法是非常实用的,尤其是对于线性的定常系统。在分析回路较多,比较复杂的系统时,根轨迹法要比其他设计方法更容易使用。
根轨迹法有一个基本特点,就是改变零极点的个数可以改变根轨迹的运动曲线。而且,对于性能不好的系统,期望主导极点一般不会落在根轨迹上。用根轨迹法对一个系统进行校正的基本思路为:假设系统有靠近虚轴的一对共轭闭环主导极点,则该系统的动态性能指标可近似地用这对共轭主导极点所描述的系统来表征 [7] 。一对理想的共轭闭环主导极点的位置首先要通过设计校正系统时所提出的时域性能指标计算确定,再通过绘制根轨迹的相角条件来判断 [8] 。若期望闭环极点刚好与实际根轨迹重合,则无需校正,只要调整系统的根轨迹增益即可。反之若期望闭环极点与实际根轨迹不重合,则需要在系统中增添串联校正装置。
3.2. 相位超前校正
添加的校正器可以更改校正前系统的根轨迹路线走向,是根轨迹按照希望的路线走,也就是校正后,系统的根轨迹刚好穿过主导极点,而系统的其他极点要么靠引入的校正装置增加某个闭环零点在该极点旁边实现零极点对消,要么远离复平面的虚轴,极大程度的降低它们对于校正后系统性能的影响。假如改变结构前,系统的根轨迹位于希望的主导极点的右方,设计的校正器就应该拥有一对零极点,极点的位置在零点的左边。选择适当的零点,可以增大阻尼比ξ,减小超调量。
那么相位超前校正对于改善一个系统的性能能起到什么作用呢?从不同的视角观察有不同的结论。首先,它可以让系统增加一个超前的相角。其次可以改变原系统开环频率特性,从而增加相角裕度,提高系统的相对稳定性。如果可以画出系统的bode图,就会发现校正器的校正效果都能加到校正前系统上,又由于叠加了一个超前的相角,所以会使交接频率向右走,使系统能更准确复现输入信号。
3.3. 几何法设计校正装置步骤
假设超前校正装置的传递函数为
式中,z和p分别为零点和极点。
系统校正之前的传递函数为
。若采用画图的方法分析结合根轨迹法制作一个超前校正器,它的具体分析思路如下:
1) 根据响应前期的动态性能的设计要求,找到希望的主导极点
所在。该点在复平面的相角是
;
2) 为了让根轨迹穿过主导极点,要计算出它所需要补偿的角度为
;
3) 确定
的零极点位置,使其所带来的增益最小。首先过点S1做一条水平线S1B相交于虚轴,则
。作
的角平分线S1C交实轴于点c。
在线S1C两侧作
。线S1D、S1E分别于负实轴相较于点b点a,这两个交点就是所求得超前校正器上的零极点,几何图形如图1所示:

Figure 1. Geometry analysis of zero poles with advanced correctors
图1. 超前校正器的零极点几何分析
校正网络的传递函数可以设为:
由图1还能得出以下公式:
令
,则
令
,则
令
,则
令
,则
4. 基于MATLAB用根轨迹法对系统进行校正
由于设计给出的要求是时域性的,而且如果过用频率法来设计超前校正器,就要经常用到试凑的方法,重复的计算要重复多次,计算量也较大,所得的结果往往也不能尽如人意,因此选择根轨迹法。随着MATLAB的出现和功能的丰富,能为使用者省去很多输入复杂代码地时间,提高工作效率。
4.1. MATLAB求期望主导极点
想要求出希望的主导极点的位置,首先要依据设计要求的性能指标进行计算。
将系统要求和公式结合起来构成如下公式:
就可以求出满足条件的阻尼系数ξ。
用MATLAB求希望的主导极点位置,仿真代码如下:
sigma = 0.2 %期望超高量为 20%
zeta =((log(1 /sigma))^2/((pi)^2 +(log(1/sigma))^2))^(1/2);
%根据
求得ξ
wn = 1/zeta; %根据ts(2%) = 4/ξωn求得ωn
p = [1 2 * zeta*wnwn*wn];
s = roots(p) %求期望极点
程序运行后即得到两个期望主导极点的位置:
(1) = −1.0000+ 1.9520i
(2) = −1.0000− 1.9520i
结果显而易见,两个期望主导极点是一对共轭复数根。
4.2. 用MATLAB程序求取校正环节
由MATLAB求取校正环节仿真程序如下:
sl = s(1); %取sl = −1.0000 + 1.9520 i
ng=1; %定义校正前传递函数的分子
dg=[1 5 4 0]; %定义校正前传递函数的分母
ngv = polyval ( ng,sl );
dgv = polyval ( dg,sl );
g = ngv / dgv;
theta = angle(g); %得出相角
phic = pi - theta; %得出φc
phi = angle(s1);
thetaz = (phi+phic)/2; %得出θz
thetap = (phi-phic)/2; %得出θp
zc = real(s1)-imag(s1)/tan(thetaz); %得出ZC
pc = real(s1)-imag(s1)/tan(thetap); %得出PC
nc = [1 -zc]; %得出校正装置的分子
dc = [1 -pc]; %得出校正装置的分母
Gc = tf(nc,dc) %求出校正环节的传递函数
程序运行后得出结果:Transferfunction
根据运行的结果可以得出想要设计的校正装置有两个环节组成,分别是一阶微分环节s + 1.046和惯性环节1/(s + 4.598)组成。
在原系统中叠加上述校正环节后需要进一步求取校正后系统根轨迹,该过程的仿真程序:
G0=tf ( ng,dg); %校正前系统传递函数
rlocus ( Gc*G0) %加上校正环节后系统的根轨迹
程序运行结果如图2所示:

Figure 2. The root locus of the corrected system
图2. 校正后系统的根轨迹
由图2中数据可以看出在期望闭环极点−1.0000 + 1.9520i附近处,系统的增益约为32,故取K = 32,将设计出的校正装置与原系统叠加并调整开环增益便可得出校正后系统传递函数为:
到此,给一个不满足要求的系统进行校正的设计环节已经完成。
再由MATLAB求出添加校正器后系统的时域响应曲线,用来验证系统性能是否满足设计要求。其仿真程序如下:
Step ( feedback ( 32*Gc*G0,1 ) ) %得到时域响应
程序运行结果如图3所示:

Figure 3. The time-domain response curve of the corrected system
图3. 校正后系统的时域响应曲线
由以上校正结果可以得出改进后系统的超调量σ% = 19.6%,调节时间是ts = 3.94 s。而设计要求的超调量σ% = 20%,调节时间是ts = 4 s。可见,经过校正后的系统满足设计要求。
5. 用Simulink仿真验证校正后系统
5.1. Simulink简述
Simulink (Simulink library browser)作为MATLAB推出的一个能交互式操作的软件工具包,它的优秀之处主要体现在对系统的动态模型的建立和系统分析上。不论是线性还是非线性的系统都可以用Simulink来解决。也可以用来处理多个目标的系统。它使得研究人员不必苦恼于复杂的编写代码过程,有更充沛的时间精力用在专业研究上。
Simulink的优点还体现在结构有足够的自主性,可以由使用者任意添加功能板块来满足各种需求。
Simulink的启动也是极为简单的,使用者只需要在主界面选项中选择Simulink即可,或者在窗口输入指令。
5.2. 基于Simulink的系统模型的建立
打开新建的Simulink界面后选择blank model板块中的library browser选项卡从中选出所需原件搭建系统模型,这个板块中含有:连续环节(Continuous)、逻辑和位运算环节(logic and bit operations)、数学运算环节(Math Operations)和非线性环节(Discontinuities)等用来分析和设计控制系统的子模型库 [9] 。
搭建模型的具体过程如下:
1) 确定传递函数模块:找到连续系统板块模型库中合适的传递函数板块拉入模型窗口中,然后更改其参数(分别将分子和分母编辑框中系数向量更改为[32]、[1 5 4 0])。
2) 确定负反馈输入信号:连接负反馈信号的元件是数字运算环节子模块中的Sum模块,选中并更改其参数++改为+−。
3) 确定输入信号:根据输入信号形式的不同,输入源模块中有各种不同信号类型如阶跃信号和正弦信号等信号。本设计的系统输入信号是阶跃信号,故选中step原件拖入模型窗口并更改参数即可。
4) 输出方式的确定:选择输出显示板块组中的Scope拖入窗口即可 [10] 。
5) 最后连线完成建模。
在MATLAB设计校正环节的过程中已经确定主导极点处系统增益约为32,故这里也选取k = 32。
所以该开环传递函数为:
由Simulink搭建的仿真模型如图4所示:

Figure 4. Simulink before correction
图4. 校正前Simulink
仿真模型运行结果如图5所示:

Figure 5. Simulink simulation results before correction
图5. 校正前Simulink仿真结果
由图5容易看出系统响应曲线逐渐发散,开环增益k = 32时根轨迹已经进入复平面虚轴的右侧,所以系统是不稳定的,需要叠加校正环节。
5.3. 基于Simulink的校正系统仿真模型
有了校正环节与校正前系统的开环传递函数这两环节,可以得到改善系统性能后的开环传递函数:
仿真模型如图6所示:

Figure 6. Simulink simulation model after correction
图6. 校正后Simulink仿真模型
为了便于观察分析,将输入和输出叠加为示波器输入校正后Simulink仿真结果如图7所示:

Figure 7. Simulink simulation results after correction
图7. 校正后Simulink仿真结果
由图7示波器图可以清晰的看到响应曲线在3秒内就达到了峰值,调节时间显著缩短在4秒以内,动态响应过程中峰值时
不超过1.2,取
,则其超调量为:
由此,可以得出结论:将设计好的校正器叠加到校正器系统后,系统的各项性能都满足设计的要求。
6. 结束语
本文把解析几何与根轨迹法相结合,给出了一种实现超前校正的定量计算方法,无需精确绘图和繁琐的试凑运算,为线性控制系统的设计提供了一种简便而有效的途径,也为线性系统设计的计算机仿真奠定了又一基础。通过运用该方法对实例控制系统进行校正并用MATLAB编写系统校正前的程序,观察MATLAB程序运行结果得出系统性能尚不满足要求的结论,再次编写程序增添校正装置提高系统性能直到符合设计要求。
本设计采用根轨迹法对系统进行校正,虽然该方法省略较多的计算过程,但是由于本身是以作图的形式给出,因此具有一定的误差。为了避免复杂繁琐的解特征方程式根的过程,也为了使结果更加准确,本论文选择用MATLAB进行校正,然后使用Simulink搭建系统模型并分别得到有无校正器的仿真结果。利用MATLAB中的Simulink仿真验证其动态性能,就可以设计出超前校正器并验证该方法的准确性,具有重要的现实意义和工程应用价值。
注释
文中所有图片均为作者自绘。