I'm building a hovercraft, which transfer function i have to find for further control. The hovercraft can be found in the following enter image description here

As you can see, the hovercraft has 2 motors for direction. I have been given an advice to apply a step to the system, via the direction motors, and determine the transfer function, from the stepresponse. For this several questions comes to my mind:

A step on the motor, meaning for example 5V on the motors?

What should the ouput of the transfer function represent? (should i monitor velocity, acceleration, position after x seconds?)

Best regards


1 Answer 1


If you want to determine the transfer function of a system by applying a step response, you'll need to decide in advance what kind of dynamic model you expect your system to have. If you're looking for a transfer function, that means you've already assumed your system is linear, so start considering linear models that would work for your case.

Once you decide on a model, derive its transfer function. Apply a step response and use the response characteristics (such as time constant, natural frequency, steady state value, or any others that are relevant to your model) to solve for the unknown parameters of the model transfer function.


Let's say your hovercraft primarily has two forces acting on it: the force from the motors, and the force due to friction/drag. In that case you could approximate the dynamics using a classical linear, single degree-of-freedom model, like so:

$m\dot{v} = K_m u(t) - bv$

where $v$ is the velocity of the hovercraft, $\dot{v}$ is the acceleration, and $u$ is the voltage applied to the motors. The unknown parameters of the system are: $m$ (the mass of the hovercraft), $K_m$ (the conversion between applied motor voltage and thrust force), and $b$ (the drag/friction coefficient). You should be able to identify $m$ by simply weighing your hovercraft. That leaves $K_m$ and $b$ unknown.

You can get the transfer function of the model by applying the Laplace transform:

$sV(s) = K_m U(s) - bV(s)$

$\frac{V(s)}{U(s)} = \frac{K_m}{ms + b} = \frac{K_m/b}{(m/b) s + 1}$

Now, you can identify the different parameters by measuring the velocity of the hovercraft when you apply a step function to the input. The step function can have any value, but you want it to be large enough that the velocity is measurable, and small enough that the hovercraft doesn't speed out of control.

You are looking for two characteristics of the response:

  1. The steady state velocity $v_{ss}$, which is the maximum speed that the hovercraft reaches for a given input, even if left for an infinite amount of time. Your hovercraft will probably stop accelerating after a few seconds if your input isn't too large, use that velocity as an approximation. Solve for the ratio of unknown parameters using $v_{ss} = (K_m/b)u_0$ if $u_0$ is the magnitude of the step input, maybe 2 V or something.

  2. The time constant $\tau$ of the response, which is the time it takes for the system to go from 0 to approximately 63.2% of the steady state velocity (see the Wikipedia link for more info). Solve for $b$ using $\tau = m/b$.

  • $\begingroup$ Og my god! - You are a wizzard sir! - Ty so much, that was exactly what i needed! Thank you again! - I cannto upvote it, since i don't have enough points, but ill do it if i get enough though! $\endgroup$ Nov 21, 2016 at 21:40
  • $\begingroup$ So i'm starting to model the system at the moment, and i'm a little confused about the order of the system. In your lovely example, you model a 1. order system. How do i know weather the system is 1. or higher? - Best regards $\endgroup$ Dec 7, 2016 at 14:40
  • $\begingroup$ @Emil The order of the system/model you're using is the highest order of derivative present in the differential equation representing the system. For example, $\frac{dx}{dt}$ is a "first-order derivative", $\frac{d^2x}{dt^2}$ is a "second-order derivative", etc. $\endgroup$ Dec 7, 2016 at 14:50
  • $\begingroup$ @Emil Given that this question has been closed, could you please edit it to make your intent more clear? Especially if you found my answer helpful, it's of no use to anyone if this question gets removed $\endgroup$ Dec 7, 2016 at 14:52
  • $\begingroup$ Yeah, sure ill do that. But it's not a big issue, i'm just not sure, how the system can be a first order system, when i have always learned that systems tend to be 2. order or higher $\endgroup$ Dec 7, 2016 at 14:56

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