Browse Source

Kp Ki Kd modified to 0-100%

pull/1654/head
Patrick Amrhein 8 months ago
parent
commit
68713179df
  1. 14
      src/config/settings.h
  2. 6
      src/plugins/zeroExport/zeroExport.h
  3. 6
      src/web/RestApi.h
  4. 8
      src/web/html/setup.html

14
src/config/settings.h

@ -318,9 +318,9 @@ typedef struct {
// PID controller
float eSum;
float eOld;
float Kp;
float Ki;
float Kd;
uint8_t Kp;
uint8_t Ki;
uint8_t Kd;
float y;
} zeroExportGroup_t;
@ -704,7 +704,7 @@ class settings {
mCfg.plugin.zeroExport.groups[group].minimum = true;
mCfg.plugin.zeroExport.groups[group].powerTolerance = 10;
mCfg.plugin.zeroExport.groups[group].powerMax = 600;
mCfg.plugin.zeroExport.groups[group].Kp = -1;
mCfg.plugin.zeroExport.groups[group].Kp = 50;
mCfg.plugin.zeroExport.groups[group].Ki = 0;
mCfg.plugin.zeroExport.groups[group].Kd = 0;
//
@ -1102,11 +1102,11 @@ class settings {
if (obj.containsKey(F("powerMax")))
getVal<uint16_t>(obj, F("powerMax"), &mCfg.plugin.zeroExport.groups[group].powerMax);
if (obj.containsKey(F("Kp")))
getVal<float>(obj, F("Kp"), &mCfg.plugin.zeroExport.groups[group].Kp);
getVal<uint8_t>(obj, F("Kp"), &mCfg.plugin.zeroExport.groups[group].Kp);
if (obj.containsKey(F("Ki")))
getVal<float>(obj, F("Ki"), &mCfg.plugin.zeroExport.groups[group].Ki);
getVal<uint8_t>(obj, F("Ki"), &mCfg.plugin.zeroExport.groups[group].Ki);
if (obj.containsKey(F("Kd")))
getVal<float>(obj, F("Kd"), &mCfg.plugin.zeroExport.groups[group].Kd);
getVal<uint8_t>(obj, F("Kd"), &mCfg.plugin.zeroExport.groups[group].Kd);
}
}

6
src/plugins/zeroExport/zeroExport.h

@ -195,9 +195,9 @@ class ZeroExport {
}
// Regler
float Kp = CfgGroup->Kp;
float Ki = CfgGroup->Ki;
float Kd = CfgGroup->Kd;
float Kp = CfgGroup->Kp * -0.01;
float Ki = CfgGroup->Ki * -0.001;
float Kd = CfgGroup->Kd * -0.001;
unsigned long Ta = Tsp - CfgGroup->lastRefresh;
CfgGroup->lastRefresh = Tsp;
int16_t yP = Kp * e;

6
src/web/RestApi.h

@ -869,9 +869,9 @@ class RestApi {
objGroup[F("power")] = (int32_t)mConfig->plugin.zeroExport.groups[group].power;
objGroup[F("powerTolerance")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].powerTolerance;
objGroup[F("powerMax")] = (uint16_t)mConfig->plugin.zeroExport.groups[group].powerMax;
objGroup[F("Kp")] = ah::round3((float)mConfig->plugin.zeroExport.groups[group].Kp);
objGroup[F("Ki")] = ah::round3((float)mConfig->plugin.zeroExport.groups[group].Ki);
objGroup[F("Kd")] = ah::round3((float)mConfig->plugin.zeroExport.groups[group].Kd);
objGroup[F("Kp")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].Kp;
objGroup[F("Ki")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].Ki;
objGroup[F("Kd")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].Kd;
}
}
#endif

8
src/web/html/setup.html

@ -1454,9 +1454,9 @@
divRow("{#ZE_GROUP_TAB_ADVANCED_MINIMUM}", cb_minimum),
divRow("{#ZE_GROUP_TAB_ADVANCED_POWERTOLERANCE}", ml("input", {name: "powerTolerance", class: "text", type: "number", min: "0", max: "255", value: obj.powerTolerance}, null)),
divRow("{#ZE_GROUP_TAB_ADVANCED_POWERMAX}", ml("input", {name: "powerMax", class: "text", type: "number", min: "0", max: "65535", value: obj.powerMax}, null)),
divRow("{#ZE_GROUP_TAB_ADVANCED_KP}", ml("input", {name: "Kp", class: "text", type: "number", min: "-1", max: "0", step: "0.001", value: obj.Kp}, null)),
divRow("{#ZE_GROUP_TAB_ADVANCED_KI}", ml("input", {name: "Ki", class: "text", type: "number", min: "-0.01", max: "0", step: "0.001", value: obj.Ki}, null)),
divRow("{#ZE_GROUP_TAB_ADVANCED_KD}", ml("input", {name: "Kd", class: "text", type: "number", min: "-0.01", max: "0", step: "0.001", value: obj.Kd}, null)),
divRow("{#ZE_GROUP_TAB_ADVANCED_KP}", ml("input", {name: "Kp", class: "text", type: "number", min: "0", max: "100", step: "1", value: obj.Kp}, null)),
divRow("{#ZE_GROUP_TAB_ADVANCED_KI}", ml("input", {name: "Ki", class: "text", type: "number", min: "0", max: "100", step: "1", value: obj.Ki}, null)),
divRow("{#ZE_GROUP_TAB_ADVANCED_KD}", ml("input", {name: "Kd", class: "text", type: "number", min: "0", max: "100", step: "1", value: obj.Kd}, null)),
// TODO: Uebersetzen mit lang.json und auf die entsprechende Dokuseite verlinken
divRow("Hinweis: ", ml("a", {href: "https://docs.ahoydtu.de/de/latest/zeroExport.html"}, "Bitte beachten Sie die Ausf&uuml;llhinweise in der Dokumentation."),),
// TODO: Hinweis Github/Discord - Entfernen wenn erledigt
@ -1734,7 +1734,7 @@
o.power = 0;
o.powerTolerance = 10;
o.powerMax = 600;
o.Kp = -1;
o.Kp = 50;
o.Ki = 0;
o.Kd = 0;
// Global

Loading…
Cancel
Save