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

📄 filter.c

📁 PID控制,包括算法,控制阶梯列表,算法步进
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -