基于BP神经网络的PID控制器

BP-PID神经网络控制器

1. 增量式PID

PID控制器是目前在实际控制系统中使用最多的控制方法,增量式PID通过位置式PID相减得到,不用做累加计算,更加适合于计算机运算。增量式PID表达式为:
增量式PID

2. BP-PID推导

BP神经网络是比较简单的前馈神经网络,包括正向计算输出结果和反向球梯度更新参数两个过程,网络在这里的作用就是拟合一个非线性关系,简单的来说就是根据系统的输出误差调整PID控制器参数。已有学者证明三层BP网络足以拟合任何非线性关系,以下来推导这里过程。
BP-PID正向过程
BP-PID的反向过程

这里只是简单的说明BP-PID的工作流程,至于输入层-中间层的参数梯度,不再赘述,详细的文献多不胜数,原理上不做多余的说明。需要说明的是,我们的目标是使输出值接近指定值,在反向求梯度的过程中,模型输出对于模型输入的导数采用的符号矩阵近似,当然也有文献将这里过程通过利用BP神经网络辨识模型从而给出实际值。另外,对于多输入多输出过程,注意求导过程中的前后关系,也就是注意向量对向量的导数以及标量对向量的导数。

3.用于稳定模型的BP-PID仿真

设SISO的系统,离散表达式为:
系统模型
模型出自<基于BP神经网络的PID控制系统研究与设计_李捷菲>论文,这里网络结构同样采用论文中的4-5-3结构,学习率0.3,网络初值[-1,1],输入为参考信号,实际信号,误差,偏置项1.激活函数采用双曲函数。
仿真结果如下:
输出信号与参考信号
PID参数变化
需要注意的是,我实验了好几次才得到一次可行的实验结果,主要是网络初值影响的。

4.总结

BP-PID网络需要注意的一些事项:

  1. 网络初值的选择问题,有文献采用寻优算法给定初值,但是对于初值的具体范围,我没有发现有什么好的方法。
  2. 网络的输出范围,本例的输出范围0-1,实际中PID参数不可能只在0-1之间变化,可以更改最后一层激活函数或是接一个增益层。
  3. 对于不稳定的适应能力,一般来说可以首先计算能够使系统稳定的PID参数范围,我也尝试过采用镇定器先让系统整定,然后在用PID完成跟踪,也是可行的,但是镇定器的镇定程度需要调整,过度的整定可能使系统偏向于镇定而不是跟踪。
  4. 执行器饱和问题,这里PID输出是没有考虑执行器饱和的,在实际系统中是不可原谅的,笔者尝试过在输出参数层后增加一层网络完成输出约束。
  5. 对于梯度消失问题,尽管有一些方法通过改进学习方式、激活函数形式来改善这一问题,但是针对某一个控制系统而言,这些方法也是需要大量时间去调节的。
  6. 网络输入,有很多种形式,尝试过误差和延迟误差,记忆本文的参考信号,实际信号,误差,偏置。
    simulink文件见 BP-PID
  • 21
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 55
    评论
基于BP神经网络PID控制是一种使用反向传播算法训练的神经网络来实现PID控制的方法。PID控制是一种常用的控制类型,可以用于调节系统的输出以使其达到期望值。 在使用BP神经网络实现PID控制时,首先需要设计一个多层前馈神经网络,其中输入层接收系统的状态信息,输出层对应于控制的输出。中间的隐藏层可以根据需要设置多个。 训练神经网络的过程包括以下几个步骤: 1. 收集训练数据:通过将系统输入和输出的组合作为训练样本,收集一系列系统的输入输出数据。 2. 数据预处理:对训练数据进行归一化或标准化处理,以便提高训练效果。 3. 网络初始化:初始化神经网络的权重和偏置。 4. 前向传播:将输入样本通过神经网络前向传播,得到网络的输出。 5. 计算误差:将网络的输出与期望输出进行比较,计算误差。 6. 反向传播:使用误差进行反向传播,更新网络的权重和偏置。 7. 重复以上步骤:重复进行训练过程,直到达到预定的训练停止条件。 训练完成后,可以使用BP神经网络作为PID控制的一部分,根据系统的状态信息输入到网络中,通过网络的输出得到控制的输出,从而实现对系统的控制。 需要注意的是,BP神经网络的训练过程可能需要大量的数据和计算资源,并且需要合适的网络结构和参数设置,以获得良好的控制效果。
评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值