Assume a system with dynamics:

$\dot{\omega}(t) = \alpha \omega^2(t) + \beta i(t)$,

where $\dot{\omega}(t), \omega(t)$ are system's states and $i(t)$ is the system's input. I'd like to approximate the system's transfer function $P(s) = \frac{\omega(s)}{I(s)}$ around some operating point $\xi_0 = \{\omega_0, i_0\}$.

I assumed I could achieve this by linearizing as follows:

$\alpha_0 = \ddot{\omega}(\omega_0) = 2 \alpha \omega_0$


$\dot{\omega}(t) \approx \alpha_0 \omega(t) + \beta i(t) = 2 \alpha \omega_0 \omega(t) + \beta i(t)$,

hence the transfer function would be:

$\omega(s)(s - 2 \alpha \omega_0) = \beta I(s)$

$P(s) = \frac{\omega(s)}{I(s)} = \frac{\beta}{s - 2 \alpha \omega_0}$.

I tried to simulate step response of the system, but the effects are not as I expected. So there are two solutions: either I made a mistake programming, or the whole thought-process is wrong. Now, which one is it? And why?

Any hints appreciated.

EDIT: The real coefficient and operating point values are given below.

$\alpha = -2182.5$

$\beta = 358.8825$

$\omega_0 = 517.8056$

$i_0 = 6.0814$

EDIT2: I already figured out, what I did is actually a Taylor expansion of the function $\dot{\omega}(t)$. A Taylor expansion also includes the constant term, ie:

$\dot{\omega}(t) = 2 \alpha \omega_0 \omega(t) + \beta i(t) - 2 \alpha \omega^2_0 - \beta i_0$

As @copper.hat commented below, $I(s)$ in the transfer function $P(s)$ reflects perturbations around $i_0$. I already tried testing the transfer function's behaviour in Matlab. I defined a system using:

motor = tf(beta, [1 -2*alpha*omega_0])

To obtain correct amplitude of the step response I had to issue a command


Is there a way to include the constant term in the transfer function $P(s)$? What does adding $i_0$ really mean in terms of Laplace transform?

What $P(s)$ really is is a model of a BLDC motor with propeller and the non-linear term reflects aerodynamic drag ($\omega$ is shaft angular velocity and $i$ is applied current). I'd like to include the motor in a bigger, linear, model and apply PID control for the whole system. Is it possible?

  • 1
    $\begingroup$ Presumably $\alpha w_0^2 + \beta i_0 = 0$ at an operating point. Is the system stable at this operating point? The term $\beta_0$ should be just $\beta$, not $\beta i_0$. And remember, $I(s)$ reflects 'perturbations' around $i_0$. $\endgroup$
    – copper.hat
    Jul 30 '12 at 15:53
  • $\begingroup$ If you can give me approximate regions (in terms of actual values of $\omega$ and $i$ in which you want the solution, it might be better/easier to solve. I can solve it most probably even if you are able to provide the value of $\omega(t)$ as $t \rightarrow \infty$. $\endgroup$
    – user14082
    Jul 30 '12 at 17:42
  • $\begingroup$ I provided the values above. $\endgroup$
    – mmm
    Jul 30 '12 at 18:34
  • $\begingroup$ $\dot{\omega}(t) \approx \alpha_0 \omega(t) + \beta_0 i(t)$ is a valid assumption for only $t \approx 0$ since $\dot{\omega}(t)$ is largely negative and very large and stays like that until $\omega\left(t\right)$ is very small. So, that is one source of error. $\endgroup$
    – user14082
    Jul 30 '12 at 18:49

You did some mistake when linearizing. The equation is already linear in $i(t)$. Thus, you should obtain $$\dot{\omega}(t) \approx 2 \alpha \omega_0 \omega(t) + \beta i(t).$$ The transfer function reads $$ P(s) = \frac{\beta}{s - 2 \alpha \omega_0}.$$

  • $\begingroup$ Thanks Fabian. I edited my question to reflect the correction you mentioned. $\endgroup$
    – mmm
    Jul 31 '12 at 7:57

Just solve the problem directly. This is a Riccati equation, so using the variable $v = \omega^{-1}$, one obtains $v'(t) + \alpha + \beta i(t)v(t) = 0$. This can be solved explicitly, using separation of variables.

  • $\begingroup$ Could you please explain the proposed solution in a little more elaborate way? I'm not a math expert, I'm afraid... $\endgroup$
    – mmm
    Jul 30 '12 at 18:41
  • $\begingroup$ @mmm: en.wikipedia.org/wiki/… $\endgroup$
    – user14082
    Jul 30 '12 at 19:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.