【PD控制】基于matlab灰狼算法分数阶优化PD滑模控制器【含Matlab源码 2006期】

网友投稿 235 2022-09-04

【PD控制】基于matlab灰狼算法分数阶优化PD滑模控制器【含Matlab源码 2006期】

一、灰狼算法优化分数阶模糊控制器参数简介

1 分数阶模糊控制系统数学模型 分数阶控制系统的特征是微分方程,在动力系统或控制算法中,分数阶通常用微分或积分模型表示。

1.1 分数阶微积分

分数阶积分是对整数阶基本算子积分与微分的推广。微积分操作算子通常被定义为aDαt,将分数阶导数和分数阶积分定义为:

式中:a和t表示操作算子的上下限;α表示分数阶阶次且α∈R;τ表示切向单位向量。最常用的分数阶微积分定义是Riemann-Liouvile(RL)和Grunwald-Letnikou(GL)。分数阶微分阶α被定义如下:

式中:Dαtf(t)表示分数阶导数。在分数阶导数的数值计算中,α阶导数在kh(k=1,2,…)点,具体表示如下:

然后,分数阶差分方程的一般数值解被定义如下:

1.2 分数阶近似值算子

假设初始条件为零,分数算子在拉普拉斯域中定义为L(aDαtf(t))=sαF(s),其中sα为离散化微积分算子。Grunwald-Letnikov 近似值因其产生离散性质的等式值而被人们广泛使用。在这种方法下,离散化考虑以下模型:

式中:hα(k)是脉冲序列;Tc表示采样频率。已经证明了有理式模型比多项式模型具有更快的收敛速度。因此采用Pade近似的方法,利用文中给出的定义,从脉冲响应中得到分数阶模型,具体模型表示为:

式中:m、n与参数ai、bi是通过调节hα(k)的系数m+n+1得到。

2 模糊控制器 模糊控制器是模拟专家的经验,并用语言形成严格的控制规则,然后通过控制规则控制其计算,实现目标任务。模糊控制器的一个重要的特性是将控制方案划分为多个区域。在每个区域,控制策略都可以通过使用一个规则来简单地建模,该规则将特定的操作按照所形成的区域关联起来。在所列出的文献中,尽管提出了几种模糊控制器模型配置,但是本文选取模糊分数阶PDα+I模型结构,因为此结构具有较好的稳定性与鲁棒性。

控制器配置如图1所示。其中:E、DE和IE分别代表误差、偏导误差和积分误差;e表示偏差值;v表示模糊输出量;Kp、Kd、Ki、Ku为增益值,前三项表示输入项,后一项为输出项。控制函数u是E、DE和IE的非线性映射函数,表示如下:

图1 模糊PDα+I控制器

3 GWO 灰狼优化算法是新型的群智能优化算法[14],该算法的灵感来源于灰狼群落的领导、指挥与狩猎行为。在该算法中,灰狼群被划分为四组,分别为α、β、δ、ω,前三种类型是作为领导阶层,ω是最底层灰狼种群,追随前3种种群。α、β、δ灰狼种群的更新公式如下:

D=|C·Xp(t)-X(t)| (9) X(t+1)=Xp(t)-A·D (10) A=2a·r1-a (11) C=2·r2 (12) 式中:D表示灰狼与猎物之间的位置距离向量;t表示当前的迭代时间; A、C是向量系数;Xp是猎物的位置向量;X是灰狼的位置向量;a是步长因子,随着迭代次数的增加由2降到0;r1、r2取[0,1]间的均匀随机值。

在GWO中,认定α、β、δ为捕食猎物的最好的值,在优化的过程中,α、β、δ被认为是最好的解,其他灰狼为ω,不断更新位置朝向α、β、δ种群。根据以下数学模型,调整ω狼群的位置:

Dα=|C1·Xα-X| (13)

Dβ=|C2·Xβ-X| (14)

Dδ=|C3·Xδ-X| (15)

式中:Xα表示α灰狼的位置;Xβ表示β的位置;Xδ表示δ灰狼的位置;C1、C2、C3 是随机值;X表示当前解决方案位置。用式(13)、式(14)和式(15)分别计算当前解位置与α、β、δ灰狼位置之间的距离。定义距离之后,当前解的最终位置计算如下:

X1=Xα-A1·(Dα) (16)

X2=Xβ-A2·(Dβ) (17)

X3=Xδ-A3·(Dδ) (18)

式(13)-式(15)定义了ω灰狼步长分别朝向α、β、δ灰狼位置。式(16)-式(19)定义了ω灰狼最终的位置。A、C这两个向量是随机值,能够有效平衡GWO勘探与开采能力。

Mirjalili 等[14]提出的GWO相比于其他著名的元启发式算法具有很高的性能。该算法具有很强的探测能力,而且能够避免局部最优。此外,较强的平衡勘探与开采能力能够有效解决一些复杂的工程问题。因此应用GWO优化模糊控制器参数问题。

4 用GWO对分数阶模糊控制器参数优化

在分数阶模糊控制系统的设计阶段,将参数计算过程转化为一个多维优化问题,将分数阶模糊控制器参数作为决策变量。在这种方法中,优化问题的复杂性往往产生多模态误差曲面,其代价函数往往难以最小化。提出一种分数阶模糊控制系统参数优化标定算法,采用GWO确定最优的参数值,如图2所示。

