Home > classes > @ssm > model_Interferometer_readout_xcpl.m

model_Interferometer_readout_xcpl

PURPOSE ^

defines a model for the laser read out cross talk

SYNOPSIS ^

function [sys, VERSION] = model_Interferometer_readout_xcpl

DESCRIPTION ^

 defines a model for the laser read out cross talk
 ONLY THE CONSTRUCTOR SHOULD CALL THIS PRIVATE FUNCTION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: model_Laser_ro defines a 
 for the laser read out

 CALL: [sys, VERSION] = model_Interferometer_readout_xcpl 
                         
 
 VERSION: $Id: $

 HISTORY: 01-04-2008 M Weyrich
 23-04-2008 A Grynagier
 

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [sys, VERSION] = model_Interferometer_readout_xcpl
0002 % defines a model for the laser read out cross talk
0003 % ONLY THE CONSTRUCTOR SHOULD CALL THIS PRIVATE FUNCTION
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: model_Laser_ro defines a
0007 % for the laser read out
0008 %
0009 % CALL: [sys, VERSION] = model_Interferometer_readout_xcpl
0010 %
0011 %
0012 % VERSION: $Id: $
0013 %
0014 % HISTORY: 01-04-2008 M Weyrich
0015 % 23-04-2008 A Grynagier
0016 %
0017 %
0018 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0019 VERSION ='$Id:$';
0020 utils.helper.msg(utils.const.msg.MNAME, ['running ', mfilename]);
0021 
0022 %% creating ssm
0023 sys =ssm;
0024 
0025 % parameters in subsystem
0026 sys.paramnames = ...
0027     {...% work point params
0028      'p_r1x_H1' 'p_r1y_H1' 'p_r1z_H1' 'p_theta1' 'p_eta1'  'p_phi1' ...
0029      'p_r2x_H2' 'p_r2y_H2' 'p_r2z_H2' 'p_theta2' 'p_eta2'  'p_phi2' ...
0030      ...% geometric params (between frame B and H1)
0031      'p_rH1x_B' 'p_rH1y_B' 'p_rH1z_B' 'p_thetaH1' 'p_etaH1' 'p_phiH1' ...
0032      'p_rH2x_B' 'p_rH2y_B' 'p_rH2z_B' 'p_thetaH2' 'p_etaH2' 'p_phiH2' ...
0033      ...% laser beam linear equation params
0034      'p_ax' 'p_ay' 'p_az' 'p_bx1' 'p_by1' 'p_bz1' 'p_bx2' 'p_by2' 'p_bz2' ...
0035     };           
0036 sys.paramvalues = ...
0037      [...% work point params
0038      0 0 0  0 0 0 ...
0039      0 0 0  0 0 0 ...
0040      ...% geometric params (between frame B and H1)
0041      0 0 0  0 0 0 ...
0042      0 0 0  0 0 0 ...
0043      ...% laser beam linear equation params
0044      0 0 0  0 0 0  0 0 0 ...
0045      ];                                         
0046 sys.paramsigmas = ...
0047     [...% work point params
0048      0 0 0  0 0 0 ...
0049      0 0 0  0 0 0 ...
0050      ...% geometric params (between frame B and H1)
0051      0 0 0  0 0 0 ...
0052      0 0 0  0 0 0 ...
0053      ...% laser beam linear equation params
0054      0 0 0  0 0 0  0 0 0 ...
0055      ];
0056  
0057 %% declaring symbolic parameters
0058 for i_params=1:length(sys.paramnames)
0059    cmd = [sys.paramnames{i_params}, '=sym(''', sys.paramnames{i_params},''');'];
0060    eval(cmd);
0061 end
0062 
0063 %%%%%%%%%%%%%%%%%%%%%%%%%% START BUILDING PARAMETRIC SUBSYTEM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0064 %  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0065 
0066 %% Numerical Definitions
0067 L_TM1 = 0.046;   % Edge lengths [m] of test mass cubes
0068 L_TM2 = 0.046;   % Edge lengths [m] of test mass cubes
0069 
0070 rB_M = [9.4e-3; 16.4e-3; 478.9e-3]; %position of COM
0071 rO_M = [0; 0; 0.6093]; %position of optical bench frame
0072 rH1_M = [0.376/2; 0; 0.6093]; %nominal position of housing
0073 rH2_M = [-0.376/2; 0; 0.6093];
0074 alphaH1_0 = [0; 0; 0];
0075 alphaH2_0 = [0; 0; 0];
0076 %working point TM
0077 r1_H1_0 = [0; 0; 0]; 
0078 alpha1_0 = [0; 0; 0]; 
0079 r2_H2_0 = [0; 0; 0]; 
0080 alpha2_0 = [0; 0; 0];
0081 
0082 %% parametric vector definitions
0083 r1_H1 = r1_H1_0 + [p_r1x_H1; p_r1y_H1; p_r1z_H1] ;
0084 alpha1 = alpha1_0 + [p_theta1; p_eta1; p_phi1] ; 
0085 r2_H2 = r2_H2_0 + [p_r2x_H2; p_r2y_H2; p_r2z_H2] ;
0086 alpha2 = alpha2_0 + [p_theta2; p_eta2; p_phi2] ; 
0087 
0088 rH1_B = -rB_M + rH1_M + [p_rH1x_B; p_rH1y_B; p_rH1z_B];
0089 alphaH1 = alphaH1_0 + [p_thetaH1; p_etaH1; p_phiH1];
0090 rH2_B = -rB_M + rH2_M + [p_rH2x_B; p_rH2y_B; p_rH2z_B];
0091 alphaH2 = alphaH2_0 + [p_thetaH2; p_etaH2; p_phiH2];
0092 %% Transformation Matrices
0093 T_H1_B = ssm.T_ZYX_rot(alphaH1); T_B_H1 = T_H1_B.';
0094 T_H2_B = ssm.T_ZYX_rot(alphaH2); T_B_H2 = T_H2_B.';
0095 T_T1_H1 = ssm.T_ZYX_rot(alpha1);  T_H1_T1 = T_T1_H1.';
0096 T_T2_H2 = ssm.T_ZYX_rot(alpha2);  T_H2_T2 = T_T2_H2.';
0097 
0098 T_B_T1 = T_B_H1*T_H1_T1;  T_T1_B = T_B_T1.';
0099 T_B_T2 = T_B_H2*T_H2_T2;  T_T2_B = T_B_T2.';
0100 
0101 %% frame change H to O
0102 % input is X_Hin ,input vector (TM pos&att in H)
0103 X_Hin = [r1_H1; alpha1; r2_H2; alpha2];
0104 X_O = [-rO_M+rB_M+rH1_B; alphaH1; -rO_M+rB_M+rH2_B; alphaH2] + [T_B_H1*X_Hin(1:3); T_B_H1*X_Hin(4:6); T_B_H1*X_Hin(7:9); T_B_H1*X_Hin(10:12)];
0105 %% reflection point of laser beam in O
0106 %normal vector of reflection plane transformed to O frame: (in test mass frame [-1;0;0] for TM1,[1;0;0] for TM2)
0107 n1_refl_O =  T_B_T1*[-1;0;0];
0108 n2_refl_O =  T_B_T2*[ 1;0;0];
0109 %laser beam linear equation params (a+lamda*b, where b is a unit vector in direction of laser beam)
0110 a = [0; 0; 0]+[p_ax; p_ay; p_az];  
0111 b1 = [1; 0; 0]+[p_bx1; p_by1; p_bz1]; b2 = [-1; 0; 0]+[p_bx2; p_by2; p_bz2];
0112 %calculate lamda
0113 lamda1 = (L_TM1/2 + X_O(1:3).'*n1_refl_O - a.'*n1_refl_O)/(b1.'*n1_refl_O);
0114 lamda2 = (L_TM2/2 + X_O(7:9).'*n2_refl_O - a.'*n2_refl_O)/(b2.'*n2_refl_O);
0115 
0116 Xb1_O = a + lamda1*b1;
0117 Xb2_O = a + lamda2*b2;
0118 
0119 %% cross talk
0120 b_x1 = +1.0 ;
0121 b_y1phi1 = -1.0 ;
0122 b_z1eta1 = +1.0 ;
0123 b_phi1q = 2.1e-1 ;
0124 b_eta1q = 1.5e-1 ;
0125 bq_x1 = -1.0; %+1.0
0126 bq_x2 = +1.0; %-1.0
0127 bq_y1phi1 = -1.0;
0128 bq_z1eta1 = +1.0;
0129 bq_y2phi2 = +1.0;
0130 bq_z2eta2 = -1.0;
0131 bq_phi1q = 1.9e-1;
0132 bq_eta1q = 1.6e-1;
0133 bq_phi2q = 2.3e-1;
0134 bq_eta2q = 1.3e-1;
0135 
0136 ro_x1 = b_x1*X_O(1)+ b_y1phi1*(Xb1_O(2)-X_O(2))*X_O(6) + b_z1eta1*(Xb1_O(3)-X_O(3))*X_O(5) + b_phi1q*(X_O(6))^2 ...
0137        + b_eta1q*(X_O(5))^2;
0138 ro_dx = bq_x1*X_O(1) + bq_x2*X_O(7) + bq_y1phi1*(Xb1_O(2)-X_O(2))*X_O(6) + bq_y2phi2*(Xb2_O(2)-X_O(8))*X_O(12) ...
0139       + bq_z1eta1*(Xb1_O(3)-X_O(3))*X_O(5) + bq_z2eta2*(Xb2_O(3)-X_O(9))*X_O(11) + bq_phi1q*(X_O(6))^2 + bq_eta1q*(X_O(5))^2 ...
0140       + bq_phi2q*(X_O(12))^2 + bq_eta2q*(X_O(11))^2 ;
0141 % ro_eta1 = X_O(5);
0142 % ro_phi1 = X_O(6);
0143 % ro_eta2 = X_O(11);
0144 % ro_phi2 = X_O(12);
0145 
0146 %% frame change backwards O to H
0147 x1_Hout = T_H1_B(1,1)*(-rH1_B(1) - rB_M(1) +rO_M(1) + ro_x1);
0148 % no cross coupling for angles? ->perfect readout assumed
0149 % output:
0150 X_Hout = [x1_Hout; X_Hin(5); X_Hin(6); ro_dx; X_Hin(11); X_Hin(12) ];
0151 
0152 %% linearize for D matrix entry
0153 D_lin = jacobian(X_Hout,X_Hin);
0154 X_Hout0 = subs(X_Hout,{'p_r1x_H1' 'p_r1y_H1' 'p_r1z_H1' 'p_theta1' 'p_eta1'  'p_phi1' ...
0155                        'p_r2x_H2' 'p_r2y_H2' 'p_r2z_H2' 'p_theta2' 'p_eta2'  'p_phi2'},{0 0 0 0 0 0 0 0 0 0 0 0});
0156                    
0157 %% Matrices
0158 D_LTP = [zeros(6,3) D_lin];
0159 
0160 D_Noise_Interferometer_ro = eye(6);
0161 
0162 %%%%%%%%%%%%%%%%%%%%%%%%%% END BUILDING PARAMETRIC SUBSYTEM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0163 %  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0164 
0165 sys.name ='Interferometer_readout_xcpl';
0166 
0167 sys.amats = cell(0,0);  
0168 sys.bmats = cell(0,2);
0169 sys.cmats = cell(1,0);
0170 sys.dmats = {D_LTP  D_Noise_Interferometer_ro};
0171 sys.timestep = 0;
0172 
0173 sys.inputnames = {'SC_TM_attitude' 'Dist_Ifo_readout' };
0174 sys.inputvarnames = {...
0175     {'thetaB' 'etaB' 'phiB'...
0176      'rx1_H1' 'ry1_H1' 'rz1_H1' 'theta1' 'eta1' 'phi1' ...
0177      'rx2_H2' 'ry2_H2' 'rz2_H2' 'theta2' 'eta2' 'phi2' }...
0178      {'Dist_x1_Ifo_ro' 'Dist_eta1_Ifo_ro' 'Dist_phi1_Ifo_ro' ...
0179       'Dist_dx_Ifo_ro' 'Dist_eta2_Ifo_ro' 'Dist_phi2_Ifo_ro'}...
0180     };
0181 
0182 sys.outputnames = {'Ifo_readout'};
0183 sys.outputvarnames = {{'rx1_H1_Ifo' 'eta1_Ifo' 'phi1_Ifo' 'dx_Ifo' 'eta2_Ifo' 'phi2_Ifo' }};
0184    
0185 
0186 
0187 end

Generated on Wed 27-Aug-2008 13:30:29 by m2html © 2003