Controlled position acceleration on the basis of a known process transfer function

<cited from Mikolaj> What are you talking about this time? I have no idea how to talk to you to be understand. And once again, please, start new subject
and tell me or us, what are you trying to show or say. </cited>
I have been trying to find a very good solution.
On the basis of Peter's process transfer function that can be found in ftp://ftp.deltacompsys.com/public/NG/Mathcad%20-%20T1C1%20PD2D.pdf I would like to compare solutions found preferably by Mikolaj or other expert. I am looking for the best possible solution as far as controlled movement (position) is concerned.
The benchmark data should also be taken from Peter's paper mentioned.
The main interest now is controlled velocity and acceleration in time domain.
Note to Peter: Your control output (+/-10, green line) seems to drive into the end positions. Is there a sudden stop of the actuator? The forces would be very high. I'd like to see a solution avoiding such a sudden stop.
English is not my mother tongue. Sorry.
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: <cited from Mikolaj> : What are you talking about this time? : I have no idea how to talk to you to be understand. : And once again, please, start new subject : and tell me or us, what are you trying to show or say. : </cited> : : I have been trying to find a very good solution. : : On the basis of Peter's process transfer function that can be found in : ftp://ftp.deltacompsys.com/public/NG/Mathcad%20-%20T1C1%20PD2D.pdf : I would like to compare solutions found preferably by Mikolaj or other : expert. I am looking for the best possible solution as far as controlled : movement (position) is concerned. : : The benchmark data should also be taken from Peter's paper mentioned. : : The main interest now is controlled velocity and acceleration in time : domain. : : Note to Peter: : Your control output (+/-10, green line) seems to drive into the end : positions. Is there a sudden stop of the actuator?
I updated the link ftp://ftp.deltacompsys.com/public/PDF/Mathcad%20-%20T1C1%20PD2D.pdf I now show the velocity and acceleration during the motion. You can see there is no sudden stop. The output is limited to +/- 10 volts but you can see the output drops to 0 as the actual position reaches the target position.
However, accelerations and velocities reached are very high. 4g and 386.4 in/sec^2. This is not realistic unless it was a die casting machine and a die casting machine would have a much higher natural frequency. Die casting machines go much faster too.
Remember, I have admitted that the test system is rigged and not meant to be easy. I choose it to make a point. The main goal was to make those that think they could tune a system drink a lot of coffe. I can see it gave everyone a challenge. I do use this as my theoretical test system. It was like playing soccer ( football ) with my ball on my field. I admit it. I wonder how many pots of coffee the tweakers drank while tuning it. We will never know.
Also, I included another graph showing just the first step using the direct s domain to time domain conversion. The result equation in the time domain does not take into account ZOH, or the +/- 10 volt limitation of the controller.
: The forces would be very : high. I'd like to see a solution avoiding such a sudden stop.
You should see the things are moved using our controllers and the forces involved. I have customers wanting to make moves like all the time. Wanting and doing are two different things. My controllers just shuffles around electrons. It is the mechanical guys that must supply the muscle. : : English is not my mother tongue. Sorry.
Your written English is fine. It is the lack of explanation of your diagrams. Scilab scripts with comments would be excellent. BTW, I can't translate the scanned text on your website into English using babelfish. I can translate the webpage text. It bothers me that I am making my posts with links to .pdf files that can't be easily translated. I wish Mathcad would generate html files that can viewed by all browswers and work with all servers. I would then generate .html files instead. Sorry about that guys.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
napisa(a):
(...)

(...)
I agree with Peter. Scripts would be fine.
--
Mikolaj

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You can learn a lot about controlling velocity, acceleration, deceleration and jerk(derivative of acceleration) by looking at modern high speed elevator control. This type of control is needed to give a smooth ride. Jerk control is particularily important during starting and stopping of the elevator. Google ...elevator jerk control and you will find a number of references on the subject.
Fred Thomasson
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
"Fred Thomasson" <fthomasson at comcast.net> wrote in message
: > <cited from Mikolaj> : > The main interest now is controlled velocity and acceleration in time : > domain. : : You can learn a lot about controlling velocity, acceleration, deceleration : and jerk(derivative of acceleration) by looking at modern high speed : elevator control.
So how does one do this? Mikolaj asked this excellent question about how does one calculate the error in higher order derivatives when JCH mentioned his PD^3 controller.
There isn't any real data on how this is done on the internet. I have looked but maybe something new has appeared.
I was in Finland recently and I was impressed with the speed and smoothness of the motion control in the elevators I where I was staying. I notice things like that and think I can do better but these elevator controllers were excellent.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