图2 基于GWO优化模糊控制器的参数问题

在GWO求解模糊控制器参数问题中,GWO中的最优解表示分数阶模糊控制器的一组最优的参数。分数模糊控制器参数(α,Kp,Kd,Ki,Ku)确定GWO候选解的维度。GWO的生物空间对应分数模糊控制器参数整定的解空间。另外,GWO的评价函数是分数模糊控制器的积分时间绝对误差(ITAE)[25]。ITAE指标J由以下模型定义:

J(α,Kp,Kd,Ki,Ku)=∫∞0t|r(t)-y(t)| (20)

式中:y(t)表示闭环阶跃响应函数;r(t)表示阶跃函数。

最小化目标函数为:

J(X) X=(α,Kp,Kd,Ki,Ku)∈R5 (21)

约束函数为: 0≤α≤3 0≤Kp≤5 0≤Kd≤5 0≤Ku≤5

控制器的参数值对控制器的性能具有较高的影响。例如,比例系数Kp值增加时,系统会变得敏感,响应速度更快,系统的稳态误差得以减小,从而使控制的精度提高。GWO优化的过程是通过连续计算ITAE值来评价该参数的质量,根据GWO的优化规则,通过连续迭代求出ITAE的最小值,从而得到一组分数阶模糊控制器的控制参数。

二、部分源代码

%%Initilizationx0=[-pi pi 0 0 0 0];Ts=[0 5]; %time span%%Robot SpecificationsL1=1; %link 1L2=1; %link 2M1=1; %mass 1M2=1; %mass 2% % % Ks=10;% gama=9;% alpha=4;% beta=3;% miu=1.5;% % PID parameters for theta 1% Kp1=38;% Kd1=6;% % PID parameters for theta 2% Kp2=38;% Kd2=6;lb=[30 4 30 4 8 0 0 0 0];ub=[51 12 51 12 20 14 8 5 3];dim=9;SearchAgents_no=5; % Number of search agentsMax_iteration=1; % Maximum numbef of iterations[Best_score,Best_pos,GWO_cg_curve]=GWOr(SearchAgents_no,Max_iteration,lb,ub,dim);Kpd=Best_pos[T,X] = ode45(@(t,x) r2dof(t,x,Kpd),Ts,x0);qd1=sin(4.17*T);qdot_r1=4.17*cos(4.17*T);qdot2_r1=-4.17*4.17*sin(4.17*T);qd2=1.2*sin(5.11*T);qdot_r2=1.2*5.11*cos(5.11*T);qdot2_r2=-1.2*5.11*5.11*sin(5.11*T);%%Outputth1=X(:,1); %theta1 wavwformth2=X(:,2); %theta2 wavwformth3=X(:,3);th4=X(:,4);th5=X(:,5);th6=X(:,6);%torque inputs computation from the 7th,8th states inside ODE% F1=diff(X(:,5))./diff(T);% F2=diff(X(:,6))./diff(T);x1=L1.*sin(th1); % X1y1=L1.*cos(th1); % Y1x2=L1.*sin(th1)+L2.*sin(th1+th2); % X2y2=L1.*cos(th1)+L2.*cos(th1+th2); % Y2% PositionsGWO_cg_curvetoc%theta1 error plotfigure(1)hold onplot(T,th1-qd1,'r')legend('NCFOPDSMC')ylabel('Position tracking error of theta1')xlabel('time (sec)')hold off%theta2 error plotfigure(2)hold onplot(T,th2-qd2,'r')legend('NCFOPDSMC')ylabel('Position tracking error of theta2')xlabel('time (sec)')hold offfigure(3)hold onplot(T,th1,'r')legend('qd1','FOPD','FSMC','NCFOPDSMC')ylabel('Position tracking of theta1')xlabel('time (sec)')hold offfigure(4)hold onplot(T,th2,'r')legend('qd2','FOPD','FSMC','NCFOPDSMC')ylabel('Position tracking of theta2')xlabel('time (sec)')hold offfigure(5)hold onplot(T,th5,'r')legend('FOPD','FSMC','NCFOPDSMC')ylabel('Control input1 (N.m)')xlabel('time (sec)')hold offfigure(6)hold onplot(T,th6,'r')legend('FOPD','FSMC','NCFOPDSMC')ylabel('Control input2 (N.m)')xlabel('time (sec)')hold offfigure(7)hold onplot(T,th3,'r')legend('FOPD','FSMC','NCFOPDSMC')ylabel('Velocity of theta1')xlabel('time (sec)')hold offfigure(8)hold onplot(T,th4,'r')legend('FOPD','FSMC','NCFOPDSMC')ylabel('Velocity of theta2')xlabel('time (sec)')hold offfigure (9)plot(GWO_cg_curve)%

三、运行结果

四、matlab版本及参考文献

1 matlab版本 2014a

2 参考文献 [1] 范鲁娜.灰狼算法优化分数阶模糊控制器参数[J].计算机应用与软件. 2021,38(10)

3 备注 简介此部分摘自互联网,仅供参考,若侵权,联系删除

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:营销是企业的灵魂,也是企业的基本职能!
下一篇:【物理应用】基于matlab白鲸算法太阳能光伏模型参数估计【含Matlab源码 2018期】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~