13 #define STEP0VALUE 30.0 14 #define MEANTEMPTIME 1680000 17 #define STEADYTIMELENGTH 1800000 23 #define RELAYSAMPLEFACTOR 15 26 #define RELAYSTEP 25.0 32 #define MAXSAMPLEPERPERIOD 200 35 #define MODELPARAMTOL 0.05 36 #define MAXRELAYPERIOD 8 74 double* currentTemp,
double* ssrControl,
double* settedTemp);
77 float lowBound = -1,
float upBound = 100,
78 float critalFlow = -1);
99 unsigned int _steadySignalSampleQty;
100 float _steadySignalSampleSum;
101 float _relayTreshold;
104 unsigned int _samplingFactorIndex;
107 unsigned int _signalSampleQty;
111 bool _halfPeriodCompleted;
112 char _curRelayPerIndex;
RimsTuner(UIRims *uiRims, byte analogPinTherm, byte ssrPin, double *currentTemp, double *ssrControl, double *settedTemp)
Consructor.
Definition: RimsTuner.cpp:16
Toolkit to automatically tune PID without a process model.
Definition: RimsTuner.h:69
#define MAXSAMPLEPERPERIOD
Max signal samples per relay period (limited by SRAM), i.e., with default values, maxMeasurableRelayP...
Definition: RimsTuner.h:32
void _relayInit()
Init relay for identification procedure.
Definition: RimsTuner.cpp:152
float _evalAmplitude()
Evaluate fundamental harmonic amplitude of previously saved samples.
Definition: RimsTuner.cpp:273
void _calcTuningPID(float T, float A)
Calculate auto-tuned PID coefficients after tuning procedure.
Definition: RimsTuner.cpp:298
void _iterate()
Iterations for RimsTuner instance.
Definition: RimsTuner.cpp:79
bool _relayAction()
Save a signal sample for amplitude evaluation and switch relay output if treshold is reached...
Definition: RimsTuner.cpp:171
Rims class declaration, related macro and global variables.
void _relayEnd()
Evaluate PID coefficients and show them on UIRims.
Definition: RimsTuner.cpp:242
#define MAXRELAYPERIOD
Maximal relay period before forcing auto-tuner ending [integer].
Definition: RimsTuner.h:37
Library to manage LCD and keypad for Rims library.
Definition: UIRims.h:68
void _refreshTuner()
Refresh relay identification and compute critical point parameters.
Definition: RimsTuner.cpp:116
UIRims class declaration and related macro.
Recirculation infusion mash system (RIMS) library for Arduino.
Definition: Rims.h:145
bool _relayStartNewPeriod()
Start new relay identification period.
Definition: RimsTuner.cpp:208
void _initialize()
Initialize RimsTuner before iterations.
Definition: RimsTuner.cpp:24
void setFlowSensor(byte pinFlow, float flowFactor, float lowBound=-1, float upBound=100, float critalFlow=-1)
Same as Rims::setFlowSensor.
Definition: RimsTuner.cpp:314