SwitchElect - nasa/gunns GitHub Wiki
This link extends GunnsBasicConductor with a built-in Switch object, similar to how GunnsResistiveLoad extends GunnsElectricalResistor. It embeds a Switch object in a link that can be used in a GUNNS basic network. Whereas the GunnsResistiveLoad is used as both a switch and a resistive load in series, this SwitchElect link is usually only used to model a switch by itself, and loads are placed downstream in the network as separate links. Note however that the Switch's resistance creates a resistive load all by itself, so it can be used by itself as a resistive load in a network. An example of this is shown below.
This link has the same connection rules as GunnsBasicConductor. The picture below shows various typical uses, though they can be arranged in any way you'd use a real switch in an electrical circuit. There are 4 SwitchElect links arranged in parallel, which could represent a 4-switch card, similar to the GunnsResistiveLoad example.
- Switch_0 is shown feeding a EpsConstantPowerLoad link.
- Switch_1 is shown feeding a GunnsBasicConductor link used as a resistive load.
- Switch_2 is shown feeding a PowerBusElect link, which itself feeds more loads. This is a typical architecture in an electrical distribution system.
- Switch_3 is shown going straight to Ground. This is a shortcut to modeling a resistive load, where we use the switch's built-in resistance to also include the resistance of a downstream load. This is functionally similar to the Switch_1 example except this way saves a node in the network.
Port Connection Rules (These are limitations on the port connection to nodes that the link enforces in run-time):
- Same as GunnsBasicConductor.
Other Rules (These are extra rules you should always try to follow):
- Same as GunnsBasicConductor.
Configuration Data Parameters:
-
config (default = 0, must call a SwitchConfigData constructor): This link
configures the built-in Switch object differently than
GunnsResistiveLoad. Unlike the latter, which has
its own individual config parameters that are passed to the Switch object, this link uses a
single SwitchConfigData object, which you must construct here. The syntax to enter into this
field is that of calling the C++ object constructor. For example:
SwitchConfigData(0.005, false, false, 105.0, false, 0, 1, false)
The contructor arguments are the individual configuration data parameters listed in Switch (defaultSwitchResistance = 0.005, overCurrentProtection = false, etc).
Input Data Parameters:
- malfBlockageFlag: Same as GunnsBasicConductor.
- malfBlockageValue: Same as GunnsBasicConductor.
-
inputData (default = 0, must call a SwitchInputData constructor): Similar to the
config parameter, this link initializes the Switch using a single SwitchInputData
object, which you must construct here. The syntax to enter into this
field is that of calling the C++ object constructor. For example:
SwitchInputData(false, 0, true, 500.0, -500.1)
The contructor arguments are the individual input data parameters listed in Switch (switchMalfFlag = false, switchMalfValue = 0, etc).
- N/A
- N/A