Editing Tuning position controller
Your changes will be displayed to readers once an authorized user accepts them. (help) |
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | Position controller tuning means finding the correct drive settings and feedback gain values to achieve a proper [[Servo stiffness]] and response to a position [[Setpoint signal|setpoint]] change. | |
==Position control tuning method== | ==Position control tuning method== | ||
Line 11: | Line 11: | ||
*Attach motor to the target machine in a position where it can rotate in both directions | *Attach motor to the target machine in a position where it can rotate in both directions | ||
*Make following parameter changes to Granity and click apply afterwards: | *Make following parameter changes to Granity and click apply afterwards: | ||
− | **Set drive in position control mode | + | **Set drive in position control mode [[CM]] |
− | **Choose ''Serial only'' setpoint input | + | **Choose ''Serial only'' setpoint input [[CM]] |
**Make other necessary adjustments to have drive powered and enabled | **Make other necessary adjustments to have drive powered and enabled | ||
− | **Untick | + | **Untick Setpoint smoothing [[CIS]] |
− | **Set Goals tab | + | **Set Goals tab [[DIV]] and [[MUL]] to 50 |
− | **Set | + | **Set acceleration [[CAL]] & velocity [[CVL]] limits reasonably to the levels that motor is expected to handle |
*Set-up the test stimulus and capture settings from Testing tab (an example, may be varied): | *Set-up the test stimulus and capture settings from Testing tab (an example, may be varied): | ||
**Set target setpoint 1 [[TSP1]] to 100 | **Set target setpoint 1 [[TSP1]] to 100 | ||
**Set delay 1 [[TSD1]] to 0.25 seconds | **Set delay 1 [[TSD1]] to 0.25 seconds | ||
**Set target setpoint 2 [[TSP2]] to -100 | **Set target setpoint 2 [[TSP2]] to -100 | ||
− | **Set delay1 [[ | + | **Set delay1 [[STD2]] to 0.25 s |
− | **Choose | + | **Choose sample rate [[TSR]] of 500 to 2500 Hz |
**Choose ''Capture setpoint change in positive direction'' from the dropdown | **Choose ''Capture setpoint change in positive direction'' from the dropdown | ||
**''Tick Continuously repeating capture'' | **''Tick Continuously repeating capture'' | ||
**Tick ''Position setpoint'' and ''Position achieved'' from signals | **Tick ''Position setpoint'' and ''Position achieved'' from signals | ||
**Tick ''Start capture'' to begin continous capture. | **Tick ''Start capture'' to begin continous capture. | ||
− | **Tick | + | **Tick Enable test stimulus [[TSE]] to begin a continuous position back and forth motion generation |
Once the steps above are done, motor should be generating short distance back and forth motion motion and position response graphs should appear on the right side of Granity about once in 3-5 seconds. | Once the steps above are done, motor should be generating short distance back and forth motion motion and position response graphs should appear on the right side of Granity about once in 3-5 seconds. | ||
Line 33: | Line 33: | ||
===Finding velocity & position control gain values=== | ===Finding velocity & position control gain values=== | ||
− | ----------The task here is to adjust the | + | ----------The task here is to adjust the [[MR]] and [[ML]] parameters to achieve near optimum step response for the torque controller. Observe the images below for guidance. |
{{tip|If the drive faults during this testing due to overcurrent, see [[Tuning torque controller]] for solutions. If drive faults due to following error or motion fault, increase the goal deviation fault limits at Fault limits tab.}} | {{tip|If the drive faults during this testing due to overcurrent, see [[Tuning torque controller]] for solutions. If drive faults due to following error or motion fault, increase the goal deviation fault limits at Fault limits tab.}} | ||
Line 43: | Line 43: | ||
[[File:posgains2.png|800px|]] | [[File:posgains2.png|800px|]] | ||
− | The next step is to increase | + | The next step is to increase [[KVP]] gain as much as possible. The graph may start looking acceptable but it motor still has low stiffness thus it will get lag once mechanical load increases. |
To try different gains, go to Tuning tab, change value and click the Apply settings button. | To try different gains, go to Tuning tab, change value and click the Apply settings button. | ||
Line 49: | Line 49: | ||
[[File:posgains3.png|800px|]] | [[File:posgains3.png|800px|]] | ||
− | When | + | When [[KVP]] has been increased too much, the system becomes unstable and may start oscillating. In such case, you may hit Esc button to disable drive, reduce the gain and enable drive again. |
− | Tip: torque bandwidth has significant effect on the behavior of KVP value and the point where it goes unstable. One may experiment different | + | Tip: torque bandwidth has significant effect on the behavior of KVP value and the point where it goes unstable. One may experiment different [[TBW]] settings to find the optimum. |
[[File:posgains4.png|800px|]] | [[File:posgains4.png|800px|]] | ||
− | Once a maximum perfectly stable | + | Once a maximum perfectly stable [[KVP]] value has been found, start increasing [[KVI]] gain by a similar fashion. The higher KVI value is, the better servo stiffness. |
[[File:posgains5.png|800px|]] | [[File:posgains5.png|800px|]] | ||
− | If | + | If [[KVP]] is increased too much, the result is instability and oscillation. The cure is similar to the too high [[KVP]] gain as described earlier. |
[[File:posgains6.png|800px|]] | [[File:posgains6.png|800px|]] | ||
− | Once both | + | Once both [[KVP]] and [[KVI]] has been optimized, the next step is to increase [[KPP]] gain the same way. Increasing [[KPP]] gives better servo stiffness but may also increase [[overshooting]]. Overshoot less than 10 feedback device counts is generally considered good. |
[[File:posgains7.png|800px|]] | [[File:posgains7.png|800px|]] | ||
− | Finally after playing little bit with all of | + | Finally after playing little bit with all of [[KVP]], [[KVI]] and [[KPP]] gains experimentally, we find a less overshooting response without losing much stiffness. |
===Curing tracking error and overshoot=== | ===Curing tracking error and overshoot=== | ||
Line 74: | Line 74: | ||
[[File:posgains8.png|800px|]] | [[File:posgains8.png|800px|]] | ||
− | Reducing | + | Reducing acceleration [[CAL]] and/or velocity [[CVL]] limits makes the trajectory easier to follow and reduces tracking error and overshooting. |
[[File:posgains9.png|800px|]] | [[File:posgains9.png|800px|]] | ||
− | The same may be also achieved by utilizing [[Feed-forward]] | + | The same may be also achieved by utilizing [[Feed-forward]] gains [[VFF]] and [[AFF]] which essentially compensate system friction and mass limiting the dynamic performance. |
− | The recommended way to tune FF gains, is to start increasing | + | The recommended way to tune FF gains, is to start increasing velocity feed-forward [[VFF]] until the optimum level has been found. After that, increase acceleration feed-forward [[AFF]] until the optimum point has been reached. |
[[File:Poscurrentsaturation.png|800px]] | [[File:Poscurrentsaturation.png|800px]] | ||
Line 86: | Line 86: | ||
If following the tuning procedure does not result in satisfactory tracking performance, the problem may be asking too much from the motor. In the example above the acceleration limit is set too high to be accelerated with the given motor torque limits (or current limits). | If following the tuning procedure does not result in satisfactory tracking performance, the problem may be asking too much from the motor. In the example above the acceleration limit is set too high to be accelerated with the given motor torque limits (or current limits). | ||
− | To verify if the problem happens due to torque limit, tick also Torque achieved and Torque setpoint signals from the Testing tab settings. In such way also motor currents will be displayed simultaneously with the position response curves. If the torque curve is limited to the set | + | To verify if the problem happens due to torque limit, tick also Torque achieved and Torque setpoint signals from the Testing tab settings. In such way also motor currents will be displayed simultaneously with the position response curves. If the torque curve is limited to the set peak current limit [[MMC]], then the problem is insufficient torque. In the image above we can see that the torque curves are saturated at 4A and -4A levels which matches the configured [[MMC]] value of 4A in this demonstration. |
To help this, try: | To help this, try: | ||
− | *Increasing | + | *Increasing current limits [[MMC]] and [[MCC]] if possible |
− | *Reducing | + | *Reducing acceleration [[CAL]] and/or velocity [[CVL]] limits |
===Steps to do after tuning finished=== | ===Steps to do after tuning finished=== | ||
− | *Stop test stimulus by unticking | + | *Stop test stimulus by unticking [[TSE]] |
− | *Stop scope | + | *Stop scope catpure by unticking ''Continuously repeating capture'' |
*Undo all temporary changes made to settings | *Undo all temporary changes made to settings | ||
*Save settings to drive memory by clicking ''Save settings on drive non-volatile memory'' button | *Save settings to drive memory by clicking ''Save settings on drive non-volatile memory'' button | ||
− | *Set preferred setpoint source | + | *Set preferred setpoint source [[CRI]], also consider the use of [[CIS]] |
− | *If setpoint signal scaling is needed, adjust | + | *If setpoint signal scaling is needed, adjust [[MUL]] and [[DIV]] values |
− | {{tip|If drive will be controlled by an external motion [[controller]] with acceleration & velocity limits, such as CNC controller programs like | + | {{tip|If drive will be controlled by an external motion [[controller]] with acceleration & velocity limits, such as CNC controller programs like '''Mach3''' or '''EMC2''', then its recommended to increase acceleration limit [[CAL]] to the maximum value of 32767 and disable setpoint smoothing [[CIS]] to prevent drive's internal acceleration limiter modifying the [[setpoint signal]]. Using these settings effectively disables the internal acceleration limit and let's external controller to control accelerations.}} |
− | + | ||
− | + | ||
− | + |