This is what you do about non-linearities

http://www.motioncontrolonline.org/i4a/pages/Index.cfm?pageID622 I can back up the authors opinions with my experiences. It isn't just
marketing fluff.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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 modeling.
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.
sam
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Is this your first post?

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?
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You want to bet on that? The defense industry has a lot of costs, admittedly. But defense contractors are in this industry to make money. Thats why all the contracts are filled with tons of fat.

It doesnt have to, but it does. All the big defense contractors have commercial arms. Many commercial companies have defense arms (3COM does work for DoD, Qantas has Qantas Defense Services).

Exactly. Lets shift the drift.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 19 Feb 2008 16:18:00 -0800, Sam wrote:

If they're really doing blind adaptive filtering, then I wouldn't call it 'crude'. Making something that'll bolt on to anything and figure out the parameters impresses the heck out of _me_!
--
Tim Wescott
Control systems and communications consulting
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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, Ray
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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 system identification. ftp://ftp.deltacompsys.com/public/NG/Mathcad%20-%20t0p5%20PID%20ITAE%20Andrew.pdf
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.
ftp://ftp.deltacompsys.com/public/NG/Mathcad%20-%20t0p5%20PID%20ITAE%20obs%20Andrew.pdf
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 line.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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 be sure.
I am just commenting on the two papers. I do think the observer approach has a lot of advantages in loop compensation. I will try to work through the papers more carefully.
RayR
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Which two out of the three?

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 PLC PID. .

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 'real' derivatives. ftp://ftp.deltacompsys.com/public/NG/Mathcad%20-%20T0P5%20OBS.pdf 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.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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.
RayR
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
RRogers wrote:

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 bandwidth.

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 or two.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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 ftp://ftp.deltacompsys.com/public/NG/Mathcad%20-%20T0P5%20OBS.pdf I was taking the comments there out of context and applying them to the other papers; sorry.
RayR
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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.