Home > m > timetools > statespacefunctions > utp_ltpda_ss_ss2iir.m

utp_ltpda_ss_ss2iir

PURPOSE ^

make is the generic function to decalre or load a subsystem.

SYNOPSIS ^

function varargout = utp_ltpda_ss_ss2iir(varargin)

DESCRIPTION ^

 make is the generic function to decalre or load a subsystem.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: tests ltpda_ss_tomiir

 CALL: utp_ltpda_ss_tomiir

 INPUTS: 

 OUTPUTS: 1/0

 ***** THERE ARE NO DEFAULT PARAMETERS *****

 VERSION: $Id: utp_ltpda_ss_ss2iir.html,v 1.4 2008/03/31 10:27:36 hewitson Exp $

 HISTORY: 17-02-2008 A Grynagier
 12-02-2008 A Grynagier
 22-01-2008 A Grynagier
 Creation 02-01-2008 A Grynagier

 TO DO: add numerical check, replace pset call by time_modify
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function varargout = utp_ltpda_ss_ss2iir(varargin)
0002 % make is the generic function to decalre or load a subsystem.
0003 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0004 %
0005 % DESCRIPTION: tests ltpda_ss_tomiir
0006 %
0007 % CALL: utp_ltpda_ss_tomiir
0008 %
0009 % INPUTS:
0010 %
0011 % OUTPUTS: 1/0
0012 %
0013 % ***** THERE ARE NO DEFAULT PARAMETERS *****
0014 %
0015 % VERSION: $Id: utp_ltpda_ss_ss2iir.html,v 1.4 2008/03/31 10:27:36 hewitson Exp $
0016 %
0017 % HISTORY: 17-02-2008 A Grynagier
0018 % 12-02-2008 A Grynagier
0019 % 22-01-2008 A Grynagier
0020 % Creation 02-01-2008 A Grynagier
0021 %
0022 % TO DO: add numerical check, replace pset call by time_modify
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 ALGONAME = mfilename;
0026 VERSION = 'Id: utp_ltpda_ss_ss2iir.m,v 0.3 2008/02/17 20:23:45 agry';
0027 CATEGORY = 'STATESPACE';
0028 display(['starting ' ALGONAME]);
0029 
0030 if not(isempty(varargin))
0031     if isequal( varargin{1}, 'Version')
0032         varargout = VERSION;
0033         return;
0034     elseif isequal(varargin{1}, 'Params')
0035         varargout = plist();
0036         return;
0037     elseif isequal(varargin{1}, 'Category')
0038         varargout = CATEGORY;
0039         return;
0040     end
0041 end
0042 
0043 result = 1;
0044 
0045 for i0 = 1:30
0046     %% makes random data for systems
0047     nSysTot = floor(rand()*4)+1;
0048     pSys = floor(rand()*nSysTot)+1;
0049     nUTot = floor(rand()*nSysTot)+1;
0050     OutputSizes = ones(nSysTot,1)+floor(rand(nSysTot,1)*5);
0051     InputSizes = ones(nUTot,1)+floor(rand(nUTot,1)*5);
0052 
0053     syst1 = utp_ltpda_ss_random_generate(nSysTot, pSys, nUTot, OutputSizes, InputSizes);
0054     syst1 = pset(syst1, 'TIMESTEP',1); 
0055 
0056     
0057     syst = plist();
0058     syst(1) = syst1;
0059     syst(2) = syst1;
0060     
0061     % choosing random inputs outputs
0062     INPUTS = {};
0063     INPUTCOLUMNS = [];
0064     OUTPUTROWS = [];
0065     ListNames1 = find(syst1, 'INPUTNAMES');
0066     ListSizes1 = find(syst1, 'INPUTSIZES');
0067     c1 = find(syst1, 'CMAT');
0068     out1 = size(c1{1},1);
0069     i1 = 0;
0070     for i2 = 1:length(ListNames1)
0071         do = floor(rand()*2);
0072         if do
0073             if ListSizes1(i2)>0
0074                 i1=i1+1;
0075                 INPUTS{i1} = ListNames1{i2};
0076                 INPUTCOLUMNS(i1) = 1+floor(rand()*ListSizes1(i2));
0077             end
0078         end
0079     end
0080     if out1>1
0081         OUTPUTROWS = 1:out1;
0082     end
0083     opt = plist('INPUTS', INPUTS, 'INPUTCOLUMNS', INPUTCOLUMNS ,'OUTPUTROWS',OUTPUTROWS);
0084     
0085     try %% launching function
0086         iir = ltpda_ss_ss2iir(syst, opt);
0087         display('OK')
0088     catch
0089         result = 0;
0090         display('pb')
0091     end
0092 
0093 end
0094 
0095 %% test numerique
0096 A=[0 1; 2 3];
0097 B=[0 1;1 0];
0098 C=[1 1 ;2 -1];
0099 D=[0 0;1 0] ;
0100 syst = plist('TYPE', 'SUBSYSTEM' ,'NAME', 'SS1' ,'TIMESTEP', 1 , ...
0101     'XISOUTPUT',0,'YISOUTPUT',1,'XINI', [0 0]' , ...
0102     'PARAMNAMES', {} ,'PARAMVALUES', [] ,'PARAMSIGMAS', [] ,...
0103     'NBINPUTS', 1 ,'INPUTNAMES', {'U'} ,'INPUTSIZES', 1 , 'INPUTISUSED', 1 ,...
0104     'AMAT', {A} ,'BMATS', {B} ,'CMAT', {C} ,'DMATS', {D} );
0105 ltpda_ss_check(syst)
0106 f = ltpda_ss_ss2iir(syst,  plist('INPUTS', {'U'}, 'INPUTCOLUMNS', 1 ,'OUTPUTROWS',2));
0107 fa = [1 -4 0];
0108 fb = [1 -3 -2];
0109 if (norm(fa-f.a) + norm(fb-f.b))>1e-14
0110     result = 0;
0111 end
0112 display(result)
0113 varargout = {result};
0114 end
0115

Generated on Mon 31-Mar-2008 12:20:24 by m2html © 2003