Prev: Artesyn BAJA PPC 750
Next: FPGA Soft Core CPUs
From: Datesfat Chicks on 10 Nov 2009 13:24 "Tim Wescott" <tim(a)seemywebsite.com> wrote in message news:rPCdnSIjis5QNWTXnZ2dnUVZ_oli4p2d(a)web-ster.com... > > Systems with delay can be perfectly linear, as well as time invariant -- > they just can't be described by ordinary differential equations with a > finite number of states. Hi Tim, I might have missed something significant here. It is my assumption that a system with a pure time delay is inherently non-linear. Let's take my shower example with a pure delay in the pipes ... With no delay, you can just say that Temperature(t) = Valve_Position or perhaps with a little thermal mass thrown in you can say that: d Temperature / dt = K * (Valve_Position - Temperature) where of course I'm assuming that valve position and water temperature are the same thing. The first is I think a 0'th order linear differential equation and the second is a 1st-order LDE. But how would you linearize a system with a pure time delay, exactly? The shower example with a pure pipe delay between the shower valve and my skin is fine. Thanks, Datesfat
From: Jerry Avins on 10 Nov 2009 15:00 Datesfat Chicks wrote: > "Tim Wescott" <tim(a)seemywebsite.com> wrote in message > news:rPCdnSIjis5QNWTXnZ2dnUVZ_oli4p2d(a)web-ster.com... >> >> Systems with delay can be perfectly linear, as well as time invariant >> -- they just can't be described by ordinary differential equations with a >> finite number of states. > > Hi Tim, > > I might have missed something significant here. > > It is my assumption that a system with a pure time delay is inherently > non-linear. Superposition is sufficient proof of linearity. What comes out of a pipe (assuming that there is no mixing in transit) is almost a delayed linear superopsition of what is pushed into it, but it is not linear because it is not a pure delay. When the input velocity increases because both hot and cold water are flowing, the delay time decreases. Superposition doesn't strictly apply because the time to look isn't well defined. Any delay pushes a servo system toward unstable. That's not a linearity problem. > Let's take my shower example with a pure delay in the pipes ... > > With no delay, you can just say that > > Temperature(t) = Valve_Position > > or perhaps with a little thermal mass thrown in you can say that: > > d Temperature / dt = K * (Valve_Position - Temperature) > > where of course I'm assuming that valve position and water temperature > are the same thing. There's also the time it takes the valve to move. > The first is I think a 0'th order linear differential equation and the > second is a 1st-order LDE. > > But how would you linearize a system with a pure time delay, exactly? It's already linear. Just nasty. > The shower example with a pure pipe delay between the shower valve and > my skin is fine. But, as I wrote above, a pipe is onlt a pure delay as long as the flow is constant. Jerry -- Engineering is the art of making what you want from things you can get. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
From: pnachtwey on 10 Nov 2009 15:45 On Nov 5, 9:37 am, "Frank W." <frankw_use...(a)mailinator.com> wrote: > Is there a control engineering expert here? Yes. > Since all PID temperature controllers have Autotune, there must be a > solution for this problem. Some auto tuning algorithms are pretty crude and I think some companies implement the simplest auto tuning algorithms just to say they have one. It is a marketing thing. How are the customers to know the difference? If they knew the difference they wouldn't need the auto tuning. > Any ideas? Turn down the gain for one. It looks like the control output , gray bar, amplitude is variable and not a simple on/off SSR. Because the plant responds so quickly to the output I think the PID update time should be faster but then the lack of resolution will be a limitation. Using the derivative gain may be handy to but again the lack of resolution will be a factor. A tried and true method is the feed forward. If one know how much control output is require for every temperature then one can compute the control output and be with a percent or two without even using the PID gains. The PID gains are just used to correct for errors in the feed forward predictions. You should be able to get very close with a feed forward and a proportional gain. The integrator will simply remove the last bit of error. Auto tune works great when the plant matches the model AND the system is properly excited. If not then auto tune doesn't work so well. Are the water levels in the boiler constant? If not can the water level be detected? Obviously the temperature will rise more slow or not as fast if the boiler is full of water as opposed to being empty. Does the tuning need to be better for a coffee machine? Manual tuning should be easy enough. When I get serious I prefer to make a model of the system. The excitation requires a few steps in the control output. The steps should be big enough so the response is clearly more significant than the noise. The dead time should be clearly visible and the same goes for the rise time. One can often get the plant gain, time constant and dead time by inspection. If not then one must log the control output and the response. Then one fits a FOPDT or SOPDT model to your coffee machine. I do this using Scilab's optim or lsqrsolve. Then one goes to the www.controlguru.com site and uses the IMC, internal model control, equations there for computing the gains. For a FOPDT Kc=t1/((tc+dt)*K) ti=t1 Where: Kc is the controller gain. It should have units of %output per degree. ti is the integrator time constant which is usually in minutes. t1 is the plant time constant dt is the dead time K is the plant gain. This has units of degree per % control output. tc is the closed loop time constant. tc is made smaller for more aggressive tuning and longer for more conservative tuning. The value for tc is dependent on the plant time constant and dead time. The formula for tc on on the www.controlguru.com site. You can see from the equation that the dead time reduces the gain. Also, if the plant gain changes due to the water level then K will be a function of water and the controller gain will then be modified as a function of water level. Kc=t1/((tc+dt)*K(WaterLevel)) I would start here. Once the plant gain, time constant and dead time are know there are other options. On the www.controlguru.com site there are formulas for adding the derivative time constant td. One can also implement a Smith Predictor. A Smith Predictor isn't that hard to implement. The hard part is finding the plant parameters. I talked to someone else on the phone about making a high end coffee or espresso machine a few months back. Our product was gross overkill but would have made a nice research tool. Peter Nachtwey
From: Tim Wescott on 10 Nov 2009 17:52 On Tue, 10 Nov 2009 13:24:00 -0500, Datesfat Chicks wrote: > "Tim Wescott" <tim(a)seemywebsite.com> wrote in message > news:rPCdnSIjis5QNWTXnZ2dnUVZ_oli4p2d(a)web-ster.com... >> >> Systems with delay can be perfectly linear, as well as time invariant >> -- they just can't be described by ordinary differential equations with >> a finite number of states. > > Hi Tim, > > I might have missed something significant here. > > It is my assumption that a system with a pure time delay is inherently > non-linear. > > Let's take my shower example with a pure delay in the pipes ... > > With no delay, you can just say that > > Temperature(t) = Valve_Position > > or perhaps with a little thermal mass thrown in you can say that: > > d Temperature / dt = K * (Valve_Position - Temperature) > > where of course I'm assuming that valve position and water temperature > are the same thing. > > The first is I think a 0'th order linear differential equation and the > second is a 1st-order LDE. > > But how would you linearize a system with a pure time delay, exactly? > > The shower example with a pure pipe delay between the shower valve and > my skin is fine. > > Thanks, Datesfat Well, if it's already linear you don't linearize it. Take the system y = h(x, t) ==> y(t) = x(t - td). Testing this with superposition we get y1(t) = x1(t - td), y2(t) = x2(t - td), y1(t) + y2(t) = x1(t - td) + x2(t - td) which is both h(x1, t) + h(x2, t) and h(x1 + x2, t) -- therefore the system is linear. Note that as Jerry points out a shower isn't necessarily a linear system, unless your shower valve insures a constant flow and the pipes don't have any turbulence. Let a vastly simplified version be y(t) = x(t - kd * x(t)), (this doesn't capture the delay behavior in even a perfect pipe) Then we try superposition: y1(t) = x1(t - kd * x1(t)), y2(t) = x2(t - kd * x2(t)). This does _not_ equal the system output to the sum: ys(t) = x1(t - kd * (x1(t) + x2(t))) + x2(t - kd * (x1(t) + x2(t))). so this system isn't linear -- but not for the reason that you thought. -- www.wescottdesign.com
From: Tim Wescott on 10 Nov 2009 17:59
On Tue, 10 Nov 2009 12:45:24 -0800, pnachtwey wrote: > On Nov 5, 9:37 am, "Frank W." <frankw_use...(a)mailinator.com> wrote: >> Is there a control engineering expert here? > Yes. >> Since all PID temperature controllers have Autotune, there must be a >> solution for this problem. > Some auto tuning algorithms are pretty crude and I think some companies > implement the simplest auto tuning algorithms just to say they have one. > It is a marketing thing. How are the customers to know the difference? > If they knew the difference they wouldn't need the auto tuning. -- snip -- > Auto tune works great when the plant matches the model AND the system is > properly excited. If not then auto tune doesn't work so well. Are the > water levels in the boiler constant? If not can the water level be > detected? Obviously the temperature will rise more slow or not as fast > if the boiler is full of water as opposed to being empty. > > Does the tuning need to be better for a coffee machine? Manual tuning > should be easy enough. -- snip -- > I talked to someone else on the phone about making a high end coffee or > espresso machine a few months back. Our product was gross overkill but > would have made a nice research tool. > > Peter Nachtwey Speaking of overkill, why not just use an on-off thermostat with some hysteresis? Energy consumption? Lack of cool? For that matter, how about modeling the whole range of coffeemakers that you expect (or that you're willing to warrant the device as working). Then see if you can get reasonable performance with just one tuning setting*. Then instead of telling the customer he can mess around with autotune, you can tell him he can just plug & play. * I've done this on blood pressure monitor; we expected to need four different tunings for the whole range of cuffs from 'premie arm' to 'fat guy thigh', and ended up needing just one. -- www.wescottdesign.com |