-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pidcontroller] Remove limits, make Ki dependent from the loop time, add reset command #9759
Conversation
…he loop time Also fix naming of thread and shutdown executor. Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
| `ki` | Decimal | I: [Integral Gain](#integral-i-gain-parameter) Parameter | Y | | ||
| `kd` | Decimal | D: [Derivative Gain](#derivative-d-gain-parameter) Parameter | Y | | ||
| `kdTimeConstant` | Decimal | D-T1: [Derivative Gain Time Constant](#derivative-time-constant-d-t1-parameter) in sec. | Y | | ||
| `integralLowerLimit` | Decimal | The I part of the PID controller will be max this value | Y | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the benefit of renaming? I guess that outputLowerLimit
is more clear
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameter does not limit the output anymore, but only the integral part.
@@ -93,13 +93,17 @@ public PIDControllerTriggerHandler(Trigger module, ItemRegistry itemRegistry, Ev | |||
throw new IllegalArgumentException("Configured setpoint item not found: " + setpointItemName, e); | |||
} | |||
|
|||
double outputLowerLimit = getDoubleFromConfig(config, CONFIG_OUTPUT_LOWER_LIMIT); | |||
double outputUpperLimit = getDoubleFromConfig(config, CONFIG_OUTPUT_UPPER_LIMIT); | |||
double outputLowerLimit = getDoubleFromConfig(config, CONFIG_INTEGRAL_LOWER_LIMIT); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But why is this names outputLowerLimit then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I overlooked that. Thanks!
Also I think a limit for the output is useful. |
Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
The opinions differ. A control expert stated in the forum that even a limit on the I part is hacked. A limit to the output could be applied by the user via a rule. |
Reading through the thread having a "reset" channel would be better than the limitiation. Why don't we implement that one? |
Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
I removed the limits and added a reset command. |
…add reset command (openhab#9759) * [pidcontroller] Remove limits, make Ki dependent from the loop time Also fix naming of thread and shutdown executor. Signed-off-by: Fabian Wolter <github@fabian-wolter.de> Signed-off-by: John Marshall <john.marshall.au@gmail.com>
…add reset command (openhab#9759) * [pidcontroller] Remove limits, make Ki dependent from the loop time Also fix naming of thread and shutdown executor. Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
…add reset command (openhab#9759) * [pidcontroller] Remove limits, make Ki dependent from the loop time Also fix naming of thread and shutdown executor. Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
Also fix naming of thread and shutdown executor.
Signed-off-by: Fabian Wolter github@fabian-wolter.de