ExactModeling Package

*To*: mathgroup at christensen.cybernetics.net*Subject*: [mg540] ExactModeling Package*From*: rickli at aut.ee.ethz.ch (Martin Rickli)*Date*: Mon, 13 Mar 1995 17:54:01 +0100

Dear reader, I'm working in the field of (exact) modeling investigating the usability of a recursive algorithm if applied to experimental data. I think my implementation is more or less complete and might be useful for others. I therefore release it to the public domain. You're invited to download it by anonymous ftp (submission to MathSource is under way): ftp://aut.ee.ethz.ch/pub/personal/rickli There are two files available at the moment: ExactModeling.m the algorithm implemented as a Mathematica package EMIntroduction.ma (very) short introduction Whole documentation is still under developement! (In case of troubles try the following address: ftp://aut.ethz.ch/pub/personal/rickli ) I would appreciate to get feedback. Being what can be done better, wether you like it, bug reports and especially if somebody can use it and what for ;-) ! Below I included the introduction (from EMIntroduction.ma). Thank you for your interest. With kind regards ______________________________________________________________________ Martin Rickli E-mail: Rickli at aut.ee.ethz.ch Automatic Control Laboratory ETH Zurich Physikstr. 3, ETL K12 CH-8092 Zurich, Switzerland ______________________________________________________________________ Excerpt from EMIntroduction.ma You should be familiar with theory of exact modeling and the behavior framework Have a look at following references (and the references therein): A. C. Antoulas, J. C. Willems: A Behavioral Approach to Linear Exact Modeling; TAC 38-12 (Dez. 93) J. C. Willems: From Time Series To Linear Systems; Automatica; Part I 22-5; Part II 22-6; Part III 23-1 Short overview: =============== Given vector-valued data w(t) = (p0 + p1 t + p2 t^2 + ... + pk t^k ) exp(lambda t) find the operator Theta(d/dt), such that Theta(d/dt) w(t) = 0 lambda may be a complex number but Theta has only real valued coefficients. The algorithm is recursive in processing the number of data and proceeds in several steps Theta_new = Psort x Delta x Gamma x P x Theta_old It keeps track of controllable rows (rows of Theta that have full row rank for all values of the indeterminate). (* late braking news from the author ... *) ExactModelingInfo[] *** ExactModeling 0.93b loaded. Author: M. Rickli, IfA, ETH Zurich (Feb 95) *** Usage Information: ExactModeling implements algorithms for recursive exact modeling of polynomial exponential time series (using approximate numbers). TF2Theta[lam,tf,var,opts] finds a model theta explaining tf at frequencies lam. tf can be a pure function or an expression in var (MIMO supported). RatInt[lam,zlam,nout,(var)] returns the MPUM thnew which corresponds to (frequency response) measurements {lam,zlam}. nout equals number of output signals. zlam must be a matrix with: #col(zlam) = #inputs; #rows(zlam) = nout #rows(lam). Options: {Balance, Method, PrintFlag, PrintLevel, Sorting, VectorNorm, WorkingPrecision} MarkovModel[data,var,opts] computes a model for given Markov parameters (impulse response data) 'data'. For SISO system 'data' is a vector: {h(0),h(1),h(2), ..} For MIMO system 'data' is a sequence of matrices: A(0),A(1),A(2), .. CalculateError[th,p,lam,(var)] returns vector eps of error time-polynomials without factor Exp[lam t]. Data: w(t) = p(t) Exp[lam t] Error: e(t) = Theta(d/dt) w(t) = eps Exp[lam t] Time variable must be 't' ProcessNewMeasurement[th,data,lam,(var),options] returns matrices P, gamma, Psort and thnew which 'update' the MPUM 'th' with new measurement 'data' to thnew. Aliases: PNM