Difference between revisions of "Tuning torque controller"

From Granite Devices Knowledge Wiki
Jump to: navigation, search
[checked revision][checked revision]
(Adjusting MR and ML to for optimum torque control)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
Torque controller tuning means finding the correct gain values for a torque controller inside the servo drive to achieve a proper response from a torque [[Setpoint signal|setpoint]] change.  
+
{{parent|Servo motor tuning guide}}Torque controller tuning means finding the correct gain values for a torque controller inside the servo drive to achieve a proper response from a torque [[Setpoint signal|setpoint]] change.  
 +
 
 +
{{info|Torque controller inside drive is implemented by a PI controller where P and I gains are controlled proportionally by {{param|ML}} and {{param|MR}} respectively.}}
  
 
==Direct inductance & resistance setting method==
 
==Direct inductance & resistance setting method==
 
In [[Granity]], there is no dedicated torque control PI gains as the software supports entering motor coil inductance and resistance where the suitable PI gains are calculated from.  
 
In [[Granity]], there is no dedicated torque control PI gains as the software supports entering motor coil inductance and resistance where the suitable PI gains are calculated from.  
  
If your motor comes with coil specifications containing [[phase-to-phase]] inductance and resistance values, then the only necessary step is to enter the given values into motor resistance [[MR]] and inductance [[ML]] parameter fields. In case of troubles with this method, proceed with manual tuning method.
+
===Method 1 (preferred)===
 +
If you are using a drive model that supports automatic measurement of inductance and resistance, follow the instructions [[Measure motor resistance and inductance in Granity|here]].
 +
 
 +
===Method 2===
 +
If the above measurement function is not available, and your motor comes with coil specifications containing [[phase-to-phase]] inductance and resistance values, then the only necessary step is to enter the given values into motor {{param|MR}} and {{param|ML}} parameter fields. In case of troubles with this method, proceed with manual tuning method.
  
 
==Manual tuning method==
 
==Manual tuning method==
Manual tuning of torque controller is some times done in order to optimize the torque controller response or to find the correct motor resistance [[MR]] and inductance [[ML]] parameters if unknown. Manual tuning also usually yields better torque response than the direct method which may help tuning of velocity or position tuning.
+
Manual tuning of torque controller is some times done in order to optimize the torque controller response or to find the correct motor {{param|MR}} and {{param|ML}} parameters if unknown. Manual tuning also usually yields better torque response than the direct method which may help tuning of velocity or position tuning.
 
{{tip|If satisfactory performance was achieved by direct inductance & resistance setting method, you may skip the manual tuning method.}}
 
{{tip|If satisfactory performance was achieved by direct inductance & resistance setting method, you may skip the manual tuning method.}}
In order to change torque tuning, one needs to change motor resistance [[MR]] and inductance [[ML]] parameters until the torque response looks satisfactory.
+
In order to change torque tuning, one needs to change motor {{param|MR}} and {{param|ML}} parameters until the torque response looks satisfactory.
 
===Preparations===
 
===Preparations===
 
[[File:Torqgoodwithtestingtab.png|thumb|Correct torque tuning settings on the Testing tab.]]
 
[[File:Torqgoodwithtestingtab.png|thumb|Correct torque tuning settings on the Testing tab.]]
Line 16: Line 22:
 
*Fix the motor shaft so that it cannot rotate under full peak torque of the motor
 
*Fix the motor shaft so that it cannot rotate under full peak torque of the motor
 
*Make following parameter changes to Granity and click apply afterwards:
 
*Make following parameter changes to Granity and click apply afterwards:
**Set drive in torque control mode [[CM]]
+
**Set drive in torque control mode {{param|CM}}
**Set torque bandwidth limit [[TBW]] to maximum  
+
**Set {{param|TBW}} to maximum  
**Choose ''Serial only'' setpoint input [[CM]]
+
**Choose ''Serial only'' setpoint input {{param|CM}}
**Untick Setpoint smoothing [[CIS]]
+
**Untick {{param|CIS}}
**Set Goals tab [[DIV]] and [[MUL]] to 50
+
**Set Goals tab {{param|DIV}} and {{param|MUL}} to 50
 
**Make other necessary adjustments to have drive powered and enabled  
 
**Make other necessary adjustments to have drive powered and enabled  
 
*Set-up the test stimulus and capture settings from Testing tab:
 
*Set-up the test stimulus and capture settings from Testing tab:
**Set target setpoint 1 [[TSP1]] to 5000-15000
+
**Set target setpoint 1 [[TSP1]] to 2000-15000 (see the chapter below for finding the optimum test setpoint)
 
**Set delay 1 [[TSD1]] to 0.05 seconds
 
**Set delay 1 [[TSD1]] to 0.05 seconds
 
**Set target setpoint 2 [[TSP2]] to 0
 
**Set target setpoint 2 [[TSP2]] to 0
**Set delay1 [[STD2]] to 0.5 s
+
**Set delay1 [[TSD2]] to 0.5 s
**Choose sample rate [[TSR]] of 10000 Hz or more
+
**Choose sample rate {{param|TSR}} of 10000 Hz or more
 
