R
Rich Grise
There, in plain public view, I have admitted my wrongness.
This is what grownups do.
Cheers!
Rich
There, in plain public view, I have admitted my wrongness.
N. Thornton said:It strikes me that your app needs control that will meet certain
specs. And if it gets one designed by peeing in the wind, there is no
way to know if it will meet those specs. And if it seems to work there
will still be no way to know how it may misbehave under certain
conditions, nor to draw up its real performance specs, nor to assess
how it will behave with another machine of near but not identical
performance. Thus a pee in the wind approach is not going to meet the
requirements of the task.
That looks to me like a simple concept that any engineer will follow
with ease.
Regards, NT
Rich said:This is what grownups do.![]()
software.Tim Wescott said:Terry Given wrote:
-- snip --the method used to design your controller will have a huge impact. If you
plan on designing an "analogue" controller then (say) transforming into the
z-domain for implementation, then the type of transformation you use is
important - a bilinear transform controller can have a much lower sample
rate than a backward-difference transform controller, which needs around 20x
sample rate to function effectively. There are a wide variety of tricks for
solving this problem, but sampling faster is the easiest one. An all digital
design can easily incorporate this delay [IIRC augment your state variables
with a new variable, which is the delayed state eg v(n)=u(n-1)].
The only time I'd advocate transforming an analog controller into the
z-domain would be if you're replacing it with a digital controller
that's supposed to do _exactly_ the same thing. The closest I've ever
come to this is to write a digital control algorithm with the same
filters as the analog controller it was replacing, then tune it up
empirically based on the plant's frequency response as seen by the
Generally I model the plant in continuous-time then (if it's a linear
plant, which is a big if) I make an exact z-domain model of it and
design my control system -- but I still end up tuning it with empirical
data at the end, if I want to get good performance. Even a nonlinear
plant can sometimes be handled this way, by linearizing the
continuous-time system around the "typical" operating point, and
transforming _that_ exactly.
In general making the sampling rate faster will make the design job
easier, and require higher precision in all your filters. If you can
spend the money on a fast machine that has the capacity for 32-bit
computation then go collect your bonus. If you need to squeeze pennies
out of the controller (which I suspect will happen eventually if this is
an automotive application) then you should sample as slowly as you can
get away with (which is where my feed-forward or even adaptive
feed-forward suggestion came from).
Terry said:[snip]
lots of studies have been done on the effect of automated control in
industry. They all end up saying about the same thing - 1/3 of all
controllers improve processes, 1/3 have no net effect, and 1/3 make the
process substantially worse. And the reasons are always the same - badly
tuned controllers (this has fueled the demand for self-tuning controllers, a
jolly good trick). I have watched plenty of guys tune motor controller PID
loops in industry, and they ALL do it "empirically" ie by making it up as
they go along, often for no apparent reason (usually based on what has
worked before).
Joel Kolstad said:The guy has a point; in my experience it's far more likely to come across
problems where something like a PID loop or some 'heuristic' based
controller will solve the problem. However, if you know classical control
theory and can properly apply it, you'll be able to make noticeably more
money solving problems where such approaches fail miserably. In fact, it
seems as though control systems is one of the areas where consultants who
know what they're doing never run out of clients whose own employees failed
to make the system work due to assuming that all systems can be controlled
with simple algorithms.
See Jim Thompson's post a week or so ago about getting a company to pay
through the nose for a control systems fix!
Tim Wescott said:Well spotted? It's an issue that only seems trivial to those who have
yet to be bitten by that particular dog.
Note that the advise was for a (presumed) high-volume application. For
a low-volume application you should just spend tons of money on the
processor, sample fast, and pay for it all with the reduced engineering
time.
Tim Wescott
-- snip --Terry said:lots of studies have been done on the effect of automated control in
industry. They all end up saying about the same thing - 1/3 of all
controllers improve processes, 1/3 have no net effect, and 1/3 make the
process substantially worse. And the reasons are always the same - badly
tuned controllers (this has fueled the demand for self-tuning controllers, a
jolly good trick). I have watched plenty of guys tune motor controller PID
loops in industry, and they ALL do it "empirically" ie by making it up as
they go along, often for no apparent reason (usually based on what has
worked before).
Terry Given said:I once worked with a system whereby the programmer had,
independantly, invented the proportional controller (not that he would
believe it) and had the lowest gain possible (every loop he would add 1
to output if input > setpoint etc).
Funnily enough the performance was
crap. but do you think I could get the guy to open a control systems
text, or implement a different gain, or even , PI controller - now way!
Joel said:Actually, this is an integral-only system. I've used them myself... for
stuff like heaters/lightbulbs where I _wanted_ the aesthetic effect of being
able to see something heat up. I imagine my loop bandwidth was down around
0.1Hz?
I don't believe people with comp. sci. degree necessarily ever take anything
resembling a control course these days? Even if you did get him to open a
book, at the first sign of a Laplace or Fourier transform of the use of
phasors he would have run screaming from the room.
Tim said:[snip]
Computer science still avoids control. Most universities no longer have
EE departments, however, they're "Electrical and Computer Engineering"
departments. This doesn't mean that people learning 'C' are learning
filters, but it's something.
Paul Hovnanian P.E. said:Terry said:[snip]
lots of studies have been done on the effect of automated control in
industry. They all end up saying about the same thing - 1/3 of all
controllers improve processes, 1/3 have no net effect, and 1/3 make the
process substantially worse. And the reasons are always the same - badly
tuned controllers (this has fueled the demand for self-tuning controllers, a
jolly good trick). I have watched plenty of guys tune motor controller PID
loops in industry, and they ALL do it "empirically" ie by making it up as
they go along, often for no apparent reason (usually based on what has
worked before).
If the symptoms of an unstable control system aren't serious, that
approach will work. But see how many fly-by-wire flight control systems
they'll let you tweak until the damn thing stays airborne.
Sadly, the software people are winning the battles in many companies.
One day, they are Cobol programmers working for the finance department,
the next they are implementing autopilots.
N. Thornton said:It strikes me that your app needs control that will meet certain
specs. And if it gets one designed by peeing in the wind, there is no
way to know if it will meet those specs. And if it seems to work there
will still be no way to know how it may misbehave under certain
conditions, nor to draw up its real performance specs, nor to assess
how it will behave with another machine of near but not identical
performance. Thus a pee in the wind approach is not going to meet the
requirements of the task.
That looks to me like a simple concept that any engineer will follow
with ease.
Sadly, the software people are winning the battles in many companies.
One day, they are Cobol programmers working for the finance department,
the next they are implementing autopilots.
Computer science still avoids control. Most universities no longer have
EE departments, however, they're "Electrical and Computer Engineering"
departments. This doesn't mean that people learning 'C' are learning
filters, but it's something.
Paul Hovnanian P.E. said:Tim said:[snip]
Computer science still avoids control. Most universities no longer have
EE departments, however, they're "Electrical and Computer Engineering"
departments. This doesn't mean that people learning 'C' are learning
filters, but it's something.
At the behest of most corporations, computer science is
compartmentalized and kept apart from any other discipline. Not only
engineering, but finance, manufacturing, etc. are kept separate from
software development. Its back to the old days, with computers in back
rooms, tended to by armies of technicians with white coats, because
nobody else could possible understand how a computer works. ;-)
In reality, this seems to be a reaction to the (perceived) high cost of
software skills. Attempts are made to separate hardware and software so
that the software development could be put out for bid and (hopefully) a
few bucks shaved off the project.
Paul Hovnanian mailto[email protected]
Terry said:[snip]
My experience working with comp. sci. grads is that they know lots about
APIs etc. but **** all about design. how to write sw functions is not too
much of an issue - the real important question is what to do (witness
Outlook and its stupid database structure for emails. I mean Duh, what the
hell is the disk OS doing.....)
Terry said:I am constantly amazed (and disgusted) at the piss-poor performance of
virtually all software. Some software (matlab springs to mind) is absolutely
brilliant - robust, reliable and they fix problems. Most sw however is just
shit. I have lost count of the number of times I read sw documentation that
says "pull down the Blah menu" only to discover it doesnt even
exist.....Mathcad or protel users will no doubt have plenty to say about
this.....
as part of my EE education I studied sw engineering for 3 years. We learned
that abotu 80-90% of all software projects NEVER work/are completed/are
delivered. clearly programmers dont learn project management.
I actually think the problem is very subtle - sw is LICENSED, not sold. Most
countries have consumer protection laws that require stuff to actually do
the job it is sold for. Because sw isnt sold, these laws do not apply, and
the first bit in any sw EULA says, in effect, that the software may or may
not work properly, and too bad if it doesnt. People dont put up with this
shit from any other branch of engineering.
I would actually argue that sw performance is SO BAD it doesnt deserve to be
called engineering.
onestone said:Since the License is invariably
contained on the installation disk, and since it cannot be read until
installation, the law deems it unreasonable to expect a purchaser to
agree to something they haven't yet been able to see or evaluate when
their is no recourse should you not acceopt the license. ie if they
won't refund my money because I don't accept the license then the law
deems me to have bought the software, since the license terms were not
made known to me until after purchase, I am the owner of that software,
and therefore free to do as I please with it. Including making and
selling copies.
Terry said:onestone said:Terry Given wrote:
[snip my anti-sw diatribe]
How screwed up this situation really is came to light about a year
ago. Here in Australia we have some fairly solid consmer laws. We
also have a software retail industry that refuses to refund or
accept returns of software for any reason. The fear being that
you've illegally copied the code and now want your money back. This
backfired, and revealed a hole in the entire licensing process.
Since the License is invariably contained on the installation disk,
and since it cannot be read until installation, the law deems it
unreasonable to expect a purchaser to agree to something they
haven't yet been able to see or evaluate when their is no recourse
should you not acceopt the license. ie if they won't refund my money
because I don't accept the license then the law deems me to have
bought the software, since the license terms were not made known to
me until after purchase, I am the owner of that software, and
therefore free to do as I please with it. Including making and
selling copies. Of course you'd better have deep pockets , or be a
lawyer to push this, unless, as in my case I had the Australian
consumer council fighting for me. Under Australian law the retailer,
not the manufacturer of the product is my poj tof legal redress.
Therefore if a legally appointed retailer will not refund your
purchase price when the license proves to be unacceptable the
manufacturer can do nothing about it. Even were the license made
available to read prior to purchase, it is not a reasonable license
unless opportunity is given to first evaluate the product.
Al
Hi Al,
I hadnt thought of that. In NZ we too have excellent consumer
legislation,, along similar lines - the contract is between the
purchaser and the seller, the manufacturer doesnt enter into it (none
of this "go complain to the manufacturer" bullshit I had to put up
with in MA). IIRR it is the law of torts which says you cannot enter
into a contract without being made aware of its provisions first. An
inability to read the license agreement certainly fits that bill, so
I will file that away, and use it the next time i buy sw i dont like.
(Funnily, many music stores wont give you a refund if you dont like
the cd, but will if its damaged....duh, clearly the solution if you
buy the wrong CD is to scratch it, then ask for your money back.
Smart music stores let you change your mind.)
So we've got a little bit of consumer protection, but until the loop
is closed with the sw "manufacturer," the current appalling state of
affairs will continue unabated.