0001 function [sys, VERSION] = model_NSF_TMActuation
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 VERSION ='$Id:$';
0026 utils.helper.msg(utils.const.msg.MNAME, ['running ', mfilename]);
0027
0028
0029 sys =ssm();
0030
0031
0032 sys.paramnames = {...
0033 'p_p1_N_TMAct_x' 'p_p2_N_TMAct_x' 'p_p3_N_TMAct_x' 'p_p4_N_TMAct_x' 'p_p5_N_TMAct_x' ...
0034 'p_g1_N_TMAct_x' 'p_g2_N_TMAct_x' 'p_g3_N_TMAct_x' 'p_g4_N_TMAct_x' 'p_g5_N_TMAct_x' 'p_g6_N_TMAct_x' ...
0035 'p_p1_N_TMAct_y' 'p_p2_N_TMAct_y' 'p_p3_N_TMAct_y' 'p_p4_N_TMAct_y' 'p_p5_N_TMAct_y' ...
0036 'p_g1_N_TMAct_y' 'p_g2_N_TMAct_y' 'p_g3_N_TMAct_y' 'p_g4_N_TMAct_y' 'p_g5_N_TMAct_y' 'p_g6_N_TMAct_y' ...
0037 'p_p1_N_TMAct_z' 'p_p2_N_TMAct_z' 'p_p3_N_TMAct_z' 'p_p4_N_TMAct_z' 'p_p5_N_TMAct_z' ...
0038 'p_g1_N_TMAct_z' 'p_g2_N_TMAct_z' 'p_g3_N_TMAct_z' 'p_g4_N_TMAct_z' 'p_g5_N_TMAct_z' 'p_g6_N_TMAct_z' ...
0039 ...
0040 'p_p1_N_TMAct_t' 'p_p2_N_TMAct_t' 'p_p3_N_TMAct_t' 'p_p4_N_TMAct_t' ...
0041 'p_g1_N_TMAct_t' 'p_g2_N_TMAct_t' 'p_g3_N_TMAct_t' 'p_g4_N_TMAct_t' 'p_g5_N_TMAct_t' ...
0042 'p_p1_N_TMAct_e' 'p_p2_N_TMAct_e' 'p_p3_N_TMAct_e' 'p_p4_N_TMAct_e' ...
0043 'p_g1_N_TMAct_e' 'p_g2_N_TMAct_e' 'p_g3_N_TMAct_e' 'p_g4_N_TMAct_e' 'p_g5_N_TMAct_e' ...
0044 'p_p1_N_TMAct_p' 'p_p2_N_TMAct_p' 'p_p3_N_TMAct_p' 'p_p4_N_TMAct_p' ...
0045 'p_g1_N_TMAct_p' 'p_g2_N_TMAct_p' 'p_g3_N_TMAct_p' 'p_g4_N_TMAct_p' 'p_g5_N_TMAct_p' ...
0046 ...
0047 'p_gDC_N_TMAct_x' 'p_gDC_N_TMAct_y' 'p_gDC_N_TMAct_z' 'p_gDC_N_TMAct_t' 'p_gDC_N_TMAct_e' 'p_gDC_N_TMAct_p' ...
0048 };
0049 sys.paramvalues = [ ...
0050 0 0 0 0 0 ...
0051 0 0 0 0 0 0 ...
0052 0 0 0 0 0 ...
0053 0 0 0 0 0 0 ...
0054 0 0 0 0 0 ...
0055 0 0 0 0 0 0 ...
0056 ...
0057 0 0 0 0 ...
0058 0 0 0 0 0 ...
0059 0 0 0 0 ...
0060 0 0 0 0 0 ...
0061 0 0 0 0 ...
0062 0 0 0 0 0 ...
0063 ...
0064 0 0 0 0 0 0 ...
0065 ];
0066 sys.paramsigmas = [ ...
0067 0 0 0 0 0 ...
0068 0 0 0 0 0 0 ...
0069 0 0 0 0 0 ...
0070 0 0 0 0 0 0 ...
0071 0 0 0 0 0 ...
0072 0 0 0 0 0 0 ...
0073 ...
0074 0 0 0 0 ...
0075 0 0 0 0 0 ...
0076 0 0 0 0 ...
0077 0 0 0 0 0 ...
0078 0 0 0 0 ...
0079 0 0 0 0 0 ...
0080 ...
0081 0 0 0 0 0 0 ...
0082 ];
0083
0084
0085 for i_params=1:length(sys.paramnames)
0086 cmd = [sys.paramnames{i_params}, '=sym(''', sys.paramnames{i_params},''');'];
0087 eval(cmd);
0088 end
0089
0090
0091
0092 f1 =10/20.35*1.8164e-14;
0093 A1 =[-5e-5+p_p1_N_TMAct_x 1 0 0 0 ;...
0094 0 -5e-5+p_p2_N_TMAct_x 1 0 0 ;...
0095 0 0 -5e-5+p_p3_N_TMAct_x 0 0 ;...
0096 0 0 0 -4.5e-5+p_p4_N_TMAct_x 0 ;...
0097 0 0 0 0 -1e-4+p_p5_N_TMAct_x];
0098 B1 =[ 0; 0; 1; 1; 1];
0099 C1 =f1*[3.409875000e-9+p_g1_N_TMAct_x, 0.0004114874890+p_g2_N_TMAct_x, 91.66094784+p_g3_N_TMAct_x, -90.69787011+p_g4_N_TMAct_x, -0.9584727300+p_g5_N_TMAct_x];
0100 D1 =f1*(1+p_g6_N_TMAct_x) ;
0101
0102 f2 =10/20.35*1.8106e-14;
0103 A2 =[-5e-5+p_p1_N_TMAct_y 1 0 0 0 ;...
0104 0 -5e-5+p_p2_N_TMAct_y 1 0 0 ;...
0105 0 0 -5e-5+p_p3_N_TMAct_y 0 0 ;...
0106 0 0 0 -4.5e-5+p_p4_N_TMAct_y 0 ;...
0107 0 0 0 0 -1e-4+p_p5_N_TMAct_y];
0108 B2 =[ 0; 0; 1; 1; 1];
0109 C2 =f2*[3.968625000e-9+p_g1_N_TMAct_y, 0.0004786624900+p_g2_N_TMAct_y, 106.6504479+p_g3_N_TMAct_y, -105.5263929+p_g4_N_TMAct_y, -1.119200000+p_g5_N_TMAct_y];
0110 D2 =f2*(1+p_g6_N_TMAct_y) ;
0111
0112 f3 =10/20.35*1.8262e-13;
0113 A3 =[-5e-5+p_p1_N_TMAct_z 1 0 0 0 ;...
0114 0 -5e-5+p_p2_N_TMAct_z 1 0 0 ;...
0115 0 0 -5e-5+p_p3_N_TMAct_z 0 0 ;...
0116 0 0 0 -4.5e-5+p_p4_N_TMAct_z 0 ;...
0117 0 0 0 0 -1e-4+p_p5_N_TMAct_z];
0118 B3 =[ 0; 0; 1; 1; 1];
0119 C3 =f3*[2.322875000e-9+p_g1_N_TMAct_z, 0.0002807874940+p_g2_N_TMAct_z, 62.49814869+p_g3_N_TMAct_z, -61.84802733+p_g4_N_TMAct_z, -0.6460363600+p_g5_N_TMAct_z];
0120 D3 =f3*(1+p_g6_N_TMAct_z) ;
0121
0122 f4 =10/20.35*1.2985e-11;
0123 A4 =[-9.5e-5+p_p1_N_TMAct_t 1 0 0 ;...
0124 0 -9.5e-5+p_p2_N_TMAct_t 0 0 ;...
0125 0 0 -9e-5+p_p3_N_TMAct_t 0 ;...
0126 0 0 0 -1e-4+p_p4_N_TMAct_t];
0127 B4 =[ 0; 1; 1; 1 ];
0128 C4 =f4*[-0.001894924902+p_g1_N_TMAct_t, 38.36974950+p_g2_N_TMAct_t, 170.7544552+p_g3_N_TMAct_t, -209.1199847+p_g4_N_TMAct_t ];
0129 D4 =f4*(1+p_g5_N_TMAct_t) ;
0130
0131 f5 =10/20.35*1.2932e-11;
0132 A5 =[-9.5e-5+p_p1_N_TMAct_e 1 0 0 ;...
0133 0 -9.5e-5+p_p2_N_TMAct_e 1 0 ;...
0134 0 0 -9.5e-5+p_p3_N_TMAct_e 0 ;...
0135 0 0 0 -1e-4+p_p4_N_TMAct_e];
0136 B5 =[ 0; 0; 1; 1 ];
0137 C5 =f5*[8.897160875e-9+p_g1_N_TMAct_e, -0.001959277150+p_g2_N_TMAct_e, 392.6841350+p_g3_N_TMAct_e, -392.6800000+p_g4_N_TMAct_e ];
0138 D5 =f5*(1+p_g5_N_TMAct_e) ;
0139
0140 f6 =10/20.35*2.5628e-12;
0141 A6 =[-9.5e-5+p_p1_N_TMAct_p 1 0 0 ;...
0142 0 -9.5e-5+p_p2_N_TMAct_p 1 0 ;...
0143 0 0 -9.5e-5+p_p3_N_TMAct_p 0 ;...
0144 0 0 0 -1e-4+p_p4_N_TMAct_p];
0145 B6 =[ 0; 0; 1; 1 ];
0146 C6 =f6*[1.560165288e-8+p_g1_N_TMAct_p, -0.003439734350+p_g2_N_TMAct_p, 689.4850150+p_g3_N_TMAct_p, -689.4800000+p_g4_N_TMAct_p ];
0147 D6 =f6*(1+p_g5_N_TMAct_p) ;
0148
0149 A =blkdiag(A1, A2, A3, A4, A5, A6, A1, A2, A3, A4, A5, A6);
0150 B_TMAct_noise =blkdiag(B1, B2, B3, B4, B5, B6, B1, B2, B3, B4, B5, B6);
0151 C =blkdiag(C1, C2, C3, C4, C5, C6, C1, C2, C3, C4, C5, C6);
0152 D_TMAct_noise =blkdiag(D1, D2, D3, D4, D5, D6, D1, D2, D3, D4, D5, D6);
0153
0154 B_TMAct_DC =zeros(54,12);
0155 D_TMAct_DC =eye(12) + diag([p_gDC_N_TMAct_x, p_gDC_N_TMAct_y, p_gDC_N_TMAct_z, p_gDC_N_TMAct_t, p_gDC_N_TMAct_e, p_gDC_N_TMAct_p, ...
0156 p_gDC_N_TMAct_x, p_gDC_N_TMAct_y, p_gDC_N_TMAct_z, p_gDC_N_TMAct_t, p_gDC_N_TMAct_e, p_gDC_N_TMAct_p ]);
0157
0158
0159
0160
0161
0162
0163
0164 sys.name = 'NSF_TMActuation';
0165
0166 sys.amats = {A};
0167 sys.bmats = {B_TMAct_noise B_TMAct_DC};
0168 sys.cmats = {C};
0169 sys.dmats = {D_TMAct_noise D_TMAct_DC};
0170 sys.timestep = 0;
0171
0172 sys.ssnames = {'NSF_TMActuation'};
0173
0174 sys.inputnames = {'Noise_F_TMAct' 'DC_F_TMAct'};
0175 sys.inputvarnames = ...
0176 {{'n_fx1_TMAct' 'n_fy1_TMAct' 'n_fz1_TMAct' 'n_tx1_TMAct' 'n_ty1_TMAct' 'n_tz1_TMAct' ...
0177 'n_fx2_TMAct' 'n_fy2_TMAct' 'n_fz2_TMAct' 'n_tx2_TMAct' 'n_ty2_TMAct' 'n_tz2_TMAct'}...
0178 {'DC_fx1_TMAct' 'DC_fy1_TMAct' 'DC_fz1_TMAct' 'DC_tx1_TMAct' 'DC_ty1_TMAct' 'DC_tz1_TMAct'...
0179 'DC_fx2_TMAct' 'DC_fy2_TMAct' 'DC_fz2_TMAct' 'DC_tx2_TMAct' 'DC_ty2_TMAct' 'DC_tz2_TMAct'}...
0180 };
0181
0182 sys.outputnames = {'Dist_F_TMAct'};
0183 sys.outputvarnames = ...
0184 {{'Dist_fx1_TMAct' 'Dist_fy1_TMAct' 'Dist_fz1_TMAct' 'Dist_tx1_TMAct' 'Dist_ty1_TMAct' 'Dist_tz1_TMAct'...
0185 'Dist_fx2_TMAct' 'Dist_fy2_TMAct' 'Dist_fz2_TMAct' 'Dist_tx2_TMAct' 'Dist_ty2_TMAct' 'Dist_tz2_TMAct'}};
0186
0187
0188 end
0189