State of the art are using PCs for industrial use if necessary or useful. Yesterday I simulated 'mathematically' an inverted 100% time-compensated pendulum. I didn't even linearize the system.
With 8bit MCU? No, thank you.
See for error: http://home.arcor.de/janch/janch/_news/20070426-nachtwey /
I used example data: http://www.control.utoronto.ca/~broucke/ece557f/Labs/557Lab3.pdf
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
"Fred Thomasson" <fthomasson at comcast.net> schrieb im Newsbeitrag

I applied a jerk filter (3rd order) to Peter's process transfer function template.
With jerk filter: Example http://home.arcor.de/janch/janch/_news/20070426-thomasson /
Without jerk filter: Example Seite 2 http://home.arcor.de/janch/janch/_news/20070424-mikolaj /
You can see that acceleration can be smoothed using jerk filters. See also the slight negative acceleration at t = 0.1 s
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You shouldn't need jerk filter. Look at my .pdf closely. I have made sure the three poles for the closed loop transfer function are at -2*PI*10. My closed loop characteristic equation (CE) is (s+2*PI*10)^3 or since you use time constants. Tau=1/(2*PI*10) CE=(Tau*s)^3+3(Tau*s)^2+3*(Tau*s)+1 I have made the whole transfer function into a 'jerk filter'.
It is hard to tell where you get you coefficients for your filter. http://home.arcor.de/janch/janch/_news/20070426-thomasson / You can't be using just one time constant multiple times like I am doing. If you were then the coefficients would have a binomial pattern like 1 3 3 1 in my example.
Would you stop using your fantasy K/(K+1) transfer function! I am trying to help but you are being very stubborn.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You shouldn't need jerk filter. Look at my .pdf closely. I have made sure the three poles for the closed loop transfer function are at -2*PI*10. My closed loop characteristic equation (CE) is (s+2*PI*10)^3 or since you use time constants. Tau=1/(2*PI*10) CE=(Tau*s)^3+3(Tau*s)^2+3*(Tau*s)+1 I have made the whole transfer function into a 'jerk filter'.
It is hard to tell where you get you coefficients for your filter.

Jan:
I have programs for 'designing' any wished filter up to order 5 by calculating, not try and error methods.

Peter:
http://home.arcor.de/janch/janch/_news/20070426-thomasson / You can't be using just one time constant multiple times like I am doing. If you were then the coefficients would have a binomial pattern like 1 3 3 1 in my example.

Jan:
See above.

Peter:
Would you stop using your fantasy K/(K+1) transfer function! I am trying to help but you are being very stubborn.

Jan:
That's not a nice argument. Better arguments:
PD controller: C(s)=Kc*(1+Tc*s) wrong[ ], right[ ] PT1 process : P(s)=Kp/(1+Tp*s) wrong[ ], right[ ] 1. Exercise: What is C(s)*P(s) if constants Tc=Tp? Answer: ?
PD3 controller: C(s)=Kc*(1+B1*s+B2*s^2+B3*s^3) wrong[ ], right[ ] PT3 process : P(s)=Kp/(1+A1*s+A2*s^2+A3*s^3) wrong[ ], right[ ] 2. Exercise: What is C(s)*P(s) if constants A1, A2, A3 Answer: ?
3. Exercise: Can I say that Kc*Kp=k ?
4. Exercise: Put this C(s)*P(s) in a closed loop. Answer: ?
5. Exercise: Is Kp a given factor and can Kc be tuned? E.g. high gain. Answer: ?
Remarks: PD^3=PD3, Please mark [ ] positions for clearness. Anyone may try this test.
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
[...}

