User Definable Scaling Relationships

Prior to version 3.2, the secondary effects of the component scaling where assumed to be completely linear and were embedded within the component block diagrams and in miscellanous script files. In version 3.2, we have introduced user definable scaling relationships within the component datafiles. This allows users to develop and apply their own secondary scaling relationships. The primary impacts are still assumed to be linear. For example, changing fc_trq_scale from 1.0 to 1.1 still means that the torque capability of the engine will increase by 10%. However, you can now define the relationship between fc_trq_scale and engine mass. Since the change in mass due to an increase in torque output is not necessarily directly proportional (i.e. you could change any number of engine parameters to provide more torque with out significantly changing the engine block and accessories) therefore the relationship might be defined as fc_mass=fc_base_mass * 0.25 * fc_trq_scale. You could also include non-linear relationships like fc_mass=fc_base_mass*(0.02*(fc_trq_scale)^2+0.5*fc_trq_scale)+50 which would provide a engine mass that asymptotically approaches 50 kg as the fc_trq_scale approaches zero and increases via a second order relationship with increasing torque capability. Since this functionality has been implemented using inline functions, there really are no limitations as to the form of the function other than that you include all of the terms in the equation definition. If you need more information on using inline functions please refer to the matlab documentation.  There are a set of required input parameters however you are not required to use any of them.

The basic functional relationships are defined in table 1.

Component Required Input 
Output Default Equation
fuel converter fc_spd_scale
fc_mass fc_mass=(fc_base_mass+fc_acc_mass)* 
c1=c3=1; c2=c4=0
energy storage 
system (mass)
ess_mass ess_mass=(ess_module_mass)* 
c1=c3=1; c2=c4=0
exhaust system fc_pwr_scale
ex_mass ex_mass=(ex_mass)* (c1*fc_pwr_scale+c2)
c1=1; c2=0
motor controller mc_spd_scale
mc_mass mc_mass=(mc_mass)* 
c1=c3=1; c2=c4=0
generator gc_spd_scale
gc_mass gc_mass=(gc_mass)*
c1=c3=1; c2=c4=0
transmission gb_spd_scale
tx_mass tx_mass=(fd_mass+gb_mass)* 
c1=c3=1; c2=c4=0
energy storage 
system (resistance)
resistance scale factor 
(i.e. scaled resistance = base resistance * 
c1=c3=1; c2=c4=0

How to define your own scaling relationships

To use this functionality, you must define 1) the equation and 2) the coefficients of the equation.  Within each component file you will find a variable *scale_fun and *scale_coef.  The first defines the equation to be used and the second defines the coefficients of the equation.  For example in the fuel_converter file,

% user definable mass scaling function
fc_mass_scale_coef=[1 0 1 0]; % coefficients of mass scaling function

To customize this relationship you may either change the coefficient values or modify the relationship itself.  To change the relationship, redefine the first string in the fc_mass_scale_fun definition.  DO NOT CHANGE any other portion of this definition.  Your customized relationship MUST NOT USE variables other than those listed in the rest of the inline function definition.

The easiest way to develop your own relatioship is to create a fit to empirical data.  For example if we plot the module mass vs. ah capacity for the four NiMH battery modules in our library manufactured by Ovonic, Inc. we result in a relationship of the following form:

ess_mass = ess_mass * (c1 * ess_cap_scale + c2)
where c1=>>> and c2=>>>.

You should use caution in applying user definable scaling relationships.  Be aware that the relationships are only valid within the range of data that was used to develop the fit and should be developed based on similar technology type (e.g. all Li-ion, all SI, all CI,- not a mixture of CI and SI).

Return to ADVISOR Documentation

Last revised: [8/19/01] tm