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

📄 pidss4复件.c

📁 51单片机PID计算程序
💻 C
字号:
#include "pid_s.h"
/*----------------------------------------------------
函数说明:主要用于PI运算通过给定和反馈计算出输出--------------
入口:ifin,give(反馈,给定)
出口: out
全局变量:lasterror,lastout;      
调用模块: 无  
---------------------------------------------*/
int idata lerror1,lastout;//,out_max,yout[5],lyrk,yrk,;
uchar xi,xp,xd;
char p;
uint ypid(unsigned int give,unsigned int feedback){
int error1,error2,out;
      error1=give-feedback;       //计算积分偏差
      error2=error1-lerror1;      //计算比例偏差
lerror1=error1;             //更新e(k-1)   
out=lastout+error1/xi+error2*xp; //计算PI控制值
  if(error1==0)out=out;            //计算不灵敏区的运算补偿
 else if(error1<8&&error1>-8){
      if(error1>0)out=out+1;
      else out=out-1;
                    }
else if(error1<16&&error1>-16){
  if(error1>0)out=out+2;
  else out=out-2;
                    }
   if(out>UPPER_LIMIT)out=UPPER_LIMIT;     //对输出值进行上限控制
      if(out<0)out=0;             //对输出值进行下限控制
lastout=out;               //更新out(k-1)
if(error1<xd&&error1>-xd)out=out+error1;
      return(out);          //返回最终运算结果
			  }
//-----------------------------------------
/*----------------------------------------------------
函数说明:clr_lastout()
功  能:将PID计算模块的上次输出改为指定的值
全局变量:      
调用模块: 无  
---------------------------------------------*/
void clr_lastout(uint value1){//PID运算从0开始
		lastout=value1;
		}
/*----------------------------------------------------
函数说明:initialize_pid_value()
功  能:初始化PID的比例系数,积分系数
全局变量:      
调用模块:   
---------------------------------------------*/
void initialize_pid_value(){
	xp=1;
	xi=8;
	xd=4;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -