接下来内容需要数学功底,并且有现成结论的内容不做推导,重在讲解工程实践中的方法论,建议控制类专业或学习过相关理论的人阅读
一、开闭环系统
(1)开环控制系统:被控对象输出对控制器的输出没有影响
(2)闭环控制系统:系统被控对象的输出会返送回来影响控制器输出,形成一个或多个闭环控制系统。把控制系统输出量的一部分或全部,通过一定方法和装置返送回系统的输入端,然后将反馈信息与原输入信息进行比较,再将比较结果施加于系统进行控制,避免系统偏离预定目标。
、、、、
(3)反馈:控制论的基本概念,将系统输出反馈输入端,并以某种方式改变输入,进而影响系统功能的全过程。反馈可分为负反馈、正反馈。
负反馈起到与输入相反的作用,使系统偏差减小,趋于稳定。
正反馈使偏差不断增大,使系统震荡,可以放大控制作用。正反馈主要用于信号产生电路、输入前馈系统等。
对负反馈的研究是控制论的核心问题。
举例1 投篮
举例2 工业液位调节系统
举例3 工业加热炉温控系统
第一个系统研究的是执行器的运动问题,我们称为运动控制系统。
后两个研究的是被控对象在某段过程的状态问题,我们称为过程控制系统。
运动控制系统通常要求系统具有较小惯性或自身惯性的影响能被克制,因而实时性更强。
而过程控制系统通常具有较大惯性,很难快速改变输出稳态。
而嵌入式电机控制,主要涉及的是实时性要求更强的运动控制系统。
二、PID控制器
(1)PID控制器:将偏差的比例、积分、微分,通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器叫做PID控制器。
(2)PID控制的使用:当实际工程问题处于黑盒状态时(被控对象的结构和参数不完全清楚),系统控制器的结构参数必须依靠经验和现场调试来确定。
这样的特征让PID更能适用于黑盒问题,帮助我们更快的进行系统建模。
然而,PID的三个系数并非时刻全部都在使用,我们也会根据情况,选择PI和PD控制。
(3)PID算法的要求:除了一般软件算法常见的六大要求以外,运动控制系统中的PID算法不仅仅需要通过数学公式实现占空比自动调整,还要在极短时间内就能实现稳定在目标输出。
所以,电机控制的PID算法必须实现:稳、准、快
PID调参过程中,各系统建模的响应曲线对比
三、PID控制算法
(1)比例控制(P)
比例控制是最简单的控制,他的控制器输出与偏差量成比例关系。当仅有比例控制时,系统稳态误差为0,则输出也为0。所以,比例控制是用来放大当前误差的一种算法,不能单将其用入电机控制系统中!
下面是一个Kp调节的响应曲线,不同曲线对应了不同Kp值下的响应,我们 一 一 分析。
首先,Reference代表我们的阶跃输入(Step Input),它的幅值与我们的目标速度相同,这也是我们嵌入式系统中常用的一种控制器输入,它的响应叫做阶跃响应(Step Response)。
1. 当Kp=0.5时,由于误差被缩小并输出,而误差本身也是随着修正而输出的,所以曲线应该呈缓慢爬升趋势。(可以做DE或CE严格推导)
2. 当Kp=1.6时,由于误差被放大,曲线迅速超调,但是超调量控制在了1一下,所以它之后会缓慢震荡,然后回到目标稳态。(在实际情况下,这种行为已经很危险了,遇到类似一定要注意)
3. 当Kp=1.1时,虽然超调,但是超调量并不是很大,经过短暂的时间就直接回稳了。
在以上三种曲线中,K=1.1时是比较理想的,因为它既没有多少震荡,响应速度也足够的快。
若Kp调大,在相同误差下,会造成更大的输出,但是如果Kp过大,系统会因为细小误差的出现而变得极其不稳定。
相反的,若Kp小,在相同误差下,输出更小,因此控制器会敏感性会降低。若比例增益太小,当有干扰出现时,其控制器输出的抑制信号可能不够,进而无法修正。
需要注意的是,对于大部分系统而言,单调Kp很难稳定在我们预设值。这时,比例系统稳态输出会与预设产生自身无法消除的误差,叫做稳态误差(Steady State Error)。
而控制理论给出了一个解释,稳态误差产生本质上是因为负载特性和控制特性曲线的交点与设定值不一致。
以下是Kp环节的误差修正方程,SV是设定值,PV是测量值:
在单位反馈线性定常系统中,由于Final Value Throem(终值定理),稳态误差与系统开环增益K成反比。
如果系统仅采用比例控制,则开环增益等于比例增益、执行器以及被控对象本身的增益乘积
K = Kp * Ko
所以稳态误差ess反比于Kp*Ko
但在一般情况下,我们在变动Kp时,都是在具有一定非线性的系统中操作的(如电机控制系统)。我们在变动Kp的时候Ko也会因为电气、机械的影响跟着改变,而我们单独改变Ko的时候,Kp由于时控制器固定的算法,所以是不变的。
因此!!!
在常见电机控制系统中,稳态误差和比例增益成正比,而和控制系统本身的增益成反比。
若加入一个偏置,或者是积分控制,则可以消除我们的稳态误差。
这个偏置到底是什么呢?我们下一回分解!