Home > m > timetools > statespacefunctions > utp_ltpda_ss_modify_time_setup.m

utp_ltpda_ss_modify_time_setup

PURPOSE ^

tests ltpda_ss_modify_time_setup with both syntaxic and numerical test.

SYNOPSIS ^

function varargout = utp_ltpda_ss_modify_time_setup(varargin)

DESCRIPTION ^

 tests ltpda_ss_modify_time_setup with both syntaxic and numerical test.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DESCRIPTION: test function for ltpda_ss_modify_time_setup 

 CALL: utp_ltpda_ss_modify_time_setup

 INPUTS: 
 
 OUTPUTS: 1/0
 
 VERSION: '$Id: utp_ltpda_ss_modify_time_setup.m,v 1.4 2008/03/11 16:52:56 adrien Exp $'

 HISTORY: 26-02-2008 A Grynagier
 07-02-2008 A Grynagier

 to do : modify for noise shape filter case or HF inputs with aliasing
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% standard calls for LTPDA function data

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function varargout = utp_ltpda_ss_modify_time_setup(varargin)
0002 % tests ltpda_ss_modify_time_setup with both syntaxic and numerical test.
0003 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0004 % DESCRIPTION: test function for ltpda_ss_modify_time_setup
0005 %
0006 % CALL: utp_ltpda_ss_modify_time_setup
0007 %
0008 % INPUTS:
0009 %
0010 % OUTPUTS: 1/0
0011 %
0012 % VERSION: '$Id: utp_ltpda_ss_modify_time_setup.m,v 1.4 2008/03/11 16:52:56 adrien Exp $'
0013 %
0014 % HISTORY: 26-02-2008 A Grynagier
0015 % 07-02-2008 A Grynagier
0016 %
0017 % to do : modify for noise shape filter case or HF inputs with aliasing
0018 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0019 %% standard calls for LTPDA function data
0020 
0021 ALGONAME = mfilename;
0022 VERSION = '$Id: utp_ltpda_ss_modify_time_setup.m,v 1.4 2008/03/11 16:52:56 adrien Exp $';
0023 CATEGORY = 'STATESPACE';
0024 display(['starting ' ALGONAME]);
0025 
0026 if not(isempty(varargin))
0027     if isequal( varargin{1}, 'Version')
0028         varargout = VERSION;
0029         return;
0030     elseif isequal(varargin{1}, 'Params')
0031         varargout = plist();
0032         return;
0033     elseif isequal(varargin{1}, 'Category')
0034         varargout = CATEGORY;
0035         return;
0036     end
0037 end
0038 output =1;
0039 
0040 for i=1:100
0041     nSysTot = 1;
0042     pSys = 1;
0043     nUTot = floor(rand()*4);
0044     OutputSizes = floor(rand()*4);
0045     InputSizes = floor(rand(nUTot)*4);
0046     try
0047         j = 1;
0048         syst0 = utp_ltpda_ss_random_generate(nSysTot, pSys, nUTot, OutputSizes, InputSizes);
0049         AMAT = find(syst0, 'AMAT');
0050         V = max(0.5 , max(abs(imag(eig(AMAT{1})))));
0051         if size(V,1)==0
0052             V = 1;
0053         end
0054         Tmax = 3.1415/V/2; % max timestep to ensure no aliasing is happening
0055         %     syst0 = pset(syst0, 'AMAT', {eye(size(AMAT{1},1))} );
0056 
0057         NewTimeStep = plist('TIMESTEP',Tmax*0.05);
0058         j = j+1;
0059         syst2 = ltpda_ss_modify_time_setup(syst0,NewTimeStep);
0060 
0061         NewTimeStep = plist('TIMESTEP',0.5*Tmax);
0062         j = j+1;
0063         syst3 = ltpda_ss_modify_time_setup(syst2,NewTimeStep);
0064 
0065         NewTimeStep = plist('TIMESTEP',0.05*Tmax);
0066         j = j+1;
0067         syst4 = ltpda_ss_modify_time_setup(syst3,NewTimeStep);
0068 
0069         NewTimeStep = plist('TIMESTEP',0);
0070         j = j+1;
0071         syst5 = ltpda_ss_modify_time_setup(syst4,NewTimeStep);
0072         
0073         NewTimeStep =[NewTimeStep NewTimeStep NewTimeStep];
0074         j = j+1;
0075         syst6 = ltpda_ss_modify_time_setup([syst5 syst5],NewTimeStep);
0076         display('ok')
0077     catch
0078         display(['error at step ' num2str(j)])
0079         output = 0;
0080         display('pb')
0081     end
0082 
0083     %% checking syst2 and sys4 are equal, also for syst0 and syst5
0084     AMAT2 = find(syst2,'AMAT');
0085     AMAT4 = find(syst4,'AMAT');
0086     AMAT0 = find(syst0,'AMAT');
0087     AMAT5 = find(syst5,'AMAT');
0088 %     BMATS2 = find(syst2,'BMATS');
0089 %     BMATS4 = find(syst4,'BMATS');
0090 %     BMATS0 = find(syst0,'BMATS');
0091 %     BMATS5 = find(syst5,'BMATS');
0092 %     CMAT2 = find(syst2,'CMAT');
0093 %     CMAT4 = find(syst4,'CMAT');
0094 %     CMAT0 = find(syst0,'CMAT');
0095 %     CMAT5 = find(syst5,'CMAT');
0096     if not( norm(AMAT2{1}-AMAT4{1})<5e-7)
0097         display('error possible when changing time between discrete and discrete')
0098         output = 0;
0099     end
0100     if not(norm(AMAT0{1}-AMAT5{1})<5e-7)
0101         display('error possible when changing time between continuous and discrete')
0102         output = 0;
0103     end
0104     if not(norm(AMAT2{1}-AMAT4{1})<1e-13)
0105         display(['small error when changing time between discrete and discrete :' num2str(norm(AMAT2{1}-AMAT4{1}))])
0106     end
0107     if not(norm(AMAT0{1}-AMAT5{1})<1e-13)
0108         display(['small error when changing time between continuous and discrete : ' num2str(norm(AMAT0{1}-AMAT5{1}))])
0109     end
0110 end
0111 varargout = {output};
0112 end

Generated on Mon 31-Mar-2008 13:54:54 by m2html © 2003