Main Takeaway
FollowingPID控制算法原理(抛弃公式,从本质上真正理解PID控制) - 知乎 (zhihu.com)来学习PID,并且在simulink上搭建第一个PID工程(太酷啦!)
虽然拉式变换、系统稳态等都还不了解,以后填坑
拉普拉斯变换
了解拉式变换和傅里叶变换的联系:
Youtube视频地址:https://youtu.be/n2y7n6jw5d0
有中文翻译:【【Zach数学系列】拉普拉斯和傅里叶变换告诉了我们什么?(合集于视频列表)】https://www.bilibili.com/video/BV1Jv411G7B1?vd_source=93bb338120537438ee9180881deab9c1
Tips:虽然我还是不知道为什么下面系统要用这些。。。以后填坑
PID
理解
proportion——integral——derivative
p是控制现在,i是纠正曾经,d是管控未来!只有不忘过往,把握当前,规划未来才能让人生的轨迹按照既定的目标前进。
PID中三个参数,大体对应于控制系统的三个最重要的方面:
P对应“快”,对误差进行预判、做出快速反应;I对应“准”,消除稳态误差;D对应“稳”,即稳定性,放大控制作用。
Tips:也许理x解了弹性阻尼系统(还不理解),对pid的内涵会更加深刻
很多情况下,仅仅需要在离散的时候使用,则控制可以化为:
Notes:在真正的工程实践中,各个分量的各个参数基本上都需要通过实验试出来的。某些情况下仅仅只有P或者只有PD,效果就达到要求了,所以也就不需要再考虑其他的了。PID三种分量的结合使用,加上大量的实验来确定合适的参数,基本上就能满足我们的需求了。偶觉得PD很好用。
比例控制算法
Tips:稳态误差就是水缸漏水产生的(通过Kp的调节与漏水速度一致达到稳态但并未达到我们想要的目标),比如控制汽车运动,摩擦阻力就相当于是“漏水”,控制机械臂、无人机的飞行,各类阻力和消耗都可以理解为本例中的“漏水

稳态误差的体现:

积分控制算法

Tips:加了I之后,系统升阶了
加入I后消除了稳态误差
使用PID自动调参后的效果展示
啥叫积分时间常数呢?一般PID控制里,表示积分环节敏感度的那个系数ki=kpTik_{i}= k_{i}= , 这个TiT_{i}T_{i}就是积分时间常数。从这个式子我们可以看出,积分时间常数越大,积分环节系数就越小,积分环节就越不敏感老师告诉我们增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长
微分控制算法
这个微分项的作用,就可以理解为刹车,当车离停车线很近并且车速还很快时,这个微分项的绝对值(实际上是一个负数)就会很大,从而表示应该用力踩刹车才能让车停下来。
二阶系统
Tips:simulink中的PID中D的系数不一样:
simulink自带的那个PID模块我打开看了怎么和标准的公式不一样呢?_百度知道 (baidu.com)
这时因为纯微分项物理是不可实现的,所有的传函分母的阶次必须要大于等于分子的阶次才行。
而从原表达式可以看出,当N比较大时,分母中的1可以忽略,这时系统就会变成常规的PID了。
matlab是考虑到了PID单独各个环节的物理实现,所以才对原有的公式进行了改进
其余相关控制知识
积分限幅
避免Ki的误差积累过大
积分分离
一次误差过大(给个限制),则舍去不要,避免超调严重
输出限幅
对系统安全进行保护,避免pid输出过大or过小
微分先行
微分先行是只对输出量进行微分,而对给定指令不起微分作用,因此它适合于给定指令频繁升降的场合,可以避免指令的改变导致超调过大
系统稳定
- 过阻尼系统
- 临界阻尼系统
- 欠阻尼系统

劳斯判据
判断系统稳定,系统稳定的充分必要条件是劳斯表中第一列系数都大于0
Tips: 也不太懂,以后填坑!
串级PID
串级 PID 是通过两个控制器串级控制,串级控制往往是对同一自由度的不同物理量进行控制,例如机器人的云台控制是使用角速度环和角度环串级控制, 角速度和角度均是属于旋转自由度, 角速度是角度的微分。两个控制环节分为外环控制环节和内环控制, 一般角度属于外环控制环节,角速度属于内环控制环节。
串联是将外环的输出与内环的输入相连, 外环角度环的输入是控制目标, 外环角度环的输出是设定的角速度, 为内环角速度环的输入。
会用就行

Tips:电机输出的反馈值看你需要在DATA[]数组中自取
上述发送和接收遵循CAN协议。
而计算 PID 使用的 PID_calc 函数则首先区分 PID 的模式是位置式还是增量式
位置式:
增量式:
References
【PID原理讲解与Matlab/Simulink仿真,初中生就能看的懂】https://www.bilibili.com/video/BV1Ad4y1g7hq?vd_source=93bb338120537438ee9180881deab9c1
【PID原理讲解与Matlab/Simulink仿真(下)】https://www.bilibili.com/video/BV1ye41137od?vd_source=93bb338120537438ee9180881deab9c1
Youtube视频地址:https://youtu.be/n2y7n6jw5d0
有中文翻译:【【Zach数学系列】拉普拉斯和傅里叶变换告诉了我们什么?(合集于视频列表)】https://www.bilibili.com/video/BV1Jv411G7B1?vd_source=93bb338120537438ee9180881deab9c1
