Theory vs. practice: DC-motor controller

Suppose you have a DC-motor with encoder, that drives a small car with a gear and rack.
The FRF(s) = Encoder(s)/Inputvoltage(s) can be determined and
so one can develop a simple lead controller for this system.
If I simulate this controller on the measured FRF, there is an overshoot of about 20% on a step response and a rise time of about 0.2 sec.
If I add a voltage limiter (+/-10V) and simulate the step response again, the rise time is about 0.5 sec and the overshoot is a lot smaller (less than 5%).
If I test this controller on the real setup, the system acts quite like the simulation with voltage limiter.
Now, when I developed the controller, the bandwidth I chose was actually too high. However, in reality, the system acts better than expected (less overshoot, but higher rise time). I am sort of caught in the middle of the following two statements: * the controller was developed for a theoretical system and in reality, the bandwidth of the actual system is lower. So the controller demands more of the motor than it can handle. * On the other hand this is not so bad since: - the real response seems okay. - there is friction in the system and the controller will react more "agressive" than a controller that is developed for the actual achievable bandwidth of the system. This is good in this case, because it does compensate the friction that was not modeled in the theoretical system.
What do you think about this? Should I only look at the real response?
Any answers are greatly appreciated. Thank you in advance.
Note: * the step response was simulated for a representative distance (not unit step response). The voltage limitation will affect the response for different step sizes in different ways. * the purpose of this controller is mainly to test step responses/ramp response, ... and not complicated trajects/tracking control etc.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
Add image file
Diver wrote:

You should be able to do better with a lead controller, but it's hard to say without having the detail -- this is well within the realm of the believable. Did you tune for overshoot, or did you tune for something else then look at the overshoot?

Not surprising, but indicative that lower proportional gain may have been a good idea.

Not surprising that it acted differently from your model (surprising is when reality and model match well). Given that you motor drive has some real limit you may actually be approximating your model fairly well.

I think your assessment is probably correct.

That depends on what you're doing. I will often use theoretical models for the preliminary design, then leave them to gather dust once I have my hands on a real system. There _is_ value in keeping a theoretical model current, but only if you are going to be doing on-going performance enhancement and your model is reasonably accurate and it is expensive to just test on the "real thing".
You should _always_ use the real response as the final test, and if at all possible you should _always_ do your final tuning on the real thing.


Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
Add image file
Upload is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.