pid算法详解
发布于 2020-08-29 08:02:05
浏览 233
详情:
1、
欢迎访问抉信网 www.juexinw.com
1、PID算法基本原理
2、
欢迎访问抉信网 www.juexinw.com
PID算法是控制行业最经典、最简单、而又最能体现反馈控制思想的算法。对于一般的研发人员来说,设计和实现PID算法是完成自动控制系统的基本要求。这一算法虽然简单,但真正要实现好,却也需要下一定功夫。首先我们从PID算法最基本的原理开始分析和设计这一经典命题。
3、
欢迎访问抉信网 www.juexinw.com
PID算法的执行流程是非常简单的,即利用反馈来检测偏差信号,并通过偏差信号来控制被控量。而控制器本身就是比例、积分、微分三个环节的加和。垍
4、
欢迎访问抉信网 www.juexinw.com
位置型PID的实现就是以前面的位置型公式为基础。这一节我们只是完成最简单的实现,也就是将前面的离散位置型PID公式的计算机语言化。垍
5、
欢迎访问抉信网 www.juexinw.com
首先定义PID对象的结构体:
6、
欢迎访问抉信网 www.juexinw.com
代码示例:
7、
欢迎访问抉信网 www.juexinw.com
/*定义结构体和公用体*/垍
8、
欢迎访问抉信网 www.juexinw.com
typedef struct
9、
欢迎访问抉信网 www.juexinw.com
{
10、
欢迎访问抉信网 www.juexinw.com
float setpoint; //设定值垍
11、
欢迎访问抉信网 www.juexinw.com
float proportiongain; //比例系数
12、
欢迎访问抉信网 www.juexinw.com
float integralgain; //积分系数
13、
欢迎访问抉信网 www.juexinw.com
float derivativegain; //微分系数垍
14、
欢迎访问抉信网 www.juexinw.com
float lasterror; //前一拍偏差
15、
欢迎访问抉信网 www.juexinw.com
float result; //输出值
16、
欢迎访问抉信网 www.juexinw.com
float integral;//积分值
17、
欢迎访问抉信网 www.juexinw.com
}PID;
18、
欢迎访问抉信网 www.juexinw.com
接下来实现PID控制器:
19、
欢迎访问抉信网 www.juexinw.com
void PIDRegulation(PID *vPID, float processValue)垍
20、
欢迎访问抉信网 www.juexinw.com
{
21、
欢迎访问抉信网 www.juexinw.com
float thisError;垍
22、
欢迎访问抉信网 www.juexinw.com
thisError=vPID->setpoint-processValue;垍
23、
欢迎访问抉信网 www.juexinw.com
vPID->integral+=thisError;
24、
欢迎访问抉信网 www.juexinw.com
vPID->result=vPID->proportiongain*thisError+vPID->integralgain*vPID->integral+vPID->derivativegain*(thisError-vPID->lasterror);
25、
欢迎访问抉信网 www.juexinw.com
vPID->lasterror=thisError;
26、
欢迎访问抉信网 www.juexinw.com
}
上一篇:ab软启动器参数设置
下一篇:热电偶的测温原理是什么