Hi @Elco.
It is doing it now. Running in beer constant set to 20.
The Pin is high… the SSR is not on. No red led.
JSON below
{
"kind": "Control",
"pids": [
{
"kind": "Pid",
"name": "heater1",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "fridgeset",
"value": 28.4688
},
"inputSensor": {
"kind": "TempSensorFallback",
"onBackupSensor": false,
"sensor": {
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "OneWireTempSensor",
"value": 15.5625,
"connected": true,
"address": "28FF7DB26B14030E",
"calibrationOffset": 0
}
}
},
"inputError": -12.8672,
"Kp": 20,
"Ti": 600,
"Td": 60,
"p": 257.3438,
"i": 0,
"d": -1.3281,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 100,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"waitTime": 1799504
},
"target": {
"kind": "ActuatorPin",
"state": true,
"pin": 16,
"invert": false
}
}
}
},
{
"kind": "Pid",
"name": "heater2",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "beer2set",
"value": null
},
"inputSensor": {
"kind": "TempSensor",
"name": "beer2",
"sensor": {
"kind": "OneWireTempSensor",
"value": 1.125,
"connected": true,
"address": "28FFDAC86B1403DF",
"calibrationOffset": 0
}
},
"inputError": null,
"Kp": 10,
"Ti": 600,
"Td": 60,
"p": 0,
"i": 0,
"d": 0,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 0,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"waitTime": 1799434
},
"target": {
"kind": "ActuatorNop",
"state": false
}
}
}
},
{
"kind": "Pid",
"name": "cooler",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "fridgeset",
"value": 28.4688
},
"inputSensor": {
"kind": "TempSensorFallback",
"onBackupSensor": false,
"sensor": {
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "OneWireTempSensor",
"value": 15.5625,
"connected": true,
"address": "28FF7DB26B14030E",
"calibrationOffset": 0
}
}
},
"inputError": -12.8672,
"Kp": 10,
"Ti": 1800,
"Td": 200,
"p": 128.6719,
"i": 0,
"d": -2.2656,
"actuatorIsNegative": true,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 0,
"period": 1200,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"waitTime": 1799358
},
"target": {
"kind": "ActuatorTimeLimited",
"minOnTime": 120,
"minOffTime": 180,
"maxOnTime": 65535,
"state": false,
"target": {
"kind": "ActuatorPin",
"state": false,
"pin": 10,
"invert": false
}
}
}
}
},
{
"kind": "Pid",
"name": "beer2fridge",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "beer1set",
"value": 20
},
"inputSensor": {
"kind": "TempSensor",
"name": "beer1",
"sensor": {
"kind": "OneWireTempSensor",
"value": 15.5625,
"connected": true,
"address": "28FFB7976B140360",
"calibrationOffset": 0
}
},
"inputError": -4.4336,
"Kp": 2,
"Ti": 7200,
"Td": 1200,
"p": 8.8672,
"i": 0,
"d": -0.3984,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorSetPoint",
"targetSetPoint": {
"kind": "SetPointSimple",
"name": "fridgeset",
"value": 28.4688
},
"targetSensor": {
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "OneWireTempSensor",
"value": 15.5625,
"connected": true,
"address": "28FF7DB26B14030E",
"calibrationOffset": 0
}
},
"referenceSetPoint": {
"kind": "SetPointSimple",
"name": "beer1set",
"value": 20
},
"output": 8.4688,
"achieved": -4.4375,
"minimum": -10,
"maximum": 10
}
}
]
}
settings:
ModeActive temperature control mode. Use to control panel to switch (apply button).
Send to Photon
Beer Temperature SettingBeer temperature setting when in profile or beer constant mode. Use the control panel to adjust.
20
Fridge Temperature SettingAutomatically adjust when in profile/beer constant mode. Use the control panel to adjust.
20
Send to Photon
Beer-to-Fridge proportional gain (Kp)Actuatour output in % = Kp * input error
2
Send to Photon
Beer-to-Fridge integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
7200
Send to Photon
Beer-to-Fridge derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
1200
Send to Photon
Maximum difference between fridge and beer set point (= output of PID)The output of this PID is added to the beer set point to automatically set the fridge set point. You can define the maximum difference between the beer temperature setting and fridge temperature setting here.
10
Send to Photon
Beer-to-Fridge Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Beer-to-Fridge Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Cooler proportional gain (Kp)Actuatour output in % = Kp * input error
10
Send to Photon
Cooler integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
1800
Send to Photon
Cooler derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
200
Send to Photon
Cooler PWM period (seconds)Each PWM cycle takes this many seconds. A value lower than 4 seconds is not recommended.
1200
Send to Photon
Cooler minimum OFF timeA fridge compressor needs to be OFF for a minimum time to protect it from building up pressure and overheating.
180
Send to Photon
Cooler minimum ON timeA minimum ON time is also recommended, because many short cycles limit the compressor lifespan.
120
Send to Photon
Cooler Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Cooler Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 1 proportional gain (Kp)Actuatour output in % = Kp * input error
20
Send to Photon
Heater 1 integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
600
Send to Photon
Heater 1 derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
60
Send to Photon
Heater 1 PWM period (seconds)Each PWM cycle takes this many seconds. A value lower than 4 seconds is not recommended.
4
Send to Photon
Heater 1 Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 1 Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 2 proportional gain (Kp)Actuatour output in % = Kp * input error
10
Send to Photon
Heater 2 integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
600
Send to Photon
Heater 2 derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
60
Send to Photon
Heater 2 PWM period (seconds)Each PWM cycle takes this many seconds. A value lower than 4 seconds is not recommended.
4
Send to Photon
Heater 2 Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 2 Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Dead time when switching between actuatorsOnly one can be active at each moment. The dead time is the minimum to wait when switching between one actuator and another. This prevents quickly alternating between heating to cooling.
1800
Send to Photon
With the button below, you can reset the entire Photon to factory defaults.
This will reset all settings and will remove all installed devices.