小波神经网络整定PID仿真建模

小波(wavelet)神经网络:

由于傅里叶分析是一种时域与频域的全局变换,无法描述信号的局部性质。运用时间-尺度分析方法,小波变换可以多分辨分析和表述信号的局部特征。

f(t) \in {L^2}(R),即f(t) \in {L^2}(R) \Leftrightarrow \int_R {|f(t){|^2}dt < + \infty } 则可以看作的能量是有限的。

\forall \psi \in {L^2}(R),如果\hat \psi (w)满足如下可容许条件:{C_\psi } = \int_{ - \infty }^{ + \infty } {\frac{​{|\hat \psi (w){|^2}}}{​{|w|}}} dw < \infty,其中\hat \psi (w)\psi (t)的傅里叶变换,则可以称\psi (t)是一个基小波或母小波。

一个基小波\psi (t)的选择应满足以下两个条件:

  1. \psi (t)是连续的且呈指数衰减(即\psi (t) < M{e^{ - C|t|}},对于某些常量C,M)。
  2. \psi的积分为零(即\int_{ - \infty }^{ + \infty } {\psi (t)} dt = 0)。

由母小波进行伸缩和平移生成的函数系\{ {\psi _{a,b}}(t)\}{\psi _{a,b}}(t) = |a{|^{ - 1/2}}\psi (\frac{​{t - b}}{a})

其中,a,b \in R,a \ne 0,a是尺度参数,b是平移参数。

Morlet小波:

将小波变换应用到神经网络中,可以优化神经网络,从本质上改善其学习功能。虽然使用Sigmoid基函数的神经网络具有较强容错和函数逼近能力,但,Sigmoid函数的能量具有无限性,而待处理函数f为有限的{L^2}函数,也不能找到它与f对应的局部特性。而且Sigmoid函数需要无限多权值,网络规模难以确定。

特点:

  1. 小波基元及网络结构有可靠的理论依据。
  2. 全局极小解是唯一的。
  3. 函数学习能力逼近能力较强。

以BP神经网络拓扑结构为拘束,采用\exp ( - {t^2}/2)\cos (1.75t)小波函数作为隐层节点的激活函数,信号向前传播的同时误差反向传播。

S函数编写:

