Cool Muscle motors use an H-Infinity control algorithm, which is fundamentally different than any PID control system many are familiar with. The control algorithm is actively trying to achieve stability at all times. This makes it a very robust and dynamic controller when applied to motion control.  The controller is very forgiving giving the user a large envelope to work in while still achieving optimal and stable motion. The controller is formulated using a state-space model where each of the 8 user parameters are elements in a matrix. The matrix as a whole defines the controller and is used to solve the control algorithm. As such there is no direct cross over of the controller gains to a PID controller. However, some parameters will act in a similar fashion even though they are fundamentally different.

Due to the stability of the controller the majority of applications will not require any changing/tuning of parameters. Most often large inertia mismatches (>50:1) or very light loads with accurate slow speeds targets will require tuning. Each of the parameters are discussed below and approaches to common control problems.


Parameter

Range

[min, max]

Motor Defaults
11S11L17S17L23S23L
H0[20 , 100]100100100100100100
H1[0, 512]464646464646
H2[-5000, 5000]-2427-2427-2427-2427-2427-2427
H3[0, 5000]174714542100455376204
H4[0, 3000]1277461547090
H5[0, 1000]463120344365
H6[0, 1000]382021101315
H7[0, 32767]98641982110


ParameterDescription
H0

H0 is an overall gain on the controller. This is set to 100% by default. It will affect the following gains

H4_CONTROLLER = H4 * H0 / 128
H5_CONTROLLER = H5 * H0 / 128
H6_CONTROLLER = H6 * H0 / 128
H7_CONTROLLER = H7 * H0 / 128

H0 is commonly used to detune the controller as a whole.

H1

H1 does not have any specific function. Changing H1 will have little effect and should not be changed

H2H2 does not have any specific function. Changing H2 will have little effect and should not be changed
H3H3 is a filter in the control system. Increasing H3 will stiffen the controller increasing response time.
H4H4 acts most similar to a proportional gain
H5H5 acts most similar to a differential gain
H6H6 acts most similar to an integral gain
H7H7 is a filter on the control system. Increasing H7 will make the controller sluggish. It gives the effect of making the system feel more "spongy".

Common Gain Tuning Examples

Harmonic resonance

When coupled to a long ballscrew a harmonic resonance may be induced. Reduce H0 to detune the system as a whole. H0 should be reduced in increments of 10 until the resonance is eliminated.

  • You may notice that that the system response is reduced below acceptable levels. Increasing H4, H5, and H6 can help improve response.

Large inertia mismatch

The default gains will often function well on mismatches all the way to 50:1. Once going beyond 50:1 it may be required to change a few parameters. The following steps can be followed to easily obtain stability.

  1. Set H4=200
  2. Set H6=9
  3. Continue to increase H4 in increments of 50 and decrease H6 in decrements of 2 until the load is stable.
    1. If H4 is required to get very large (>600) a humming sound (resonance) may appear. Reduce H0 slightly to account for this.
    2. H6 can be set as low as 0 but typically you would want to keep this at minimum 1.
  4. H3 can be increased slowly if the response of the system is lagging. Often this is not required unless the load is accelerating quite quickly.

Oscillating Load

If the load is coupled to the motor with a flexible helical style coupling there could be oscillations induced. Increasing H3 will stiffen the controller and help stabilize the oscillating.

Slow speed, low ripple, light load

The default gains are quite responsive and will quite obviously react to dynamics in the motor system at lower speeds. This can be accounted for by treating the system as if there is a large inertia mismatch. This will dampen the controller reducing speed ripple. Follow the steps described above in Large inertia mismatch.

  • No labels