$ This information is provided by the
$ Aptronix FuzzyNet
$ http://www.aptronix.com/fuzzynet
$ email fuzzynet@aptronix.com
$ Aptronix may also be reached by phone
$ at 408-261-1898 or
$ FAX at 408-490-2729
$
$
$ FILENAME: temp/temp1_er.fil
$ DATE: 02/09/1992
$ UPDATE: 03/09/1992
$ Temperature Controller : Part 2 : error compensator
$ Two inputs, one output
$ INPUT(S): Error, TimeDiff(erentialOf)_Error
$ OUTPUT(S): Var(iationOf)_Ctrl
$ FIU HEADER
fiu tvfi (min max) *8;
$ DEFINITION OF INPUT VARIABLE(S)
invar Error " " : -100 () 100 [
P_Large (@50, 0, @80, 1, @100, 1),
P_Medium (@20, 0, @50, 1, @80, 0),
P_Small (@0, 0, @20, 1, @50, 0),
Zero (@-20, 0, @0, 1, @20, 0),
N_Small (@-50, 0, @-20, 1, @0, 0),
N_Medium (@-80, 0, @-50, 1, @-20, 0),
N_Large (@-100,1, @-80, 1, @-50, 0)
];
invar TimeDiff_Error " " : -90 () 90 [
P_Large (@50, 0, @70, 1, @90, 1),
P_Medium (@30, 0, @50, 1, @70, 0),
P_Small (@0, 0, @30, 1, @50, 0),
Zero (@-30, 0, @0, 1, @30, 0),
N_Small (@-50, 0, @-30, 1, @0, 0),
N_Medium (@-70, 0, @-50, 1, @-30, 0),
N_Large (@-90, 1, @-70, 1, @-50, 0)
];
$ DEFINITION OF OUTPUT VARIABLE(S)
outvar Var_Ctrl " " : -1 () 1 * (
P_Large = 0.80,
P_Medium = 0.40,
P_Small = 0.20,
Zero = 0.00,
N_Small = -0.20,
N_Medium = -0.40,
N_Large = -0.80
);
$ RULES
if Error is Zero and TimeDiff_Error is P_Large then Var_Ctrl is P_Large;
if Error is Zero and TimeDiff_Error is P_Medium then Var_Ctrl is P_Medium;
if Error is Zero and TimeDiff_Error is P_Small then Var_Ctrl is Zero;
if Error is Zero and TimeDiff_Error is Zero then Var_Ctrl is Zero;
if Error is Zero and TimeDiff_Error is N_Small then Var_Ctrl is Zero;
if Error is Zero and TimeDiff_Error is N_Medium then Var_Ctrl is N_Medium;
if Error is Zero and TimeDiff_Error is N_Large then Var_Ctrl is N_Large;
if Error is P_Large and TimeDiff_Error is Zero then Var_Ctrl is P_Large;
if Error is P_Medium and TimeDiff_Error is Zero then Var_Ctrl is P_Medium;
if Error is P_Small and TimeDiff_Error is Zero then Var_Ctrl is Zero;
if Error is N_Small and TimeDiff_Error is Zero then Var_Ctrl is Zero;
if Error is N_Medium and TimeDiff_Error is Zero then Var_Ctrl is N_Medium;
if Error is N_Large and TimeDiff_Error is Zero then Var_Ctrl is N_Large;
if Error is P_Medium and TimeDiff_Error is P_Medium then Var_Ctrl is P_Large;
if Error is P_Small and TimeDiff_Error is P_Small then Var_Ctrl is Zero;
if Error is P_Medium and TimeDiff_Error is N_Medium then Var_Ctrl is Zero;
if Error is P_Small and TimeDiff_Error is N_Large then Var_Ctrl is N_Medium;
if Error is N_Small and TimeDiff_Error is P_Large then Var_Ctrl is P_Medium;
if Error is N_Medium and TimeDiff_Error is P_Medium then Var_Ctrl is Zero;
if Error is N_Small and TimeDiff_Error is N_Small then Var_Ctrl is Zero;
if Error is N_Medium and TimeDiff_Error is N_Medium then Var_Ctrl is N_Large
end