Control motor shaft so that the angular speed is constant

control theorylinearizationnonlinear dynamicsnonlinear systemordinary differential equations

After distributed the 2nd order equation I have got the following system of two 1st order differential equations:

$$ \begin{aligned} \dot\alpha &= \omega \\ \dot\omega &=\frac{T(t)-a\ \omega^2\sin(2\alpha)-b\ \omega\sin^2(\alpha)}{\theta+c \sin(\alpha)} \end{aligned} $$

Here, $\alpha(t)$ is the angular position of a motor shaft at time $t$, while $\omega(t)$ is its angular velocity, whereas $a, b, c, \theta$ are known constants. Every variable is known at every time step.

With the input torque $T(t)$, I would like to control the system to a given constant $\omega$ value. It is clear the system works with a constant $\omega_0$ if

$$ T(t)=a\ \omega_0^2\sin(2\omega_0 t)+b\ \omega_0\sin^2(\omega_0 t) $$

I thought about designing a controller for this system, and for this I think this should be linearized around the working $\omega_0$ value, but I do not understand how to do that. I have checked the damped pendulum model, but there the linearization is about the angle ($\alpha$) and not about the angular velocity ($\omega$). If I would like to control the $\omega$ with $T(t)$, how to linearize this system?

Best Answer

This system has a continuum of equilibrium point that is $ T(t) = 0 $, $ \omega(t) = 0 $, and $ \alpha(t) = \alpha_0 \in \mathbb{R} $. If you find a control law that makes $ \omega(t) = \omega_d $ an equilibrium point, then you can consider the analysis by linearization.

I suggest two different solutions for this problem: (1) nonlinear control law consisting feedback linearization, and (2) linear control law for a perturbed system. Probably (2) is a more practical solution.

Let me describe them:

1) You can choose your control law as $$ T(t) = u(t)\left[\theta + c\sin(\alpha(t))\right] + a\omega^2(t)\sin(2\alpha(t)) + b\omega(t)\sin^2(\alpha(t)) $$ which yields a linear time-invariant system given by $$ \dot{\omega}(t) = u(t) $$ since all parameters and states are known. You can choose $ u(t) = k_p (\omega_d - \omega(t)) $ with $ k_p > 0 $ for which $ \omega(t) \rightarrow \omega_d $. To summarize, $$ T(t) = k_p (\omega_d - \omega(t))\left[\theta + c\sin(\alpha(t))\right] + a\omega^2(t)\sin(2\alpha(t)) + b\omega(t)\sin^2(\alpha(t)) $$ drives the angular velocity $ \omega(t) $ to constant desired angular velocity $ \omega_d $.

However, this feedback linearization is very sensitive to parameters due to direct cancellation. You need additional robustness analysis to estimate the actual results in practice. Please see Section 13 in Hassan K. Khalil - Nonlinear Systems - 3rd Edition.

You can consider a model reference adaptive control technique to deal with parameter uncertainty as well. It is a very practical approach.

2) You can choose your control law as $$ T(t) = k_p (\omega_d t - \alpha(t)) + k_d (\omega_d - \omega(t)) $$ and consider the problem as a perturbed system. In particular, you can rewrite the system as $$ \begin{align} \dot{\bar{\alpha}}(t) &= \bar{\omega}(t) \\ \dot{\bar{\omega}}(t) &= \dfrac{1}{\theta} (-k_p\bar{\alpha}(t) - k_d \bar{\omega}(t)) + \Delta(\bar{\alpha}, \bar{\omega}) \end{align} $$ for the change of variables $ \bar{\alpha}(t) = \omega_d t - \alpha(t) $ and $ \bar{\omega}(t) = \omega_d - \omega(t) $. The perturbation term is given by $$ \Delta(\bar{\alpha}, \bar{\omega}) = \dfrac{ c \sin(\alpha(t)) (k_p \bar{\alpha}(t) + k_d \bar{\omega}(t)) }{ \theta^2 + \theta c \sin(\alpha(t)) } - \dfrac{a \omega^2(t) \sin(2 \alpha) + b \omega \sin^2(\alpha)}{\theta + c \sin(\alpha(t))}. $$ Choosing high gains for $ k_p > 0 $ and $ k_d > 0 $ yields more perturbation attenuation, i.e, they yield a smaller $ \epsilon > 0 $ such that $ \lim_{t \rightarrow \infty} \Vert \omega(t) - \omega_d \Vert_2 \leq \epsilon $. Please see Chapter 9 in Nonlinear Systems book.