PID autotuning - not working for heating application

is

I
l

Peter, Okay, I will post that experiment but it's not as clean. Since I only had shared access to the prototype I couldn't let the machine cool down long enough for a real restart, and (of course) the room temperature changed. These thermal systems have really long "tails"; some sections (plastic) absorb heat and let it out very slowly.

Ray

Reply to
RRogers
Loading thread data ...

is

I
l

Peter, Okay, I will post that experiment but it's not as clean. Since I only had shared access to the prototype I couldn't let the machine cool down long enough for a real restart, and (of course) the room temperature changed. These thermal systems have really long "tails"; some sections (plastic) absorb heat and let it out very slowly.

Ray

Reply to
RRogers

ince

Well I looked around, while I do have SIMO heater by heater data the subject heater input is random trying to obtain information the sys-id routines like. Incidentally: In case I forget; some of the data was taken has a problem which I found out after much work and threatening to sue the programmers; the PWM percentages were rounded down to units not tenths and such. That's the reason for the second set of PWM data. Maybe I should have quit when they separated the programming from engineering (: Endeavour to write and check your own control and monitoring algorithms; you will have a happier life.

Ray

Reply to
RRogers

ince

Well I looked around, while I do have SIMO heater by heater data the subject heater input is random trying to obtain information the sys-id routines like. Incidentally: In case I forget; some of the data was taken has a problem which I found out after much work and threatening to sue the programmers; the PWM percentages were rounded down to units not tenths and such. That's the reason for the second set of PWM data. Maybe I should have quit when they separated the programming from engineering (: Endeavour to write and check your own control and monitoring algorithms; you will have a happier life.

Ray

Reply to
RRogers

Newsbeitragnews: snipped-for-privacy@x5g2000prf.googlegroups.com...

If you can't find one differential equation (process transfer function) as part of a set you won't be able to solve anything.

See basics and decoupling of MIMO system:

  • formatting link
--
Regards JCH
Reply to
JCH

clip......

JCH & Peter

This thread is getting long and unfocused. Rather than talk about doing something perhaps we could start a new thread or blog, and actually have some contests and results doing system-id on some data sets? Nothing formal, just trials and analysis to improve our grasp of the problems. A reference site is NICONET but that is real data and the "truth" is unknown, although I think they have some results for comparison. In any case dividing the data up into analysis and prediction parts allows an objective criteria of tracking accuracy. In addition we could construct various systems (say circuits or something like what CLF showed), run simulations, present the data, and see if the others can reconstruct the source of the data. A variation is that the subjects of the test can specify the type of drives and we can see what problems/solutions various experimental designs present. Experiment design is a crucial part of system identification.

JCH *

formatting link
Perhaps my spam filters are blocking but all I see is a complicated block diagram. I hope that you don't mind if I disagree with your flat statement. Among other things the heat equation is quite explicit and succinct; but the Laplace transform (or any other form of solution) has an infinite number of poles/states. Having a good differential equation form doesn't guarantee simplicity. In other cases, i.e. distributed systems, the situation can also lead to complications. In any case actually doing some test cases would be more interesting than abstract talking.

Ray

Reply to
RRogers

.

=A0Since

;

As I said above, the quality of the data is very important. The initial state must be known and usually that is to ensure the system is at a steady state where the derivatives are 0. It is too bad the data got truncated too. I work with motion control systems. It is easy to make sure the system is stopped before getting into excitation procedure. If the ambient temperature or C changes during the test then that must be recorded too. Then it isn't a parameter to be determined.

Are the time periods seconds? If so then time constants are long. The long time constants make it hard to find the difference between small changes in estimated time constants. The optimizing routines calculate a sum of squared error. I like to think of the SSE as the elevation in a multiple dimension terrain and the optimizer is seeking the valley floor or pit. The slope of the SSE is checked in all dimensions, one for each parameter being optimized. If the slopes are very flat it is hard for the optimizing routine to get to a final best position. The truncating data will make this almost impossible because small difference make a big difference on a flat 'desert'

We have a motor that we put a relatively heavy disk on. The weight increases the time constant to about 1 minutes which is forever in a motion control system. This system doesn't ID with a consistent set of numbers but all seem to work. It appear that there are some steep hills but once the SSE gets off the steep hills the valley is more like a flat 'desert'. The long time constants do make finding the lowest part in the 'desert' difficult. However, any solution on the desert floor seems to work equally well as the elevations are all the same but the question is will they work equally well under all motion conditions. This is odd but true. We have put a lot of effort in to exciting the motor so that the SSE 'desert floor' has more of a slope.

