brewco/pid.h

Wed, 25 Nov 2015 22:49:35 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 25 Nov 2015 22:49:35 +0100
changeset 434
eb724767860d
child 435
4b1ed6897d80
permissions
-rw-r--r--

Brewco first phase development configuration structure.

#ifndef	PID_H
#define	PID_H

#define	PID_MODE_NONE		0	/* Process control off				*/
#define	PID_MODE_AUTO		1	/* Process control auto				*/
#define	PID_MODE_BOO		2	/* Process control Bang On/Off			*/

#define	PID_TIMES		60	/* 60 calculations per minute			*/
#define	PID_WINDUP_GUARD	10.0	/* Error windup guard				*/


typedef struct _pid_var {
	double		iMax;		/* Maximum allowable integrator state		*/
	double		iGain;		/* Integral gain				*/
	double		pGain;		/* Proportional gain				*/
	double		dGain;		/* Derivative gain				*/

	double		Input;		/* Input value					*/
	double		Err;		/* Error, diff between input and set point	*/
	double		ErrLast;	/* Error from last pass				*/
	double		iState;		/* Error from next last pass			*/
	double		SetP;		/* Set point					*/
	double		OutP;		/* Output of PID algorithm			*/
	int		Mode;		/* Value is 'PID_AUTO' if loop is automatic	*/
} pid_var;


void InitPID( pid_var *);
void UpdatePID( pid_var *);

#endif

mercurial