-
Notifications
You must be signed in to change notification settings - Fork 0
Electrical Analyses
The electrical characteristic analyses are a set of sub analyses (used by the power transmission analyses) that inform on the electrical characteristics of electrical Wire
s contained within a tether design. They consist of the following three functions:
-
calculate_wire_resistance()
: Calculates the resistance of a single wire, adjusting for temperature -
calculate_equivalent_resistance()
: Calculates the equivalent resistance of parallel wires in a passed list -
ac_resistance()
: Calculates the AC resistance of a single wire at a given frequency/temperature
This analysis calculates the resistance from the resistivity of the conductor material at 20 degrees celsius, and then uses the temperature to calculate a coefficient used to adjust the resistance for the desired temperature, which is returned. This analysis takes the following arguments:
- wire: A Wire object (electrical) to calculate the resistance of.
- temp: The temperature of the wire in celsius.
An example of calculating the resistance for one of the wires in a tether design is given below:
from tether_analysis.TetherDesign import Layer, Wire, RoundTetherDesign
from calculation_libraries.PowerAnalysis import calculate_wire_resistance
# Construct a kapton insulated copper wire
conductor = Layer("copper", "Conductor", 0.25)
insulator = Wire("electrical", "kapton", "Kapton Wire", 0.15, innerLayer=conductor)
# Arrange the wires in a list
wireList = [insulator, insulator, insulator, insulator]
# Build the layers of the tether
core = Layer("fep", "Core", 0.25, color="black")
memLayer = Layer("fep", "Wires", 0.1, innerLayer=core, memberList=wireList)
strength_layer = Layer("vectran_kuraray_ht", "strength_layer", 0.15, innerLayer=memLayer)
abrasionLayer = Layer("ptfe", "abrasion", 0.2, innerLayer=strength_layer)
# Pass to a tether design object
tether = RoundTetherDesign("Example", abrasionLayer, 100)
# Calculate single wire resistance
singleWireResistance = calculate_wire_resistance(tether.getLayerAtPath("L3M1L1"), 30)
print("Resistance: %f ohms" % singleWireResistance)
This analysis makes use of the single wire resistance function to calculate the effective parallel resistance of wires objects passed in a list, assuming each is the same temperature. It takes two arguments:
- wireList: The list of Wire objects (electrical) for which to calculate the equivalent resistance.
- temp: The temperature of the wires in celsius.
An example of calculating the equivalent resistance for two wires is given below:
from tether_analysis.TetherDesign import Layer, Wire, RoundTetherDesign
from calculation_libraries.PowerAnalysis import calculate_equivalent_resistance
# Construct a kapton insulated copper wire
conductor = Layer("copper", "Conductor", 0.25)
insulator = Wire("electrical", "kapton", "Kapton Wire", 0.15, innerLayer=conductor)
# Arrange the wires in a list
wireList = [insulator, insulator, insulator, insulator]
# Build the layers of the tether
core = Layer("fep", "Core", 0.25, color="black")
memLayer = Layer("fep", "Wires", 0.1, innerLayer=core, memberList=wireList)
strength_layer = Layer("vectran_kuraray_ht", "strength_layer", 0.15, innerLayer=memLayer)
abrasionLayer = Layer("ptfe", "abrasion", 0.2, innerLayer=strength_layer)
# Pass to a tether design object
tether = RoundTetherDesign("Example", abrasionLayer, 100)
# List of wires to use
wireList = [tether.getLayerAtPath("L3M1L1"), tether.getLayerAtPath("L3M3L1")]
# Calculate equivalent resistance
equivalentResistance = calculate_equivalent_resistance(wireList, 30)
print("Resistance: %f ohms" % equivalentResistance)
The AC resistance analysis uses an approach from "Practical continuous functions for the internal impedance of solid cylindrical conductors", by David W. Knight, specifically the RAC - TED - ML approach. This analysis estimates the resistance of a wire path due to the skin effect at a given frequency. It calculates the AC resistance factor:
The AC resistance calculation takes in four arguments:
- Send wire: the wire object (electrical) used as a send path.
- Return wire: the wire object (electrical) used as a return path.
- Frequency: the frequency of the frequency of the signal in Hz.
- Temperature: the temperature of the wires in celsius.
An example calculating the AC resistance for a send/return path and its output are shown below:
from tether_analysis.TetherDesign import Layer, Wire, RoundTetherDesign
from calculation_libraries.PowerAnalysis import ac_resistance
# Construct a kapton insulated copper wire
conductor = Layer("copper", "Conductor", 0.25)
insulator = Wire("electrical", "kapton", "Kapton Wire", 0.15, innerLayer=conductor)
# Arrange the wires in a list
wireList = [insulator, insulator, insulator, insulator]
# Build the layers of the tether
core = Layer("fep", "Core", 0.25, color="black")
memLayer = Layer("fep", "Wires", 0.1, innerLayer=core, memberList=wireList)
strength_layer = Layer("vectran_kuraray_ht", "strength_layer", 0.15, innerLayer=memLayer)
abrasionLayer = Layer("ptfe", "abrasion", 0.2, innerLayer=strength_layer)
# Pass to a tether design object
tether = RoundTetherDesign("Example", abrasionLayer, 100)
# List of wires to use
wireList = [tether.getLayerAtPath("L3M1L1"), tether.getLayerAtPath("L3M3L1")]
# Calculate AC resistance at 1MHz
acResistance = ac_resistance(wireList[0], 1e6, 30)
print("Resistance: %f ohms" % acResistance)