明 飞
(上海电气电站工程公司)
自适应逆控制的关键在于被控对象逆模型的建立,在实际中,绝大部分情况下无法得到被控对象精确的数学模型。 很多情况下,采用一些智能计算方法可得到被控对象的逆模型, 例如Volterra 基 函 数 网 络[1,2]、神 经 网 络[3,4]及 模 糊 系统[5,6]等。
T-S模糊模型由一组if-then规则来建立,其后件部分是一线性等式,被广泛应用于非线性系统的建模与控制。T-S模糊模型应用于自适应逆控制器的基本思路为: 首先根据试验得到输入-输出训练数据,然后在训练数据的基础上进行结构辨识和参数辨识。 结构辨识一般包括输入变量的选择、输入变量空间的划分等,输入变量的选择一般根据运行经验或者专家知识等进行,输入空间的划分方法包括网格法、模糊数法及模糊聚类算法等。 完成T-S模糊模型的结构辨识后,在此基础上进行T-S模糊模型的参数辨识,参数辨识包括前件参数辨识和后件参数辨识。
模糊C均值(Fuzzy C-means,FCM)聚类算法是一种无监督学习算法,常应用于T-S模糊前件参数的辨识。 FCM聚类算法不需要先验知识,直接根据训练数据得到模糊系统的前件部分。 定义了聚类的个数即对应了模糊系统的规则数,可避免模糊系统的规则爆炸问题, 实施起来也较为简单。 后件参数可以通过最小二乘算法或者正交最小二乘算法得出,最小二乘算法是一种较常使用的函数拟合算法,易于实现。
笔者提出一种基于FCM聚类算法的自适应逆控制器设计算法,并通过两个非线性对象的仿真试验验证笔者提出的控制器的控制效果。
T-S模糊模型的if-then规则描述为[7]:
这里,样本表示为(xk,yk)(k=1,2,…,N)。 通过FCM聚类算法,第i条规则的激发隶属度即为数据通过FCM聚类算法得到的隶属度。T-S模糊模型的输出可表示为:
前件参数通过FCM聚类算法得到,步骤为:
a. 根据系统输入-输出数据,生成N对以向量形式描述的训练数据;
b. 对N对训练数据进行聚类运算, 聚类算法结束以后得到c类中心;
c. 每一组训练数据, 根据中心得到c个隶属度,分别对应c条模糊规则的激发隶属度。
在前件参数的基础上,本项目T-S模糊模型的后件参数通过最小二乘(Least Squares,LS)算法计算。 LS算法通过最小化误差的平方和寻找数据的最佳函数匹配。 利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和最小。
根据LS算法,P的最小二乘估计为:
其中,X是根据T-S模糊模型前件参数和输入变量组合得到的一组向量,Y为系统的输出向量。
LS算法有个缺陷就是需要矩阵X是可逆的,这在实际过程中不一定能完全满足,为了避免矩阵求逆,可以采用递推最小二乘算法。 设X的第i个行向量为,Y的第i个分量为Yi,则递推最小二乘算法为:
初始条件P0=0,S0=αI。 α一般取大于10 000的实数,I是L×L的单位矩阵,L=(M+1)c,M是T-S模糊模型的输入变量个数,c是T-S模糊模型的规则数目。
自适应逆控制器的基本思想是用被控对象的逆作为串联控制器来对系统的动态特性进行开环控制,从而避免了因反馈闭环而引起的不稳定问题,同时又能做到对系统动态特性的控制与对象扰动的控制分开处理而互不影响。 与传统的控制类似,自适应逆控制的最终目的是使得系统设定值和系统输出值的偏差最小。
自适应逆控制器的一般结构如图1所示[8]。
图1 自适应逆控制器的一般结构
自适应逆控制器的第1步是建立模糊逆模型。 本项目的模糊逆模型采用T-S模糊模型,其最终模型参数使得模糊逆模型的输出和实际输出的偏差最小,也即模糊逆模型尽可能地拟合实际对象。 自适应逆控制的输入是设定值和对象前几个时刻的输入或者输出,具体的输入变量根据实际对象特性选择。 控制器的参数通过设定值和系统输出的偏差来调整, 调整算法基于最小均方(Least Mean Square,LMS)算法。 这里的模糊逆模型是通过前文描述的FCM聚类算法建立的。
LMS是一种高效的滤波算法[9],是梯度下降法的一种改进,LMS算法无需输入信号和期望信号的特征值, 计算简单, 在平稳信号情况下收敛性好,在自适应控制中应用较为广泛。 其计算式为:
其中,a为T-S模糊模型的后件参数,自适应逆控制器的参数调整即是调整a;μ为学习步长,此处采用固定步长;e(k)为当前时刻设定值和系统输出的误差,e(k)=r-y(k);ω(x(k))为包含了当前模型输入和T-S模糊模型参数的一个表达式,即:
本例选择如下离散对象:
该对象正模型的输入为y(k)和u(k),输出为y(k+1);逆模型的输入为y(k)和y(k+1),逆模型的输出为u(k)。 根据笔者提出的方法,利用FCM聚类算法建立该对象的逆模型。 首先在[-1,1]区间内产生均匀分布的随机数作为系统输入u(k),通过对象模型生成100组建立逆模型所需的输入输出对。 在实际中,训练数据可根据现场运行数据得到。 本例所选择的聚类个数(模糊规则数)为4。 设置系统的期望输出r(k)=0.6sin(2kπ/250)+0.2sin(2kπ/250),图2对比了笔者方法的输出和期望输出曲线,图3为误差曲线。 从图2可以看出,两条曲线基本上是重合的,说明系统输出能够很好地跟踪设定值。 从图3的误差曲线也可以看出误差很小,基本接近于零。
本例选择如下离散对象:
图2 笔者方法和期望输出曲线
图3 笔者方法和期望输出误差曲线
该 对 象 正 模 型 的 输 入 为y(k)、y(k-1)和u(k),输出为y(k+1);逆模型的输入为y(k-1)、y(k)和y(k+1),输出为u(k)。 根据笔者提出的算法,利用FCM聚类算法建立该对象的逆模型。 首先在[-1,1]区间内产生均匀分布的随机数作为系统输入u(k),通过对象模型生成100组建立逆模型所需的输入输出对。 本例选择的聚类个数(模糊规则数)为4。 假设系统的期望输出r(k)=0.6sin(2kπ/250)+0.2sin(2kπ/250),图4对比了笔者方法的输出和期望输出曲线,图5为误差曲线。从图4可以看出,两条曲线基本上是重合的。 从图5的误差曲线也可以看出, 系统输出与设定值的误差较小,基本接近于零。
图4 笔者方法和期望输出曲线
图5 笔者方法和期望输出误差曲线
笔者提出了一种基于FCM聚类算法的自适应逆控制器设计算法。 首先利用FCM聚类算法建立对象的逆模型,FCM聚类算法建模简单, 辨识前件参数数量较少且模糊规则的激发隶属度求解简单。 聚类结果即是模糊规则的激发隶属度,不需要分别求取每个输入变量的隶属度,简化了前件参数的辨识过程。 在逆模型的基础上,设计自适应逆控制器,与被控对象串联,使得系统的输出能够跟踪设定值。 两个非线性对象的仿真试验表明:笔者提出的自适应逆控制器的系统输出与设定值误差较小,系统输出基本上能够立刻跟踪上设定值,验证了笔者提出的算法具有较好的控制效果。