# PD(PI) Math Model (e.g.Tank Level)

Anything could be thought in mA and minutes.
http://home.arcor.de/janch/janch/_control/20070521-controldoc /
The level moves v1' = 15 mA/min
Process transfer function F1(s)
A1 * v1' = v2 = 0.3mA (Valve step) A1 = 0.3mA/(15mA/min) = 0.02min
F2(s) Feedforward controller PD(PI) ---------------------------------------
Error e = u - v1
v2 = u + B1 * u' + ^^^^^^^^^^^ Recognize PD1! (=PD)
+ K * (e + 30 * Integrator(e)) + z1 ^^^^^^^^^^^^^^^^^^^^^^ ^^ PI! K = 1 Integration[0...t] e dt + C, C=0 Forced disturbance z1 z1=0.1 at t=0.3
F1(s) Process transfer function -------------------------------
A1*v1' + v1 + z2 = v2 ^^ Forced disturbance z2 z2=-0.1 at t=0.5
F3(s) Target filter (1st order) -------------------------------
C1*u' + u = w (w = scheme)
Data used:
A1 = 0.02 min B1 = A1 C1 = A1 (for full compensation)
v1 ist NOT missing because you can integrate v1'.
v1 = Integration[0...t] v1' dt + C
Note: A tank is a machanical integrator with delta flow input (v2) and level v1 output.
--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

I don't see the point. Level control is easy compared to the problem system I presented. However, you mentioned that this system is controlled by a valve rather than a pump like the system covered a month or two ago. Valves are not the easiest thing to model and in that respect this should be more difficult than my problem system. 1. As the tank level changes these flow though the valve will change even if the valve position is constant. 2. Valve spools are rarely cut so the flow is proportional to the spool position. You can get linear valves but they are more expensive.

Why is feed forward required? You are using the target filter as your target generator. A properly tuned PI or PID controller will give you closed to the sampe response. I can get exactly the same response when I place zero separately from the PID gains in the feedback path.

You still never show the output between the controller and the plant or valve in this case. This signal is limited to 0 to 100%. In my Scilab program it is possible for a disturbance ( in flow stopping or decreassing ) to cause the motor to stop until the level increases due to inflow. The water level can not increase at a faster rate. Look at your disturbances. The response looks exponential which can't be. This is why the controller and plant must be broken down into two parts and the controller output limits applied. Combining the controller and plant ignores these real limitations so it looks like the valve can pump up the tank level.
I will add that to the list of thing to do but make this number 1. Break down the controller and plant in to separte parts with the controller output limits applied to the control output.

This shouldn't be needed. You only need a PI controller for a simple Gp(s)=Kp/s. Otherwise you will need a PID. If you pick your gains wisely you end up making the whole system into a low pass filter and you can chose the desired response. Actually you chose the desired resonse and calculate the gains. I think it is great that you have discovered how feed forwards work. Now you should 1. Learn how to make target generators where one can control the derivatives of the set point. 2. Learn how to design PI, PID and PID with second derivatives to give you the desired response.

