function Elec = CMS_filters() inv_amp = @(Z1,Z2) -Z2/Z1;%inverting amplifier non_inv_amp = @(Z1,Z2) 1+Z2/Z1;% non-inverting amplifier par_imp = @(Z1,Z2) 1/(1/Z1+1/Z2); % impedance of paralel connection with Z1 and Z2 ser_imp = @(Z1,Z2) Z1 + Z2; % impedance of siriese connection with Z1 and Z2 cap = @(C) zpk([],[0],[1/C]); res = @(R) R; v_dev = @(Z1,Z2) Z2/(Z1+Z2);%voltage devider gen_fil = @(Z1,Z2,Z3,Z4,Z5,Z6,Z7)... -((1/Z1)*((1/Z5)+(1/Z6)+(1/Z7))-(1/Z7)*((1/Z3)+((Z2+Z3)/Z3)*(1/Z1)+((Z2+Z3)/Z3)*(1/Z4)))... /((1/Z4)*((1/Z5)+(1/Z6)+(1/Z7))-(1/Z6)*((1/Z3)+((Z2+Z3)/Z3)*(1/Z1)+((Z2+Z3)/Z3)*(1/Z4)));%generic filter Elec = containers.Map; NL = 1e60; % Common Compensation R68 = 1.20e3; R69 = 120e3; R70 = 1.20e3; C117 = 1.00e-9; C121 = 33.0e-9; %common bst1 C114 = 1e-9; C118 = 100e-9; R71 = 100; R72 = 1.5e3; R77 = 82; %common bst2 C115 = 1e-9; C119 = 100e-9; R73 = 100; R74 = 1.5e3; R78 = 82; %common bst3 C116 = 1e-9; C120 = 100e-9; R75 = 100; R76 = 4.99e3; R79 = 374; %common option Elec('common_option') = 1; %common generic % C198 = 1e-60; % C201 = 1e-60; % R129 = 1e-60; % C199 = 1e-60; % C202 = 1e-60; % R130 = 1e-60; % R131 = 1e60; % C205 = 1e-60; % C206 = 1e-60; % C207 = 1e-60; % C208 = 1e-60; % R132 = 1e60; % R125 = 1e60; % R128 = 1e-60; % C194 = 1e-60; % C195 = 1e-60; % R127 = 1e60; Elec('common_generic') = 1; %fast option Elec('fast_option') = 1; %fast HPF C275 = 20e-6; C279 = 1e-9; R178 = 1.5e3; %slow bst R144 = 1.2e3; R145 = 1.20e3; R140 = 120e3; C222 = 1e-9; C225 = 330e-9; %slow comp R155 = 1.20e3; R147 = 0; C220 = 330e-9; C221 = 1e-9; R146 = 120e3; R143 = 1.20e3; %slow option Elec('slow_option') = 1; %common generic Elec('slow_generic') = 1; %slow LPF R170 = 3.32e3; R168 = 3.32e3; C260 = 1e-60; C261 = 470e-12; R172 = 100; %slow mon generic % Elec('slow_mon_generic') = 1; C245 = 330e-9; C248 = 1e-9; C246 = 330e-9; C249 = 1e-9; R164 = 48.7e3; R165 = 48.7e3; R166 = 2.00e3; C257 = 1e-60; C256 = 1e60; C258 = 1e60; C259 = 1e-60; R167 = 14.3e3; R158 = 374; R160 = 3.32e3; C241 = 1e-60; C242 = 180e-12; R160 = 3.32e3; R159 = 1e60; %slow mon output R157 = 33.2e3; C243 = 10e-12; R161 = 3.32e3; R162 = 100; Elec('common_comp') = minreal(inv_amp(res(R68),par_imp(res(R69),ser_imp(res(R70),par_imp(cap(C117),cap(C121)))))); Elec('common_bst1') = minreal(non_inv_amp(res(R77),par_imp(res(R72),par_imp(cap(C114),cap(C118))))); Elec('common_bst2') = minreal(non_inv_amp(res(R78),par_imp(res(R74),par_imp(cap(C115),cap(C119))))); Elec('common_bst3') = minreal(non_inv_amp(res(R79),par_imp(res(R76),par_imp(cap(C116),cap(C120))))); Elec('fast_HPF') = minreal(tf([R178*(C275+C279) 0],[R178*(C275+C279),1])^2); Elec('slow_bst') = minreal(inv_amp(res(R144),par_imp(res(R140),ser_imp(res(R145),par_imp(cap(C222),cap(C225)))))); Elec('slow_comp') = minreal(inv_amp(res(R155),par_imp(res(R146),ser_imp(res(R147),par_imp(cap(C220),cap(C221)))))); Elec('slow_LPF') = minreal(v_dev(R172,R168)*inv_amp(res(R170),par_imp(ser_imp(res(R168),res(R172)),par_imp(cap(C260),cap(C261))))); % comgen = containers.Map; % comgen('Z1')= par_imp(par_imp(cap(C198),cap(C201)),res(R129)); % comgen('Z2')= par_imp(par_imp(cap(C199),cap(C202)),res(R130)); % comgen('Z3')= ser_imp(res(R131),par_imp(cap(C205),cap(C206))); % comgen('Z4')= ser_imp(res(R132),par_imp(cap(C208),cap(C207))); % comgen('Z5')= res(R125); % comgen('Z6')= par_imp(par_imp(cap(C194),cap(C195)),res(R128)); % comgen('Z7')= res(R127); % % Elec('common_generic') = gen_fil(comgen('Z1'),comgen('Z2'),comgen('Z3'),comgen('Z4'),... % comgen('Z5'),comgen('Z6'),comgen('Z7')); smongen = containers.Map;%slow monitor channel generic filter smongen('Z1')= par_imp(par_imp(cap(C245),cap(C248)),res(R164)); smongen('Z2')= par_imp(par_imp(cap(C246),cap(C249)),res(R165)); smongen('Z3')= ser_imp(res(R166),par_imp(cap(C257),cap(C256))); smongen('Z4')= ser_imp(res(R167),par_imp(cap(C258),cap(C259))); smongen('Z5')= res(R158); smongen('Z6')= par_imp(par_imp(cap(C242),cap(C241)),res(R160)); smongen('Z7')= res(R159); Elec('slow_mon_generic') = minreal(gen_fil(smongen('Z1'),smongen('Z2'),smongen('Z3'),smongen('Z4'),... smongen('Z5'),smongen('Z6'),smongen('Z7'))); Elec('slow_mon_output') = minreal(v_dev(R162,R157)*inv_amp(res(R161),par_imp(ser_imp(res(R157),res(R162)),cap(C243)))); end