声明:本博客只是为方便交流学习, 不得用于任何商业用途。内容涉及知识产权,版权所有,抄袭翻版必究。
目录:
遗传算法优化模糊控制规则
1、 系统辨识
2、 模糊控制器
3、 遗传算法
4、 代码实现
本文将系统且贯彻分析实现模糊智能控制算法,分别对比分析模糊控制(fuzzy),模糊PID控制(fuzzy_PID),遗传优化模糊控制(GA_fuzzy_PID)三种控制器的性能指标。采用阶跃信号作为输入信号,设计伺服跟踪控制系统,观察响应曲线的变化。
0.系统辨识
采用理论建模的方式,状态方程难以确定,而且受控对象的结构不一定可知,这就很难建立受控对象的数学模型。采用系统辨识的方法,从实测的输入和输出数据用数值分析的方法来构建数学模型。系统辨识首先由经验法,确定系统的阶次。根据控制系统中实测的输入输出数据, 采用最大信息准则, 确定模型中的未知参数量。
在采集的样本数据较少,采用输入的范围内进行插值取样的方法,生成更多观测样本数据。将生成的可观测数据,加载至训练模型,可以修正模型的估计参数。在实际工程中,由于受控对象的输出值可能受扰动信号影响,因此,从样本数据中随机分层抽样并添加高斯白噪声信号。采用连续系统数学模型直接系统辨识,会存在参数求解不唯一的现象。将对离散系统进行辨识,并通过离散模型连续化的方法,求解连续模型的函数。采用的单输入单输出的离散线性系统如下:
y
(
k
)
=
a
1
y
(
k
−
1
)
+
.
.
.
.
+
a
n
y
(
k
−
n
)
+
b
0
u
(
k
)
+
b
1
u
(
k
−
1
)
+
.
.
.
.
+
b
m
u
(
k
−
m
)
+
ϵ
(
k
)
y(k) = a_1y(k-1)+ .... +a_ny(k-n) + \\ \qquad \qquad \qquad\qquad\qquad b_0u(k) + b_1u(k-1)+ ....+b_mu(k-m) +\epsilon(k)
y(k)=a1y(k−1)+....+any(k−n)+b0u(k)+b1u(k−1)+....+bmu(k−m)+ϵ(k)
式中, 控制系统的输入
u
(
k
)
u(k)
u(k) ,控制系统输出为
y
(
k
)
y(k)
y(k),
m
,
n
m,n
m,n为系统模型阶次,
a
1
,
.
.
.
.
.
,
a
m
,
b
0
,
.
.
.
.
b
n
a_1,.....,a_m,b_0,....b_n
a1,.....,am,b0,....bn 是待辨识的系统参数,系统噪声为
ϵ
(
k
)
\epsilon(k)
ϵ(k)。其中,当
t
<
=
0
t<=0
t<=0时,
y
(
k
)
,
u
(
k
)
y(k),u(k)
y(k),u(k) 假设均为0。将上述公式改写成矩阵运算的形式,如下。
采用最小二乘方法可以实现对未知参数
θ
\theta
θ 进行无偏估计。在系统辨识前,应该合理的选择系统的阶次,故文中引入赤池信息量准则(Akaike information criterion)。该准则是衡量统计模型拟合优良性的一种标准,是建立在熵的概念基础上,可以权衡所估计模型的复杂度和模型拟合数据的优良性。赤池信息准则(AIC)是寻找既能较好的解释数据又能包含最少参数的模型,其表达式如下。
式中,
k
k
k表示模型的阶次,
M
M
M 为样本的数量,
ε
(
i
,
θ
)
\varepsilon(i,\theta)
ε(i,θ)表示给定参数
θ
\theta
θ 的条件下,第
i
i
i个样本残差值。
参数越少,AIC值越小,模型越好。样本数越多,AIC值越小,模型越好。
测试不同的参数组合下的AIC值,其结果如下表。
选取好受控对象的结构参数,进行对输入数据进行辨识,得到离散型传递函数表达式。将得到的离散化的系统模型进行连续化处理,可以得到连续模型传递函数。
用原始观测数据来对比分析系统模型拟合情况,曲线1为模型计算出系统的输出信号,曲线2为系统的实测信号。两者比较吻合,即系统辨识出模型较为理想。
1.模糊控制器
模糊控制算法属于一种智能控制算法,具有模糊性,非定量。“模糊”是间接地反映定义变量属于某个集合的程度。模糊控制采用模糊数学理论来模仿人脑的模糊推理和决策过程,然后给出准确控制量。模糊控制不需要建立被控对象的数学模型,而且具有一定的鲁棒性,也可以解决非线性系统动态控制问题。
模糊控制的核心部分是模糊控制器,而模糊控制器主要有三部分组成,分别是模糊化接口,模糊推理,解模糊接口。模糊控制器采用二输入多输出的形式。两个输入变量为偏差值∆I和变化率∆Ic ,将∆I和∆Ic转换为模糊子集,用作模糊推理输入信号。 模糊控制系统采用Mamdani的推理机制,将推理结果进行质心法反模糊化处理,并作用于执行单元上。模糊规则的设定不仅需要资深的专家经验,而且还需要不断大量实验操作,不断调节更新模糊规则库。文中更好的分析响应曲线控制效果的好坏,假定被控对象传递函数形式如下:
G
(
s
)
=
α
s
+
c
o
n
s
t
a
n
t
s
2
+
γ
s
+
c
o
n
s
t
a
n
t
G(s)=\frac{\alpha s+constant}{s^2+\gamma s+constant}
G(s)=s2+γs+constantαs+constant设置好仿真步长T,即系统抽样时间。采用双线性离散逼近法进行离散化处理,在MATLAB中SIMLINK工具箱组件模糊控制所需的模块如下:
传感器传来的定值定量信号,不能直接作用于模糊控制器,需要模糊化接口进行处理。模糊控制器接收的信号为模糊集合,需要进行模糊化处理。文中将系统的误差值∆I,误差的变化率∆Ic和控制量输出U分别划分为七个模糊等级,分别为正大(PB)、正中(PM)、正小(PS)、零(ZO)、负小(NS)、负中(NM)、负大(NB)。在模糊控制系统在线运行时,模糊规则以控制查询表的形式运算。为快速查询输入输出关系,通常将输入模糊语言变量的论域定义有限整数的离散论域。文中将误差∆I和误差变化率∆Ic的论域设置为[-3,3],系统输出(U)的论域设置为[-2,2]。在量化因子(Ke)和比例因子(Ku)的作用下,可以实现连续域和模糊离散论域的转换。
K
e
K_e
Ke,
K
c
K_c
Kc为量化因子,
K
u
K_u
Ku为比例因子。式中,
m
,
l
m,l
m,l 分别为输入输出模糊集合离散论域最大值,误差输入量实测的范围为[
e
l
,
e
h
e_l,e_h
el,eh ] ,控制量的连续取值为[
u
l
,
u
h
u_l,u_h
ul,uh ] 。
隶属度函数反映了当前变量属于某个集合的程度,隶属函数由一组模糊集值组成。采用隶属度最大化的原则,确定当前实测数据的模糊子集。系统中PB使用S型隶属度,而NB使用Z型隶属度,其余变量的隶属度函数均为三角形,如下表所示。
模糊推理以控制查询表的形式给出,而表的设计大多依据人为经验。模糊推理为Mamdani推理,其机制可以表示IF…is…and…is…THEN…is…。输入变量∆I、∆Ic分别均有7个模糊集合,这样就形成了49条模糊规则的总集合。模糊推理的结果为模糊集合,并不能直接作用于执行单元,需要采用比例因子,将模糊集合转化为实际的输出值。
式中,控制量的连续取值为[
u
l
,
u
h
u_l,u_h
ul,uh ] ,比例因子
K
u
K_u
Ku, U为模糊推理的结果,
u
u
u 为实际的输出值。选用面积重心法的方法进行解模糊,此外还有取最小值法、中位数法等。
模糊控制规则表经验选取,控制效果如下:
从上图仿真结果分析,采用模糊控制算法,输出信号能大体上跟随输入信号,没有震荡现象,具有良好的稳定性。但没有达到最佳的理想效果,系统存在一定的稳态误差。
2. 模糊PID 控制器
根据误差(e)、误差变化率(ec)作为输入,采用模糊推理进行PID参数在线整定,推理出PID控制器的参数修正量分别为
Δ
K
p
\Delta K_p
ΔKp 、
Δ
K
i
\Delta K_i
ΔKi 、
Δ
K
d
\Delta K_d
ΔKd。 系统结构如下。
同样根据经验法,选择模糊控制规则,分别对比PID控制、模糊控制、模糊PID控制的优劣性,模糊PID控制从整体上表现较好。
3.遗传优化模糊控制规则
上述模糊PID控制具有响应时间快,消除稳态偏差,但仍然具有一定的超调量,故采用经验法选取模糊控制规则具有一定的局限性。遗传算法属于智能优化算法,它采纳自然进化的模型,属于全局优化搜索的方法。遗传算法(GA)是借鉴生物进化的理论,是群体寻优的算法。随机多个产生实际问题的可行解(种群),对种群进行编码操作,将可行解转化染色体的形式。根据目标函数构造适值函数,对种群进行评估,遗传运算(交叉、变异、反转),选择,经多代更替,获得适应度较好的个体,作为全局最优解。将遗传算法与模糊控制器相结合,可以对模糊控制规则进行全局寻优,可以摆脱模糊控制的规则不受人为经验的限制。遗传算法流程如下:
(1) 编码
编码是将实际问题的可行解空间转化为染色体的搜索空间。常见的编码方式主要有二进制编码,实数编码和整数编码。二进制编码具有较强的搜索能力,染色体的长度取决于编码的精度。由于模糊控制规则变量较多,染色体的基因数量较多,采用整数编码,易于编码。
模糊控制器是采用两输入输出的形式,每个输入输出均与7个模糊子集。用整数7、6、5、4、3、2、1分别代替正大(PB) 、正中(PM) 、正小(PS) 、零(ZO) 、负小(NS) 、负中(NM) 、负大(NB)模糊子集。
模糊控制器性能的直接影响因素为模糊子集隶属度函数覆盖的论域面积,而三角形、高斯型、钟形等模糊隶属度函数形状对其影响却不是很大。为了便于优化隶属度函数,采用等腰三角形函数形状。假定顶点坐标不变,将三角底边宽度的一半(记做L)作为待优化的参数隶属度函数的待优化参数为21个,也就是各自的底边宽度,它们的编码表示为{2222222 2222222 2222222}。这三组 {2222222}分别代表输入量∆I,∆Ic和控制量U的7个模糊子集的隶属函数底边宽度的一半,即 L 的编码。同时对量化因子(Ke、Kc)和比例因子(Ku)进行编码。将模糊控制规则转化二位矩阵,将二维矩阵拉直排列,就形成染色体个体,染色体的基因长度为7×7+3×7+3=73 。
(2) 适值函数标定
目标函数选用ITAE性能指标,它可以综合评价控制系统的快速性,准确性和稳定性等静态和动态性能。
J
(
I
T
A
E
)
=
∫
1
∞
t
∣
∣
e
(
t
)
∣
∣
d
t
J(ITAE)=\int_1^\infty t ||e(t)|| dt
J(ITAE)=∫1∞t∣∣e(t)∣∣dt
将目标函数进行转化,进而优化目标函数的最大值,其转化关系如下。
选择压力是种群中个体被选中的概率之差,由于
f
(
x
)
f(x)
f(x) 取值范围在[0,1]之间,所以各个染色体被选中的概率的差别很小,即选择压力小。选择压力越小,遗传算法选优的功能将被弱化,所以需要对目标函数进行标定。文章选用线性标定法,其标定公式如下所示。
式中,
F
(
x
)
F(x)
F(x)为适值函数,
f
(
x
)
f(x)
f(x)为目标函数,
f
m
i
n
(
x
)
f_{min}(x)
fmin(x) 为目标函数的最小值。
x
x
x为染色体。
a
,
b
a,b
a,b确定系数。本文将
ζ
\zeta
ζ 设置为较小数,目的是种群最差的个体也可能会被选中,增加种群的多样性。
在遗传算法搜索过程中,希望初始迭代过程中,选择压力小,可以实现解空间的广域搜索。经多次迭代后,逐步的倾向于局部搜索,可行解逐渐收敛,因此选择压力应当选大。故对
ζ
\zeta
ζ值进行改进,其结果如下。
式中,
ζ
k
\zeta^{k}
ζk为第
k
k
k 次迭代
ζ
\zeta
ζ取值。随着迭代的进行,
ζ
k
\zeta^{k}
ζk 越来越接近于0,说明当前种群中最差的染色体被选中的概率越来越小。
(3) 选择、交叉、变异
文中在赌轮盘法的基础上进行改进,采用精英策略,从旧种群中选出适应度较高的少数个体,直接复制到子代。这样可以保证子代的个体永远比父代的个体好。
交叉操作采用凸组合交叉,可以有效的避免有简单操作产生不可行解。亲代样本:
P
1
:
X
=
(
x
1
,
x
2
,
.
.
.
.
.
.
.
.
x
n
)
P1:X =(x_1,x_2,........x_n)
P1:X=(x1,x2,........xn)
P
2
:
Y
=
(
y
1
,
y
2
,
.
.
.
.
.
.
.
.
y
n
)
P2:Y =(y_1,y_2,........y_n)
P2:Y=(y1,y2,........yn)交叉后:
Z
1
=
α
X
+
(
1
−
α
)
Y
Z1=\alpha X +(1-\alpha) Y
Z1=αX+(1−α)Y
Z
2
=
α
Y
+
(
1
−
α
)
X
Z2=\alpha Y +(1-\alpha) X
Z2=αY+(1−α)X
将交叉后的进行round取整数,保证交叉操作,产生可行解。交叉概率初始值
p
c
i
pc_i
pci。迭代初始时,为更好的保证种群的多样性,交叉率设置尽可能大,有利于找到全局最优解。随着迭代的进行,希望种群能快速收敛于某一个体,则交叉率设置有所减小。
固定变异率 =0.05,当满足变异条件时,随机对第i个体,第j个基因进行变异,其操作运算如下。
(4) 逆转
逆转操作为了改善遗传算法的局部搜索能力,对每条染色体随机的选择两点基因位置,将两基因点之间的序列进行逆转操作,并计算逆转后的染色体适值。如果适值有所增加,则逆转后的染色体将取代原有染色体。否则,逆转失败,不做处理。
(5) 迭代停止准则
如果种群达到最大迭代次数之前,有可能出现收敛,此时应提前结束迭代。其判定准则为:分别计算当前种群的最大和最小误差值,如果两者之差小于
ε
\varepsilon
ε值,则可以提前终止迭代。
4.结果分析
迭代过程中目标函数ITAE随迭代次数更替如下。
采用遗传优化算法,模糊控制最优规则如下表所示。
采用遗传优化算法,优化的模糊子集隶属度函数如图所示。
对遗传算法优化模糊规则和人为经验选取模糊规则进行比对,其结果如下。可以看出遗传优化的模糊PID有明显的性能改善。
总结: 本人是Double control 专业,双一流A+,985高校。本博客主要介绍控制领域中常见的问题,内容涉及知识产权,版权所有,抄袭必究。联系方式qq:2413887576 ,咨询挂号费50枚大洋。