Hi. I'm not too familiar with control system, I'm just starting to learn
more about it.
If for example, imagine a close-loop system with a PID controller. I learn
in some class (and made simulation with modelsim)
how to calculate the right PID parameter to control a DC motor position BUT
WITHOUT A LOAD.
I think, but not sure, that my specs (like Settling time or the overshoot)
will not be respected.
I do I handle that?
OK, I'll tell you a bit about real world control systems.
You don't calculate the PID parameters. You determine them experimentally.
This is called tuning. The reason for this is that all the uncertainties of
the entire system are lumped into this point. They are adjusted away in the
tuning process. If you could calculate them directly, they wouldn't be
called tuning constants and there wouldn't be so many articles written on
how to do it.
To control a motor without a load is without value. The point of control is
to maintain setpoint despite varying load. PID parameters cannot be
calculated without knowing the conditions of operation. When conditions
change, the constants must be tuned.
Build a system model. Put in lots of nonlinearities, especially by putting
hard limits on flow rates and measurements. Now add slowly, randomly
varying disturbances. In your case they could be changing load, varying
resistance with winding temperature based on external conditions including
sunshine and rain, or unpredictable variations in line voltage.. Now make
the tuning constants available to the user so they can be adjusted online
while the model is running.
That is real world.
Resources are available. Just ask.
Would you stop saying that over and over again. Just because you use trial
and error doesn't mean that others must. In the motion world we can 'auto
tune'. Calculating the PID AND feed forward gains for a motor and load on
a shaft is easy. The last time I checked the motion control was part of
the real world.
In a production system you can count on having a number of identical
units built. Assuming that you did a solid job of tuning the prototype
system auto-tune often adds way more problems than it solves. So far
I've never been able to justify anything but careful characterization of
the prototype and a loop design that's conservative to the expected
manufacturing variations and aging effects.
If you're accounting for wide load variations with fixed tuning then the
usual manufacturing and wear variations kinda get lost in the noise. As
long as you can survive the loss in performance incurred by the
conservative tuning you can stop right there and ship product.
Of course if you _must_ have higher performance than that you'll need to
consider auto-tune or a full adaptive system. If it's the load
variations more than the aging or manufacturing variations then you're
going to get forced into full adaptive in any case.
Suppose in your diagram that the measured variable, y, is RPM. Then the
load appears as another block downstream of the motor. The word 'plant' is
generic and represents everything. Break it up into parts -- controller
drives motor control power electronics, this drives motor, motor drives
Each of these three has it's characteristic. So far you have represented
the electronics with a , the load with a transfer function, and the load
with a .
Your definition of a "100 pound load" is not very useful. That is why you
can't express it mathematically. A real load probably consists of a
friction torque proportional to speed and an angular momentum acceleration
If 'y' is position things are a bit difficult since the load on the motor is
probably independent of position.
Even if y is position there is no problem. Just differentiate to get
velocity as a function of the control signal. One can work on position
directly in simple case such as the example presented above .
By way of follow-up, I'd much rather deal with a control engineer who
understands tuning and pole placement, even if the control system ends up
being tuned by trial and error.
I've had at least one less-than-satisfactory interaction with a "control
engineer" who basically knew how to program a PLC, but knew nothing about
anything I would call control. We ended up with a screwed up system, and
had to upgrade our hardware in a major way at the last minute, because
the guy was missing his basics. To expand, we needed a system to track
an analog signal. This guy was sampling the analog signal within his
ladder, and the effective sampling rate wandered all over hell and back.
He just didn't understand that all the tuning parameters are based
solidly on the sampling rate of the system, and it really shouldn't have
been allowed to vary. When I (not the hired gun) figured out what was
wrong, we had to update our hardware to assign the analog sampling to its
While many people can tune a control loop, sometimes it becomes important
to understand what you're doing. When your customer is looking at lousy
control, "it's always worked before" does little to appease him. I think
that in the above case, if the "control engineer" understood sampling,
DSP, and control fundamentals, this situation wouldn't have come up, and
we would have ended up with the system we needed without cost overruns
and missed deadlines. It's just too easy for a guy to take a week long
seminar on PLC and market himself as a control engineer.
I would think it would be a really great exercise for a student to tune a
system on paper and empirically, and find out how close the answers were,
and then to try to pin down the nonlinearities to understand why the two
With all the control math that I use in designing systems I have to
agree with you. On the other hand you can have all the control math in
the world but if you can't look at a system that's flopping or buzzing
or just getting hot and recognize the problem then you can't add
Oh absolutely. The theory you learned influences the way you understand
things and how you deal with them. If you didn't learn any theory, you
won't understand anything. An UNDERSTANDING of sampling, Nyquist frequency,
poles, zeroes, etc. is essential. My only complaint is with the belief that
everything can be precalculated. Some still have to learn the meaning of
the limits of linear mathematics as well. Tuning is not done by trial and
error. That would be a total waste of time. Tuning is an algorithm that
uses feed back and intelligence to achieve results.
There were several previous posts dealing with examples of where tuning does
not appear to be done. The first of these mentioned what is essentially
mass produced equipment, with built in controllers. In this case the tuning
is done on a prototype and then locked in. Fortunately, the tuning
parameters have a very flat optimum. What is optimal for a specific case
will still yield acceptable performance over a broad range of varying
The second example dealt with automated spacecraft. In situ, live tuning is
obviously not possible. EXCEPT, large amounts of time and effort are
exerted in producing simulations and highly accurate models. The tuning and
adjustments are done on the model land then exported to the actual
equipment. If as much time was spent on the simulations of a gas plant,
each of them would cost as much as a Mars probe. Fortunately, the behaviour
of spacecraft follows the laws of mechanics which are far more linear than
the laws of chemistry. That makes them a bit easier to model.
I guess I agree with you. Even if you have the best nonlinear adaptive
whatever algorithm developed, it will remain ink on paper unless somebody
with good enough practical knowledge and hand-on experience goes and
and tunes it for a particular application, and keeps it running. Likewise,
it is very likely that all that supermodern control equipment will be
chunks of useless material at the hands of somebody without good theoretical
background in control theory. It is a question of compromise.
And you are absolutely right. Different tools are appropriate for different
industries. If you try to identify a model of a real refinery using frequency
response, the management won't be happy.
By the way, I was really astonished to read in the November issue of ISA
Intech that in North America 85% of control loops don't perform according
to control objectives and only 25% perform better in automatic than manual!
A lot of resources are wasted! How can this be explained? The article itself
is about process optimization, but I don't think it was an advertisement
Wow, 15 percent of our control loops are performing according to control
objectives. This is probably a vast improvement, or they are being kind.
The article probably didn't go further to decide if those control objectives
were indeed valid or even consistent.
It would be interesting to know how much control effort has been expended to
correct process equipment problems, or to try to make a unit behave
inconsistently with its design and internal dynamics. From experience, I
would suspect that these amounts would be staggering.
I recall a system in which we put a controller into manual to check the
system out. It ran smoothly enough that it was worth reworking the advanced
controls to mimic the manual method (with a few minor improvements). We got
to claim the uptime statistics, and the process ran a lot smoother. Between
incomplete process models, overcontrolling, standard gains, and undue
complexity, there is a lot of room for improvement.
Not entirely. Like Peter said there's times that you can auto-tune.
There are also times (like in aerospace) where you won't have a chance
to tune the system before you put a very expensive, dangerous system
on-line with an operator standing by to get incinerated if your model
Absolutely. It _does_ make sense to design a controller that can handle
a load that varies within known (or assumed) limits.
Don't forget plant aging.
>. Now make
Oh, it's that great big dirty thing/itty bitty clean thing dichotomy
again. If you're building a production system thats going to users who
are naive about control systems you want to hide those tuning controls
as deep as you can. I've build a number of production control loops,
and we don't even let the _service_ people have access to the tuning.
Engineers can modify the tuning on-line, once, to be lost when the power
goes down, but the actual constants are hard-coded in software and only
change with a new software version.
Without going into mechanical/electrical losses/characteristics of the
motor/load. The easist way is to apply a step voltage to the motor and
monitor time of its speed to max. Time to 0.67max rpm will give you the
time constant (Tau) of the motor/load combo. Slot this into your 1st order
equation of the motor and away you go, just add the PID parameters to tune
to the desired response
Polytechforum.com 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.