reading my old copy of 'Modern Control Engineering' by Ogata, 1970, (ok, no longer 'modern'), pg 117 describes a method of multivariable control using a 'transfer matrix' of Laplace transfer functions where Gij(s) is the transfer function from ith input to jth output. Would this be practical to actually implement? Assuming I could model each Gij(s) as a simple 2nd order function, and only need 10Hz response, and have 5 inputs (thermocouples) and 5 outputs (heaters), could one DSP physically handle the Z transform matrix inversions in 10Hz realtime? Or, is there a simpler way? tia!

# Multivariable control via Transfer Matrices?

Started by ●February 16, 2005

Reply by ●February 16, 20052005-02-16

perfb@yahoo.com wrote:> reading my old copy of 'Modern Control Engineering' by Ogata, 1970, > (ok, no longer 'modern'), pg 117 describes a method of multivariable > control using a 'transfer matrix' of Laplace transfer functions where > Gij(s) is the transfer function from ith input to jth output. > > Would this be practical to actually implement? Assuming I could model > each Gij(s) as a simple 2nd order function, and only need 10Hz > response, and have 5 inputs (thermocouples) and 5 outputs (heaters), > could one DSP physically handle the Z transform matrix inversions in > 10Hz realtime? > > Or, is there a simpler way? > > tia! >The problem with the transfer matrix approach is that it isn't clear if the states of two separate transfer functions are coupled or not. So a system that looks like [ 1 ] x(n+1) = b x(n) + (1-b) u(n), y(n) = [ ] x(n) [ 1 ] has the same transfer function matrix as [b 0] [1-b] x(n+1) = [ ] x(n) + [ ] u(n), y(n) = x(n). [0 b] [1-b] I much prefer a state-space approach to design here, because (a) it clears up such ambiguities and (b) it makes it easier to build in nonlinearities if necessary. At a 10Hz sampling rate you don't need no stinking DSP. You should be able to implement 5 2nd-order thermal control loops with an 8-bit processor using all integer math. With a 16-bit DSP you can do this using high-level code and floating point. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com

Reply by ●February 20, 20052005-02-20

On 16 Feb 2005 10:40:07 -0800, "perfb@yahoo.com" <perfb@yahoo.com> wrote:>reading my old copy of 'Modern Control Engineering' by Ogata, 1970, >(ok, no longer 'modern'), pg 117 describes a method of multivariable >control using a 'transfer matrix' of Laplace transfer functions where >Gij(s) is the transfer function from ith input to jth output. > >Would this be practical to actually implement?Since all of the denominators would be identical, (the characteristic equation), then no, it would not be efficient to duplicate that for each of the numerators, unless you had a lot of pole/zero cancellations.>Assuming I could model >each Gij(s) as a simple 2nd order function, and only need 10Hz >response, and have 5 inputs (thermocouples) and 5 outputs (heaters), >could one DSP physically handle the Z transform matrix inversions in >10Hz realtime?10Hz on a DSP? 5x5 matrix inversion? no problem.>Or, is there a simpler way?By your description I'm assuming maybe the input is really five temperature errors calculated from 5 reference values and 5 thermocouples and that this is a control system. In a State Space format, the matrices are of size A (2x2), B (2x5), C(5x2), D(5x5). and it probably implements a PI type of control with feedforward if the D term is nonzero. I'm guessing at the details because you haven't provided them. But there isn't any reason why you couldn't implement this as a discrete state space controller. Depending upon the precison that you need, at 10 Hz, you could run this on an 4-10MHz 8-bit PIC. You don't need a DSP to implement this control.