-基于PID的多变量解耦控制研究

更新时间:2023-11-26 20:50:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

第1章 绪论

1.1 多变量系统介绍

控制理论的发展经历了经典控制理论、现代控制理论和非线性智能控制理论三个发展阶段。经典控制理论和现代控制理论研究的是线性时不变系统的控制问题。非线性控制理论和智能控制理论则能解决传统控制理论不能很好解决的问题。本文主要研究多变量解耦控制,在工业过程控制中多为内部结构比较复杂,有多个输入和多个输出,存在一定耦合作用的系统。如图1.1所示,输入量为u1(t),u2(t),…, uc(t),输

出量为y1(t),y2(t),…, ym(t).在这样的系统中,为了使各个被控量满足生产要求,往往需要设置若干个控制回路,而这些控制回路之间就可能相互影响、相互关连、相互耦合,其中任何一个回路的控制作用发生变化,将同时会影响其它控制回路中被控制量也发生变化。,它的各个被控制量之间也互有影响,在对某一输出量进行控制时,必然使所有输出量都产生波动,其结果是使控制过程延长,震荡加剧,影响系统的稳定性。所以在设计系统时,必须注意工艺过程中各参数间相关的情况。不然若按各参数相互独立而分别设置相应的控制回路的话,轻则系统不能很好工作,影响产品质量,重则甚至发生严重生产事故。在工业过程控制中要求系统能够安全稳定地运行,有较好的调节性能,能以较小的误差跟踪设定值的变化,或使误差为零。因此需要对耦合系统进行解耦。

[7]

1.2 多变量解耦控制概况

多变量系统的解耦控制大体分为三类:传统解耦控制、自适应解耦控制以及智能

第 1 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

解耦控制。传统的多变量系统的解耦控制是采用微分几何的方法利用反馈,将多变量系统化为从外部看完全解耦的线性系统。这种方法要求被控对象必须用精确的数学模型来描述,因此难于实现自适应控制。

以PID控制理论为基础的控制方法可以对多变量系统进行解耦控制。这种控制有多种类型:数字PID控制方法通过计算机控制系统,可根据采样时刻的偏差计算控制量。自适应PID控制方法能够认识环境条件的变化,并自动校正控制动作使系统能够达到最优或次优的控制效果。模糊控制不要求掌握受控对象的精确数学模型,而根据人工控制规则组织控制决策表,然后由该表决定控制量的大小。单神经元PID控制具有自学习和自适应能力,而且结构简单易于计算。

[8]

1.3 MATLAB语言简介

MATLAB具有强大的编程功能和易操作交互式计算环境。MATLAB语言可以被认为是一种解释性语言,在其工作空间,用户可以在MATLAB的命令窗口中键入一个命令就可以直接进行数学运算,也可以应用MATLAB语言编写应用程序,运行程序及跟踪调试程序。MATLAB中含有极为丰富的专门用于控制系统分析与设计的函数,还可以实现对线性系统的时域或频域分析,设计与建模。SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户的交互接口是基于WINDOWS的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而不是语言的编程上。所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需知道这些模块的输入输出及模块实现的功能,而不必考查模块的内部是如何实现的,通过对这些基本模块的调用,在将它们连接起来就可以构成所需要的系统模型。

[5]

1.4本课题的任务

本课题的任务是在PID控制的基础上进行多变量系统的解耦控制算法研究,并利用MATLAB/SIMULINK对所研究的算法进行数字仿真。

第 2 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

2 PID多变量解耦控制

自从计算机进入控制领域以来,用数字计算机代替模拟计算机调节器组成计算机控制系统,不仅可以用软件实现PID控制算法,而且可以利用计算机的逻辑功能,使PID控制更加灵活。数字PID控制在生产过程中是一种最普遍采用的控制方法。

2.1 PID控制原理

在模拟控制系统中,控制器最常用的控制规律是PID控制。模拟PID控制系统原理框图如图2.1所示。系统由模拟PID控制器和被控对象组成。

比例 r(t) + e(t) 积分 + u(t) 被控对象 c(t) 微分

图2.1 模拟PID控制系统原理框图

PID控制器是一种线性控制器,它根据给定值rin(t)与实验输出值yout(t)构成控制偏差:

error?t??rin?t??yout?t? (2.1) PID的控制规律为:

