Treacle Porter @brewpi update

 

Just a quick update

my control settings are now

{
  "kind": "Control",
  "pids": [
    {
      "kind": "Pid",
      "name": "heater1",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "fridgeset",
        "value": 17.9453
      },
      "inputSensor": {
        "kind": "TempSensorFallback",
        "onBackupSensor": false,
        "sensor": {
          "kind": "TempSensor",
          "name": "fridge",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 17.75,
            "connected": true,
            "address": "285C83B504000046",
            "calibrationOffset": 0
          }
        }
      },
      "inputError": -0.1953,
      "Kp": 10,
      "Ti": 600,
      "Td": 60,
      "p": 1.9531,
      "i": 0.0547,
      "d": -0.1172,
      "actuatorIsNegative": false,
      "outputActuator": {
        "kind": "ActuatorPwm",
        "value": 1.8906,
        "period": 4,
        "minVal": 0,
        "maxVal": 100,
        "target": {
          "kind": "ActuatorMutexDriver",
          "mutexGroup": {
            "kind": "ActuatorMutexGroup",
            "deadTime": 1800000,
            "waitTime": 1797431
          },
          "target": {
            "kind": "ActuatorPin",
            "state": false,
            "pin": 10,
            "invert": false
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "heater2",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "beer2set",
        "value": null
      },
      "inputSensor": {
        "kind": "TempSensor",
        "name": "beer2",
        "sensor": {
          "kind": "OneWireTempSensor",
          "value": 14.375,
          "connected": true,
          "address": "28AA4C830400008A",
          "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": 1797429
          },
          "target": {
            "kind": "ActuatorNop",
            "state": false
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "cooler",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "fridgeset",
        "value": 17.9453
      },
      "inputSensor": {
        "kind": "TempSensorFallback",
        "onBackupSensor": false,
        "sensor": {
          "kind": "TempSensor",
          "name": "fridge",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 17.75,
            "connected": true,
            "address": "285C83B504000046",
            "calibrationOffset": 0
          }
        }
      },
      "inputError": -0.1953,
      "Kp": 10,
      "Ti": 1800,
      "Td": 200,
      "p": 1.9531,
      "i": -0.0078,
      "d": -0.4688,
      "actuatorIsNegative": true,
      "outputActuator": {
        "kind": "ActuatorPwm",
        "value": 0,
        "period": 1200,
        "minVal": 0,
        "maxVal": 100,
        "target": {
          "kind": "ActuatorMutexDriver",
          "mutexGroup": {
            "kind": "ActuatorMutexGroup",
            "deadTime": 1800000,
            "waitTime": 1797426
          },
          "target": {
            "kind": "ActuatorTimeLimited",
            "minOnTime": 120,
            "minOffTime": 180,
            "maxOnTime": 65535,
            "state": false,
            "target": {
              "kind": "ActuatorPin",
              "state": false,
              "pin": 11,
              "invert": false
            }
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "beer2fridge",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "beer1set",
        "value": 20
      },
      "inputSensor": {
        "kind": "TempSensor",
        "name": "beer1",
        "sensor": {
          "kind": "OneWireTempSensor",
          "value": 19.9375,
          "connected": true,
          "address": "28E95857040000CA",
          "calibrationOffset": 0
        }
      },
      "inputError": -0.0391,
      "Kp": 8,
      "Ti": 10200,
      "Td": 600,
      "p": 0.3125,
      "i": -2.5547,
      "d": 0.1875,
      "actuatorIsNegative": false,
      "outputActuator": {
        "kind": "ActuatorSetPoint",
        "targetSetPoint": {
          "kind": "SetPointSimple",
          "name": "fridgeset",
          "value": 17.9453
        },
        "targetSensor": {
          "kind": "TempSensor",
          "name": "fridge",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 17.75,
            "connected": true,
            "address": "285C83B504000046",
            "calibrationOffset": 0
          }
        },
        "referenceSetPoint": {
          "kind": "SetPointSimple",
          "name": "beer1set",
          "value": 20
        },
        "output": -2.0547,
        "achieved": -2.25,
        "minimum": -5,
        "maximum": 5
      }
    }
  ]
}

Many thanks to Elco for replying to my post, I have already  implemented the changes you suggested and it seems to be behaving much better !
After my rant yesterday and thinking about  PID settings I will do a bit of digging  on the web  to see if a calibration routine could be implemented. ..thats if I can find and understand the relevant maths involved.. 😳
and Yes I will stick with the Brewpi Spark a little longer and I might up-rate the tube heater (currently 45-60W) to a 200W ceramic ES type  heater as used for reptile tanks  but if I do, a trial run to tune the settings before a ferment is underway will be in order.
Smiley