0001 function [sys, VERSION] = model_NSF_IS_readout
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 VERSION ='$Id:$';
0023 utils.helper.msg(utils.const.msg.MNAME, ['running ', mfilename]);
0024
0025
0026 sys =ssm();
0027
0028
0029 sys.paramnames = ...
0030 {'p_p1_N_ISro_x' 'p_p2_N_ISro_x' 'p_p3_N_ISro_x' 'p_g1_N_ISro_x' 'p_g2_N_ISro_x' 'p_g3_N_ISro_x' 'p_g4_N_ISro_x' ...
0031 'p_p1_N_ISro_y' 'p_p2_N_ISro_y' 'p_p3_N_ISro_y' 'p_g1_N_ISro_y' 'p_g2_N_ISro_y' 'p_g3_N_ISro_y' 'p_g4_N_ISro_y' ...
0032 'p_p1_N_ISro_z' 'p_p2_N_ISro_z' 'p_p3_N_ISro_z' 'p_g1_N_ISro_z' 'p_g2_N_ISro_z' 'p_g3_N_ISro_z' 'p_g4_N_ISro_z' ...
0033 'p_p1_N_ISro_t' 'p_p2_N_ISro_t' 'p_p3_N_ISro_t' 'p_g1_N_ISro_t' 'p_g2_N_ISro_t' 'p_g3_N_ISro_t' 'p_g4_N_ISro_t' ...
0034 'p_p1_N_ISro_e' 'p_p2_N_ISro_e' 'p_p3_N_ISro_e' 'p_g1_N_ISro_e' 'p_g2_N_ISro_e' 'p_g3_N_ISro_e' 'p_g4_N_ISro_e' ...
0035 'p_p1_N_ISro_p' 'p_p2_N_ISro_p' 'p_p3_N_ISro_p' 'p_g1_N_ISro_p' 'p_g2_N_ISro_p' 'p_g3_N_ISro_p' 'p_g4_N_ISro_p' ...
0036 'p_gDC_N_ISro_x' 'p_gDC_N_ISro_y' 'p_gDC_N_ISro_z' 'p_gDC_N_ISro_t' 'p_gDC_N_ISro_e' 'p_gDC_N_ISro_p' ...
0037 };
0038 sys.paramvalues = ...
0039 [ 0 0 0 0 0 0 0 ...
0040 0 0 0 0 0 0 0 ...
0041 0 0 0 0 0 0 0 ...
0042 0 0 0 0 0 0 0 ...
0043 0 0 0 0 0 0 0 ...
0044 0 0 0 0 0 0 0 ...
0045 0 0 0 0 0 0 ...
0046 ];
0047 sys.paramsigmas = ...
0048 [ 0 0 0 0 0 0 0 ...
0049 0 0 0 0 0 0 0 ...
0050 0 0 0 0 0 0 0 ...
0051 0 0 0 0 0 0 0 ...
0052 0 0 0 0 0 0 0 ...
0053 0 0 0 0 0 0 0 ...
0054 0 0 0 0 0 0 ...
0055 ];
0056
0057
0058
0059 for i_params=1:length(sys.paramnames)
0060 cmd = [sys.paramnames{i_params}, '=sym(''', sys.paramnames{i_params},''');'];
0061 eval(cmd);
0062 end
0063
0064
0065
0066
0067 num1 =1.832e-9* conv( conv([1 0.0008],[1 0.0008]), [1 0.003]);
0068 den1 =conv( conv([1 8.0e-5],[1 8.0e-5]), [1 8.0e-5]);
0069 [r1,p1,k1] =residue(num1, den1);
0070 A1 =[p1(3)+p_p1_N_ISro_x 1 0 ;...
0071 0 p1(2)+p_p2_N_ISro_x 1 ;...
0072 0 0 p1(1)+p_p3_N_ISro_x ];
0073 B1 =[ 0; 0; 1];
0074 C1 =[r1(3)+p_g1_N_ISro_x r1(2)+p_g2_N_ISro_x r1(1)+p_g3_N_ISro_x];
0075 D1 =k1+p_g4_N_ISro_x;
0076
0077
0078 num2 =1.751e-9* conv( conv([1 0.0008],[1 0.0008]), [1 0.003]);
0079 den2 =conv( conv([1 8.0e-5],[1 8.0e-5]), [1 8.0e-5]);
0080 [r2,p2,k2] =residue(num2, den2);
0081 A2 =[p2(3)+p_p1_N_ISro_y 1 0 ;...
0082 0 p2(2)+p_p2_N_ISro_y 1 ;...
0083 0 0 p2(1)+p_p3_N_ISro_y ];
0084 B2 =[ 0; 0; 1];
0085 C2 =[r2(3)+p_g1_N_ISro_y r2(2)+p_g2_N_ISro_y r2(1)+p_g3_N_ISro_y];
0086 D2 =k2+p_g4_N_ISro_y;
0087
0088
0089 num3 =2.876e-9* conv( conv([1 0.0008],[1 0.0008]), [1 0.003]);
0090 den3 =conv( conv([1 0.00019],[1 0.00019]), [1 0.00019]);
0091 [r3,p3,k3] =residue(num3, den3);
0092 A3 =[p3(3)+p_p1_N_ISro_z 1 0 ;...
0093 0 p3(2)+p_p2_N_ISro_z 1 ;...
0094 0 0 p3(1)+p_p3_N_ISro_z ];
0095 B3 =[ 0; 0; 1];
0096 C3 =[r3(3)+p_g1_N_ISro_z r3(2)+p_g2_N_ISro_z r3(1)+p_g3_N_ISro_z];
0097 D3 =k3+p_g4_N_ISro_z;
0098
0099 num4 =1.126e-7* conv( conv([1 0.0008],[1 0.0008]), [1 0.003]);
0100 den4 =conv( conv([1 8.0e-5],[1 8.0e-5]), [1 8.0e-5]);
0101 [r4,p4,k4] =residue(num4, den4);
0102 A4 =[p4(3)+p_p1_N_ISro_t 1 0 ;...
0103 0 p4(2)+p_p2_N_ISro_t 1 ;...
0104 0 0 p4(1)+p_p3_N_ISro_t ];
0105 B4 =[ 0; 0; 1];
0106 C4 =[r4(3)+p_g1_N_ISro_t r4(2)+p_g2_N_ISro_t r4(1)+p_g3_N_ISro_t];
0107 D4 =k4+p_g4_N_ISro_t;
0108
0109 num5 =1.886e-7* conv( conv([1 0.0008],[1 0.0008]), [1 0.003]);
0110 den5 =conv( conv([1 8.0e-5],[1 8.0e-5]), [1 8.0e-5]);
0111 [r5,p5,k5] =residue(num5, den5);
0112 A5 =[p5(3)+p_p1_N_ISro_e 1 0 ;...
0113 0 p5(2)+p_p2_N_ISro_e 1 ;...
0114 0 0 p5(1)+p_p3_N_ISro_e ];
0115 B5 =[ 0; 0; 1];
0116 C5 =[r5(3)+p_g1_N_ISro_e r5(2)+p_g2_N_ISro_e r5(1)+p_g3_N_ISro_e];
0117 D5 =k5+p_g4_N_ISro_e;
0118
0119 num6 =1.643e-7* conv( conv([1 0.0008],[1 0.0008]), [1 0.003]);
0120 den6 =conv( conv([1 8.0e-5],[1 8.0e-5]), [1 8.0e-5]);
0121 [r6,p6,k6] =residue(num6, den6);
0122 A6 =[p6(3)+p_p1_N_ISro_p 1 0 ;...
0123 0 p6(2)+p_p2_N_ISro_p 1 ;...
0124 0 0 p6(1)+p_p3_N_ISro_p ];
0125 B6 =[ 0; 0; 1];
0126 C6 =[r6(3)+p_g1_N_ISro_p r6(2)+p_g2_N_ISro_p r6(1)+p_g3_N_ISro_p];
0127 D6 =k6+p_g4_N_ISro_p;
0128
0129 A =blkdiag(A1, A2, A3, A4, A5, A6, A1, A2, A3, A4, A5, A6);
0130 B_ISro_noise =blkdiag(B1, B2, B3, B4, B5, B6, B1, B2, B3, B4, B5, B6);
0131 C =blkdiag(C1, C2, C3, C4, C5, C6, C1, C2, C3, C4, C5, C6);
0132 D_ISro_noise =blkdiag(D1, D2, D3, D4, D5, D6, D1, D2, D3, D4, D5, D6);
0133
0134
0135 B_ISro_DC =zeros(36,12);
0136 D_ISro_DC =eye(12)+ diag([p_gDC_N_ISro_x, p_gDC_N_ISro_y, p_gDC_N_ISro_z, p_gDC_N_ISro_t, p_gDC_N_ISro_e, p_gDC_N_ISro_p,...
0137 p_gDC_N_ISro_x, p_gDC_N_ISro_y, p_gDC_N_ISro_z, p_gDC_N_ISro_t, p_gDC_N_ISro_e, p_gDC_N_ISro_p]);
0138
0139
0140
0141
0142
0143
0144
0145 sys.name = 'NSF_IS_readout';
0146
0147 sys.amats = {A};
0148 sys.bmats = {B_ISro_noise B_ISro_DC};
0149 sys.cmats = {C};
0150 sys.dmats = {D_ISro_noise D_ISro_DC};
0151 sys.timestep = 0;
0152
0153 sys.ssnames = {'NSF_IS_readout'};
0154 sys.ssvarnames = {...
0155 {'s1_NSF_IS_ro' 's2_NSF_IS_ro' 's3_NSF_IS_ro' 's4_NSF_IS_ro' 's5_NSF_IS_ro' 's6_NSF_IS_ro' ...
0156 's7_NSF_IS_ro' 's8_NSF_IS_ro' 's9_NSF_IS_ro' 's10_NSF_IS_ro' 's11_NSF_IS_ro' 's12_NSF_IS_ro' ...
0157 's13_NSF_IS_ro' 's14_NSF_IS_ro' 's15_NSF_IS_ro' 's16_NSF_IS_ro' 's17_NSF_IS_ro' 's18_NSF_IS_ro' ...
0158 's19_NSF_IS_ro' 's20_NSF_IS_ro' 's21_NSF_IS_ro' 's22_NSF_IS_ro' 's23_NSF_IS_ro' 's24_NSF_IS_ro' ...
0159 's25_NSF_IS_ro' 's26_NSF_IS_ro' 's27_NSF_IS_ro' 's28_NSF_IS_ro' 's29_NSF_IS_ro' 's30_NSF_IS_ro' ...
0160 's31_NSF_IS_ro' 's32_NSF_IS_ro' 's33_NSF_IS_ro' 's34_NSF_IS_ro' 's35_NSF_IS_ro' 's36_NSF_IS_ro' ...
0161 }};
0162
0163 sys.inputnames = {'Noise_IS_readout' 'DC_IS_readout'};
0164 sys.inputvarnames = ...
0165 {{'n_x1_IS_ro' 'n_y1_IS_ro' 'n_z1_IS_ro' 'n_theta1_IS_ro' 'n_eta1_IS_ro' 'n_phi1_IS_ro' ...
0166 'n_x2_IS_ro' 'n_y2_IS_ro' 'n_z2_IS_ro' 'n_theta2_IS_ro' 'n_eta2_IS_ro' 'n_phi2_IS_ro'}...
0167 {'DC_x1_IS_ro' 'DC_y1_IS_ro' 'DC_z1_IS_ro' 'DC_theta1_IS_ro' 'DC_eta1_IS_ro' 'DC_phi1_IS_ro' ...
0168 'DC_x2_IS_ro' 'DC_y2_IS_ro' 'DC_z2_IS_ro' 'DC_theta2_IS_ro' 'DC_eta2_IS_ro' 'DC_phi2_IS_ro'}...
0169 };
0170
0171 sys.outputnames = {'Dist_IS_readout'};
0172 sys.outputvarnames = ...
0173 {{'Dist_x1_IS_ro' 'Dist_y1_IS_ro' 'Dist_z1_IS_ro' 'Dist_theta1_IS_ro' 'Dist_eta1_IS_ro' 'Dist_phi1_IS_ro' ...
0174 'Dist_x2_IS_ro' 'Dist_y2_IS_ro' 'Dist_z2_IS_ro' 'Dist_theta2_IS_ro' 'Dist_eta2_IS_ro' 'Dist_phi2_IS_ro' }};
0175
0176
0177 end