MIMO_ML_Normalise

PURPOSE ^

SYNOPSIS ^

function [TheTheta] = MIMO_ML_Normalise(TheTheta, Thewscale, TheModelVar);

DESCRIPTION ^

    [TheTheta] = MIMO_ML_Normalise(TheTheta, Thewscale, TheModelVar);

    Output parameters
        TheTheta            =    see input parameters

    Input parameters
        TheTheta            =    plant, noise, and initial conditions parameters
                                structure with fields 'A', 'B', 'Ig'
                                    TheTheta = struct('A',[],'B',[], 'Ig')
                                    TheTheta.A = 1 x (OrderA+1)
                                        TheTheta.A(r) = coefficient a(r-1) of Omega^(r-1) 
                                    TheTheta.B = ny x nu x (OrderB+1)
                                        TheTheta.B(i,j,r) = coefficient b(i,j,r-1) of Omega^(r-1)
                                    TheTheta.Ig = ny x (OrderIg+1)
                                        TheTheta.Ig(i,r) = coefficient ig(i,r-1) of Omega^(r-1) 
                                Note:    all coefficients (except those for which Sel = 0) are free
                                        during the minimization + in each iteration step the following
                                        constraints are imposed:
                                            norm([a, vec(b), vec(ig)] = 1 

        Thewscale            =    angular frequency scaling

        TheModelVar            =    contains the information about the model to be identified
                                structure with fields 'Transient', 'ThePlane', 'Reciprocal'
                                    TheModelVar = struct('Transient', [], 'PlantPlane', [], 'Struct', [], 'Reciprocal',[])
                                    TheModelVar.Transient        =    1 then the initial conditions of the plant and/or noise are estimated
                                    TheModelVar.PlantPlane        =    plane of the plant model
                                                                    's':    continuous-time;
                                                                    'w':    sqrt(s)-domain
                                                                    'z':    discrete-time;
                                                                    '':        plane not defined
                                    TheModelVar.Struct            =    model structure
                                                                    'EIV':  errors-in-variables (noisy input-output data)
                                                                    'OE':    generalised output error (known input, noisy output)
                                    TheModelVar.Reciprocal        =    1 if plant and noise models are reciprocal: G(i,j) = G(j,i) 
                                    TheModelVar.nu                =    number of inputs
                                    TheModelVar.ny                =     number of outputs
                                    TheModelVar.na                =    order polynomial A
                                    TheModelVar.nb                =    order ny x nu matrix polynomial B
                                    TheModelVar.nig             =    order ny x 1 vector polynomial Ig


 Copyright (c) Rik Pintelon, Vrije Universiteit Brussel - dept. ELEC, November 2009
 All rights reserved.
 Software can be used freely for non-commercial applications only.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [TheTheta] = MIMO_ML_Normalise(TheTheta, Thewscale, TheModelVar);
0002 %
0003 %    [TheTheta] = MIMO_ML_Normalise(TheTheta, Thewscale, TheModelVar);
0004 %
0005 %    Output parameters
0006 %        TheTheta            =    see input parameters
0007 %
0008 %    Input parameters
0009 %        TheTheta            =    plant, noise, and initial conditions parameters
0010 %                                structure with fields 'A', 'B', 'Ig'
0011 %                                    TheTheta = struct('A',[],'B',[], 'Ig')
0012 %                                    TheTheta.A = 1 x (OrderA+1)
0013 %                                        TheTheta.A(r) = coefficient a(r-1) of Omega^(r-1)
0014 %                                    TheTheta.B = ny x nu x (OrderB+1)
0015 %                                        TheTheta.B(i,j,r) = coefficient b(i,j,r-1) of Omega^(r-1)
0016 %                                    TheTheta.Ig = ny x (OrderIg+1)
0017 %                                        TheTheta.Ig(i,r) = coefficient ig(i,r-1) of Omega^(r-1)
0018 %                                Note:    all coefficients (except those for which Sel = 0) are free
0019 %                                        during the minimization + in each iteration step the following
0020 %                                        constraints are imposed:
0021 %                                            norm([a, vec(b), vec(ig)] = 1
0022 %
0023 %        Thewscale            =    angular frequency scaling
0024 %
0025 %        TheModelVar            =    contains the information about the model to be identified
0026 %                                structure with fields 'Transient', 'ThePlane', 'Reciprocal'
0027 %                                    TheModelVar = struct('Transient', [], 'PlantPlane', [], 'Struct', [], 'Reciprocal',[])
0028 %                                    TheModelVar.Transient        =    1 then the initial conditions of the plant and/or noise are estimated
0029 %                                    TheModelVar.PlantPlane        =    plane of the plant model
0030 %                                                                    's':    continuous-time;
0031 %                                                                    'w':    sqrt(s)-domain
0032 %                                                                    'z':    discrete-time;
0033 %                                                                    '':        plane not defined
0034 %                                    TheModelVar.Struct            =    model structure
0035 %                                                                    'EIV':  errors-in-variables (noisy input-output data)
0036 %                                                                    'OE':    generalised output error (known input, noisy output)
0037 %                                    TheModelVar.Reciprocal        =    1 if plant and noise models are reciprocal: G(i,j) = G(j,i)
0038 %                                    TheModelVar.nu                =    number of inputs
0039 %                                    TheModelVar.ny                =     number of outputs
0040 %                                    TheModelVar.na                =    order polynomial A
0041 %                                    TheModelVar.nb                =    order ny x nu matrix polynomial B
0042 %                                    TheModelVar.nig             =    order ny x 1 vector polynomial Ig
0043 %
0044 %
0045 % Copyright (c) Rik Pintelon, Vrije Universiteit Brussel - dept. ELEC, November 2009
0046 % All rights reserved.
0047 % Software can be used freely for non-commercial applications only.
0048 %
0049 
0050 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0051 % normalisation plant model parameters %
0052 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0053 
0054 if ~strcmp(TheModelVar.PlantPlane,'z')
0055     
0056     na = TheModelVar.na;
0057     nb = TheModelVar.nb;
0058     nig = TheModelVar.nig;
0059     nmax = max([na, nb, nig]);
0060     TheScale = zeros(1,1,nmax+1);
0061     for ii = 0:nmax
0062         TheScale(1,1,ii+1) = Thewscale^ii;
0063     end
0064 
0065     % polynomial A
0066     TheTheta.A = TheTheta.A.*(squeeze(TheScale(1,1,1:na+1)).');
0067 
0068     % ny x nu matrix polynomial B
0069     nu = TheModelVar.nu;
0070     ny = TheModelVar.ny;
0071     TheTheta.B = TheTheta.B.*repmat(TheScale(1,1,1:nb+1),[ny, nu, 1]);
0072     
0073     % ny x 1 vector polynomial Ig
0074     if TheModelVar.Transient    
0075         TheTheta.Ig = TheTheta.Ig.*repmat(squeeze(TheScale(1,1,1:nig+1)).',[ny, 1]);
0076     end % if transient
0077     
0078 end % if not z-domain
0079

Generated on Thu 07-Jun-2012 11:58:58 by m2html © 2005