⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pid.h

📁 MS320F2812 Sci驱动程序
💻 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 + -