%% ABOUT THIS FILE % ---------------------------------------------------------------------- % Type-B1 prototype for KAGRA % Coded by Y. Fujii on June 3rd, 2018 % ---------------------------------------------------------------------- %% PRELIMINARY clear all; % Clear workspace close all; % Close plot windows addpath('../../utility'); % Add path to utilities % addpath('/usr/local/matlab/altmany-export_fig-76bd7fa'); g = 9.81; %% IMPORT SUSPENSION MODEL matfile='SR3_180502'; load([matfile,'mdl.mat']); %% TUNING DAMPER % This part compensates the failure in converting the structural damping to % viscous damping. % REDUCE DAMPING ON IM sys1.a(37,37)=sys1.a(37,37)/3.e3; % RIR sys1.a(43,43)=sys1.a(43,43)/3.e3; % RIM %sys1.a(40,40)=sys1.a(40,40)/30; % RRM % INCREASE DAMPING ON F0 sys1.a(13,13)=sys1.a(13,13)/3.e3; % LF0 sys1.a(14,14)=sys1.a(14,14)/3.e3; % TF0 sys1.a(15,15)=sys1.a(15,15)*300; % YF0 % INCREASE DAMPING ON MD %sys1.a(16,16)=sys1.a(16,16)/5000; % LMD %sys1.a(17,17)=sys1.a(17,17)/5000; % TMD % INCREASE DAMPING ON RM, TM %sys1.a(42,42)=sys1.a(42,42)*30; % YRM %sys1.a(48,48)=sys1.a(48,48)*300; % YTM % INCREASE DAMPING ON VTM %sys1.a(45,45)=sys1.a(45,45)*100; % VTM %% IMPORT SERVO FILTERS addpath('servofilter'); % Add path to servo DefaultParameters; % NO CONTROL MODE rmpath ('servofilter'); % Remove path to servo %% IMPORT SIMULINK MODEL mdlfile='typeBsimctrl'; % typeB_bKAGRA ver. 20180502 st =linmod(mdlfile); invl =strrep(st.InputName, [mdlfile,'/'],''); outvl =strrep(st.OutputName,[mdlfile,'/'],''); sysc0 =ss(st.a,st.b,st.c,st.d,'inputname',invl,'outputname',outvl); %% FREQUENCY freq1=logspace(-2,1,1001); freq2=logspace(-2,2,1001); %% TRANSFER FUNCTION IP data_LF0=importdata('sumconplot/forceTF/LF0.dat'); data_LF0=[data_LF0(:,1),data_LF0(:,2)/0.005039,data_LF0(:,3)]; data_TF0=importdata('sumconplot/forceTF/TF0.dat'); data_TF0=[data_TF0(:,1),data_TF0(:,2)/0.005039,data_TF0(:,3)]; data_YF0=importdata('sumconplot/forceTF/YF0.dat'); data_YF0=[data_YF0(:,1),data_YF0(:,2)/0.00903,data_YF0(:,3)]; bodesusplotSUMCONsimcmp(sysc0,'actLIP','LVDT_LIP',freq2, data_LF0,... 'ylim',[1e-6,1e2],'calibration', gain_act_LIP,'unit1','1'); export_fig('figures/TF/forceTFcomp_LIP.pdf') bodesusplotSUMCONsimcmp(sysc0,'actTIP','LVDT_TIP',freq2, data_TF0,... 'ylim',[1e-6,1e2],'calibration', gain_act_TIP,'unit1','1'); export_fig('figures/TF/forceTFcomp_TIP.pdf') bodesusplotSUMCONsimcmp(sysc0,'actYIP','LVDT_YIP',freq2, data_YF0,... 'ylim',[1e-6,1e2],'calibration', gain_act_YIP,'unit1','1'); export_fig('figures/TF/forceTFcomp_YIP.pdf') %% TRANSFER FUNCTION IM data_LIM=importdata('sumconplot/forceTF/LIM_OSEM.dat'); data_LIM=[data_LIM(:,1),data_LIM(:,2)/0.004607,data_LIM(:,3)]; data_TIM=importdata('sumconplot/forceTF/TIM_OSEM.dat'); data_TIM=[data_TIM(:,1),data_TIM(:,2)/0.004607,data_TIM(:,3)]; data_VIM=importdata('sumconplot/forceTF/VIM_OSEM.dat'); data_VIM=[data_VIM(:,1),data_VIM(:,2)/0.003651,data_VIM(:,3)]; data_RIM=importdata('sumconplot/forceTF/RIM_OSEM.dat'); data_RIM=[data_RIM(:,1),data_RIM(:,2)/0.5482,data_RIM(:,3)]; data_PIM=importdata('sumconplot/forceTF/PIM_OSEM.dat'); data_PIM=[data_PIM(:,1),data_PIM(:,2)/0.55334,data_PIM(:,3)]; data_YIM=importdata('sumconplot/forceTF/YIM_OSEM.dat'); data_YIM=[data_YIM(:,1),data_YIM(:,2)/2.58,data_YIM(:,3)]; data_LIM_Oplev=importdata('sumconplot/forceTF/LIM2LTMoplev.dat'); data_LIM_Oplev=[data_LIM_Oplev(:,1),data_LIM_Oplev(:,2)/0.000975,data_LIM_Oplev(:,3)]; data_PIM_Oplev=importdata('sumconplot/forceTF/PIM2PTMoplev.dat'); data_PIM_Oplev=[data_PIM_Oplev(:,1),data_PIM_Oplev(:,2)/0.5014,data_PIM_Oplev(:,3)]; data_YIM_Oplev=importdata('sumconplot/forceTF/YIM2YTMoplev.dat'); data_YIM_Oplev=[data_YIM_Oplev(:,1),data_YIM_Oplev(:,2)/2.496,data_YIM_Oplev(:,3)]; bodesusplotSUMCONsimcmp(sysc0,'actLIM','OSEM_LIM',freq2,data_LIM,... 'ylim',[1e-6,1e2],'calibration',gain_act_LIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_LIM.pdf') bodesusplotSUMCONsimcmp(sysc0,'actTIM','OSEM_TIM',freq2,data_TIM,... 'ylim',[1e-6,1e2],'calibration',gain_act_TIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_TIM.pdf') bodesusplotSUMCONsimcmp(sysc0,'actVIM','OSEM_VIM',freq2,data_VIM,... 'ylim',[1e-6,1e2],'calibration',gain_act_VIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_VIM.pdf') bodesusplotSUMCONsimcmp(sysc0,'actRIM','OSEM_RIM',freq2,data_RIM,... 'ylim',[1e-6,1e2],'calibration',gain_act_RIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_RIM.pdf') bodesusplotSUMCONsimcmp(sysc0,'actPIM','OSEM_PIM',freq2,data_PIM,... 'ylim',[1e-6,1e2],'calibration',gain_act_PIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_PIM.pdf') bodesusplotSUMCONsimcmp(sysc0,'actYIM','OSEM_YIM',freq2,data_YIM,... 'ylim',[1e-6,1e2],'calibration',gain_act_YIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_YIM.pdf') bodesusplotSUMCONsimcmp(sysc0,'actLIM','OpLev_LTM',freq2,data_LIM_Oplev,... 'ylim',[1e-6,1e2],'calibration',gain_act_LIM/0.1626,'unit1','1'); export_fig('figures/TF/forceTFcomp_LIM2LTM_OpSens.pdf') bodesusplotSUMCONsimcmp(sysc0,'actPIM','OpLev_PTM',freq2,data_PIM_Oplev,... 'ylim',[1e-6,1e2],'calibration',gain_act_PIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_PIM2PTM_OpLev.pdf') bodesusplotSUMCONsimcmp(sysc0,'actYIM','OpLev_YTM',freq2,data_YIM_Oplev,... 'ylim',[1e-6,1e2],'calibration',gain_act_YIM,'unit1','1'); export_fig('figures/TF/forceTFcomp_YIM2YTM_OpLev.pdf') %% TRANSFER FUNCTION TM data_LTM_Oplev=importdata('sumconplot/forceTF/LTM2LTMoplev.dat'); data_LTM_Oplev=[data_LTM_Oplev(:,1),data_LTM_Oplev(:,2)/0.005842,data_LTM_Oplev(:,3)]; data_PTM_Oplev=importdata('sumconplot/forceTF/PTM2PTMoplev.dat'); data_PTM_Oplev=[data_PTM_Oplev(:,1),data_PTM_Oplev(:,2)/0.8396,data_PTM_Oplev(:,3)]; data_YTM_Oplev=importdata('sumconplot/forceTF/YTM2YTMoplev.dat'); data_YTM_Oplev=[data_YTM_Oplev(:,1),data_YTM_Oplev(:,2)/0.3731,data_YTM_Oplev(:,3)]; bodesusplotSUMCONsimcmp(sysc0,'actLTM','OpLev_LTM',freq2,data_LTM_Oplev,... 'ylim',[1e-6,1e2],'calibration',gain_act_LTM,'unit1','1'); export_fig('figures/TF/forceTFcomp_LTM_Loplev.pdf') bodesusplotSUMCONsimcmp(sysc0,'actPTM','OpLev_PTM',freq2,data_PTM_Oplev,... 'ylim',[1e-6,1e2],'calibration',gain_act_PTM,'unit1','1'); export_fig('figures/TF/forceTFcomp_PTM2PTM_OpLev.pdf') bodesusplotSUMCONsimcmp(sysc0,'actYTM','OpLev_YTM',freq2,data_YTM_Oplev,... 'ylim',[1e-6,1e2],'calibration',gain_act_YTM,'unit1','1'); export_fig('figures/TF/forceTFcomp_YTM2YTM_OpLev.pdf') %% TRANSFER FUNCTION GAS data_VF0=importdata('sumconplot/forceTF/VF0_GAS.dat'); data_VF0=[data_VF0(:,1),data_VF0(:,2)/0.001134,data_VF0(:,3)]; data_VF1=importdata('sumconplot/forceTF/VF1_GAS.dat'); data_VF1=[data_VF1(:,1),data_VF1(:,2)/0.001478,data_VF1(:,3)]; data_VF2=importdata('sumconplot/forceTF/VBF_GAS.dat'); data_VF2=[data_VF2(:,1),data_VF2(:,2)/0.00363,data_VF2(:,3)]; bodesusplotSUMCONsimcmp(sysc0,'actGASF0','LVDT_GASF0',freq2, data_VF0,... 'ylim',[1e-6,1e2],'calibration',gain_act_GASF0,'unit1','1'); export_fig('figures/TF/forceTFcomp_VF0.pdf') bodesusplotSUMCONsimcmp(sysc0,'actGASF1','LVDT_GASF1',freq2, data_VF1,... 'ylim',[1e-6,1e2],'calibration',gain_act_GASF1,'unit1','1'); export_fig('figures/TF/forceTFcomp_VF1.pdf') bodesusplotSUMCONsimcmp(sysc0,'actGASBF','LVDT_GASBF',freq2, data_VF2,... 'ylim',[1e-6,1e2],'calibration',gain_act_GASBF,'unit1','1'); export_fig('figures/TF/forceTFcomp_VBF.pdf')