Motors with short time constants are ID with more consistent parameters.

Ray, you had the cards stacked against you, but your main problem was with the data, not optim() or lsqrsolve(). The superimposed method would work. The MIMO problem was not the biggest problem you had.

Hopefully this explains why auto tuning sometimes doesn't always work.

Peter Nachtwey

Reply to
pnachtwey

"RRogers" schrieb im Newsbeitrag

[...]

I haven't sent more. Have again a close look to:

  • formatting link

This block diagram shows you eliminating coupling superposition. The MIMO system 'should act' as if there were just two separate control loops not interconnecting. Each of them can be optimized separately if the process transfer functions are known. Therefore you MUST have a good process identification.

Controller y1 influences process value x2 and vice versa!

Be aware that this is just an EXAMPLE for 2 input and 2 output signals. We have to find 4 differential equations for this EXAMPLE using process identification methods.

Physical derivation is difficult. Therefore measured (true) values should be used for finding the differential equations.

--
Regards JCH
Reply to
JCH

On Nov 16, 9:58=A0am, pnachtwey wrote:

dy

es.

it

=A0Since

s";

I am sure you don't want to get into this area but.... For a multi-state SISO system with poles on the negative real axis there is a mathematical theory that is guaranteed to produce a convergent series of models; I think it was extended to complex poles as well. It is based up Muntz polynomials being converted to an orthogonal polynomial series; really posynomials. Good news and bad news from this theory. Bad news: almost any sequence of poles will work. Good news: almost any sequence of poles will work. That means that you can guide the process and make mistakes; the mistakes will be washed out later. But the result, while accurate, will not necessarily be physically meaningful. It also implicitly means that there are an infinite number of perfectly accurate models; which might throw optimization procedures off a little. To summarize you can estimate the two dominant poles, then by subtracting them out of the data in a precise manner find another pole, use that in a precise manner, and so on; the "precise manner" is the generation of the orthogonal polynomial sequence. The most obvious application would be to use the impulse response; but I think I see how to extend it to arbitrary inputs. I have been thinking about applying it to the standard sys-id process to make successive approximations converge; get better and better as the order increases. I haven't actually managed to get insight on how to do this for MIMO approximations.

Enough said Ray

Reply to
RRogers

quite understand your approach; it seems different from what I

of

e

odeling:

d

ght

n
s
s
I
e
t

w.controguru.comsite. =A0They work well too and are much simpler they

ting

They are all independent but the results at the temperature sensors will be from the sum of the 3 heaters. This should hold true unless there is something that I don't know where superimposition doesn't apply. The states for a system of SOPDT equations would simply have the temperature and the temperature rate at each of the 3 temperature sensors. I don't see how the temperature at one sensor will affect another temperature since the temperature sensors are not heat sources.

Peter Nachtwey

Reply to
pnachtwey

clip....

Your right; and I see how the dependent/independent has to be handled for state-space representation. A state space reduction to a non- singular matrix is required to make A nonsingular in the ABCD representation.

As a note: In more complicated systems you need additional terms on the left. m1*t1''' + n1*t1'' + p1*t1' m2*t2''' + n2*t2'' + p2*t2'

Ray

Reply to
RRogers

For simple temperature control applications such as using small TE coolers to stabilize diode lasers and optical detectors, we use a very simple autotuning algorithm that works really well.

We hit the plant with a step function, and fit the T(t) curve to a plant model consisting of a time delay tau followed by an integrator. That has a simple transform proportional to exp(-j omega tau)/(j omega), so we compute P and I to get about a 65-degree phase margin, and wind up with a nice-looking transient response and decent bandwidth. This is done at test time using BIST functions in firmware.

The main thing that improves the BW is to put an 0603 thermistor on the bottom of the cold plate circuit board, right next to the TEC and connected to the top plate of the TEC by a ground pour. That gets the response down into 100-ms territory. (It's hard to measure at that rate, because it's faster than the TEC itself.)

As I say, that's a much simpler plant than a domestic heating system, but it works great.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs 
Principal Consultant 
 Click to see the full signature
Reply to
Phil Hobbs

Doh, just noticed the time stamp. Weirdly this thread came up as unread in Thunderbird this morning.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs 
Principal Consultant 
 Click to see the full signature
Reply to
Phil Hobbs

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.