%% ABOUT THIS FILE % ---------------------------------------------------------------------- % Type-B SAS for KAGRA % Coded by Y. Fujii on July 21th, 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); %% MODEL ---------------------------------------------------------------------------- addpath('servofilter'); % Add path to servo servo_damp2; % Damping MODE rmpath ('servofilter'); % Remove path to servo %% IMPORT SIMULINK MODEL ------------------------------------------------------------- mdlfile='typeBsimctrl'; st =linmod(mdlfile); invl =strrep(st.InputName, [mdlfile,'/'],''); outvl =strrep(st.OutputName,[mdlfile,'/'],''); sysc =ss(st.a,st.b,st.c,st.d,'inputname',invl,'outputname',outvl); %% FREQUENCY ---------------------------------------------------------------------- freq1=logspace(-2,3,1001); freq2=logspace(-3,2,1001); freq=logspace(-2,2,1001); %%% --- Preperation for PLOT --- %%% output_dir = 'figures/CLTF'; % bodesusplot_syscmp(sys1,sys2,inv,outv,freq,varargin) %% TRANSFER FUNCTION F0 ---------------------------------------------------------------------- bodesusplotcmp(sysc0, sysc, 'actLIP','LVDT_LIP',freq2,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_LIP_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actTIP','LVDT_TIP',freq2,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_TIP_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actYIP','LVDT_YIP',freq2,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_YIP_damp.pdf', output_dir); export_fig(figname) %% TRANSFER FUNCTION IM ---------------------------------------------------------------------- bodesusplotcmp(sysc0, sysc, 'actLIM','OSEM_LIM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_LIM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actTIM','OSEM_TIM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_TIM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actVIM','OSEM_VIM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_VIM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actRIM','OSEM_RIM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_RIM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actPIM','OSEM_PIM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_PIM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actYIM','OSEM_YIM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_YIM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actPIM','OpLev_PTM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_PIM2PTM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actYIM','OpLev_YTM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_YIM2YTM_damp.pdf', output_dir); export_fig(figname) %% TRANSFER FUNCTION TM ---------------------------------------------------------------------- bodesusplotcmp(sysc0, sysc, 'actLTM','OpLev_LTM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_LTM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actPTM','OpLev_PTM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_PTM_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actYTM','OpLev_YTM',freq,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_YTM_damp.pdf', output_dir); export_fig(figname) %% TRANSFER FUNCTION GAS ---------------------------------------------------------------------- bodesusplotcmp(sysc0, sysc, 'actGASF0','LVDT_GASF0',freq2,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_GASF0_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actGASF1','LVDT_GASF1',freq2,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_GASF1_damp.pdf', output_dir); export_fig(figname) bodesusplotcmp(sysc0, sysc, 'actGASBF','LVDT_GASBF',freq2,... {'Control OFF','Control ON'}); figname = sprintf('%s/CLTF_GASBF_damp.pdf', output_dir); export_fig(figname)