Mathematical answers (solution): http://home.arcor.de/janch/janch/_control/20070428-controldoc / Example data A_i
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
You put a lot of effort into this and have explained what you have done clearly, good. However, you are still using your fantasy filter with infinite gain, not good. Why? You know it can't work. Are you going to persist with this fantasy filter or do you want to know how to design a controller the correct way? I can start with a simple plant. With all the effort you have put into this you could have followed my example of solving for gains using Ackermann's equations.
You are not using the transfer function to control the response. You are using what you call a jerk filter to control the response but you can see that your jerk filter is limited. You can't control the acceleration, velocity or deceleration as a function of time with a filter.
I doubt anyone actually uses a filter to control velocities and accelerations. One could use them to limit velocities and accelerations though because I know we do in some applications. We prefer to use a motion profile generator or target generator to do this most of the time. Every once in a while we must follow an analog reference from a joy stick or PLC and the reference may make step changes but that is not the norm.
JCH, how are you going to calculate the error in acceleration and jerk with your fantasy filter? The derivative is a gain on the error in the rate of change. Your PD^3 suggest you also need to calculate the error in the second and third derivatives in the rate of change. How? So far you have dodged my questions and Mikolaj's question on this point. I will not reply to you again until you 1. give up on your fantasy filter. 2. Show us how to calculate the error in the triple derivative. ( You can't so you should give up ). Hint, give up and ask how to design controllers right. You have seen one good example but perhaps a simpler example would be better.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You put a lot of effort into this and have explained what you have done clearly, good. However, you are still using your fantasy filter with infinite gain, not good. Why? You know it can't work. Are you going to persist with this fantasy filter or do you want to know how to design a controller the correct way? I can start with a simple plant. With all the effort you have put into this you could have followed my example of solving for gains using Ackermann's equations.
You are not using the transfer function to control the response. You are using what you call a jerk filter to control the response but you can see that your jerk filter is limited. You can't control the acceleration, velocity or deceleration as a function of time with a filter.
I doubt anyone actually uses a filter to control velocities and accelerations. One could use them to limit velocities and accelerations though because I know we do in some applications. We prefer to use a motion profile generator or target generator to do this most of the time. Every once in a while we must follow an analog reference from a joy stick or PLC and the reference may make step changes but that is not the norm.
JCH, how are you going to calculate the error in acceleration and jerk with your fantasy filter? The derivative is a gain on the error in the rate of change. Your PD^3 suggest you also need to calculate the error in the second and third derivatives in the rate of change. How? So far you have dodged my questions and Mikolaj's question on this point. I will not reply to you again until you 1. give up on your fantasy filter. 2. Show us how to calculate the error in the triple derivative. ( You can't so you should give up ). Hint, give up and ask how to design controllers right. You have seen one good example but perhaps a simpler example would be better.

Jan:
Why don't you give me your answers to the exercise? Or just tell me what's wrong in my controldoc: http://home.arcor.de/janch/janch/_control/20070428-controldoc /
Please mathematically! You have just 'stated your opinion' so far. That is not enough for a science discussion forum.
Remark: The 1st, 2nd and 3rd derivatives are calculated using integration. You just need 3 'integrators' for getting them. I told you before: http://home.arcor.de/janch/janch/_news/20070429-nachtwey / Revised for clearness
If you don't accept or avoid Control Theory we will better stop discussion on this point.
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
(...)

