Home > classes > @ssm > model_MPS.m

model_MPS

PURPOSE ^

defines a simple 1st order linear model with cross talk for the

SYNOPSIS ^

function [sys, VERSION] = model_MPS

DESCRIPTION ^

 defines a simple 1st order linear model with cross talk for the
 microprulsion feep thrusters 
 ONLY THE CONSTRUCTOR SHOULD CALL THIS PRIVATE FUNCTION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: model_MPS defines a simple 1st order linear model with cross
 talk for the microprulsion feep thrusters

 CALL: [sys, VERSION] = model_MPS 
                         
 ***** There are no parameters *****

 VERSION: $Id: $

 HISTORY: 01-04-2008 M Weyrich
 23-04-2008 A Grynagier
 
Parametric model of micropropulsion system
TODO : 
       this is a dummy, simply a PT1 system,->takes DFACS command and produces delayed(PT1)
       output forces, here it is assumed that six thrusters can produce
       forces commanded
       in B matrix cross coupling terms model imperfections
       of geometric attachements of thrusters, could also stand for
       distribution errors

       normally DFACS input should be distributed to the 12 thruster axes,
       then every thruster is a PT1 system with noise, output of these
       ones should be transformed back to SC body system and summed up to
       get the force produced by all 12 thrusters
       main problem is the distribution, cause it is impossible to produce
       negative thrust->nonlinearities
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [sys, VERSION] = model_MPS
0002 % defines a simple 1st order linear model with cross talk for the
0003 % microprulsion feep thrusters
0004 % ONLY THE CONSTRUCTOR SHOULD CALL THIS PRIVATE FUNCTION
0005 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0006 %
0007 % DESCRIPTION: model_MPS defines a simple 1st order linear model with cross
0008 % talk for the microprulsion feep thrusters
0009 %
0010 % CALL: [sys, VERSION] = model_MPS
0011 %
0012 % ***** There are no parameters *****
0013 %
0014 % VERSION: $Id: $
0015 %
0016 % HISTORY: 01-04-2008 M Weyrich
0017 % 23-04-2008 A Grynagier
0018 %
0019 %Parametric model of micropropulsion system
0020 %TODO :
0021 %       this is a dummy, simply a PT1 system,->takes DFACS command and produces delayed(PT1)
0022 %       output forces, here it is assumed that six thrusters can produce
0023 %       forces commanded
0024 %       in B matrix cross coupling terms model imperfections
0025 %       of geometric attachements of thrusters, could also stand for
0026 %       distribution errors
0027 %
0028 %       normally DFACS input should be distributed to the 12 thruster axes,
0029 %       then every thruster is a PT1 system with noise, output of these
0030 %       ones should be transformed back to SC body system and summed up to
0031 %       get the force produced by all 12 thrusters
0032 %       main problem is the distribution, cause it is impossible to produce
0033 %       negative thrust->nonlinearities
0034 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0035 VERSION ='$Id:$';
0036 utils.helper.msg(utils.const.msg.MNAME, ['running ', mfilename]);
0037 
0038 %% creating ssm
0039 sys =ssm ;
0040 
0041 % parameters in subsystem
0042 sys.paramnames = ...
0043     {...% time constants
0044     'p_T_fx' 'p_T_fy' 'p_T_fz' 'p_T_tx' 'p_T_ty' 'p_T_tz' ...
0045     ...% cross coupling (assuming geometric imperfections)
0046     'p_mps11'  'p_mps12'  'p_mps13'    'p_mps14'   'p_mps15'   'p_mps16' ...
0047     'p_mps21'  'p_mps22'  'p_mps23'    'p_mps24'   'p_mps25'   'p_mps26' ...
0048     'p_mps31'  'p_mps32'  'p_mps33'    'p_mps34'   'p_mps35'   'p_mps36' ...
0049     'p_mps41'  'p_mps42'  'p_mps43'    'p_mps44'   'p_mps45'   'p_mps46' ...
0050     'p_mps51'  'p_mps52'  'p_mps53'    'p_mps54'   'p_mps55'   'p_mps56' ...
0051     'p_mps61'  'p_mps62'  'p_mps63'    'p_mps64'   'p_mps65'   'p_mps66' ...
0052     };
0053 sys.paramvalues =  ...
0054     [ 0  0  0  0  0  0 ...
0055     ...% cross coupling (assuming geometric imperfections)
0056     0  0  0    0   0   0 ...
0057     0  0  0    0   0   0 ...    
0058     0  0  0    0   0   0 ...
0059     0  0  0    0   0   0 ...
0060     0  0  0    0   0   0 ...
0061     0  0  0    0   0   0 ...
0062     ];
0063 sys.paramsigmas =  ...
0064     [ 0  0  0  0  0  0 ...
0065     ...% cross coupling (assuming geometric imperfections)
0066     0  0  0    0   0   0 ...
0067     0  0  0    0   0   0 ...    
0068     0  0  0    0   0   0 ...
0069     0  0  0    0   0   0 ...
0070     0  0  0    0   0   0 ...
0071     0  0  0    0   0   0 ...
0072     ];
0073 
0074 %% declaring symbolic parameters
0075 for i_params=1:length(sys.paramnames)
0076    cmd = [sys.paramnames{i_params}, '=sym(''', sys.paramnames{i_params},''');'];
0077    eval(cmd);
0078 end
0079 
0080 
0081 %%%%%%%%%%%%%%%%%%%%%%%%%% START BUILDING PARAMETRIC SUBSYTEM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0082 %  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0083 
0084 T_fx = 0.038 + p_T_fx; % time constant 0.038 in DFACS ICD : 0,190 for 95% resp time
0085 T_fy = 0.038 + p_T_fy;
0086 T_fz = 0.038 + p_T_fz;
0087 T_tx = 0.038 + p_T_tx;
0088 T_ty = 0.038 + p_T_ty;
0089 T_tz = 0.038 + p_T_tz;
0090 
0091 A = [ -1/T_fx  0       0       0       0       0 ;...
0092       0       -1/T_fy  0       0       0       0 ;...
0093       0        0      -1/T_fz  0       0       0 ;...
0094       0        0       0      -1/T_tx  0       0 ;...
0095       0        0       0       0      -1/T_ty  0 ;...
0096       0        0       0       0       0      -1/T_tz ];
0097   
0098 
0099 B = [ (1+p_mps11)/T_fx  p_mps12/T_fx       p_mps13/T_fx       p_mps14/T_fx       p_mps15/T_fx       p_mps16/T_fx ;...
0100       p_mps21/T_fy      (1+p_mps22)/T_fy   p_mps23/T_fy       p_mps24/T_fy       p_mps25/T_fy       p_mps26/T_fy ;...
0101       p_mps31/T_fz       p_mps32/T_fz     (1+p_mps33)/T_fz    p_mps34/T_fz       p_mps35/T_fz       p_mps36/T_fz ;...
0102       p_mps41/T_tx       p_mps42/T_tx      p_mps43/T_tx       (1+p_mps44)/T_tx   p_mps45/T_tx       p_mps46/T_tx ;...
0103       p_mps51/T_ty       p_mps52/T_ty      p_mps53/T_ty       p_mps54/T_ty       (1+p_mps55)/T_ty   p_mps56/T_ty ;...
0104       p_mps61/T_tz       p_mps62/T_tz      p_mps63/T_tz       p_mps64/T_tz       p_mps65/T_tz       (1+p_mps66)/T_tz ];
0105 
0106 %          F_mps_c  F_susp_c
0107 B_DFACS = [ B       zeros(6,12)];
0108 
0109 C = eye(6); 
0110 
0111 D_DFACS = [ zeros(6)   zeros(6,12)];
0112 
0113 %%%%%%%%%%%%%%%%%%%%%%%%%% END BUILDING PARAMETRIC SUBSYTEM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0114 %  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0115 
0116 % 1_ADDING MATRICES TO SUBSYSTEM SAVING STRUCTURE
0117 %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
0118 
0119 
0120 sys.name = 'MPS';
0121 
0122 sys.amats    = {A};
0123 sys.bmats    = {B_DFACS};
0124 sys.cmats    = {C};
0125 sys.dmats    = {D_DFACS};
0126 sys.timestep = 0;
0127 
0128 sys.ssnames    = {'MPS'};
0129 sys.ssvarnames = {{'fx_mps' 'fy_mps' 'fz_mps' 'tx_mps' 'ty_mps' 'tz_mps'}};
0130 
0131 sys.inputnames    = {'DFACS_command'};
0132 sys.inputvarnames = {...
0133     {'fx_mps_c' 'fy_mps_c' 'fz_mps_c' 'tx_mps_c' 'ty_mps_c' 'tz_mps_c'...
0134      'fx1_TMAct_c' 'fy1_TMAct_c' 'fz1_TMAct_c' 'tx1_TMAct_c' 'ty1_TMAct_c' 'tz1_TMAct_c'...
0135      'fx2_TMAct_c' 'fy2_TMAct_c' 'fz2_TMAct_c' 'tx2_TMAct_c' 'ty2_TMAct_c' 'tz2_TMAct_c'}...
0136      };
0137 
0138 sys.outputnames    = {'F_mps'};
0139 sys.outputvarnames = {{'fx_mps' 'fy_mps' 'fz_mps' 'tx_mps' 'ty_mps' 'tz_mps'}};
0140 end

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