adamLL Posted June 28, 2022 Share Posted June 28, 2022 (edited) How is one supposed to use the autotuning function? sometimes it seems to work perfectly and get my PV right to the setpoint. Other times it does literally nothing and just holds the PV at a seemingly random value. I'd say approximately 10% of the time I get values other than P=I=D=0 to set my parameters to Edited June 28, 2022 by adamLL Quote Link to comment Share on other sites More sharing options...
adamLL Posted June 28, 2022 Author Share Posted June 28, 2022 *Functionality, not function Quote Link to comment Share on other sites More sharing options...
adamLL Posted June 29, 2022 Author Share Posted June 29, 2022 Little more info if that helps: I'm trying to use a PID to heat a metal element connected to a 400W voltage controlled power supply to a set temperature. I am measuring the temperature with a pyrometer that can measure 600 to 1600C. My process variable is the temperature of the element measured by the pyrometer, my set point is a user controlled value between 0 and 1600C, and my output channel is the voltage that the power supply gives Quote Link to comment Share on other sites More sharing options...
adamLL Posted June 29, 2022 Author Share Posted June 29, 2022 Also how can I change the range of the left axis for the graph on the PID page? If my process variable/setpoint ranges from 600 to 1600, i don't really care about looking from 0 to 100. Quote Link to comment Share on other sites More sharing options...
AzeoTech Posted June 29, 2022 Share Posted June 29, 2022 DAQFactory uses a perturbation type autotune. It is not necessarily the easiest autotune, but it does allow it to be used in systems that cannot be varied significantly during tuning. What you need to do is get the system at a stable setpoint under PID control. You can usually achieve this by setting I and D to 0 and increasing P until your PV hits your SP without significant oscillating overshoot. Once you have this, set the auto-tune step to the amount above/below the current output you'd the autotune to adjust. You should then let it run for several cycles of plus/minus the output. That said, it is important to note that the output of the PID loop really needs to range into the negative, and for that reason I always suggest folks leave the output range to -100 to 100. If you don't let it range negative, then whenever the PV is above the SP (in a forward PID loop), the PID loop is just going to output 0. This makes it impossible for the PID loop to provide a maintenance output variable, i.e. providing a little heat to maintain the temperature. Since your output is likely only positive you will need to set the output variable of the PID loop to a Test D to A channel, then in the Event for that channel, scale the value and send it to your actual output. So, if you name that OV Test channel PIDOut, and your actual I/O point for controlling your heater is called HeaterOut, and it ranges from 0 to 4000 you would put this in the Event for the PIDOut channel: HeaterOut = (PIDOut + 100) * 20 There are other ways to do this, including using a global variable, the Event of the PID loop, a Conversion on your output channel etc, but the example I gave is the simplest. As to the left axis scaling, you should be able to double click on the axis to change its parameters. Quote Link to comment Share on other sites More sharing options...
adamLL Posted June 30, 2022 Author Share Posted June 30, 2022 Awesome thanks, that really helped! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.