10. PID 控制
你重生了,这一世,你是云汉交龙电控部的成员,部长要求你现在完成哨兵机器人的pitch轴云台调试,否则你会受到那个男人的锐评。那么我们从头从原理上开始理解一下 pid 的数学工程原理吧。
从闭环控制到 控制器
首先我们明确,pid控制是基于闭环控制的,也就是说,我们会用输出结果作为反馈和输入值进行比较,大了就减小,小了就增大,最后收敛到目标值
那么我们令输入参考值为 输出值为 我们经过二者的对比得到 定义为 error 误差,同时,我们 在控制对象的时候要将这个过程分成被控对象和控制器两部分 (名词命名、定义详见江苏教育出版社高中通用技术教科书,浙江省2022年技术高考教材),比如对于一个空调房的温度控制,被控对象是房间,其自身的温度响应符合我们以前学过的热力学系统,即其温度对输入热量可以表述为一个传递函数,我们称之为 plant 写作 . 类似的,空调房的空调本调就是一个控制器 (controller) ,其控制的过程就是一个传递函数 我们分开两部分进行描述就可以将被动系统和主动控制器进行拆分,从而更加明确控制参数对于效果的影响了

同样的,对于云台 pitch 控制, 我们有 pitch 轴为被控对象,pitch 电机 (6020) 为控制器, 云台自身重力是一个稳定偏差,我们对云台向下掰一掰就是一个 扰动输入,那么,从那个男人的视角,你要做到的,就是尽快回到原来的位置。
从下面开始,我们将讨论单位负反馈调节的系统 (unity negative feedforward system) 的pid 控制理论
P, I, D 是什么
首先明确,PID 本身是控制器 C 的固有参数,即 这里是处在复频域的传递函数
Nomenclature
- Proportional Gain
- Integral Gain
- Derivative Gain
对于解决偏差,我们最直接的想法就是用一个比例乘以error就能实现在error大的时候快速回正,errorr小的时候缓慢回正(这里是防止加速度过大超调) 所以我们令函数 , 写成完整的传递函数,我们就有 如果传递函数 那么我们有 这就是一个简单的比例控制器
对于 step input 其终值为 并不是 1, 也就是说,输出相对于输入并没有完全一样,会存在一个稳态误差 steady state error
工程拟合参数
作为不擅长数学的工程师,我们会用到以下这些近似公式简化对于预期结果的运算:
跃升时间 rise time
我们定义跃升时间为系统从 10% 到 90% 的时间,即
稳定时间 settling time
稳定时间是指系统到达 或者 的时间
过阻尼系统的settling time
对于一个过阻尼系统,我们的解是实数,也就是说没有振动的频率分量. 解形式为 那么一般找大的那个(负数的绝对值小的)进行化简
或者更简单的形式,我们用二次方程的解来描述
对于 的形式,我们有
超调比 Overshoot
二阶系统超过水平稳定状态的比例
注意这里的公式的适用对象是 二阶系统对于 unit step input
前馈 Feedforward
对于一个稳定的误差(比如说重力)输入,我们如果忽略之,那么我们的稳态输出会存在一个误差,那么我们需要找到一个稳定的方式进行解决这个误差
首先,我们需要考虑将输入扩大几倍(倍数和稳态的缩减比例倒数确定)这种方法叫 pre-multiplication method 但是这种方法对于不同的 稳定误差的结果是不同的,很难确认,同时其往往需要放大输入,会造成能量的损失,工程上应用不是那么多
我们往往采用另一种方法:前馈 (Feedforward) 在这种方法中,我们将输入 reference 通过一个 feedforward gain (往往写作 L) 来将输入扩大一定倍数 添加到系统的 控制器后、plant 前
对于常见系统的前馈,我们可以将传递函数写成
