Kyntronics
Innovative Actuation Solutions for Every application
Automatic Tuning POSITION Procedure
Automatic Tuning POSITION Procedure (Manual Mode): The intent of the Position Tuning block is to move the SHA back and forth between two positions, and measure the observed response, to provide position Ki and Kp values.
Note: Running the RelayId block can cause the entire SHA to shake and move; make sure it is securely mounted or clamped prior to enabling the block and proper safety precautions are observed – motion will occur.
>SHA_RelayId blocks for Position and Force Tuning of the SHA. With the SHA AOI v1.2 and higher, SHA_RelayId blocks were added, to assist with Position and Force PID tuning of the SHA on the target hardware. The sample projects contain ladder which can be used/replicated in the SHA_Routine for tuning. Once the tuning is complete, these rungs can be removed, if desired.
>SHA_RelayId position tuning. The sample project includes ladder logic with an instance of the SHA_RelayId setup for Position tuning, shown below. The SHA_PositionControl block and related ladder logic for it are also expected to be in place. However, the SHA_PositionControl block must be disabled when the SHA_RelayId block is active. Also, if SHA_RelayId blocks for both Position and Force are present, only one of these RelayId blocks can be active at a time.
In the position tuning example above, typical input values are shown. The Kp and Ki output values will need to be entered into the SHA_Config PositionKp and PositionKi tags for this SHA, and then tested using moves with the SHA_PositionControl block.
The Position Ki and Kp values from the RelayId block will typically have Ki greater than Kp; this kind of ratio helps minimize the positional “bounce back” when the actuator moves in to the ForceLimit or force impact zone. It is also recommended to move into the ForceLimit zone slowly, to minimize the effects of the SHA’s momentum when reaching the ForceLimit, and to limit the Force overshoot in this case. As a consequence of these PID ratios, the high-speed positional moves may have some rabbiting. If the positional Ki value is instead kept less than the Kp, say 1/3 to 1/10 of the Kp, then the high-speed moves will be smoother, but there can be more bounce-back when moving into the Force zone.
The Ki, Kp and output values are held and displayed when the block is disabled. When the block is re-enabled, it will take 10 cycles before the new data starts to display, because of the averaging.
When the position RelayId block is disabled, make sure there is logic to set the SHA Axis.VelocityTrim back to 0.0 to stop the axis motion.
Make a note of the Kp / Ki values in position SHA_RelayId block and enter these into the SHA_Config’s PositionKp and PositionKi tags.
>Testing the position Kp and Ki values using the SHA_PositionControl. With the SHA_PositionControl block disabled (and the position SHA_RelayId disabled), MRP the SHA_Position.CommandPosition to match the current feedback value (the Setpoint of the RelayId). Set the SHA_Config.PositionVelFeedforwardExtend and PositionVelFeedforwardRetract to 0 or set the EnableFeedforward in the SHA_PositionControl to False.
Next, use an MAM on the SHA_Position to move the actuator to a new position to observe how well the PID values work. For example, move to 1” extend position as shown (presuming Setpoint is beyond 1”):
Based on the results, adjust the Kp and Ki proportionally up or down, if needed; or, change the Aggressive value on the position RelayId block, and go back to ManualMode to re-run the position RelayId block to get new values. Repeat until the values are established.
>SHA_PositionControl continues to monitor data even while it is disabled. The Force output continues to update based on the Pressure feedback (the SHA_RelayId force tuning blocks take advantage of this).
>Prior to enabling the SHA_PositionControl block, it is advised to MRP the SHA_Position virtual axis CommandPosition to match the current feedback/actual position. If the SHA_PositionControl’s PositionReference does not match the PositionFeedback, then the SHA will attempt to move to the PositionReference using PID correction, which can be quite abrupt!