解释 static PID pid= {0.02, 0.3, 0}; //赋予初值 static int sumE = 0; //累加偏差 static int lastE = 0; PID OUT = {0, 0, 0};
时间: 2024-05-17 11:18:46 浏览: 10
这段代码定义了三个静态变量,分别是PID类型的pid、整型的sumE和lastE,并且分别进行了初始化:
1. pid变量初始化为{0.02, 0.3, 0},表示PID控制器的比例系数(P)为0.02、积分系数(I)为0.3、微分系数(D)为0。这三个系数的作用是在PID控制器中对输入信号进行加权处理,以获得控制器输出。不同的系数组合可以实现不同的控制效果。
2. sumE变量初始化为0,表示累加偏差的初始值为0。在PID控制器中,偏差指的是期望输出与实际输出之间的误差,累加偏差是指将这些误差进行累加,用于计算积分项。
3. lastE变量初始化为0,表示上一次的偏差初始值为0。在PID控制器中,为了计算微分项,需要记录上一次的偏差值。
最后还定义了一个PID类型的OUT变量,用于存储PID控制器的输出值。
相关问题
解释 static PID pid= {0.02, 0.3, 0}; //赋予初值kp,ki,kd static int sumE = 0; //累加偏差 static int lastE = 0; PID OUT = {0, 0, 0};
这段代码定义了一个静态的 PID 结构体变量 pid,其中 0.02、0.3 和 0 分别是 PID 控制器的比例系数、积分系数和微分系数的初值。sumE 和 lastE 分别用于累加误差和保存上一次误差的值。最后,定义了一个 PID 结构体变量 OUT,用于保存 PID 控制器的输出值,其中 0, 0, 0 分别代表输出值的初值,即比例、积分和微分部分的输出值均为 0。
解释int speed_pid() { //int tar = set,cur = DATE; //目标值TAR , 实际值CUR int e = -1,ec = -2.6; // tar=set; // cur=DATE; static PID pid= {0.02, 0.3, 0}; //赋予初值kp,ki,kd static int sumE = 0; //累加偏差 static int lastE = 0; PID OUT = {0, 0, 0}; e = set - DATE; //目标值 - 实际值 ec = e - lastE; //误差变化率 sumE += e; lastE = e; if (set <= 6) { return set; } // 目标值大于2,进行模糊控制和比例积分微分控制 OUT = fuzzy(e, ec); return (pid.Kp + OUT.Kp) * e + (pid.Kd + OUT.Kd) * ec + (pid.Ki + OUT.Ki) * sumE; }
这是一个函数定义,函数名称为 `speed_pid`,该函数没有参数。函数的作用是根据输入的目标值和实际值,计算出一个控制量,以控制电机的转速。
函数内部首先定义了一些变量和常量,包括目标值 `set`、实际值 `DATE`、误差 `e`、误差变化率 `ec`、累加偏差 `sumE` 和上一次的误差 `lastE`,以及一个 PID 结构体类型的变量 `pid` 和一个 `OUT` 变量。
之后,函数根据目标值和实际值计算出误差 `e` 和误差变化率 `ec`,并将误差 `e` 加入到累加偏差 `sumE` 中。接着,函数根据目标值 `set` 的大小,分别进行模糊控制和比例积分微分控制。
如果目标值 `set` 小于等于6,则直接将输出设置为目标值 `set`,表示不进行任何控制,直接输出目标值。这是因为目标值小于等于6时,要求时时电压与设置电压保持一致,因此不需要进行控制。
如果目标值 `set` 大于6,则进行模糊控制和比例积分微分控制,将最终的控制量返回。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)