float PidEqn(void)
{
	float	R0;		//PIDoް
	float	R1;		//vZpڼ޽

	R0 = fgEqnIn;		// r0 = X(n)
	R1 = R0 - HistPtr[0];	// r1 = X(n) - X(n-1)
	HistPtr[0] = R0;		// ̉Z̈X(n)ۑ
	R0 = CoefPtr[0] * R0;	// r0 = Gp = Kp * X(n) 
	R1 = CoefPtr[2] * R1;	// r1 = Gd = Kd * (X(n) - X(n-1))
	R0 = R0 + R1;		// r0 = Gp + Gd
	R1 = HistPtr[1];		// r1 = Icharge(n-1)
	R1 = HistPtr[0] + R1;	// r1 = Icharge(n-1) + X(n)
	HistPtr[1] = R1;		// ̌vZ̈Icharge(n)ۑ
	R1 = CoefPtr[1] * R1;	// r1 = Gi = Ki * Icharge(n)
	R0 = R1 + R0;		// r0 = Gp + Gi + Gd
	return R0;
}

۰ٕϐ
fgEqnIn = PIDް
HistPtr[0] = 1ّOް X(n-1)ۑĂB
HistPtr[1] = 1ّO̐ϕ Icharge(n-1)ۑĂB
CoefPtr[0] = ޲ KpۑĂB
CoefPtr[1] = ϕ޲ KiۑĂB
CoefPtr[2] = ޲ KdۑĂB