**Choose ''Capture setpoint change ind positive direction'' from the dropdown
 
**Choose ''Capture setpoint change ind positive direction'' from the dropdown
 
**''Tick Continuously repeating capture''
 
**''Tick Continuously repeating capture''
 
**Tick ''Torque setpoint'' and ''Torque achieved'' from signals
 
**Tick ''Torque setpoint'' and ''Torque achieved'' from signals
 
**Tick ''Start capture'' to begin continous capture.  
 
**Tick ''Start capture'' to begin continous capture.  
**Tick Enable test stimulus [[TSE]] to begin a pulsed torque generation
+
**Tick {{param|TSE}} to begin a pulsed torque generation
  
 
Once the steps above are done, motor should be generating short torque pulses to a fixed shaft and torque 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 torque pulses to a fixed shaft and torque response graphs should appear on the right side of Granity about once in 3-5 seconds.
 +
===Finding optimium test current (TSP1)===
 +
To find optimum value for TSP1, enable capture channel called "Motor output voltage" to see how much voltage is driven to motor during rising the edge of torque. For optimum TSP1 value the voltage peak should lie within 20% to 80%. If voltage gets saturated (100%), reduce TSP1 value until it stays below 80%. Images below illustrate the wrong case (first image) and correctly set case (second image).
 +
<gallery widths=400 heights=400>
 +
File:torqueTuningSaturated.png|TSP1 value too high causing output voltage saturation to 100% (A). This will cause torque tuning to look better than it actually is (B).
 +
File:torqueTuningNotSaturated.png|TSP1 value set optimally and peak voltage stays at 60% (C). Now the test reveals that present settings are causing some torque overshooting (D) and we can eliminate it by adjusting ML and MR values.
 +
</gallery>
  
 
===Adjusting MR and ML to for optimum torque control===
 
===Adjusting MR and ML to for optimum torque control===
  
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.
+
The task here is to adjust the {{param|MR}} and {{param|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, try reducing [[TSP1]] value or increase fault current tolerance [[FOC]] parameter. Or try radically different [[MR]] and [[ML]] values. }}
+
{{tip|If the drive faults during this testing due to overcurrent, try reducing [[TSP1]] value or increase {{param|FOC}} parameter. Or try radically different {{param|MR}} and {{param|ML}} values. }}
  
 
[[File:TorqlowR.png|800px|]]
 
[[File:TorqlowR.png|800px|]]
  
In this case the resistance [[MR]] value has been set too low causing slowly rising achieved torque curve. Such slow response would reduce servo responsiveness.
+
In this case the {{param|MR}} value has been set too low causing slowly rising achieved torque curve. Such slow response would reduce servo responsiveness.
  
 
[[File:TorqhighR.png|800px|]]
 
[[File:TorqhighR.png|800px|]]
  
In the opposite case (too high [[MR]] value) the response shows wavy oscillations and ovesrhoot.
+
In the opposite case (too high {{param|MR}} value) the response shows wavy oscillations and ovesrhoot.
  
 
[[File:TorqlowL.png|800px|]]
 
[[File:TorqlowL.png|800px|]]
  
Same kind of phenomenon will be seen if motor inductance [[ML]] value is too low. Finding oscillation free tuning is finding the correct balance between the MR and ML as both affect each other.
+
Same kind of phenomenon will be seen if motor {{param|ML}} value is too low. Finding oscillation free tuning is finding the correct balance between the MR and ML as both affect each other.
  
 
[[File:TorqhigL.png|800px|]]
 
[[File:TorqhigL.png|800px|]]
  
Too high inductance [[ML]] will cause sharp overshooting and high frequency oscillations. Motor may produce audible noise if oscillations are continuous (occurs with way too high ML).
+
Too high {{param|ML}} will cause sharp overshooting and high frequency oscillations. Motor may produce audible noise if oscillations are continuous (occurs with way too high ML).
  
 
[[File:Torqgood.png|800px|]]
 
[[File:Torqgood.png|800px|]]
Line 67: Line 79:
  
 
===Steps to do after manual tuning finished===
 
===Steps to do after manual tuning finished===
*Stop test stimulus by unticking [[TSE]]
+
*Stop test stimulus by unticking {{param|TSE}}
 
*Stop scope catpure by unticking ''Continuously repeating capture''
 
*Stop scope catpure by unticking ''Continuously repeating capture''
*Undo all temporary changes made to settings (such as [[TBW]], [[CM]], [[DIV]], [[MUL]]) but leave the optimized [[MR]] and [[ML]] values active
+
*Undo all temporary changes made to settings (such as {{param|TBW}}, {{param|CM}}, {{param|DIV}}, {{param|MUL}}) but leave the optimized {{param|MR}} and {{param|ML}} values active
 
*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
[[category:Granity user guide]]
+
 
[[category:Tuning guide]]
+
==Using drive in torque mode==
 +
If torque mode is the final desired operating mode, set-up the [[setpoint]] signal source from Granity Goals tab. Also see [[Signal path of motor drive]] for explanation of torque setpoint scale.
 +
{{next|[[Tuning velocity controller]] - follow if drive will be used in velocity control mode|[[Tuning position controller]] - follow if drive will be used in position control mode }}
 +
 
 +
