Forum Replies Created
-
AuthorPosts
-
pidtuner
KeymasterThanks for you interest, regarding your questions:
Yes it could, the PID being a linear system, could also be “indentified”. Actually you can exchange the input for the output column and viceversa, and a model will come up trying to match the controller dynamics.
But only some common process models are supported by the tool. There is no “PID model” built into the software, so you won’t be able to “recover PID gains” from data with the software as-is. It could be done, but there no common use case for that, so it is not worth development time for me.
The most common case is what is presented, model the process, then use the model to obtain good PID gains as a good starting point for tuning the control loop.
pidtuner
KeymasterIt is a common question, and source of confusion. Maybe the following FAQ document can help you clarify the input/output selection:
https://github.com/pidtuner/pidtuner.github.io/blob/master/assets/doc/PID%20Tuner.pdf
The program is modeling the system process, not the controller. Try not to get confused by the names of the variables for any specific implementation, what the PIDTuner considers “input” is the input to the process (output of the PID). And what the PIDTuner considers “output” is the output of the process (input to the PID).
Hope the information above makes things a little clearer.
pidtuner
KeymasterHi,
Time is always in seconds. If your PID implementation is non-standard, you are responsible of converting the PID gains to the non-standard time frame used by your PID.
Same goes with the gains. The PID Tuner shows both Integral Gain and Integral Time because in industry either one or the other are standard. So if your PID accepts some custom transformed Integral term, you are responsible for converting it to your special PID form.
I have been working on a presentation that I will officially release soon, hopefully with a video. Maybe this will help you clarify some practical concepts:
pidtuner
KeymasterHi,
Thank you for your interest. The identification algorithm uses this solution:
https://math.stackexchange.com/questions/1428566/fit-sum-of-exponentials/3808325#3808325
Basically consists in integrating the inputs and outputs of the system (according to the desired model order) and then solving a couple of (linear) least squares problems.
The delay in nonlinear, so given that the (linear) least squares problems are “relatively cheap”, the delay is calculated by brute force initially using a grid of values. Then refinement is made using a simple newton method.
Hope this is helpful.
pidtuner
KeymasterHi,
I am happy you like the tool, the “Scale Gains” slider simply implements the Skogestad PID tuning rules.Cheers.
pidtuner
KeymasterHi,
Yes, they are indeed Ki, Kd and Kp, from the “parallel” or “ideal” form:
https://en.wikipedia.org/wiki/PID_controller#Standard_versus_parallel_(ideal)_form
Bear in mind that in most PID implementations, the “standard form” is the most common (the one that uses Ti and Td).
pidtuner
KeymasterApart from minimizing disturbances in the data, and making sure time is seconds, also make sure that the data must be the exact same values that go into the PID (process output) and out of the PID (process input).
I cannot stress this more, it is a very common mistake when using the tool, the data must be exactly what would come in and out of the PID block (of course in open-loop PID is disabled, but this is just to illustrate which are the signals that are needed).
Have a good tuning!
pidtuner
KeymasterHi, all time must be in seconds, always. The scale of the axis must the exact same that is used to feed in and read out of the PID block that will be used in your process loop.
pidtuner
KeymasterHi, yes all time must be in seconds. Your input step data is definitively weird.
It seems you are not introducing an “clean” open loop step response of your process. This can clearly be seen because when your input is zero, your process is responding to something, let’s call it “unmeasured disturbance”
What is even more worrying is that before the first step, the unmeasured disturbance seem to be affecting the process with a positive slope, and after the first step, it is affecting with a negative slope. So it not a disturbance that can be de-trended.
To get a good model of your process, you need to record a “clean” open loop step (without external disturbances). If there are external forces driving your system, it will be very hard to obtain an accurate description on how your process input drives the process output.
That being said, this does not mean the pidtuner will not be useful to you. What it means is that you should be careful and realize that the simulation given by it will not be an accurate one, because of the unclean data you gave to it.
If you have no way of performing a “clean” open loop step response experiment, I would use this data, but then de-tune the gains given by the pidtuner (slider to the left) and use it as a starting point for tuning. Then increase the performance slowly until satisfactory results are obtained. This is the price of uncertainty in control.
February 4, 2021 at 11:08 am in reply to: Can I somehow limit the max. amplitude in “TUNE PID” section? #69pidtuner
KeymasterHi,
I have been thinking of adding this option in the simulation. Will probably add it in the near future as soon as I have the time.
Regardless, as long as your PID implementation has anti-windup mechanism, the PID tuning given by the tool should give you a very good starting point in spite of the limits. Then you can just fine tune online to achieve the desired response.
Thanks for the feedback! Let me know if you have more questions.
pidtuner
KeymasterHi Jacob,
If you really want to understand how a PID is implemented, I highly recommend you to read the following blog series:
They are short and well explained, also is the implementation used in the pidtuner tool.
Regarding the PID parameters, some PID implementations use PID gains directly (so called parallel or ideal form), other use times (so called standard form). That is why the tool provides both, then the user must use the ones that their PID requires. Read:
https://en.wikipedia.org/wiki/PID_controller#Standard_versus_parallel_(ideal)_form
Hope this is helpful.
pidtuner
KeymasterHi,
Sorry for the delay. Was offline for holidays. I tried to load your project, but the data saved seems to be the demo data. Can you please load the data again to that project and save it again? Else you can post the data here directly.
Cheers.
pidtuner
KeymasterThen your test data is still incorrect, what you need is to do is:
- Wait until the process output has settled in one operating point
- Apply one single step in the process input.
- Wait until the process output settles again into another operating point.
The data you shared is not useful, because you make many small changes in the input and do not let the output settle. What we need is one single input step and record how the output settles from one stable value into another one caused by the input change.
pidtuner
KeymasterHi, Sadly your data is not correct, these are the issues:
- Your data is undersampled. You need to sample faster so the process output response dynamics due to a step change in the process input are clearly visible.
- Your output process curve does not seem to be correlated to your process output curve. I see no correlation between the input of the process and the output. Are you sure you have selected the correct variables in your data.
Take a look at the sample data provided by the tool, you can see a clear correlation between a step change in the input and a slow transitioning on the output to another level. This is what you should be able to see on your data.
Also make sure your PID is turned off during the experiment and that your process input is exactly what would get out of your PID and the process output is exactly what would get in to the PID.
pidtuner
KeymasterThen go and convert your time values to seconds. Then fill up the table in the pidtuner, placing the values on each corresponding column. Once the table is complete, verify the charts display the data as expected to confirm that you introduced the data correctly.
Then click the “Save” button and copy the link that the pidtuner shows you. Paste that link here and then I can help you move forward.
-
AuthorPosts