?1??u?t??kp?errort??TI?或写成传递函数的形式:

?t0error?t?dt?TDderror?t??? ? (2.2)dt?G?s????U?s?1??kp?1??Ts(2.3) D? ?TsE?s?I?? 第 3 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

式中,kp——比例系数;TI——积分时间常数;TD——微分时间常数。 简单来说,PID控制器各校正环节的作用如下:

⑴比例环节:成比例地反映控制系统的偏差信号error?t?,偏差一旦产生,控制器立即产生控制作用,以减少偏差。

⑵积分环节:只要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强。

⑶微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。

[1] [2]

2.2 PID控制算法

2.2.1 位置式PID控制算法

计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此,

在计算机控制系统中,连续PID控制算法不能直接使用,需要采用离散化方法,采用数字PID控制器。

由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量,因此式(2.2)中的积分和微分项不能直接使用,需要进行离散化处理。按模拟PID控制算法的算式(2.2),现以一系列的采样时刻点kT代表连续时间t,以和式代替积分,以增量代替微分,则可作如下近似变换:

????t?kT?k?0,1,2,????kkt????????errortdt?TerrorjT?Terrorj(2.4) ?? ???0j?0j?0????????????errorkT?error?k?1T?errork?errork?1??derrort????TT?dt?式中 T——采样周期。

显然,上述离散化过程中,采样周期T必须足够短,才能保证有足够的精度。将式(2.4)代入式(2.2),可得离散的PID表达式为:

第 4 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

?T??u?k??kp?errork??TI??TD?error?k??error?k?1???error?j????Tj?0? (2.5) kerror?k??error?k?1??kperror?k??ki?error?j?T?kdTj?0k式中 k——采样序号,

u?k?——第K次采样时刻的计算机输出值; error?k?——第K次采样时刻输入的偏差值; error?k?1? ——第K-1次采样时刻输入的偏差值; ki ——积分系数,ki?kpTI;

kd ——微分次数,kd?kpTD。

由z变换的性质

z?e?k?1???z?1E?z?

?k?E?z? z??e?j????1?j?0?1?z式(2.5)的z变换式为

U?z??kpE?z??kiE?z??1??(2.6) ?kEz?zE?z? d?11?z??由(2.6)便可得到数字PID控制器的Z传递函数为

kiU?z??1???kp??k1?zd?1E?z?1?z (2.7)

21G?z??kp?1?z?1??ki?kd?1?z?1??11?zG?z????由于计算机输出的u(k)直接去控制执行机构(如阀门),u(k)的值和执行机构的位置(如阀门开度)是一一对应的,所以通常称式(2.5)或式(2.6)为位置式PID控制算法。图2.2给出了位置式PID控制系统示意图。

第 5 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

r(k) + PID 位置 算法 c(k) D/A u(t) 执行 机构 被控 对象 c(t)

图2.2 位置式PID控制系统

这种算法的缺点是,由于全量输出,所以每次输出均与过去的状态有关,计算时要对e?k?进行累加,计算机运算工作量大。而且,因为计算机输出的u?k?对应的是执行机构的实际位置,如计算机出现故障,u?k?的大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合,还可能造成重大的生产事故,因而产生了增量式PID控制的控制算法。

2.2.2 增量式PID控制算法

所谓增量式PID是指数字控制器的输出只是控制量的增量?u?k?。当执行机构需要的是控制量的增量(例如驱动步进电动机)时,可由式(2.5)导出提供增量的PID控制算式。根据递推原理可得:

k?1??? ??????????u?k?1??kp?errork?1?kerrorj?kerrork?1?errork?2 i?d??(2.8)

j?0??用式(2.5)减式(2.8),可得:

?u?k??kp?error?k??error?k?1???kierror?k??kd?error?k??2error?k?1??e?k?2??? (2.9)

kp?error?k??kierror?k??kd??error?k???error?k?2??式中 ?e?k??e?k??e?k?1?

式(2.9)称为增量式PID控制算法。可以将式(2.9)进一步改写为:

?u?k??Aerror?k??Berror?k?1??Cerror?k?2? (2.10)

式中:

?TTDA?kp?1??T?TI?T??B?kp?1?2D?T??C?kpTDT????

第 6 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

它们都是与采样周期、比例系数、积分时间常数、微分时间常数有关的系数。

r(k) + PID 增量 算法 c(k) 电动机 执行 机构 被控 对象 c(t)

图2.3 增量式PID控制系统框图

可以看出,由于一般计算机控制系统采用恒定的采样周期T,一旦确定了

kp,ki,kd,只要使用前后3次测量值的偏差,即可由式(2.9)或式(2.10)求出控

制增量。

采用增量式算法时,计算机输出的控制增量?u?k?对应的是本次执行机构位置(例如阀门开度)的增量。对应阀门实际位置的控制量,即控制量增量的积累

u?k????u?j?需要采用一定的方法来解决,例如用有积累作用的元件(步进电动机)

j?0k来实现;而目前较多的是利用算式u?k??u?k?1???u?k?通过执行软件来完成。从整个系统而言,位置式与增量式控制算法并无本质区别,或者仍然全部由计算机承担其计算,或者一部分由其它部件去完成。

增量式控制虽然只是算法上作了一点改进,可是却带来了许多优点:

①、由于计算机输出增量,所以误差动作时影响小,必要时可用逻辑判断的方法去掉。

②、手动/自动切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时,由于输出通道或执行装置具有信号的锁存作用,故能仍然保持原值。

③、算式中不需要累加。控制增量?u?k?的确定仅与最近K次的采样有关,所以较容易通过加权处理而获得比较好的控制效果。

但增量式控制也有不足之处:积分截断效应大,有静态误差;溢出的影响大。因此,在选择时不可一概而论,一般认为在以晶闸管作为执行器或在控制精度要求高的系统中,可采用位置控制算法,而在以步进电动机或电动阀门作为执行器的系统中,则采用增量式控制算法。

[1][2]

第 7 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

2.3 多变量PID解耦控制

通过PID控制,可实现多变量控制,图2-4给出一个二变量PID控制系统框图,该系统由两个PID控制器构成,控制算法为:

kerror1?k??error1?k?1?u1?k??kp1error1?k??kd1?ki1?error1?i?TTi?1 (2.11) kerror2?k??error2?k?1?u2?k??kp2error2?k??kd2?ki2?error2?i?TTi?0式中,T为采样时间,error1?k??r1?k??y1?k?,error2?k??r2?k??y2?k?。

r1 PID1 u1 多变量 被控 对象 r2 y1 y2

PID2 u2

图2.4 二变量PID控制系统框

2.4 仿真程序及分析

2.4.1 多变量PID控制的MATLAB语言仿真

仿真实例

设有耦合二变量耦合被控对象:

y2?k??1.0?1?y2?k?1???0.9y2?k?1??0.3u1?k?3??u2?k?2??2y1?k??1.0?1?y1?k?1???0.8y1?k?1??u1?k?2??0.2u2?k?3??2

设采样时间T=1s。给定输入为单位阶跃输入,即:

?r?k???1?R1??1?????r2?k???0? ?r?k???0?R2??1?????r2?k???1?当输入指令为R1时的响应曲线如图2.5所示,当输入指令为R2时的响应曲线如

第 8 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

图2.6所示

1.210.8rin,yout0.60.40.20-0.20500time(s)10001500

图2.5 响应曲线(R=[1;0])

10.90.80.70.6rin,yout0.50.40.30.20.100500time(s)10001500

图2.6 响应曲线(R=[0;1])

仿真程序:

%PID Controller for coupling plant clear all; close all;

u1_1=0.0;u1_2=0.0;u1_3=0.0;u1_4=0.0; u2_1=0.0;u2_2=0.0;u2_3=0.0;u2_4=0.0;

第 9 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

y1_1=0;y2_1=0;

x1=[0;0];x2=[0;0];x3=[0;0];

kp=0.020; ki=0.050; kd=0.0001;

error_1=[0;0]; ts=1;

for k=1:1:1500 time(k)=k*ts;

%Step Signal %R=[1;0]; R=[0;1];

%PID Decouple Controller

u1(k)=kp*x1(1)+kd*x2(1)+ki*x3(1); u2(k)=kp*x1(2)+kd*x2(2)+ki*x3(2); u=[u1(k),u2(k)];

if u1(k)>=10 u1(k)=10; end

if u2(k)>=10 u2(k)=10; end

if u1(k)<=-10 u1(k)=-10;

第 10 页

本文来源:https://www.bwwdw.com/article/lwlt.html

Top