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 Parameters |
Output | Default Equation |
fuel converter | fc_spd_scale fc_trq_scale fc_base_mass fc_acc_mass fc_fuel_mass |
fc_mass | fc_mass=(fc_base_mass+fc_acc_mass)* (c1*fc_trq_scale+c2)* (c3*fc_spd_scale+c4)+fc_fuel_mass c1=c3=1; c2=c4=0 |
energy storage system (mass) |
ess_module_num ess_cap_scale ess_module_mass |
ess_mass | ess_mass=(ess_module_mass)* (c1*ess_module_num+c2)* (c3*ess_cap_scale+c4) c1=c3=1; c2=c4=0 |
exhaust system | fc_pwr_scale ex_mass |
ex_mass | ex_mass=(ex_mass)* (c1*fc_pwr_scale+c2) c1=1; c2=0 |
motor controller | mc_spd_scale mc_trq_scale mc_mass |
mc_mass | mc_mass=(mc_mass)* (c1*mc_trq_scale+c2)* (c3*mc_spd_scale+c4) c1=c3=1; c2=c4=0 |
generator | gc_spd_scale gc_trq_scale gc_mass |
gc_mass | gc_mass=(gc_mass)* (c1*gc_trq_scale+c2)* (c3*gc_spd_scale+c4) c1=c3=1; c2=c4=0 |
transmission | gb_spd_scale gb_trq_scale fd_mass gb_mass |
tx_mass | tx_mass=(fd_mass+gb_mass)* (c1*gb_trq_scale+c2)* (c3*gb_spd_scale+c4) c1=c3=1; c2=c4=0 |
energy storage system (resistance) |
ess_module_num ess_cap_scale |
resistance scale factor (i.e. scaled resistance = base resistance * f(ess_module_num,ess_cap_scale) |
scale_factor=(c1*ess_module_num+c2)/ (c3*ess_cap_scale+c4) 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_fun=inline(’(x(1)*fc_trq_scale+x(2))*(x(3)*fc_spd_scale+x(4))*(fc_base_mass+fc_acc_mass)+fc_fuel_mass’,’x’,’fc_spd_scale’,’fc_trq_scale’,’fc_base_mass’,’fc_acc_mass’,’fc_fuel_mass’);
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).
Last revised: [8/19/01] tm