function [sys,x0,str,ts,simStateCompliance] = sfun_Wavelet(t,x,u,flag,T,j,xite,alfa)
switch flag,
  case 0,
    [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes(T,j);
%初始化函数
  case 3,
    sys=mdlOutputs(t,x,u,xite,alfa);
%输出函数
  case {1,2,4,9},
    sys=[];
  otherwise
    DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes(T,j)
%调用初始化函数,T步长,j隐含层神经元数
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 4;
%定义输出变量,包括控制变量u,三个PID参数:Kp,Ki,Kd
sizes.NumInputs      = 7;
%定义输入变量,包括7个参数[e(k);e(k-1);e(k-2);y(k);y(k-1);r(k);1]
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; 
sys = simsizes(sizes);
x0  = [];
str = [];
ts  = [T 0];
global wi_2 wi_1 wo_2 wo_1 a_2 a_1 b_2 b_1 u_1
wi_2 =rand(j,4).*2-1;
%隐含层(k-2)权值系数矩阵,维数j*4,范围【-1,1】
wo_2 = rand(3,j);
%输出层(k-2)权值系数矩阵,维数3*j,范围【0,1】
wi_1 = wi_2;
%隐含层(k-1)权值系数矩阵,维数j*4
wo_1 = wo_2;
%输出层(k-1)权值系数矩阵,维数3*j
a_2=1000*ones(1,j);b_2=100*ones(1,j);
a_1=a_2;b_1=b_2;
%小波参数a,b,维度1*j
u_1=0;
simStateCompliance = 'UnknownSimState';
function sys=mdlOutputs(~,~,u,xite,alfa)
%调用输出函数
M=[2;5;15];
%PID权值
global wi_2 wi_1 wo_2 wo_1 a_2 a_1 b_2 b_1 u_1
xi = [u(6),u(4),u(1),u(7)];
%神经网络的输入xi=[u(6),u(4),u(1),u(7)]=[r(k),y(k),e(k),1] 维数1*4
xx = [u(1)-u(2);u(1);u(1)+u(3)-2*u(2)];
%xx=[u(1)-u(2);u(1);u(1)+u(3)-2*u(2)]=[e(k)-e(k-1);e(k);e(k)+e(k-2)-2*e(k-1)],3*1
I = xi*wi_1';
%计算隐含层的输入,I=神经网络的输入*隐含层权值系数矩阵的转置wi_1' 1*j
I=(I-b_1)./a_1;
Oh = (a_1.^(-1/2)).*cos(1.75*I).*exp(-(I.^2)/2);
%激活函数,计算隐含层的输出,为1*j的矩阵
O = wo_1*Oh';
%计算输出层的输入,维数3*1
K =exp(O)./(exp(O)+exp(-O));
%激活函数,计算输出层的输出K=[Kp,Ki,Kd],维数为3*1
K=K.*M;
KIL=K(2)*xx(2);
if KIL>30
    KIL=30;
end
if KIL<-30
    KIL=-30;
end
uu=K(1)*xx(1)+KIL+K(3)*xx(3);
%计算控制变量u(k) 1*1
dyu = sign((u(4)-u(5))./(uu-u_1+0.000001));
%计算输出层加权系数修正公式的sgn
%sign((y(k)-y(k-1))/(u(k)-u(k-1)+0.000001))近似代表偏导 维数1*1
dO = 2./(exp(O)+exp(-O)).^2;
%激活函数,维数3*1
delta3 = u(1)*dyu*xx.*dO;
wo = wo_1+xite*delta3*Oh+alfa*(wo_1-wo_2);
%输出层加权系数矩阵的修正
dI = (a_1.^(-3/2)).*(-1.75*sin(1.75*I).*exp(-(I.^2)/2)-I.*cos(1.75*I).*exp(-(I.^2)/2));
%激活函数,维数1*j
A=[a_1;a_1;a_1;a_1];
wi = wi_1+xite*(dI.*(delta3'*wo))'*xi./(A')+alfa*(wi_1-wi_2);
%隐含层加权系数修正
a=a_1+xite*dI.*I.*(delta3'*wo)+alfa*(a_1-a_2);
b=b_1+xite*dI.*(delta3'*wo)./a_1+alfa*(b_1-b_2);
%隐含层参数修正
wi_2=wi_1;
wi_1=wi;
wo_2=wo_1;
wo_1=wo;
a_2=a_1;
a_1=a;
b_2=b_1;
b_1=b;
u_1=uu;
%更新
sys = [uu;K(:)];
%输出层输出sys=[uu;Kp;Ki;Kd]

在matlab/simulink中建立电机模型:

采用Id=0的控制方式:

WNN模块为:

得到的转速图为: 

 PID三个参数分别为:

 其中BP神经网络的建模详见上一篇文章。

参考文献:

[1]霍召晗,许鸣珠.基于小波神经网络PID的永磁同步电机转速控制[J].电机与控制应用,2019,46(11):1-6.

[2]杜雪. 小波神经网络研究及其在PID控制器参数整定中的应用[D].哈尔滨工程大学,2016.

[3]J. Liu, M. Zhao, G. Li and J. Chen, "Multiple Linear Regression Prediction and Wavelet Neural Network Based Intelligent Online Tuning Control Method," in IEEE Access, vol. 8, pp. 160684-160696, 2020, doi: 10.1109/ACCESS.2020.3020980.

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
基于BP神经网络整定PID控制是一种控制仿真方法,通过借助神经网络算法和PID控制器相结合的方式来实现控制系统的优化。在传统的PID控制中,控制器的参数需要根据实际系统的特性经过人工调整,并且对于不同的系统,可能需要不同的参数设置。而基于BP神经网络整定PID控制,可以通过神经网络的学习能力和适应性,自动调整控制器的参数,从而实现更加合理和有效的系统控制。 在基于BP神经网络的自整定PID控制中,首先需要构建一个神经网络模型,该模型需要具备逼近非线性动态系统的能力。然后,通过将该模型与PID控制器相连接,并且利用BP神经网络算法进行训练,实现控制器参数的自整定。在训练过程中,通过与实际系统进行对比,不断调整神经网络的权重和阈值,使得控制效果逐渐接近期望值。 通过基于BP神经网络整定PID控制,可以实现对控制系统的自适应性和鲁棒性的增强。在控制仿真中,可以根据实际的仿真模型,借助神经网络的学习能力和适应性,自动获取最优的控制器参数配置,从而实现更好的控制效果。此外,基于BP神经网络的自整定PID控制还可以适应系统的变化和不确定性,从而提高系统的稳定性和控制性能。 总体来说,基于BP神经网络整定PID控制仿真是一种有效的控制方法,可以通过神经网络的学习能力和适应性,自动调整PID控制器的参数,从而实现更好的控制效果和系统性能。在实际应用中,可以根据具体的控制需求和系统特性,进行相应的仿真验证和参数调整,以实现更优秀的控制效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值