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 + -
显示快捷键?