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

📄 valueoverperiod.c

📁 包括常规PID、NOTCH、LAG2 等函数的实现方法
💻 C
字号:
#include "utils.h"

// iOp
// 0 : min
// 1 : max

float ValueOverPeriod (float In, struct tValueOverPeriod *D)
{
	int i;
	float rVal;

	if (D->Duration > D->DT*0.5)
	{
		if (D->Init == 0)
		{
			D->Nbuf = NINT(D->Duration/D->DT);
			// UTILS_BUFFER_LENGTH D->Buffer = (float *)calloc(D->Nbuf, sizeof(float));
			for (i=0; i<D->Nbuf; i++) D->Buffer[i] = In;
			D->iPos = 0;
			D->Init = 1;
		}

		D->Buffer[D->iPos] = In;
		D->iPos++;
		if (D->iPos >= D->Nbuf) D->iPos = 0;

		rVal = D->Buffer[0];
		switch (D->iOp)
		{
		case 0:
			for (i=1; i<D->Nbuf; i++)
				if (D->Buffer[i] < rVal) rVal = D->Buffer[i];
			break;
		case 1:
			for (i=1; i<D->Nbuf; i++)
				if (D->Buffer[i] > rVal) rVal = D->Buffer[i];
			break;
		}
		return(rVal);
	}
	else return(In);
}

⌨️ 快捷键说明

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