//pid_fuction.h
#ifndef __PID_H
#define __PID_H
#include "sys.h"
#include "stdbool.h"
//PID模块
typedef struct PID_FIXCYCLE
{
//INTPUT
char RESET; //重新设置控制器
char MANUAL; //如果MANUAL是1,调节器暂停,切换到手工操作
float ACTUAL; //当前采样值
float SET_POINT; //设定值或期望值
float Y_OFFSET; //Y 输出补偿值
float Y_MAX; //最大值限制
float Y_MIN; //最小值限制
float CYCLE; //设置功能周期时间
//OUTPUT
float Y; //本次输出量
//SYSTEM
float KP; //定义比例常数
float KI; //定义积分常数
float KD; //定义微分常数
float Ui; //定义积分
float Ud; //定义微分
float E_2; //存储前前次误差
float E_1; //存诸前次误差
float E; //存储本次误差
char LIMITS_ACTVE; //超出Y_MIN和Y_MAX范围,LIMITS_ACTVE输出变为1
char OVERFLOW; //积分溢出标志
char Init; //单次赋值
}PID_FIXCYCLE;
extern PID_FIXCYCLE motorA_PID; //定义A电机pid参数
extern PID_FIXCYCLE motorB_PID; //定义B电机pid参数
void Pi
位置式PID函数(可重复使用)
最新推荐文章于 2025-03-26 15:36:57 发布