增量式PID控制C语言代码

来源:本站
导读:目前正在解读《增量式PID控制C语言代码》的相关信息,《增量式PID控制C语言代码》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《增量式PID控制C语言代码》的详细说明。
简介:这里个大家分享了一个增量式PID控制C语言的源代码。

////////////////////////////////////////////////////////////////// 定义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语言代码》最后刷新时间 2024-03-14 01:02:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《增量式PID控制C语言代码》该内容的真实性请自行鉴别。