📄 pid.h
字号:
/*
File Name : pid.cpp
Description: pid controller in c implement
Version : 0.1 that is debug version
Author : he hai long
Date : 10/22/2003
*/
//PID controller based on Tustin discretization
/*
the PID controller moudle is:
P(k)=K*(b*uc(k)-y(k))
I(k+1)=I(k)+K*h*e(k)/Ti
D(k)=Td*D(k-1)/(Td+N*h)-K*Td*N*(y(k)-y(k-1))/(Td+N*h)
e(k)=uc(k)-y(k)
*/
#ifndef PID_H
#define PID_H
struct PidData
{
struct
{
double uc; //input: Set point
double y; //input: measured variable
double u; //output: controller output
double v; //output: Limited controller output
}Signals;
struct
{
double P; //proportional part
double I; //integral part
double D; //derivative part
double yold; //delayed measured variable
}States;
struct
{
double K; //Controller gain
double Ti; //integral time
double Td; //Derivative time
double Tt; //Reset time
double N; //maximum derivative gain
double b; //Fraction of setpoint in proportional.term
double ulow; //low output limit
double uhigh; //high output limit
double h; //Sampling period
double bi, ar, bd, ad; //coefficent
}Par; //parameter
};
void PidInit(struct PidData *data);
void PidCalculateOutput(struct PidData *data);
void PidUpdateStates(struct PidData *data);
void PidReset(struct PidData *data);
#endif
/*==========================================
no more
==========================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -