作者:路见不平出手打_418 | 来源:互联网 | 2023-09-03 12:56
BP-PID神经网络控制器目录BP-PID神经网络控制器1.增量式PID2.BP-PID推导3.用于稳定模型的BP-PID仿真4.总结1.增量式PIDPID控制器是目前在实际控制
BP-PID神经网络控制器
目录
- BP-PID神经网络控制器
- 1. 增量式PID
- 2. BP-PID推导
- 3.用于稳定模型的BP-PID仿真
- 4.总结
1. 增量式PID
PID控制器是目前在实际控制系统中使用最多的控制方法,增量式PID通过位置式PID相减得到,不用做累加计算,更加适合于计算机运算。增量式PID表达式为:
2. BP-PID推导
BP神经网络是比较简单的前馈神经网络,包括正向计算输出结果和反向球梯度更新参数两个过程,网络在这里的作用就是拟合一个非线性关系,简单的来说就是根据系统的输出误差调整PID控制器参数。已有学者证明三层BP网络足以拟合任何非线性关系,以下来推导这里过程。
这里只是简单的说明BP-PID的工作流程,至于输入层-中间层的参数梯度,不再赘述,详细的文献多不胜数,原理上不做多余的说明。需要说明的是,我们的目标是使输出值接近指定值,在反向求梯度的过程中,模型输出对于模型输入的导数采用的符号矩阵近似,当然也有文献将这里过程通过利用BP神经网络辨识模型从而给出实际值。另外,对于多输入多输出过程,注意求导过程中的前后关系,也就是注意向量对向量的导数以及标量对向量的导数。
3.用于稳定模型的BP-PID仿真
设SISO的系统,离散表达式为:
模型出自<基于BP神经网络的PID控制系统研究与设计_李捷菲>论文,这里网络结构同样采用论文中的4-5-3结构,学习率0.3,网络初值[-1,1],输入为参考信号,实际信号,误差,偏置项1.激活函数采用双曲函数。
仿真结果如下:
需要注意的是,我实验了好几次才得到一次可行的实验结果,主要是网络初值影响的。
4.总结
BP-PID网络需要注意的一些事项:
- 网络初值的选择问题,有文献采用寻优算法给定初值,但是对于初值的具体范围,我没有发现有什么好的方法。
- 网络的输出范围,本例的输出范围0-1,实际中PID参数不可能只在0-1之间变化,可以更改最后一层激活函数或是接一个增益层。
- 对于不稳定的适应能力,一般来说可以首先计算能够使系统稳定的PID参数范围,我也尝试过采用镇定器先让系统整定,然后在用PID完成跟踪,也是可行的,但是镇定器的镇定程度需要调整,过度的整定可能使系统偏向于镇定而不是跟踪。
- 执行器饱和问题,这里PID输出是没有考虑执行器饱和的,在实际系统中是不可原谅的,笔者尝试过在输出参数层后增加一层网络完成输出约束。
- 对于梯度消失问题,尽管有一些方法通过改进学习方式、激活函数形式来改善这一问题,但是针对某一个控制系统而言,这些方法也是需要大量时间去调节的。
- 网络输入,有很多种形式,尝试过误差和延迟误差,记忆本文的参考信号,实际信号,误差,偏置。
simulink文件见 BP-PID