更新项目结构,修改自述文件
This commit is contained in:
67
02-Application/PID.h
Normal file
67
02-Application/PID.h
Normal file
@@ -0,0 +1,67 @@
|
||||
#ifndef __PID_H__
|
||||
#define __PID_H__
|
||||
|
||||
typedef struct
|
||||
{
|
||||
float Need_Value;//预期值
|
||||
float Now_Value;//当前值
|
||||
float OUT;//总输出
|
||||
float OUT_Min;//输出限幅下限
|
||||
float OUT_Max;//输出限幅上限
|
||||
|
||||
float Ek;//本次误差
|
||||
float Ek_Last;//上一次误差
|
||||
float Ek_Sum;//误差积分
|
||||
|
||||
float Kp;//Kp
|
||||
float Ki;//Ki
|
||||
float Kd;//Kd
|
||||
|
||||
float Ek_Del;//误差差分
|
||||
float Ek_Min;//误差为0阈值下限
|
||||
float Ek_Max;//误差为0阈值上限
|
||||
|
||||
float P_OUT;//比例输出
|
||||
float I_OUT;//积分输出
|
||||
float D_OUT;//微分输出
|
||||
}PID_PositionInitTypedef;//位置式PID参数结构体
|
||||
|
||||
typedef struct
|
||||
{
|
||||
float Need_Value;//预期值
|
||||
float Now_Value;//当前值
|
||||
|
||||
float Ek;//本次误差
|
||||
float Ek_Last;//上一次误差
|
||||
float Ek_Last2;//上两次误差
|
||||
float Ek_Min;//误差为0阈值下限
|
||||
float Ek_Max;//误差为0阈值上限
|
||||
|
||||
float Kp;//Kp
|
||||
float Ki;//Ki
|
||||
float Kd;//Kd
|
||||
|
||||
float P_OUT;//比例输出
|
||||
float I_OUT;//积分输出
|
||||
float D_OUT;//微分输出
|
||||
float OUT;//总输出
|
||||
float OUT_Min;//输出限幅下限
|
||||
float OUT_Max;//输出限幅上限
|
||||
}PID_IncrementalInitTypedef;//增量式PID参数结构体
|
||||
|
||||
void PID_PositionStructureInit (PID_PositionInitTypedef* PID_InitStructure,float NeedValue); //位置式PID初始化结构体
|
||||
void PID_PositionSetParameter (PID_PositionInitTypedef* PID_InitStructure,float kp,float ki,float kd); //位置式PID设置参数
|
||||
void PID_PositionSetEkRange (PID_PositionInitTypedef* PID_InitStructure,float ek_low,float ek_up); //位置式PID设置误差为0阈值
|
||||
void PID_PositionSetOUTRange (PID_PositionInitTypedef* PID_InitStructure,float out_low,float out_up); //位置式PID设置输出限幅
|
||||
void PID_PositionSetNeedValue (PID_PositionInitTypedef* PID_InitStructure,float NeedValue);
|
||||
void PID_PositionClean (PID_PositionInitTypedef* PID_InitStructure); //位置式PID清理
|
||||
void PID_PositionCalc (PID_PositionInitTypedef* PID_InitStructure,float NowValue); //位置式PID计算
|
||||
void PID_PositionCalc_Motor (PID_PositionInitTypedef* PID_InitStructure,float NowValue);
|
||||
|
||||
void PID_IncrementalStructureInit (PID_IncrementalInitTypedef* PID_InitStructure,float NeedValue); //增量式PID初始化结构体
|
||||
void PID_IncrementalSetParameter (PID_IncrementalInitTypedef* PID_InitStructure,float kp,float ki,float kd); //增量式PID设置参数
|
||||
void PID_IncrementalSetEkRange (PID_IncrementalInitTypedef* PID_InitStructure,float ek_low,float ek_up); //增量式PID设置误差为0阈值
|
||||
void PID_IncrementalSetOUTRange (PID_IncrementalInitTypedef* PID_InitStructure,float out_low,float out_up); //增量式PID设置输出限幅
|
||||
void PID_IncrementalCalc (PID_IncrementalInitTypedef* PID_InitStructure,float NowValue); //增量式PID计算
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user