Board Reference

    Flight Controller
    Field Oriented Controller

    Motor Drive

    PMSM

    Motion Control

    Attitude Control

    Tutorial

    Mathematics
    Classical Control
    State Estimation
    Feedforward Control
    Disturbance Observer
    Motion Control

Hybrid Control

Preliminary

Here deals with a controller design for an acceleration-controlled system. Let us consider a system that has a sensors for position xx and force ff, and the transfer function of an acceleration controller
x=s2fref,\begin{align} x = s^{-2}f^{\rm ref}, \end{align}
whose states get an initial value of 0.

Position control

A transfer function from an input to output is a double integral system. Putting position feedback-controller CpC_{\rm p} on this system, a transfer function gets
fref=Cp(xcmdx)x=s2Cp(xcmdx)x=(s2+Cp)1CpxcmdGry=(s2+Cp)1Cp.\begin{align} f^{\rm ref} &= C_{\rm p} (x^{\rm cmd} -x)\\ x &= s^{-2}C_{\rm p} (x^{\rm cmd} -x)\\ \Leftrightarrow x &= (s^2 + C_{\rm p})^{-1}C_{\rm p}x^{\rm cmd}\\ \therefore G_{ry} &= (s^2 + C_{\rm p})^{-1}C_{\rm p}. \end{align}
In general, position control is performed using feedforward control, because a trajectry is given in advance. A feeddback controller should be designed in compliance with the inner-model principle.

Force control

A force controller makes an action force gets a desired value, i.e., a reaction force gets that. Let us consider an environment that returns a reaction force depending on a strain caused by pushing:
f=Czx.\begin{align} f = C_{\rm z}x. \end{align}
Installing a force feedback-controller CfC_{\rm f} enables a reaction control track a reference:
fref=Cf(fcmdf)x=s2Cf(fcmdCzx)x=(s2Cf1+Cz)1fcmdf=Cz(s2Cf1+Cz)1fcmd\begin{align} f^{\rm ref} &= C_{\rm f}(f^{\rm cmd} - f)\\ x &= s^{-2}C_{\rm f} (f^{\rm cmd} - C_{\rm z}x)\\ \Leftrightarrow x &= (s^2C_{\rm f}^{-1} + C_{\rm z})^{-1}f^{\rm cmd}\\ f &= C_{\rm z}(s^2C_{\rm f}^{-1} + C_{\rm z})^{-1}f^{\rm cmd}\\ \end{align}
A force controller works as it reduces a virtual inertia of a system and suppresses an ineartial force in a contact motion.

Position/force hybrid control

An application requires both position-based task and force-based task. A position/force hybrid controller is composed of two controllers, and generate a reference as
fref=Cp(xcmdx)+Cf(fcmdf).\begin{align} f^{\rm ref} &= C_{\rm p} (x^{\rm cmd} -x) + C_{\rm f}(f^{\rm cmd} - f). \end{align}
Pure position control and force control can be available by disabling either.

Compliant position control

Besides that, enabling both controllers and setting force command to 0 realizes compliant position control.
fref=Cp(xcmdx)Cffx=s2Cp(xcmdx)s2Cff(s2+Cp)x=CpxcmdCff(s2+Cp)δx=Cfδfδfδx=(s2Cf1+Cf1Cp).\begin{align} f^{\rm ref} &= C_{\rm p} (x^{\rm cmd} -x) - C_{\rm f}f\\ x &= s^{-2}C_{\rm p} (x^{\rm cmd} -x) - s^{-2}C_{\rm f}f\\ (s^2 + C_{\rm p})x &= C_{\rm p}x^{\rm cmd} - C_{\rm f}f\\ \Leftrightarrow (s^2 + C_{\rm p})\delta x &= - C_{\rm f}\delta f\\ \therefore \frac{\delta f}{\delta x} &=- (s^2C_{\rm f}^{-1} + C_{\rm f}^{-1}C_{\rm p}). \end{align}
This index indicates a virtual impedance arround an equilibrium point. It is called a control stiffness. Adjusting a control stiffness is important in terms of controlling energy exchange between connecting systems, because a work is a result of that phenomenon. Such a concept can be seen in vibration-suppression control that requires the impedance matching between a drive-side (input) and load-side (output).

Viscous force control

A contact motion sometimes excites a vibration of an environment. To realize a stable contact, a system should dissipate a residual energy circulating in an environment. This can be achieved by adding a viscosity to a system and indirectly providing a dissipation pass of energy to an environment in a contact. Let us consider an environment that returns a reaction force depending on a strain caused by pushing
f=Czx,\begin{align} f = C_{\rm z}x, \end{align}
and install a controller
fref=sCdx+Cf(fcmdf).\begin{align} f^{\rm ref} &= - sC_{\rm d} x + C_{\rm f}(f^{\rm cmd} - f).\\ \end{align}
The responses are calculated as
x=(s2Cf1+Cf1Cds+Cz)1fcmdf=Cz(s2Cf1+Cf1Cds+Cz)1fcmd.\begin{align} x &= (s^2C_{\rm f}^{-1} + C_{\rm f}^{-1}C_{\rm d}s + C_{\rm z})^{-1}f^{\rm cmd}\\ f &= C_{\rm z}(s^2C_{\rm f}^{-1} + C_{\rm f}^{-1}C_{\rm d}s + C_{\rm z})^{-1}f^{\rm cmd}.\\ \end{align}
Here, a control stiffness is set to
δfδx=(s2Cf1+sCf1Cd).\begin{align} \frac{\delta f}{\delta x} &=- (s^2C_{\rm f}^{-1} + sC_{\rm f}^{-1}C_{\rm d}). \end{align}
It should be noted that velocity feedback certainly suppresses a vibration but degrades a back-drivability.

© DigitalServo