If there are input and the sensor measured outputs. What are the objective methods to compare performance besides looking at inputs and outputs matching or not?


Controllers in general are judged typically by 3 criteria -

  1. Rise time, or how quickly the output gets to the input,

  2. Percent overshoot, or how much the output oscillates around the input, and

  3. Settling time, or how long it takes the output to stabilize at the same value as the input.

Typically you measure these with a step test - from an initial condition of zero, give an input of 1. The time it takes to get from 10 percent to 90 percent is rise time, settling time is generally how long it takes the output to stay within 2% or 5% of the input value, and percent overshoot is the farthest beyond the input that the output got.

Allowing some overshoot improves rise time, which means the system responds faster, but at the expense of a longer selling time.

Some more explanation,

Because of inertia, rise time and percent overshot are competing goals. What is the fastest way to drive 1000 feet? Go full throttle, of course. If you start slowing down to stop right at 1000 feet, you won't get to the mark as quickly as the person that is still going full throttle with no braking.

Conversely, while the person who doesn't start braking until they hit 1000 feet may have got there first, it will take time, some distance, to stop. They have overshot the 1000 foot mark. If they overshoot by 10 feet then go in reverse as quickly as they can, they get back to the mark, but will probably overshoot again, but not as much as the first time because they travel a shorter distance and thus can't get to the same top speed. This process repeats and is called oscillation.

This trade off, getting there quickly vs not overshooting, is typical. All of engineering is defining criteria and then finding the best trade off to meet the established criteria.

| improve this answer | |
  • $\begingroup$ what are some examples to generate step input? $\endgroup$ – drerD Jul 3 '15 at 17:47
  • $\begingroup$ Have the system at rest, then provide a constant new input, like going from 0 to suddenly 100% throttle on an RC car, power off to power on for a circuit, etc. You can do a step test for an input of any magnitude if you normalize the results, normalize meaning you divide everything by whatever the input was. $\endgroup$ – Chuck Jul 3 '15 at 18:07
  • $\begingroup$ I would just caution that you compare apples to apples in that you measure input and output in the same units. A gas pedal in a real car is actually a torque input, and the output would be engine torque, not engine speed or vehicle speed. In RC cars the input and output might actually be speeds, but it's something to consider (does the throttle command control motor current, i.e. torque, or does it control motor speed, as in an input to an ESC) $\endgroup$ – Chuck Jul 3 '15 at 18:11

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.