[[Category:Tuning_guide]]
 +
[[Category:Granity_user_guide]]

Latest revision as of 17:32, 21 October 2015

Torque controller tuning means finding the correct gain values for a torque controller inside the servo drive to achieve a proper response from a torque setpoint change.

Direct inductance & resistance setting method[edit | edit source]

In Granity, there is no dedicated torque control PI gains as the software supports entering motor coil inductance and resistance where the suitable PI gains are calculated from.

Method 1 (preferred)[edit | edit source]

If you are using a drive model that supports automatic measurement of inductance and resistance, follow the instructions here.

Method 2[edit | edit source]

If the above measurement function is not available, and your motor comes with coil specifications containing phase-to-phase inductance and resistance values, then the only necessary step is to enter the given values into motor Coil resistanceMR and Coil inductanceML parameter fields. In case of troubles with this method, proceed with manual tuning method.

Manual tuning method[edit | edit source]

Manual tuning of torque controller is some times done in order to optimize the torque controller response or to find the correct motor Coil resistanceMR and Coil inductanceML parameters if unknown. Manual tuning also usually yields better torque response than the direct method which may help tuning of velocity or position tuning.

In order to change torque tuning, one needs to change motor Coil resistanceMR and Coil inductanceML parameters until the torque response looks satisfactory.

Preparations[edit | edit source]

Correct torque tuning settings on the Testing tab.

Steps to do to begin torque tuning:

  • Ensure that motor is parameterized correctly and working
  • Fix the motor shaft so that it cannot rotate under full peak torque of the motor
  • Make following parameter changes to Granity and click apply afterwards:
    • Set drive in torque control mode Control modeCM
    • Set Torque bandwidth limitTBW to maximum
    • Choose Serial only setpoint input Control modeCM
    • Untick Setpoint smoothingCIS
    • Set Goals tab Setpoint dividerDIV and Setpoint multiplierMUL to 50
    • Make other necessary adjustments to have drive powered and enabled
  • Set-up the test stimulus and capture settings from Testing tab:
    • Set target setpoint 1 TSP1 to 2000-15000 (see the chapter below for finding the optimum test setpoint)
    • Set delay 1 TSD1 to 0.05 seconds
    • Set target setpoint 2 TSP2 to 0
    • Set delay1 TSD2 to 0.5 s
    • Choose sample rate Sample rateTSR of 10000 Hz or more
    • Choose Capture setpoint change ind positive direction from the dropdown
    • Tick Continuously repeating capture
    • Tick Torque setpoint and Torque achieved from signals
    • Tick Start capture to begin continous capture.
    • Tick Enable test stimulusTSE to begin a pulsed torque generation

Once the steps above are done, motor should be generating short torque pulses to a fixed shaft and torque response graphs should appear on the right side of Granity about once in 3-5 seconds.

Finding optimium test current (TSP1)[edit | edit source]

To find optimum value for TSP1, enable capture channel called "Motor output voltage" to see how much voltage is driven to motor during rising the edge of torque. For optimum TSP1 value the voltage peak should lie within 20% to 80%. If voltage gets saturated (100%), reduce TSP1 value until it stays below 80%. Images below illustrate the wrong case (first image) and correctly set case (second image).

Adjusting MR and ML to for optimum torque control[edit | edit source]

The task here is to adjust the Coil resistanceMR and Coil inductanceML parameters to achieve near optimum step response for the torque controller. Observe the images below for guidance.

TorqlowR.png

In this case the Coil resistanceMR value has been set too low causing slowly rising achieved torque curve. Such slow response would reduce servo responsiveness.

TorqhighR.png

In the opposite case (too high Coil resistanceMR value) the response shows wavy oscillations and ovesrhoot.

TorqlowL.png

Same kind of phenomenon will be seen if motor Coil inductanceML value is too low. Finding oscillation free tuning is finding the correct balance between the MR and ML as both affect each other.

TorqhigL.png

Too high Coil inductanceML will cause sharp overshooting and high frequency oscillations. Motor may produce audible noise if oscillations are continuous (occurs with way too high ML).

Torqgood.png

The above image shows near optimum torque response with fast rising edge combined to minimal overshoot.

Torqgoodspinning.png

The above image shows what may happen if motor shaft is not fixed properly (allowed to rotate). This is with the same optimum settings like the previous image.

Steps to do after manual tuning finished[edit | edit source]

  • Stop test stimulus by unticking Enable test stimulusTSE
  • Stop scope catpure by unticking Continuously repeating capture
  • Undo all temporary changes made to settings (such as Torque bandwidth limitTBW, Control modeCM, Setpoint dividerDIV, Setpoint multiplierMUL) but leave the optimized Coil resistanceMR and Coil inductanceML values active
  • Save settings to drive memory by clicking Save settings on drive non-volatile memory button

Using drive in torque mode[edit | edit source]

If torque mode is the final desired operating mode, set-up the setpoint signal source from Granity Goals tab. Also see Signal path of motor drive for explanation of torque setpoint scale.