First, read groups FAQ and learn how to properly answer the posts and how to cite so it can be human readable. That's for an order.
1. You don't have them (derivatives). It is just a model. You show us how would you like to control matematical model. It's like proving that 2=2. This derivatives doesn't exist in real object (you can't measure this signals,maybe one of them) and this model doesn't represent real structure. It is whole abstractive. So you don't have derivatives. If you want them, you *must* build observer. (so far 1st order controller is simplier and cheaper then your idea)
2. Reversing object will have terrible effects because of inacuracy of modeling your object. Try to simulate some input signals (square, sine, saw) when white noise applied and with object ucertainty presence (model parameters A are varying randomly in some range i.e. +-5%). (so far the 1st order controller will be safer and so on...)
Reversing object is not always possible. If your object has a nonminimum zero (s-1) or (s-someT) you will destabilize your system.
(so far 1st order controller .... you already know that mantra...)
3.
Your proposition will require strong PC with very good accuracy, it can be only applied to stable and minimum phase object, it will require very good model (not always possible and always very expensive to do research) and still will not work :).
First year student of Control Theory will apply then 1st order controller build with one IC amplifier, one capacitor and 3 resistors and it will work excellent.
(If you have object with near pole and zero, your PC's precision could cause mistakes in calculations. )
Summary: Reversing object is very bad idea and will not work well in reality. And the very basis of Control Theory explain that well. You should read some of it and also read about computer simulations. Someone already point you that your simulation have nothing common to reality. Yor model are wrong and not realistic. Model and smulation are good when they represent reality. Mind that.
--
Mikolaj

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
napisa(a):

Does this say anything to you: Fig. 2 http://home.arcor.de/janch/janch/_control/20070428-controldoc /

Better comparison: Theory: 2/2 = 1 Practice: 2.00000000000001/1.97 = 1.015 ~ 1
Nothing is 100%!

You have them: White box: physical (Peter's process transfer function) Back box: approximative (process identification) Peter used them, too.

Observers are alternatives to state space techniques. But not the same.

... and on/off controllers are more simplier and cheaper. The are more used then PID controllers. There are some areas in the world they even don't use on/off controllers or any control theory.

See discussion: State-space Control for Disturbance Rejection with Multiple Actuator ... and give your answers there.

If ...
Integrating (I) controller and integrating process transfer function would not work. Generally it can be done to a high degree if process can be identified. Simulations can show this.

I have never had problems. Just tune Td = 0 ... x seconds.

PC: 15 decimals +/-10^300 range! You never need that much.

That's just for a PI controller that can be made. He couldn't make a loop. For PT1 he needs in addition 1 resistor and 1 capacitor (RC element).
Look at that guy and his equipment: http://www.mast.queensu.ca/~dtyner/ControlLab/single-pendulum.mpg I guess 2nd year student.

PC: 15 decimals +/-10^300 range! (29 decimals would be possible)

What have in mind:
1. Example: Standard
Kc*(1 + Td * s + 1/(s*Ti)) F1(s) * F2(s) = ------------------------------- = ? bad compensation Kp*(1 + A1*s + A2*s^2 + A3*s^3)
Millions of loops work like that. In theory and in practice. I have done this for years.
2. Example: Improved
Kc*(1 + B1*s + B2*s^2 + B3*s^3) F1(s) * F2(s) = ------------------------------- = 1 best compensation Kp*(1 + A1*s + A2*s^2 + A3*s^3)
The integral part 1/(s*Ti) can be added for correcting, not optimizing: http://home.arcor.de/janch/janch/_control/20070428-controldoc /
The integral action is worsening the loop behavior!
When I tuned power stations I had this in mind and had to rewire the electronics to meet requirements if planning was bad.
In the year 2007 you have all what I then didn't have. ^^^^ What did I before?
On a steady state basis operation I changed the input value 5% and measured the process values. Then I added derivatives signals to PID (PIDD) and so on to improve the result. And now we have means to implement PIDDD. But then you can't do it with try and error methods.
Now I'm not any more in charge in that business and have written a program that does what is necessary. Using the measured values mentioned I calculate the coefficients (Ai) of any process transfer functions (system identification).
This is accomplished by least-square methods: Example http://home.arcor.de/janch/janch/_news/20070503-mikolaj /
I guess similar programs were written by others.
We already discussed a 'known process transfer function' from Peter so far. System identification is another point. It is necessary for state space control or using observers: http://en.wikipedia.org/wiki/State_space_ (controls)#Canonical_realizations
If thoroughly done it is the best you can do in practice. You need half as long for tuning complex systems or systems that cannot controlled otherwise, e.g. controller interacting each other. Manpower is expansive.
BTW: I respect your opinion. But this is not enough for this topic. Maybe you show your result using Peter's process transfer function with position velocity and acceleration in time domain. Let's assume the tranfer function is correct. That was a good basis for modeling and dicussion. Sorry, I don't like just exchanging opinions.
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

This is very naive and dangerous thinking. How about making disaster when     1/(1-1.01) = -100     1/(1-0.99) = 100 You should know when and how you can approximate.

You have something similar, but not them.

No, they are not alternatives. They are integral part of state space techniques.

It depends on object. For me it is the worst and unacceptable compensation.
--
Mikolaj

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
napisa(a): : : (...) : > Remark: : > The 1st, 2nd and 3rd derivatives are calculated using integration. : > You just need 3 'integrators' for getting them. I told you before: : > http://home.arcor.de/janch/janch/_news/20070429-nachtwey / : > Revised for clearness : : First, read groups FAQ and learn how to properly : answer the posts and how to cite so it can be : human readable. That's for an order. : : 1. : You don't have them (derivatives). It is just a model. : You show us how would you like to control matematical model. : It's like proving that 2=2. : This derivatives doesn't exist in real object : (you can't measure this signals,maybe one of them) : and this model doesn't represent real structure. : It is whole abstractive. So you don't have derivatives. : If you want them, you *must* build observer. : (so far 1st order controller is simplier and cheaper then your idea)
I wondered why no one challenged me on this when I used a second order derivative on my controller. At least Mikolal understands the problem. I do control these systems for real and I do use an observer when required. Again, I picked this example to humble the gain tweakers and coffee drinkers. They gave up before we could get too deep. An observer will not work without a model for the systems transition matrix. The gain tweakers and coffee drinkers can't use an observer or Kalman filter because they don't have a model.
: : (so far the 1st order controller will be safer and so on...) Actually, no. A first order, or PD controller in this case, will not be able to control the underdamped system. It will overshoot badly. So has anybody done any research that shows the effect of the physical system varying 5% from the model? I have. For years I have seen people on this group complain about non-linearities and any other excuse not to use models and discourage others from using models. If you look at the .pdf file I posted a link to in the previous thread, you can see I can calculate the pole and zero location easily. I can mulitply the gain, damping factor and natual frequency by numbers from .95 to 1.05 just to see where the poles and zeros go. They don't go that far.
: If your object has a nonminimum zero (s-1) or (s-someT) : you will destabilize your system. My example problem didn't have dead time or non-minimum phase So I think it is fair to exclude those possibilities.. : : (so far 1st order controller .... you already know that mantra...)
NO! Not this example. I picked this system because I knew it would be something that couldn't be tuned easily. Have you tried controlling my system with a PD controller?
: 3. : : Your proposition will require strong PC with very good : accuracy, it can be only applied to stable and minimum phase object, : it will require very good model (not always possible and always very : expensive : to do research) and still will not work :).
It is the infinite energy transfer that should bother everyone. : : First year student of Control Theory will apply then : 1st order controller build with one IC amplifier, one capacitor : and 3 resistors and it will work excellent.
That is a good starting point for first year students. I can make a PD controller work but only at a realatively low response. The second derivative significantly improves performance so it is worth the extra effort. : : Summary: : Reversing object is very bad idea and will not work well : in reality.
Motion controllers make things go back and forth all the time, but not as fast as in my example. Systems that do move that quickly have higher natrual frequencies and damping factor or may be modeled as having only one or two real poles.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
napisa(a):

I haven't looked at your example. I was talking generally about the idea of inversing object as a method of system designing. The same about model inaccuracy. I was talking just about the case when inversing object.
--
Mikolaj

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
napisa(a):
[...]

My idea:
See Fig. 5 for the difference: PID <=>PID^3 (made comparable) http://home.arcor.de/janch/janch/_control/20070428-controldoc /
If PID function is programed you have just to add to more lines. That's all.
--
Regards/Gre http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

comparable)http://home.arcor.de/janch/janch/_control/20070428-controldoc /
Tweakers, coffee drinkers and JCH. This gives a whole new meaning to iterative tuning. We can just rearrange the lines till its right. I don't think adding more lines will help.
Just how do you think you are controlling velocity and acceleration? Can you do a flying shear or follow an electronic cam profile with that jerk filter? You are still ignoring the fact that the output of the controller and the amplifier is limited.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
JCH wrote:

I see v1, v1', v1", and v1'" coming out of the process model. Good: can you describe how they are obtained on the actual machine? There's a saying in German: "Papier is geduldig." Literally, "paper is patient" but "compliant" is a better translation here than "patient". You can solve the equations, but can you meet the real-world constraints of finite power and tractable variables?
Jerry
--
Engineering is the art of making what you want from things you can get.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  Click to see the full signature.
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.