The model for the system should be Gp(s)=Kp/s for a fast valve that is linear or Gp(s)=Kt*Kv(f,l)/(s*(tau*s+1) for a non linear valve with a response time. In the first case Kp is the overall gain that includes the Kt ( tank ) and Kv ( valve )
It is simple to make a valve linearization table and scale the gain as a function of the sqrt of the pressure across the valve. The bare minimim is a deadband elimintator. I get involved with hydraulics, not level control. A person more experienced in level control, like Fred Thomasson, can tell you how much effort they put into their control algorithms.
Peter Nachtwey
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

CORRECT:
v2 = 0 + B1 * u' +

CORRECT:
A1*v1' + 0 + z2 = v2 ^^

See controler value v2: http://home.arcor.de/janch/janch/_control/20070521-controldoc /
--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
JCH, are you listening?
This is another example of the nonsense that people think they can get away with when they combine the plant and controller transfer functions and convert the response directly to the time domain. There is no 0-100% limit on the controller so the closed loop transfer function will be happy allowing valves to pump fluid level up and heaters to cool a temperature control system.
Peter Nachtwey
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
On Mon, 21 May 2007 17:49:15 -0700, Peter Nachtwey wrote:

I'd like to get my hands on some of those heaters -- particularly with summer coming on.
If he hasn't listened by now, I'm not sure that he ever will.
--
Tim Wescott
Control systems and communications consulting
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

I just don't want anyone to think that what JCH is doing the right way. How about your class? What are you going to teach them? The last thing the world needs is more people thinking their heater systems can cool and gains can be infinite.
Peter Nachtwey
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
On 22 May 2007 00:09:51 -0700, snipped-for-privacy@gmail.com proclaimed to the world:

You have been very vigilant so far.
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
wrote:

When or where did I say heater systems can cool? I never said that.
Can you understand the meaning of: If gain k goes to infinity then x will be u (x=u).
What I stated in Fig. 2: http://home.arcor.de/janch/janch/_control/20070514-controldoc /
That's polemic. Keep honest.
--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
JCH wrote:

Oh, but you have. Not in words but by your equations. It is sad that you still don't realize that you do not have limits for you controller and assume the output can be +/- infinity. In your latest example there are no limits to keep the controller from generating a negative output which implies the valve should some how increase the level in the tank or, in the case of heaters, cool the systems.
Show us the output limits on the controller!
Peter Nachtwey
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
wrote:

Exceeding limits means invalid control! I don't show you an invalid simulation. It doesn't make sense.
Sorry, I don't have real valves on my system. +value means water inlet, -value means water outlet. The valve value +/-0.3 tells me +/-0.6 reserve for each valve. The full range is 0.2...1 (0...100%) for each valve. The limits are not exceeded. I 'simulate' the tank level control. Simulation means mathematical appropriate.
See for Split Range Control: http://www.aurelsystems.com/techcorner/splitrangecontroller.htm
1 controller signal (4...20mA) controls 2 valves (4...20mA each). Between you have a splitter.
Cited from May/5. 2007 22:45 JCH

Furthermore there is NO heating and NO cooling. I can't find differential equations for heating in my documentations. All applies to the subject I discussed. Please, no polemic. A tank level transfer function is completely different from a heater transfer function. I know that.
Heater: v1 > 0 ... A1*v1' + v1 + z2 = v2
Tank level: v1 = 0 A1*v1' + 0 + z2 = v2
See dokumentation page 2: http://home.arcor.de/janch/janch/_control/20070521-controldoc /
or
Cited from May/21. 2007, 22:26 JCH

--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
JCH wrote:

-- snip --

Eh? Nearly every control system I've ever worked with saturates the controller during a gross move. If you're not saturating the controller you're either working on a system with very odd requirements or you've grossly over-specified the actuator.
Exceeding the limits of what you'd get out of a purely linear controller doesn't lead to _invalid_ control, it leads to what you see in the _real world_, _every day_, _day in_ and _day out_.

Yes, that's quite apparent. In fact, reality is distressingly lacking in many of your posted examples -- which is why you're getting so much flak. This lack of anything that ties your pretend systems to the real world is what has Peter upset, and is what is pulling me into the fray (for a while -- you're at the water trough, if you won't drink soon I'm going to go look for a more sensible horse).

Then to be complete you should show that your controller responds appropriately to a control input that takes the actuator to the limits of its range for a good long time. For many control systems the loop is routinely driven into actuator saturation, or would be if the executive controller allows it -- any responsible designer will investigate what happens when the actuators saturate, and correct any nasty problems, before they call a system "good".

This is, perhaps the crux of the problem.
To you, "simulation" means "mathematically appropriate". To me (and to Peter too, I'll bet), "simulation" should darn well mean "matches reality well enough to make good predictions". If it doesn't then "simulation" means "waste of time".
"Matches reality well enough to make good predictions" is a much smaller set than merely "mathematically appropriate". To make good predictions "simulation" has to incorporate physics, a good reading of manufacturer's data sheets, an understanding of the system requirements, and some experience with how real components don't always live up to their data sheets, besides.
I spend most of my time redesigning systems that some poor guy with inadequate control systems training has put together wrong, or that someone put together in a hurry knowing that getting product out the door that worked 90% was better than not getting product out the door at all. But I've spent quite enough time fixing problems created by guys (and it has been, uniformly, men) who had their heads stuck so deep in the books that they couldn't see the obvious. It's certainly been enough to have developed an allergy to systems that show an excessive attention to theory without attention paid to the real-world behavior of physical systems if they should happen to be used outside the lab.

--

Tim Wescott
Wescott Design Services
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Tim Wescott wrote:
...

I was once called in to troubleshoot a system put together by a Ph.D. with about ten years of paper experience and three weeks of trying on his own to make it work. It kept blowing the filter capacitors on the negative supply, sometimes explosively. I fixed it in ten minutes. He wanted to know what I did, and I showed him that the big 'lytic symbol on the schematic has one curved line and one straight. He said, "A capacitor is a capacitor. What difference does it make?"
Jerry
--
Engineering is the art of making what you want from things you can get.
Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
wrote:

4 mA Min 20 mA Max
via split ranch control

See comment later.

http://home.arcor.de/janch/janch/_control/20070514-controldoc / http://home.arcor.de/janch/janch/_control/20070520-controldoc / http://home.arcor.de/janch/janch/_control/20070521-controldoc /
Again: v2 on all diagrams.
4 mA Min, 2 V, 0.2 intern 20 mA Max, 10 V, 1.0 intern
Jan:

Tim:
What can a controller do if the valve is already open or closed? There will something happen. But NOT controlled.

Ok, tell me where, not that it is wrong: http://home.arcor.de/janch/janch/_control/20070514-controldoc / http://home.arcor.de/janch/janch/_control/20070520-controldoc / http://home.arcor.de/janch/janch/_control/20070521-controldoc /

Fact is you simulate linear and later you linearize e.g. the valve behavior if data are known. Then you have almost a linear system that matches with the simulated one. If data input have accuracy of 99% calculation is 99% accurate. If 50% then calculation is 50% accurate. The calculation itself can do it with 10^-3%.
There no alternative. The aim is linearization of systems! I have done it on few plants. Otherwise you can't control them properly. In chemical plants you approach that with positioners (e.g. valve controller). Any transmitter and amplifier does it. The P-controller does it. And having digital equipment it's done, too. You do it on hardware and you do it with software. And if done very well you have done as much as possible having a linear system.
Again:
1. Any simulation has to be 'linear' in a math model. It is the aim for well controlled plants to be linear. (simulation is 'set point', real is 'process value'). The 'process value' has to approach the 'set point'.
2. Therefor the real system must be made linear by hardware and/or software (the model is already linear).
Again:
A linear real system is the best system. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ compare with
I modeled a linear mathematical system. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
My tool is MATHEMATICS. If you don't like mathematics do not respond.
Anyway, PID and PD3(PI) comparisons can be dicussed right away. It gives useful answers. How can anyone know the difference if not having made a simulation before. I did it on equal conditions with ITAE criteria and found that PD3(PI) is much better. Anyone is invited to do it better.
Notes to Peter's polemics: Examples
1. I made clear that if loop gain k goes to infinity ouput will be equal to input (x=u if c=1) and then the system is linearized. I didn't say loop gain must/should be infinity. I said gain should be as high as possible and gave examples.
See http://home.arcor.de/janch/janch/_control/20070514-controldoc /
2. Peter resembled heaters cooling or coolers heating. He said I applied it in equations for level control. I made clear that this is not possible. Heating systems have completely different process transfer functions. For heating v1>0 and for tank level v1=0.
See http://home.arcor.de/janch/janch/_control/20070521-controldoc /
3. Peter warns students that what I am writing is wrong, completely wrong. But he can't tell what is wrong. He just knows that's wrong. The pope can argue this way. But not engineers.
--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Hey, I wish I could spend this much time on a simple tank level control app!!
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Times ago drum level control in power stations wasn't simple. The drum was fed with cooler feed water to increase level. Instead the level dropped first for physical reason and increased thereafter.
The controller was 'irritated'. Generally the 3-component concept was applied. Tuning was difficult for high steam demand (power increase).
I don't know whether a better concept has been found yet.
--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

If there is one, then AFAIK it hasn't reached the real world yet. Boilers I've seen in recent times still have the traditional 3-element setup. That's OK for a limited range of conditions, but it struggles with boiler loads significantly below MCR. Aspects of the theory (the linear bits) are well known and documented, and suggest that some sort of adaptive system would be required to improve the operating range.
I think the problem is that in practice the problem is seriously nonlinear, and most likely chaotic at times, like a lot of real world process control dilemmas.
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
JCH wrote:

On page 1 you have indicate the k->infinity. Now you tell me it doesn't necessarily have to be infinity. What is the value of k then? I don't see it on page 1,2 or 3. I have ask you to show your work and you ignore me. It is you that is asking for blind faith.
One page 1 you should show no limiter between the PD3I controller and the process. How do you limit the output in the s domain? Curious minds want to know. I don't see how you limit the output from 4-20ma all claim to.
Page 2. The set point takes a jump to .9 and the target starts moving in that direction, OK. However, it looks like the controller output also takes a jump ( the brown line ) and the process value tries to follow. Can't you see what is wrong here? If there is no in-flow then the tank level will not rise. All the valve can do is close and wait for the level to rise to the set point. IT IS JUST THAT SIMPLE. Normally one doesn't change the SP, it is the in-flow or disturbance that changes. Also, the gain is negative when the valve in on the outlet. It look like you are opening the valve to let fluid in.
All you have done is change the SP level without regard to the disturbances or changes in the in-flow.
Page 3. Your PID tuning is awful, I showed you an example on how to do tune right in the .pdf. The Scilab script also has the formulas for calculating the PID gains given the model and a desired closed loop time constant. You can always make PIDs look bad with bad tuning. Why doesn't your PID tuning look as good as my PID tuning? I showed you how I did it but you ignore it. You just want to claim I am attacking you.
You are still assuming the valve will remove or add fluid as necessary. This happens when you ignore the output limits on the controller. How many times have I said this yet it is you that accuses me of just saying it is wrong.
It looks like your control output is following the set point. If there is no in-flow then the output should go to 0 as the error goes to 0. Why is your control output matching the SP?
I think I have bent over backwards showing you some good examples of level control, converting the models to discrete time, implementing output limits, how to calculate gains, and how to model disturbances and all you think I am doing is attacking you. What is wrong with you? Who else on this newsgroup has done so much? If I were wrong the others would be very quick to point it out, but I see the others only telling you that you are wrong. I have wasted enough time.
Peter Nachtwey
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Examples:
k=infinity x = u/(1+1/infinity) = u Steady state error 0%
k = 100 x = u/(1+1/100)=u/1.01=0.99*u Steady state error of 1%
k = 1000 ...
I guess that 95% P-controller are used in level control. One does not care about error.
If you care then PI-controller and PID-controller are used.
Amplifiers and transmitters (e.g. temperature, 4...20mA output) are pure P-controllers with internally high gain k.
kV/1µV^6, error=0.00001=0.001%
If you can't utilize k^6 for some reason you must reduce k for having stable conditions.

Limits are 0.2 and 1.0 http://home.arcor.de/janch/janch/_control/20070520-controldoc /

I use time domain. It is more flexible.

I do it in time domain:
If v2>20 then v2 elseif v2<4 then v2=4 end if
Exceeding limits I regard as bad for simulation. It is NOT controlling any more.

That belongs to the PD3 Modeling discussion: http://home.arcor.de/janch/janch/_control/20070520-controldoc /
Controller v2 and step w take the same jump.
That is the point of 100% time compensation! v2 is input to the process. You see v1 equals u if not disturbed.
PID controller 'could' never do that. Ok, I could find a good result iteratively using ITAE criteria. That is completely ok.
But not my motivation. My motivation is: Are there better methods?
Let's go back to tank level control: http://home.arcor.de/janch/janch/_control/20070521-controldoc / Page 1
I mentioned already: completely different (v1=0)
BTW: v1 is not existent but used. v1' is integrated to v1 in the model and measured in real plants. It is needed for error value e = u - v1
Sorry for those who can't understand that. It's very abstract (See also Page 2).

The benchmark scheme says: Get water in and get water out. You need 2 valves controlled in split range.
<cited> 2 Valves operating Valve 1 Water Inlet 12 ... 20 mA (closed to fully open) Valve 2 Water Outlet 12 ... 4 mA (closed to fully open) </cited>

That's right. But I defined a benchmark scheme (w) including disturbances (z1, z2). Not a normal level control. You constantly have ignored it.

You have 3 systems working together:
Controller 4...20 mA Valve 1 4...20 mA Valve 2 4...20 mA
The split range control unit splits the signal. Using pneumatic valves the positioner on each valve can do the split.
The positioner can also linearize the valve characteristic like flow proportional to position. There is nothing 100%. But much better than nothing.

I forced level change u plus disturbance z1 (valve) plus disturbance z2 (level) at certain times. This is shown in the benchmark scheme. Then I was interested in to see what happens with the process value v1.

Sorry, I tuned WITH a benchmark scheme. You refer to a different task: Normal level control.
Going to level control PD(PI) http://home.arcor.de/janch/janch/_control/20070521-controldoc /

I claim that using PID is worse for the defined benchmark test. I proved it. And my tuning experiences tells me:
Use feedforward if ever possible!

Yes, 100%, valve 1 for fluid-in and valve 2 for fluid-out using split range control. There is no chance to do it with just one valve.

The diagram shows you opening and closing both valves.
Again:
<cited> 2 Valves operating Valve 1 Water Inlet 12 ... 20 mA (closed to fully open) Valve 2 Water Outlet 12 ... 4 mA (closed to fully open) </cited>
That is split range control. 1 signal (controller output) is split into 2 signals for 2 valves.
You see that in the diagram. They work alternatively. Both can be closed but both can't be opened at the same time.
That's the only way to tackle the benchmark scheme that you constantly ignore.

Yes it is. More demand needs more water and vice versa.

PD(PI) Level Control http://home.arcor.de/janch/janch/_control/20070521-controldoc / Page 1
Control output v2 is NOT matching set point u.

Nothing. You ignore the benchmark scheme. All I say is based on it. I didn't specify a normal level control with constant set point!

Sorry for that.

--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Solution without distubances. Just target moving: http://home.arcor.de/janch/janch/_control/20070521-controldoc /
--
Jan C. Hoffmann eMail aktuell: snipped-for-privacy@nospam.arcornews.de
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
: > JCH wrote: : >> Ok, tell me where, not that it is wrong: : > OK, you asked for it. : >> http://home.arcor.de/janch/janch/_control/20070514-controldoc / : >> http://home.arcor.de/janch/janch/_control/20070520-controldoc / : >> http://home.arcor.de/janch/janch/_control/20070521-controldoc / : > : > On page 1 you have indicate the k->infinity. Now you tell me it doesn't : > necessarily have to be infinity. What is the value of k then? I don't : > see it on page 1,2 or 3. I have ask you to show your work and you ignore : > me. It is you that is asking for blind faith. : : : k->infinity applies to feedback control. : : k = 1000 ...
How how tall is the tank in your model? What is the resolution of the AtoD converte?. An error of one count in the feedback will generate how much output? : : kV/1µV^6, error=0.00001=0.001% : : If you can't utilize k^6 for some reason you must reduce k for having : stable conditions. : So an error of 1 uV in the feedback will cause 10 volts of output? You must know that will not work. You must take into account the resolution of the feedback device and typical noise levels. When fluid is entering the tank don't you think it will at least make a ripple?
: > Page 2. The set point takes a jump to .9 and the target starts moving in : > that direction, OK. However, it looks like the controller output also : > takes a jump ( the brown line ) and the process value tries to follow. : > Can't you see what is wrong here? : : : That belongs to the PD3 Modeling discussion: : http://home.arcor.de/janch/janch/_control/20070520-controldoc / I thought we were looking at page 2?
: : Controller v2 and step w take the same jump. : : That is the point of 100% time compensation! v2 is input to the process. : You see v1 equals u if not disturbed. : : PID controller 'could' never do that. Do what? Follow the target u? That is easy on paper. As I said before, don't need the feed forwards in such a simple application.
Ok, I could find a good result : iteratively using ITAE criteria. That is completely ok. : : But not my motivation. My motivation is: Are there better methods? Yes, but you are not listening so why bother?
: : : The benchmark scheme says: Get water in and get water out. You need 2 valves : controlled in split range. : : <cited> : 2 Valves operating : Valve 1 Water Inlet 12 ... 20 mA (closed to fully open) : Valve 2 Water Outlet 12 ... 4 mA (closed to fully open) : </cited> : Ah, this is where reality is changed to fit the model. Isn't math wonderful? I can see your valves can add AND remove liquid. Bruce, Fred do you use such a scheme to control your tank levels? Inquiring minds want to know.
JCH, tell us. What happens to the fluid that you don't allow into the tank when you restrict the in-flow? Spill on the ground? Oops! I bet the others will tell you there is just one pump or valve on the outlet.
: : > Normally one doesn't change the SP, it is the in-flow or disturbance that : > changes. : : : That's right. But I defined a benchmark scheme (w) including disturbances : (z1, z2). Not a normal level control. You constantly have ignored it.
I have seen them. So where do these disturbances come from if you are controlling the inlet AND outlet? Normally, the distrubances are the change in in-flow.
: > Also, the gain is negative when the valve in on the outlet. It look like : > you are opening the valve to let fluid in.
: You have 3 systems working together: : : Controller 4...20 mA : Valve 1 4...20 mA : Valve 2 4...20 mA : : The split range control unit splits the signal. Using pneumatic valves the : positioner on each valve can do the split.
Yes, I see but you didn't mention there were two valves before now. You must have seen that one valve would do what your model suggested. :
: I claim that using PID is worse for the defined benchmark test. I proved it. That is only because you don't know how to tune the PID so it will have the same response as the target u.
: And my tuning experiences tells me: : : Use feedforward if ever possible!
Yes, I believe in feed forwards too. They are necessary for motion control. Feed fowards do you no good when the control system is just trying to hold position and responding to distrubances. : : : : You see that in the diagram. They work alternatively. Both can be closed but : both can't be opened at the same time. : What diagram?
: That's the only way to tackle the benchmark scheme that you constantly : ignore. : : : > It looks like your control output is following the set point.
: Yes it is. More demand needs more water and vice versa. : But this is level control not flow control. w is level not flow or have you changed that too?
: : : >>>>>>>>>>>> BENCHMARK SCHEME !! <<<<<<<<<<<<<<<< Then why call it level control when you had no intention of really simulating a level control system? By calling it level control you have people judge you systems as a level control system and all the realities and limitations. This is where you set yourself up for the critism although I will still be critical of you infinite or high gain controller.
The problem it that others maybe 10 year from now will read this posts and could be mislead. You have a previous thread comparing PD3 to PID that makes PID look pretty bad but it is actually just your tuning. I am surprised that no one else has complained. I didn't respond to in hopes others would.
I have updated my TankLevel.sce to show more distubances and what happens if the in-flow suddenly stops. I don't change the set point. I only change the in-flow or distrubance. You can see when the in-flow suddely stops that the pump takes time to stop so the PV goes below the SP. The pump can't do anything about raising the level. Only more in-flow can do that. Notice that I am only using PID no feed foward is required. Look at the response.
ftp://ftp.deltacompsys.com/public/NG/tanklevel.sce
ftp://ftp.deltacompsys.com/public/NG/TankLevel.gif
If I wanted to make the PID response exactly as your target filter I would find the closed loop transfer function. It would be a third order just like your target filter. I would then find the PID gains that would provide the same coefficients in the characteristic equation as you have for u, u' and u'' in your target filter. Then my PID would respond just like your target filter providing reality is ignored. No feed forwards are required.
Peter Nachtwey
âœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

## Site Timeline

• ### Re: Freon bottles air pressure ???

• - the site's last updated thread. Posted in ⏣ General Metalworking
• Share To

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.