当前位置:首页 期刊杂志

自适应类神经网络控制器在时变系统中的应用

时间:2024-07-28

章 磊,姚庆文,徐 伟,李 燕

(常州轻工职业技术学院机械工程与技术学院,江苏 常州 213164)

0 引言

传统的自适应控制[1](adaptive control,AC),使用最小平方差法来估测一个时变系统的参数。由于大量矩阵的运算,再加上计算机运算数值的舍去误差,以及外在环境白噪声的干扰和受控系统降级所造成的不确定性,很容易引起数值解析上奇异点的问题,进而影响整个闭回路控制系统的响应与稳定性。若采用传统最小平方差估测法则的自适应控制理论,会使整个闭回路控制系统的容错性变差,进而造成系统不稳定甚至劣化控制响应。

随着半导体硬件制程技术及软件开发技术的飞速发展,个人计算机具备了强大且快速的运算能力,使得AC类神经网络与深度学习的运算得以在现实生活中实现。同时,借助优化搜索理论与应用技术,使Tensorflow[2]多层类神经网络的应用变得更加自如。

针对以上控制问题,本文特别提出一种使用Tensorflow框架在线检测与识别一个时变系统参数的多层类神经网络[3](multi-layer artificial neural network,MANN)自适应控制器。在数值解析领域,多层类神经网络系统对高度不确定性时变系统的参数检测有很大的容错性及强健性(robustness)。此外,自适应控制器是采用两个自由度控制器设计的架构。它不但具有前馈控制与回授控制两者的优点,还具有极点配置设计法的稳定性与强韧性。在获取受控系统的参数值之后,利用极点配置设计法计算出前馈控制器与回授控制器的参数,最后完成整个多层类神经网络自适应控制器的参数识别。该系统的设计融合多层类神经网络的容错性及强健性优势,且与自适应控制器伺服追踪零误差,并具有回授控制的稳定性等多项优异的性能。

1 间接型多层控制器系统总体方案

现有的类神经网络控制器,大多是在类神经网络训练之后,继续在该软件框架下直接使用。使用时需要配合计算机或其他高阶硬件设备,便捷性有待完善。计算机应用如图1所示。图1中,G(s)为受控制系统。

图1 计算机应用示意图

即使使用小型计算器,如树莓派[4]等,在现有的软件框架下仍较容易产生计算延迟。对此,提出一种方法,将训练与应用两部份分开。训练与应用分离如图2所示。

图2 训练与应用分离示意图

在计算机上训练类神经网络,并将它训练完的权重与偏差的矩阵资料编译至微处理机上。微处理机仅作资料预处理以及矩阵运算即可,实际应用时无需连接计算机。在微处理机上直接作控制,仅需搭配人机接口以及电源供应器等的周边装置。该方法可以大幅降低装置体积与成本。

2 间接型多层控制器模型

2.1 类神经网络的数学模型

文献[5-6]指出,系统中的多层感知器(multilayer perceptron,MLP)的层与层之间的数学运算式为:

f(xw+b)=y

(1)

输入层的数据x与权重w内积后加上偏差b,输出前再经过激励函数。激励函数的功能是将输出作非线性处理,使类神经网络可以适应各种非线性问题。

一般的多层感知器至少包含三层结构,分别为输入层、隐藏层和输出层。

(2)

层与层之间的构建与传递通常使用Relu激活函数[7],它的优势为可减少梯度消失、不易过拟合等。最终使用的激活函数根据运用场合选择适当的模型。使用的模型有Softmax[8]、Sigmoid[9]、Tanh[10]等。Softmax将输出转换为概率,它的总和为1,适用于多选项的分类。Sigmoid会将输出的结果用非线性方式转换至0~1的范围、Relu可将负数归零,其余不变,需要时可直接得到输出,控制数值可以不加。训练与应用过程中的控制信号U在必要时可以忽略。

2.2 TensorFlow符号数学系统

更新权重与偏差的设计理念来自于TensorFlow提供的多种优化方法,例如梯度下降法[11]、RMSprop[12]、Adam[13]、NAdam[14-15]等。它是大数据开源程序库,提供各种方法与函数,由此建构需要的训练模型,并采用Python、C++运行。Python有丰富的第三方模块,可大幅减少编译难度,提升使用便捷性。

Python的编译方式跟以往的程序语言不一样。其不是从上到下逐行执行,而是需要先建构计算图,再使用会话控制的run方法来运行。

2.3 间接自适应控制过程

自校正调节器是通过实时的识别系统和环境变化来产生自适应参数,使受控系统达到期望目标。其适应的方式分为直接与间接两种。间接自适应是先识别出系统参数A、B,再使用系统参数去推导控制参数R、T、S,最后代入式(3)。直接自适应则是直接测算出控制参数,不作系统识别。

Ru=Tuc-Sy#

(3)

3 间接型多层控制器的设计与应用

类神经自我调试控制(self-tuning regulator,STR)如图3所示。试验之前,需要先导入一个范例,供类神经网络学习。

以一阶电容充放电电路为平台,一阶电容-电阻(resistor-capacitance,RC)电路连接如图4所示。在此电路中,测量点的电压会随着电容的充电而逐渐趋近于输入电压。

图3 类神经STR示意图

图4 一阶RC电路连接图

