初级会员

- 积分
- 107
- 金钱
- 107
- 注册时间
- 2019-2-27
- 在线时间
- 32 小时
|
#include "pid2.h"
struct t_pid2
{
float SetSpeed2;
float ActualSpeed2;
float err2;
float err_next2;
float err_last2;
float Kp2,Ki2,Kd2;
}pid2;
void PID2_init()
{
pid2.SetSpeed2=0.0;
pid2.ActualSpeed2=0.0;
pid2.err2=0.0;
pid2.err_next2=0.0;
pid2.err_last2=0.0;
pid2.Kp2=0.2;
pid2.Ki2=0.015;
pid2.Kd2=0.2;
}
float PID2_realize(float speed)
{
float incrementSpeed=0;
pid2.SetSpeed2=speed;
pid2.err2=pid2.SetSpeed2-pid2.ActualSpeed2;
incrementSpeed=pid2.Kp2*(pid2.err2-pid2.err_next2)+pid2.Ki2*pid2.err2+pid2.Kd2*(pid2.err2-2*pid2.err_next2+pid2.err_last2);
pid2.ActualSpeed2+=incrementSpeed;//这里不明白为什么 给 ActualSpeed 我的理解是ActualSpeed是 采集的温度反馈信号 我控制温度
pid2.err_last2=pid2.err_next2;
pid2.err_next2=pid2.err2;
return pid2.ActualSpeed2;
}
|
|