#include "pid.h"
static uchar Rn=0;
static uchar Kp=0,Ti=0,Td=0;
static uchar T_cyc=0;
static float delta_u=0;
static float Q0=0,Q1=0,Q2=0;
static uchar E[3]={0,0,0};
/**********************************************/
/*
P为比例系数,I为积分时间常数,D为微分时间常数,
T为采样周期,
R为设定值
*/
/*********************************************/
void PID_para_set(uchar P,uchar I,uchar D,uchar T,uchar R)
{
Kp=P;
Ti=I;
Td=D;
T_cyc=T;
Rn=R;
PID_cal_Q();
}
void PID_cal_Q(void)
{
Q0=Kp*(1+T_cyc/Ti+Td/T_cyc);
Q1=-(Kp*(1+2*Td/T_cyc));
Q1=Kp*Td/T_cyc;
}
void PID_in(uchar h)
{
E[2]=E[1];
E[1]=E[0];
E[0]=Rn-h;
}
uchar PID_out(void)
{
delta_u=Q0*E[0]+Q1*E[1]+Q2*E[2];
if(delta_u>=255)
delta_u=255;
if(delta_u<=0)
delta_u=0;
return((uchar)delta_u);
}
PID增量式算法模块设计
4星 · 超过85%的资源 需积分: 12 147 浏览量
2011-02-28
15:46:06
上传
评论 1
收藏 14KB RAR 举报
胖祥
- 粉丝: 9
- 资源: 4
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