首先,在Arduino端搭建STR控制器来控制电容充放电。使用频率0.15 Hz的方波取样,通过通信端口,每隔20 ms采集uc、u、y、系统参数(A、B)等数据,并用Python作数据预处理。

取样的同时,转动可变电阻使系统产生变化,获得各种系统状态的数据。在将这些数据输入类神经网络前,需先作正规化与数据筛选。输入数据如果数值差异性较大,会失去收敛性。因此,需将其收缩至±1之间。考虑到TensorFlow的收敛性与公式推导所需的输入项能够增加收敛速度,则一阶系统识别的公式为:

(4)

式(4)交叉相乘后得式(5)。

y(t)=-ay(t-1)+bu(t-1)

(5)

由式(5)可知,若要求出t时刻的a与b,则需要y以及前一次u、y的取样。在梯度法迭代的过程中,利用估测的误差来对a与b进行优化,误差e为:

(6)

为了提高类神经网络训练的实用性,可以使用一次差分与二次差分的方式,给类神经网络更多的动态信息。导入的数据如下:

X=[u(t),u(t-1),u(t-2),y(t),y(t-1),y(t-2),

Δu,Δy,Δ2u,Δ2y,e,a(t-1),b(t-1)]

(7)

Y=[a(t),b(t)]

(8)

在相同的训练数据、一万次训练的条件下,训练各20回的统计结果,说明了导入差分项与模型可用性对整个系统的影响。表1为增加辅助数据对模型可用性的影响。

表1 增加辅助数据对模型可用性的影响

训练模型的结构为:包含数量为5的神经元隐藏层所构成的三层MLP。该结构对于该类型的数据预测已经足够了。使用多层或是多神经元会造成微处理机的负担,也会使训练时间成倍增加。训练完成后,取出权重与偏差的矩阵,在微处理机上进行如式(2)所示的矩阵运算,同时可以验证效果。

4 试验结果反馈与比较

类神经网络计算出来的系统参数,可通过式(5)检测下一次响应(TF_Y)与实际响应(Y)的比较结果。开回路响应如图5所示。

图5 开回路响应图

输入方波信号至RC回路中,无论是小电阻还是大电阻,由上限5 kΩ的可变电阻与100 μF电容所取样的数据几乎重叠。图5(a)数据范围的平均方差为3.36e-03,图5(b)数据范围的平均方差为3.30e-03。

在自校正调节器中加入类神经网络的系统识别,产生几种方波。方波对比如图6所示。

图6 方波对比图

图6的数据是在1 kΩ与4 kΩ下获得的。图6中,显示最小平方差法的STR在图6(c)的第一个波产生很明显的过冲(Overshoot),但之后很快就能适应该电阻的系统特性。然而类神经网络的STR初始过冲量没有那么大,虽然始终都有微小的过冲,都在可接受范围内(平均超出1.25%)。训练时的取样为方波,输入(U)为非曲线。图6所示的该系统识别对于陌生数据类型有较强的预测能力,正弦波与三角波的控制比较结果也较理想。

试验获取的各种波形中,第二至第三个周期的均方差如表2所示。从表2中可以看出,波形控制得相当精准,仅在4 kΩ的Sin波略差。由此可知,类神经网络在系统识别中具备很强的准确性。

表2 各种波形的均方差(第二至第三个周期)

除了类神经网络对于各种波形具有良好的识别性外,试验还考察了加入噪声的情况。当投入的学习数据都是在5 kΩ以下时,以测试类神经STR的强韧性。在输入系统前与响应回馈的区域各加入10%的白噪声,加噪声的位置如图7的d1与d2所示。

图7 加噪声的位置图

表3为重干扰下的第二至第三个周期的均方差。

表3 重干扰下的均方差(第二至第三个周期)

固定电阻下的高噪声测试,用来测试类神经网络对于高噪声的数据是否能够精准地作出系统识别。虽然STR放置一段时间后可以实现较稳定的控制,但对于突如其来的重干扰,抑制的速度较慢。类神经STR融合了类神经网络的高容错特性,有着优异的抗干扰效果。

加噪声控制的STR估测结果(5 kΩ)如图8所示。

图8 加噪声控制的STR估测结果(5 kΩ)

未知的数据范围STR估测结果(10 kΩ)如图9所示。

图9 未知的数据范围STR估测结果(10 kΩ)

在10 kΩ测试环境下、未知的数据范围内观测系统参数预测能力。测试结果显示,方波具有较好的适应能力,Sin波却不能保证较好的适应性。

表4为10 kΩ下第二至第三个周期的均方差。

表4 10 k Ω下的均方差((第二至第三个周期)

5 结束语

本文提出并实现了运用类神经网络做系统识别的自适应控制器。它以低成本与低运算资源的方式工作,并跳出了传统最小平方差法进行系统测算的模式,具有显著的新颖性。设计了全新架构的多层类神经网络测算器,在线测算一个时变受控体的系统参数,并利用极点配置法,获得自适应STR控制器的控制参数的计算结果。经试验验证,自适应多层类神经网络控制器可以获得较好的瞬时或稳态特性,并优于传统的自适应STR控制器。此外,稳定时间、过冲量以及均方根稳态误差值等性能指标的交叉比较表明,自适应多层类神经网络控制器拥有较优异的响应特性及强健性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!