Home > classes > @pzmodel > pzmodel.m

pzmodel

PURPOSE ^

PZMODEL constructor for pzmodel class.

SYNOPSIS ^

function pzm = pzmodel(varargin)

DESCRIPTION ^

 PZMODEL constructor for pzmodel class.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: PZMODEL constructor for pzmodel class.

 CONSTRUCTOR: pzm = pzmodel(g, p, z) % construct from gain, poles, zeros
              pzm = pzmodel(g, p, z, 'name')
              pzm = pzmodel(pl);     % construct from plist

 PARAMETERS:  'gain'  - model gain
              'poles' - vector of pole objects
              'zeros' - vector of zero objects
              'name'  - name of model

 VERSION:     $Id: pzmodel.m,v 1.7 2007/08/31 17:40:08 hewitson Exp $

 HISTORY:     03-04-2007 M Hewitson
                 Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function pzm = pzmodel(varargin)
0002 % PZMODEL constructor for pzmodel class.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: PZMODEL constructor for pzmodel class.
0007 %
0008 % CONSTRUCTOR: pzm = pzmodel(g, p, z) % construct from gain, poles, zeros
0009 %              pzm = pzmodel(g, p, z, 'name')
0010 %              pzm = pzmodel(pl);     % construct from plist
0011 %
0012 % PARAMETERS:  'gain'  - model gain
0013 %              'poles' - vector of pole objects
0014 %              'zeros' - vector of zero objects
0015 %              'name'  - name of model
0016 %
0017 % VERSION:     $Id: pzmodel.m,v 1.7 2007/08/31 17:40:08 hewitson Exp $
0018 %
0019 % HISTORY:     03-04-2007 M Hewitson
0020 %                 Creation
0021 %
0022 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0023 
0024 ALGONAME = mfilename;
0025 VERSION  = '$Id: pzmodel.m,v 1.7 2007/08/31 17:40:08 hewitson Exp $';
0026 
0027 if nargin == 0
0028 
0029   gain  = 0;
0030   poles = [];
0031   zeros = [];
0032   name = 'pzmodel';
0033   pzm = pzmodel(gain, poles, zeros, name);
0034 
0035 elseif nargin == 1
0036   pl = varargin{1};
0037 
0038   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0039   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0040     pzm = fromxml(varargin{1});
0041   
0042   %%%%%%%%%% From File  %%%%%%%%%%%%
0043   elseif ischar(varargin{1})
0044     
0045     filename = varargin{1};
0046     [path, name, ext, vers] = fileparts(filename);
0047     switch ext
0048       case '.mat'
0049         pzm = load(filename);
0050       case '.xml'
0051         pzm = xmlparse(pzmodel, filename);
0052       otherwise
0053         error('### Unknown file type.');
0054     end
0055 
0056     
0057   elseif isstruct(pl)
0058     pzm.name  = pl.name;
0059     pzm.gain  = pl.gain;
0060     pzm.poles = pl.poles;
0061     pzm.zeros = pl.zeros;
0062     pzm = class(pzm, 'pzmodel');
0063     return
0064 
0065   else
0066 
0067     gain  = find(pl, 'gain');
0068     poles = find(pl, 'poles');
0069     zeros = find(pl, 'zeros');
0070     name  = find(pl, 'name');
0071     if isempty(name)
0072       name = 'pzmodel';
0073     end
0074     pzm = pzmodel(gain, poles, zeros, name);
0075   end
0076 
0077 elseif nargin == 2
0078   %%%%%%%%%%% From DATABASE
0079   if isa(varargin{1}, 'database')        
0080     pzm = retrieve(varargin{1}, varargin{2:end});
0081   else
0082     error('### incorrect pzmodel constructor.');
0083   end
0084   
0085 
0086 %%%%%% 3 or 4 inputs  %%%%%%%%%%%%%%
0087 elseif nargin >= 3
0088   a  = varargin{1};
0089   if isa(a, 'ao')
0090     gain = a.data.y(1);
0091   else
0092     gain = a;
0093   end
0094   poles = varargin{2};
0095   zeros = varargin{3};
0096   if nargin == 4
0097     name = char(varargin{4});
0098   else
0099     name = 'pzmodel';
0100   end
0101 
0102   % construct pz model object
0103   pzm.name  = name;
0104   pzm.gain  = gain;
0105   pzm.poles = poles;
0106   pzm.zeros = zeros;
0107   pzm = class(pzm, 'pzmodel');
0108 
0109 else
0110   error('### incorrect number of inputs.');
0111 end
0112 
0113 % END

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003