系列文章目录
`
一、stm32 FOC从零学习开发(一)FOC概念
二、stm32 FOC从学习开发(二)Clark变换与MATLAB仿真
三、stm32 FOC从学习开发(三)park变换与MATLAB仿真
四、stm32 FOC从学习开发(四)svpwm算法(1)
五、stm32 FOC从学习开发(五)svpwm算法(2)
六、stm32 FOC从学习开发(六)基于均值零序分量注入的载波SVPWM算法
七、stm32 FOC从学习开发(七)svpwm算法MATLAB仿真
八、stm32 FOC从学习开发(八)PID基础MATLAB仿真
九、stm32 FOC从学习开发(九)FOC MATLAB仿真
文章目录
PID MATLAB仿真文件链接:https://download.csdn.net/download/bing_xin_/88309819
基于MATLAB 2018a版本,低于这个版本的请谨慎下载,高于这个版本的可以兼容。
一、PID控制基本原理
在网上讲PID的也比较多,一搜就能搜出一大堆来,这里我就不详细介绍了,简单的来说一下。
PID算法是工业应用中最广泛算法之一,在闭环系统的控制中,可自动对控制系统进行准确且迅速的校正。PID算法已经有100多年历史,在四轴飞行器,平衡小车、汽车定速巡航、温度控制器等场景均有应用。
PID算法:就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种常见的“保持稳定”控制算法。
PID的控制系统基本原理框图如下所示:
网上有两种表示,一种是将比例Kp放在整个方程的外面,也就是积分和微分也乘以这个系数,一种是单独只是作为比例的系数,两种方式区别只在于积分和微分是不是跟随比例,但在实际调制时也只是系数不一样而已。
二、PID各参数的作用
Kp比例增益
Kp比例控制考虑当前误差,误差值和一个正值的常数Kp(表示比例)相乘。
实际写程序时,就让偏差(目标减去当前)与调节装置的“调节力度”,建立一个一次函数的关系,就可以实现最基本的“比例”控制了~
Kp越大,调节作用越激进,Kp调小会让调节作用更保守。
若你正在制作一个平衡车,有了P的作用,你会发现,平衡车在平衡角度附近来回“狂抖”,比较难稳住。
Ki积分增益
Ki积分控制考虑过去误差,将误差值过去一段时间和(误差和)乘以一个正值的常数Ki。
只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。
Ki的值越大,积分时乘的系数就越大,积分效果越明显,所以,I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。
Kd微分增益
Kd微分控制考虑将来误差,计算误差的一阶导,并和一个正值的常数Kd相乘。
D的作用就是让物理量的速度趋于0,只要什么时候,这个量具有了速度,D就向相反的方向用力,尽力刹住这个变化。
Kd参数越大,向速度相反方向刹车的力道就越强,如果是平衡小车,加上P和D两种控制作用,如果参数调节合适,它应该可以站起来了。
三、PID算法MATLAB simulink仿真
根据PID算法的定义,可以直接搭建MATLAB simulink仿真,这个还是比较容易搭建的,模型如下:
在PID模块的后面是一个传递函数,可以表示目标系统的变化,如果只是想达到一个预定的值,那不加这个传递函数就行了,这个传递函数也可以是任意的你想要表达的函数。
图上的从上到下的5、3、1分别表示的就是P、I、D,这个自己根据需要调整。
四、PID算法MATLAB simulink仿真结果
当不同的PID值的时候,仿真结果肯定不一样的,以上面分别为5、3、1为例:
当PID的值改变为1、3、1时:
可以看到结果会过冲,
那么如果PID为5、1、1呢:
可以看到由于积分从3变成了1,到达10目标值的波形变缓了。
五、PID调参口诀
参数整定找最佳,从小到大顺序查,先是比例后积分,最后再把微分加。这个口诀指的是在进行PID调参时,按照比例、积分和微分的顺序逐步调整参数。首先调整比例参数,观察响应曲线的快慢和超调的大小。然后调整积分参数,使稳态误差满足要求。最后调整微分参数,根据响应曲线的波动情况来确定微分参数的大小。通过这个口诀可以帮助工程师更好地进行PID调参,并获得满意的控制效果。