Very Crude-But I suppose if it suffices for your application then it
is the right "approach".
In the Defense industry we increase the RMS noise figure on the plant
and sensor in our EKF's to compensate for the uncertainty in the
The author mentions Friction and Sticktion. Friedland and Haessig
have worked out a Friction compensator which relies on the use of a
Nonlinear Friction Observer. This may improve their motion control so
that they dont need to generate 10,000 "offsets" or whatever they
think they are doing.
Relatively, but the defense industry doesn't have to make a profit.
It doesn't have to make commerical products that average Joe can use.
There are few if any people that monitor this forum that would even
know what an observer is, let alone a Kalman filter or an extend
Kalman filter. How crude is that? I think observers provide an
excellent bang for the buck but average Joe doesn't even know they
exist or what they do?
I don't think what is being described in the 'how it works' paragraph
is that impressive. We do the same thing. The 'how it works'
paragraph says the observer starts with the model. This model is
usually obtained during the auto tuning part of the start up
procedure. The observer model doesn't change dynamically. As stated
in the article, the goal is to estimate the second derivative term.
It is easy to bolt on an observer to just about anything.
Accurately changing the system transition matrix on-the-fly is the
real trick and observers don't do that.
I think it's a great technique, unfortunately I haven't been able to
apply it since I realized what was going on in 90's.
I do have a problem with 30:1. Aside from integration, every
technique I have seen only improves things 5:1 to 10:1; and then you
have to reanalyze to remove errors that were invisible before.
Reports of dramatic improvements almost always have hidden baggage.
Of course 25:1 is only two 5:1's .
Just my experience,
Here is an example from last fall. JCH provided us data to practice
our system identification skills. Andrew identified the system as a
second order system. You can see that if the second order model is
used to compute PID gains they will not work when applied to the
'real' fifth order plant.
This .pdf shows the PID gains will control Andrew's model but will not
control the 'real' fifth order plant that generated the data used for
Unfortunately the thread stopped there.
What I didn't point out is that Andrew's second order model can be
used to make an observer. This would obviously be a second order
observer generated by Andrew's second order model. Then his
controller can be used to control his observer and even though it is
imperfect it still works well enough but it isn't pretty.
The point is that the average Joe does not have a controller with 6
gains. He has a PID and with a little math one can make a simple
observer that makes all the difference as to whether the system is
controllable or not. There is magic in those observers and one can
implement the run time part of an observer in a few Control Logix
compute blocks or in STL. The coefficients can be calculated off
I haven't really analyzed the two papers but two things stand out:
1) I could certainly do better in the PID case when delivering a
loop. Suboptimal gains
seem to be set.
2) You actually have 7 gains in the second example; which have to be
set. 4 matrix entries and Ki, Kp, Kd .
3) Superficially it seems you have actually implemented a 4 state
controller; first the observer states and then the PID controller
states. I have to write out the system block diagram/description to
I am just commenting on the two papers. I do think the observer
a lot of advantages in loop compensation.
I will try to work through the papers more carefully.
Define suboptimal. The gains are optimized to provide a minimum ITAE
response. I prefer pole placement myself. I can get a nice crtically damped
reponse if I want but since the 'real' system in already critically damped
in open loop,. I thought something more aggressive would be appropriate.
There are only three gains Ki Kp and Kd. This is all there is on a standard
The observer is just a second order observer. The PID is controlling the
second order observer and the 'real' system. The 'real' system updates the
second order controller which the PID uses for feed back.
Take your time and ask questions. I can answer and Sam alsoshould also be
able to explain such a crude method of control.
BTW, you state that the PID gains were sub optimal. Look at this fifth
order observer for the fifth order 'real' system.
You can see that the observered/estimiate higher order derivatives match the
The key thing to learn here is that quantizing 'non-linearities' make normal
methods of calculating higher order derivatives impossible,but an observer
can estimate higher order derivatives very accuratlely.
Looking over the code
1) Why wasn't Kp applied to the error (r-y0) like the Ki ?
2) Did you check that the conversion to the discrete domain didn't
push the closed loop poles outside the unit circle? You attribute the
limit cycle to the resolution, but it's no obvious that closed loop z
domain is stable. I started to compute the z poles, but I really have
to do some "real" work now.
I used the I-PD form of the PID. If often use that when the target is
changing in steps because it doesn't suffer from the derivative kick.
Also the controller doesn't add zeros which will cause over shoot in
response to step inputs. Basically it is one of the different horse
for different course sort of thing. Now if I am trying to follow a
motion profile then I use a normal PID because a motion controller
doesn't make step changes in position and the zeros extend the
On what page of which .pdf? I should check the z poles on the last
example where the output is all over the place. It will take a minute
Ah.., I have to look at T(s) more closely then. I tracked the
comments. I know; I should always look at the source code:)
State Estimation and Control of a Type 0 5th Order System
I was taking the comments there out of context and applying them to
the other papers; sorry.
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.