filter.c
来自「PID控制,包括算法,控制阶梯列表,算法步进」· C语言 代码 · 共 54 行
C
54 行
#include"math.h"
#include"..\inc\menu.h"
#include"..\inc\MotorCtrl.h"
extern int ADRESULT[];
extern int Spcnt;
extern int adc_js;
extern int Ctrldata[];
extern unsigned int qepCnt;
extern unsigned int iopcread();
int volt=0;
int current=0;
int spdgive=0;
int speedgive=0;
int hardspeedgive=0;
void filter();
//-------------------------------------------------------
// 函数名称:filter
// 输入参数:无
// 输出参数:无
// 功能描述:误差正负及均值滤波
//-------------------------------------------------------
void filter()
{
int i,j;
Ctrldata[HARDSPDSET]=ADRESULT[HARDSPDSET]; //硬速度给定
Ctrldata[CHA]=(iopcread())? -ADRESULT[CHA]: ADRESULT[CHA]; //PC口为0,则差量为正,非0则差量为负
if(read_menudata(RFWAY) == 0)
{
Ctrldata[SUDU]=ADRESULT[SUDU]; //速度反馈
}
else if(read_menudata(RFWAY) == 1)
{
Ctrldata[SUDU]=qepCnt*3/2; //编码器反馈
}
if(Ctrldata[LINGSU]<(1000*12))
{
Ctrldata[LINGSU]+=Ctrldata[SUDU];
}
if(Ctrldata[WUCHAJIFEN]<(1000*12))
{
Ctrldata[WUCHAJIFEN]+=ADRESULT[GEIDING];
}
current+=ADRESULT[DIANLIU]; //反馈电流累加16次
volt+=ADRESULT[DIANYA]; //反馈电压累加16次
speedgive+=ADRESULT[GEIDING];
hardspeedgive+=ADRESULT[HARDSPDSET];
return;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?