defines a solar noise model for the spacecraft ONLY THE CONSTRUCTOR SHOULD CALL THIS PRIVATE FUNCTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: model_Noise_solar defines a solar noise model for the spacecraft CALL: [sys, VERSION] = model_Noise_solar ***** There are no parameters ***** VERSION: $Id: $ HISTORY: 01-04-2008 M Weyrich 23-04-2008 A Grynagier Parametric model of the solar pressure noise shape filter TODO: ->introduce parameters, check how it could be done cause of complex poles in tf ->check if this is correct with DFACS ICD, equation to calculate actual solar pressure force ?!!% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 function [sys, VERSION] = model_NSF_solar 0002 % defines a solar noise model for the spacecraft 0003 % ONLY THE CONSTRUCTOR SHOULD CALL THIS PRIVATE FUNCTION 0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0005 % 0006 % DESCRIPTION: model_Noise_solar defines a solar noise model 0007 % for the spacecraft 0008 % 0009 % CALL: [sys, VERSION] = model_Noise_solar 0010 % 0011 % ***** There are no parameters ***** 0012 % 0013 % VERSION: $Id: $ 0014 % 0015 % HISTORY: 01-04-2008 M Weyrich 0016 % 23-04-2008 A Grynagier 0017 % 0018 %Parametric model of the solar pressure noise shape filter 0019 %TODO: ->introduce parameters, check how it could be done cause of 0020 % complex poles in tf 0021 % ->check if this is correct with DFACS ICD, equation to calculate 0022 % actual solar pressure force ?!!% 0023 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0024 VERSION = '$Id:$'; 0025 utils.helper.msg(utils.const.msg.MNAME, ['running ', mfilename]); 0026 0027 %% creating ssm 0028 sys = ssm; 0029 0030 % parameters in subsystem 0031 sys.paramnames = {}; 0032 sys.paramvalues = []; 0033 sys.paramsigmas = []; 0034 0035 %% declaring symbolic parameters 0036 for i_params=1:length(sys.paramnames) 0037 cmd = [sys.paramnames{i_params}, '=sym(''', sys.paramnames{i_params},''');']; 0038 eval(cmd); 0039 end 0040 0041 %%%%%%%%%%%%%%%%%%%%%%%%%% START BUILDING PARAMETRIC SUBSYTEM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0042 % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 0043 0044 a8 = 1.26e-4; b8 = 1.0; 0045 a7 = 1.033e-5; b7 = 4.599e-2; 0046 a6 = 4.697e-7; b6 = 1.412e-3; 0047 a5 = 1.085e-8; b5 = 2.805e-5; 0048 a4 = 2.131e-10; b4 = 4.379e-7; 0049 a3 = 2.520e-12; b3 = 4.183e-9; 0050 a2 = 2.025e-14; b2 = 2.516e-11; 0051 a1 = 7.985e-17; b1 = 7.899e-14; 0052 a0 = 1.733e-19; b0 = 1.257e-16; 0053 0054 num = [a8 a7 a6 a5 a4 a3 a2 a1 a0]; 0055 den = [b8 b7 b6 b5 b4 b3 b2 b1 b0]; 0056 0057 c_sol = 4.7679e-6; 0058 K = [-0.001746*1.2*c_sol ; -0.000327*1.2*c_sol ; -4.481537*1.2*c_sol ; 0.105122*1.2*c_sol ; -0.090562*1.2*c_sol ; -0.000686*1.2*c_sol]; 0059 0060 F_solar_tf = K*tf(num,den); 0061 F_solar_ss = ss(F_solar_tf); 0062 [A, B_sol_noise, C, D_sol_noise] = ssdata(F_solar_ss); 0063 0064 B_sol_DC = zeros(size(A,1),1); 0065 D_sol_DC = K; 0066 0067 %%%%%%%%%%%%%%%%%%%%%%%%%% END BUILDING PARAMETRIC SUBSYTEM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0068 % +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 0069 0070 %% 1_ADDING MATRICES TO SUBSYSTEM SAVING STRUCTURE 0071 %============================================================================================== 0072 0073 0074 sys.name = 'NSF_solar'; 0075 0076 sys.amats = {A}; 0077 sys.bmats = {B_sol_noise B_sol_DC}; 0078 sys.cmats = {C }; 0079 sys.dmats = {D_sol_noise D_sol_DC}; 0080 sys.timestep = 0; 0081 0082 sys.ssnames = {'NSF_solar'}; 0083 0084 sys.inputnames = {'Noise_F_solar' 'DC_F_solar'}; 0085 sys.inputvarnames = ... 0086 {{'n_f_solar' }... 0087 {'DC_f_solar' }... 0088 }; 0089 0090 sys.outputnames = {'Dist_F_solar'}; 0091 sys.outputvarnames = {{'Dist_fx_solar' 'Dist_fy_solar' 'Dist_fz_solar' 'Dist_tx_solar' 'Dist_ty_solar' 'Dist_tz_solar' }}; 0092 0093 end