Skip to content
Jonathan edited this page Aug 17, 2020 · 4 revisions

Source

The Source serves as a voltage source with constant impedance. It also contains simplified logic for calculating energy consumed to be used with a MDP solver setup. This energy is used to compute mass via a flat assumption for specific energy. Users can also specify specific power. Mass is calculated as the larger of the two masses (design power/spc power) and (design energy/spc energy).

Usage

  • The input design parameters that must be specified by the modeler when creating an instance of this Source component are mass specific power (SpecificPower), design efficiency (effDes), frequency, and voltage (Vreal & Vimag). This component will produce electrical power at the specified voltage and frequency, with losses according to its design efficiency.

  • When running ONDESIGN, this component will determine its output impedance, which is calculated such that the component operates with the specified design efficiency value. When running OFFDESIGN, the model will run with losses according to the impedance calculated from the ONDESIGN run.

  • This component, being a source component, must have its electricPowerType specified, and will propagate this power type information to components downstream of it when findSourcesAndPropagate() is called. This component supports DC, single phase, and 3 phase AC.

  • This component produces power and includes a node. Being a component including a node, a voltage must be specified at this component. However, being a source component, its voltage is typically set to a fixed value (unless the modeler changes it to be otherwise), and it does not need solver variables to operate (except when running in MDP mode).

  • As a component that contains a node and has its voltage known at the beginning of the solverSequence[], it uses its prePass() method to call the electrical port update function to pass this voltage information to electrical components that it is connected to. Note that in the current implementation of the NPSS Power System Library, these components containing nodes do not know what currents are going through their ports at the beginning of an iteration. Because of this, they must be connected to power transmission components (cables and breakers), and these transmission components must be run before node-bearing transformation components like this one, as the transmission components will calculate and populate these current values. Note that this design is intended to be analogous to a common approach taken in fluid networks within NPSS rocket models.

  • The source block contains variables intended to be used in a multi-design-point (MDP) simulation. This MDP logic is intended to consist of several different assemblies containing systems including this source block; each one of these assemblies represents the same system but running at a different design point (e.g. cruise, climb, and hover for an eVTOL concept). To enable the solver variables that this component uses for MDP, set Option multiDes to TRUE. Then for each of the design point assemblies, set the appropriate value for segmentTime (how long the mission segment is, in hours, that this assembly represents. Also select a segment that represents the most important segment and give it an initial guess value for design energy (energyDes). You will also need to disable autoSetup in ind_energyDes and dep_energyDes or otherwise remove them from all assemblies other than the main MDP one. Finally, then set up logic that copies energyDes from the main assembly to the other MDP assemblies before each of them run, and set up a solver pair at the top level that varies the design energy for the main mission segment, until the sum of the energies consumed in all of the segments is less than the design energy. For an example on setting up this MDP logic, see baseline_all_elecMDP.run.

  • This component, like other power system components in the NPSS Power System Library, can optionally include thermal models. An optional thermal model is enabled by setting switchThermPort to TRUE, and plugging an EThermalMass subelement into the S_eThermMass socket. Doing these will add a temperature state (existing within EThermalMass) and a thermal port to the model. The thermal port is intended to connect this component to a second component that represents the mechanism by which heat is extracted from this component. This second component could represent a heat exchanger, cold plate, or just model heat transfer from the first component to the surrounding environment. For more information see EThermalMass.

  • The Source component does not use solver variables, however it includes sizing logic. this logic calculates mass as well as calculates the design torque and speed values. These values are used by a performance map (if one is plugged into the S_map socket) to calculate efficiency at the current operating point. For more information about performance maps for this component, see MotorGeneratorMap.

Clone this wiki locally