brewco/pid.h

Thu, 26 Nov 2015 22:47:42 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 26 Nov 2015 22:47:42 +0100
changeset 435
4b1ed6897d80
parent 434
eb724767860d
child 446
78e9d5234d15
permissions
-rw-r--r--

More configuration items added.

434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 #ifndef PID_H
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 #define PID_H
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 #define PID_MODE_NONE 0 /* Process control off */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 #define PID_MODE_AUTO 1 /* Process control auto */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 #define PID_MODE_BOO 2 /* Process control Bang On/Off */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 #define PID_TIMES 60 /* 60 calculations per minute */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 #define PID_WINDUP_GUARD 10.0 /* Error windup guard */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 typedef struct _pid_var {
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 double iMax; /* Maximum allowable integrator state */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 double iGain; /* Integral gain */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 double pGain; /* Proportional gain */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 double dGain; /* Derivative gain */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 double Input; /* Input value */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 double Err; /* Error, diff between input and set point */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 double ErrLast; /* Error from last pass */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 double iState; /* Error from next last pass */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 double SetP; /* Set point */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 double OutP; /* Output of PID algorithm */
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 int Mode; /* Value is 'PID_AUTO' if loop is automatic */
435
4b1ed6897d80 More configuration items added.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
25 int Times; /* Calculations per minute */
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 } pid_var;
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 void InitPID( pid_var *);
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 void UpdatePID( pid_var *);
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 #endif

mercurial