给本科:毕设 1
- 主题:使用神经网络补偿 PID 控制
思路依据
- 被控对象为函数 \(f(u)\)
- 原始 PID 控制器的输出为 \(c(e)=u\)
原始 PID 控制器的输出 \(c(e)\) 的控制效果不佳。理论上,存在一个更优秀的控制序列 \(v(t)\),使得 \(f(v(t))\) 的表现更好。
为了达到这样的新的控制量 \(v\),数学上的做法是找到 \(c(e)\) 的反函数,也就是满足
\[
c^{-1}(v)=\hat{e}
\]
这个 \(\hat{e}\) 就应当是 神经网络给出的结果。
整体的连接图如下所示
目标值 (Set-point)
|
v 原始误差 (e) NN 输出 (e') 控制量 (u) 输出 (y)
( Σ ) ----------------> [ Neural ] --------> [ PID ] --------> [ System ] ---+---> (y)
^ [ Network] [ Contrl ] [ (Plant)] |
| |
| 反馈 (Feedback) |
+--------------------------------------------------------------------------+
实施方法
为了实际找到这个神经网络,需要训练数据。为此必须先知道怎么样的 \(\hat{e}\) 更优秀。这里采取实验的办法进行级联 PID 的测试,通过调整级联 PID 的参数确定更优秀的控制误差序列,这个补充的级联 PID 理论上就可以是神经网络的输入输出训练数据。
获取数据的实验示意图如下所示
目标值 (Set-point)
|
v 原始误差 (e) 理论输出 (e') 控制量 (u) 输出 (y)
( Σ ) ------------------> [ PID ] --------> [ PID ] --------> [ System ] ---+---> (y)
^ | [控制器 2] | [控制器 1] [ (Plant)] |
| | | |
| | - - - - - - - -> | - - - - - - - -> |
| (nn 理论输入) (nn 理论输出) |
| |
| 反馈 (Feedback) |
+-------------------------------------------------------------------------+