////////////////////////////////////////////////////////////////// 定义PID参数结构体///////////////////////////////////////////////////////////////typedef struct PID { //结构体定义 int SetPoint //设定值 int Proportion; // Proportion 比例系数 int Integral; // Integral 积分系数 int Derivative; // Derivative 微分系数 int LastError; // Error[-1] 前一拍误差 int PreError; // Error[-2] 前两拍误差} PID;main(){ PID vPID; //定义结构变量名PIDInit ( &vPID ); //Initialize StructurevPID.Proportion = 10; //Set PID Coefficients vPID.Integral = 10; // Set PID Integral vPID.Derivative = 10; // Set PID Derivative vPID. SetPoint = //根据实际情况设定 while(1){ Verror=Measure(); //得到AD的输出值 Error =vPID. SetPoint- Verror; //与设定值比较,得到误差值tempi=PIDCal(&vPID, Error; laser.Value+=tempi; // Value与Num[2]为共同体,共同体名laserLASERH=laser.Num[0];LASERL=laser.Num[1]; }}/////////////////////////////////////////////////////////////////////////Title:PID参数初始化//Description: Proportion="0"// Integral=0// LastError=0//Input: PID的P、I控制常数和之前的误差量(PID *pp)//Return: //////////////////////////////////////////////////////////////////////void PIDInit (PID *pp) //PID参数初始化,都置0 { memset ( pp,0,sizeof(PID));//memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。// memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数,//第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。//其函数原型为:void *memset(void*,int,unsigned);//头文件<string.h> }/////////////////////////////////////////////////////////////////////////Title:增量式PID算法程序//Description:给出一个误差增量//Input: PID的P、I控制常数和之前的误差量(PID *pp)& 当前误差量(ThisError)//Return: 误差增量templ//////////////////////////////////////////////////////////////////////int PIDCal( PID *pp, int ThisError ){ //增量式PID算法(需要控制的不是控制量的绝对值,而是控制量的增量) int pError,dError,iError;long templ; pError = ThisError-pp->LastError; iError = ThisError; dError = ThisError-2*(pp->LastError)+pp->PreError; //增量计算 templ=pp->Proportion*pError + pp->Integral*iError+pp->Derivative*dError; //增量 //存储误差用于下次运算 pp->PreError = pp->LastError; pp->LastError = ThisError; return ((int)(templ>>8));}
导读:目前正在解读《增量式PID控制C语言代码》的相关信息,《增量式PID控制C语言代码》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《增量式PID控制C语言代码》的详细说明。
简介:这里个大家分享了一个增量式PID控制C语言的源代码。
提醒:《增量式PID控制C语言代码》最后刷新时间 2024-03-14 01:02:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《增量式PID控制C语言代码》该内容的真实性请自行鉴别。