thermferm/pid.h

Wed, 12 May 2021 21:17:59 +0200

author
Michiel Broek
date
Wed, 12 May 2021 21:17:59 +0200
changeset 611
732d482f47c8
parent 495
712984fdd26b
permissions
-rw-r--r--

Improved logging if wiringpi failed.

#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_TYPE_HEAT		0	/* PID is used for heating			*/
#define	PID_TYPE_COOL		1	/* PID is used for cooling			*/



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

	double		Input;		/* Input value					*/
	double		Err;		/* Error, diff between input and set point	*/
	double		InputLast;	/* Input 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	*/
	int		Type;		/* Value is 'HEAT' or 'COOL'			*/
} pid_var;


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

#endif

mercurial