Decentralized motion control
Based on Section 8.3 of Robotics: Modelling, Planning and Control.
Link to the practical session on Decentralized control schemes
Idea and General schema
This control scheme considers the manipulator as a set of \(n\) independent systems, each one controlled as a SISO system, and the couplings are treated as disturbances.
Let’s rewrite the dynamics of the manipulator in terms of \(\boldsymbol{q}_m\) and \(\boldsymbol{\tau}_m\):
Then, \(B(\boldsymbol{q}) \ddot{\boldsymbol{q}} + C(\boldsymbol{q}, \dot{\boldsymbol{q}}) \dot{\boldsymbol{q}} + F_v \dot{\boldsymbol{q}} + \boldsymbol{g}(\boldsymbol{q}) = \boldsymbol{\tau}\) becomes:
That can be rewritten as:
where:
Now, in order to control each joint of the decoupled linear system, different SISO control schemes are proposed:
Position feedback control scheme
Position/velocity feedback control scheme
Position/velocity/acceleration feedback control scheme
Let’s first derive the transfer function of the motor and the velocity-controlled drive.
Drive
Motor
Then, the ensemble Drive+Motor is the following, where a load reaction torque \(D\) has been added:
This block scheme can be simplified to:
Then:
where:
Position feedback scheme
The transfer function of the forward path is:
while that of the return path is:
Finally, the closed-loop transfer function is:
Three different root loci are possible according to the values of \(T_m\), \(T_P\):
Considering the third case:
- Pole cancellation:
The real pole of \(W(s)\) is \(\frac{1}{\tau} \approx \frac{1}{T_P}\) for high values of \(K_p\). Then, its effect tends to be cancelled by the zero of \(W(s)\).
- Disturbance rejection:
Considering the transfer function between the disturbance and the output \(W_D = \frac{-k_m}{T_m s^3 + s^2 + K_p k_m k_{TP} T_P s + k_m k_p k_{TP}}\)
Then, \(\lim_{s \to 0} W_D = -\frac{1}{k_{TP} K_P}\), i.e. the rejection ratio is \(X_R = K_P k_{TP}\)
- System response:
The value of \(K_P\) determines the poles and therefore the response of the system.
For high values of \(K_P\), desired for disturbance rejection, too small damping ratios may result ⇒ trade-off!
Position and velocity feedback scheme
Now the transfer functions of the forward and return paths are:
If we choose \(T_V = T_m\), then the zero of the controller cancels the pole of the motor, and the root locus results:
Root locus parameterized by \(k_m K_P K_V\)
Now we can observe that:
Large values of \(K_P\) bring the branches towards large negative values (because it moves the zero to the left), therefore fast responses are achieved.
\(K_V\) can be used to obtain the actual values of the closed loop poles.
In fact, with \(K_P\) and \(K_V\) we can fix the two poles of the closed loop system for a given desired specification of \(\xi\) and \(\omega_n\).
The disturbance ratio is now \(X_R = K_P k_{TP} K_V\)
Also, in general, the fulfillment of the specifications using high values of the controller constants may produce some problems due to:
Unmodelled dynamics, like electronic dynamics, elastic dynamics, filter dynamics…
Saturation in velocity, acceleration, motor voltage.
Implementation in discrete time with a finite sampling rate.