-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
PonM vs PonE coeffitients #117
Comments
Thanks, i read all of this. However, knowing how PonM works doesn't helps tuning it. The most common method, Ziegler–Nichols, simply doesn't works here, because no oscillations will occur with Kd=0, Ki=0 and Kp set to anything with PonM. PID autotune also doesn't works with systems with large time constant, like several minutes. |
From what I understand, if the instructions for use don't talk about the input declaration of these coefficients, it's because it's enough to activate one mode and deactivate the other.
Source: http://brettbeauregard.com/blog/2017/06/introducing-proportional-on-measurement/
I found this explanation:
Source: https://www.automation.com/en-us/articles/2003-1/how-to-control-a-process-with-long-dead-time |
Increasing kp in P_ON_M mode with ki=0 and kd=0 won't oscillate because 1) the proportional term acts on the integral in a retarding/negative sense and 2) Assuming that it reaches setpoint, the amount that P_ON_M Kp contributes to the integral/outputSum is the constant -kp*(Setpoint - InitialPV), and with ki=0, there's nothing to move the outputSum away from there. With P-only P_ON_M, assuming your process ultimately needs an Output of 42 to maintain a PV at 100 and and you are starting from 25, With P_ON_M mode with Ki=Kd=0, you need to set kP = -.56 because your initial error you need to integrate away is -75, the ultimate output is 50, so kP = -42/75, which is negative, so REVERSE. If you tried DIRECT with any positive kP, it would push Output lower than initial. If you tried REVERSE with lower than 0.56, the process would stop changing (and integrating Kp) before it got to SP. With higher than Kp=0.56, it would keep moving until the measurement was whatever an Output of kP*75 would produce. P-only P_ON_M won't work for tuning. (Try it in this sim: https://wokwi.com/projects/358190033668210689 It takes an output of about 42 to hold Output at 100°C) For more tuning more difficult systems, one would make a reasonable/smalll manual step adjustment of the output and see the response, rather than let an automatic control mechanism moderate the response. |
If you don't have Ki with a p_on_m controller, you will have an algorithm
that doesn't care about your setpoint at all. Error=sp-input. If p and d
are only looking at the input (as is the case with p_on_m,) the i term is
the only one saying "hey guys, we're X away from target. I propose we move
the output by Y"
…On Sat, Mar 11, 2023, 11:31 AM drf5n ***@***.***> wrote:
- If leaving ki = 0 and kd = 0, the system cannot oscillate:
-
- Did you try to increase the kp value?
Increasing kp in P_ON_M mode with ki=0 and kd=0 won't oscillate because 1)
the proportional term acts on the integral in a retarding/negative sense
and 2) Assuming that it reaches setpoint, the amount that P_ON_M Kp
contributes to the integral/outputSum is the constant -kp*(Setpoint -
InitialPV), and with ki=0, there's nothing to move the outputSum away from
there.
With P-only P_ON_M, assuming your process ultimately needs an Output of 42
to maintain a PV at 100 and and you are starting from 25, With P_ON_M mode
with Ki=Kd=0, you need to set kP = -.56 because your initial error you need
to integrate away is -75, the ultimate output is 50, so kP = -42/75, which
is negative, so REVERSE. If you tried DIRECT with any positive kP, it would
push Output lower than initial. If you tried REVERSE with lower than 0.56,
the process would stop changing (and integrating Kp) before it got to SP.
With higher than Kp=0.56, it would keep moving until the measurement was
whatever an Output of kP*75 would produce. P-only P_ON_M won't work for
tuning.
For more tuning more difficult systems, one would make a reasonable/smalll
manual step adjustment of the output and see the response, rather than let
an automatic control mechanism moderate the response.
—
Reply to this email directly, view it on GitHub
<#117 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACYX4R4WH4EXBYWKYZ3FTDW3SSFPANCNFSM5NA4AXMQ>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
That's all understandable, the question was something else entirely. Can I tune a classical PID (PonE) using any of the existing methods and then put the same coefficients into a PID with PonM and it will work just as efficiently? Or will it not and the coefficients need to be changed? If the optimal coefficients for PonE and PonM are different, is there a dependency between them? |
Are PID coeffitients for PonM and PonE equal? Or they differ?
I'm sure that all pid tuning methods do work for both, but i'm trying to synthesize coeffs. instead of picking them up empirically.
Will this https://www.mathworks.com/help/control/ref/pidtuner-app.html produce valid PID coeffs. for PID with PonM?
If not, how should i calculate coeffs. from system step response?
The text was updated successfully, but these errors were encountered: