diff --git a/src/main/kotlin/dev/asdf00/visionfive/hc/GlobalDataStore.kt b/src/main/kotlin/dev/asdf00/visionfive/hc/GlobalDataStore.kt index 7e57426..5a1bc02 100644 --- a/src/main/kotlin/dev/asdf00/visionfive/hc/GlobalDataStore.kt +++ b/src/main/kotlin/dev/asdf00/visionfive/hc/GlobalDataStore.kt @@ -10,11 +10,11 @@ object GlobalDataStore { @Volatile var lowerTime = Date() @Volatile var resetTime = Date() - @Volatile var targetTemp = 22.5 - @Volatile var reduction = 2.0 - @Volatile var pval = 0.0 - @Volatile var ival = 1.0 - @Volatile var dval = 2.0 + @Volatile var targetTemp: Double = 22.5 + @Volatile var reduction: Double = 2.0 + @Volatile var pval: Double = 0.1 + @Volatile var ival: Double = 1.0 / 120 + @Volatile var dval: Double = 0.0 const val API = "https://api.open-meteo.com/v1/forecast?latitude=47.6649&longitude=14.3401&daily=sunshine_duration,daylight_duration,sunrise&hourly=temperature_2m&timezone=Europe/Berlin&forecast_days=1&format=json&timeformat=unixtime" } \ No newline at end of file diff --git a/src/main/kotlin/dev/asdf00/visionfive/hc/control/PidController.kt b/src/main/kotlin/dev/asdf00/visionfive/hc/control/PidController.kt index bc55c52..15b9c1a 100644 --- a/src/main/kotlin/dev/asdf00/visionfive/hc/control/PidController.kt +++ b/src/main/kotlin/dev/asdf00/visionfive/hc/control/PidController.kt @@ -15,7 +15,7 @@ class PidController(vararg val controlUnits: Controller) { private fun step(actual: Double, desired: Double): Double { val error = desired - actual - errorInt = Math.clamp(errorInt + error, 0.0, 1.0) + errorInt = Math.clamp(errorInt + error, 0.0 / GlobalDataStore.ival, 1.0 / GlobalDataStore.ival) val rv = GlobalDataStore.pval * error + GlobalDataStore.ival * errorInt + GlobalDataStore.dval * (error - errorLast)