TLine / Cable#

TLines and Cables collectively are known as Travelling Wave Models. They are built up from specific components which may only be placed on the Travelling Wave Model’s canvas.

Travelling Wave Model#

class mhi.xml.pscad.twm.RowDefn#

Travelling Wave Model (TLine/Cable) Definition node

create_instance(canvas: Schematic, *vertices: tuple[int, int] | XY) TravelingWaveModelWire#

Create a TLine or Cable instance

Added in version 1.4.0.

Option creation#

Referencing any of the following properties will automatically create the element on the Travelling Wave Model’s canvas. It can also remove incompatible elements. For instance, referencing the bergeron_options property will automatically destroy any frequency dependent elements on the canvas.

property bergeron_options: BergOptions#

Retrieve the Bergeron Options component, creating it if necessary

property freq_phase_options: FrePhaseOptions#

Retrieve the Freq/Phase Options component, creating it if necessary

property additional_options: OutDisp#

Retrieve the Additional Options component, creating it if necessary

property ground: Ground#

Retrieve the Ground component, creating it if necessary

property manual_yz: ManualYZ#

Retrieve the Manual YZ component, creating it if necessary

Towers#

Towers can be added to a Travelling Wave Model’s canvas, to control the locations of conductors.

towers() List[TWMCmp]#

List of the towers

Tower creation#

The following methods may be used to create new towers on the Travelling Wave Model’s canvas.

tower_1(x: float | str, y: float | str, **kwargs) Tower1#

Add a single conductor tower

The conductor is located at the given (x, y) coordinate.

tower_2_flat(x: float | str, y: float | str, xc: float | str, **kwargs) Tower2Flat#

Add a 2-conductor tower

The conductors are located at (x - xc / 2, y) and (x + xc / 2, y).

tower_3_flat(x: float | str, y: float | str, xc: float | str, **kwargs) Tower3Flat#

Add a 3-conductor tower

The conductors are located at (x - xc, y), (x, y), and (x + xc, y).

tower_3_delta(x: float | str, y: float | str, xc: float | str, y2: float | str, **kwargs) Tower3Delta#

Add a 3-conductor tower

The conductors are at (x - xc, y), (x, y + y2), and (x + xc, y).

tower_3_concent(x: float | str, y: float | str, x2: float | str, y2: float | str, **kwargs) Tower3Concent#

Add a 3-conductor tower

The conductors are at (x, y), (x + x2, y + y2), and (x, y + 2 y2). If x2 is negative, the second conductor is to left of the other two.

tower_3_offset(x: float | str, y: float | str, x2: float | str, y2: float | str, **kwargs) Tower3Offset#

Add a 3-conductor tower

The conductors are at (x, y), (x + x2, y), and (x, y + y2). If x2 is negative, the second conductor is to left of the other two.

tower_3_vert(x: float | str, y: float | str, y2: float | str, **kwargs) Tower3Vert#

Add a 3-conductor tower

The conductors are at (x, y), (x, y + y2), and (x, y + 2 y2).

tower_6_vert1(x: float | str, y: float | str, y2: float | str, y3: float | str, **kwargs) Tower6Vert1#

Add a 6-conductor tower

The first 3 conductors are at (x, y), (x, y + y2), and (x, y + 2 y2). The next 3 conductors are an additional y3 higher.

tower_6_concent(x: float | str, y: float | str, xc: float | str, x2: float | str, y2: float | str, **kwargs) Tower6Concent#

Add a 6-conductor tower

The conductors are at (x - xc/2, y), (x - xc/2 - x2, y + y2), (x - xc/2, y + 2 y2), (x + xc/2, y), (x + xc/2 + x2, y + y2), and (x + xc/2, y + 2 y2).

tower_6_offset(x: float | str, y: float | str, xc: float | str, x2: float | str, y2: float | str, **kwargs) Tower6Offset#

Add a 6-conductor tower

The conductors are arranged in a two mirrored L-shape.

tower_6_vert(x: float | str, y: float | str, xc: float | str, y2: float | str, **kwargs) Tower6Vert#

Add a 6-conductor tower

The conductors are at (x - xc/2, y), (x - xc/2, y + y2), (x - xc/2, y + 2 y2). (x + xc/2, y), (x + xc/2, y + y2), and (x + xc/2, y + 2 y2).

tower_6_flat(x: float | str, y: float | str, xc: float | str, y2: float | str, **kwargs) Tower6Flat#

Add a 6-conductor tower

The first 3 conductors are at (x, y), (x + xc, y), and (x + 2 xc, y). The next 3 conductors are an additional y2 higher.

tower_6_delta(x: float | str, y: float | str, xc: float | str, x2: float | str, y2: float | str, **kwargs) Tower6Delta#

Add a 6-conductor tower

The conductors are arranged in a two delta shape.

tower_12_vert(x: float | str, y: float | str, xc: float | str, y2: float | str, y3: float | str, **kwargs) Tower12Vert#

Add a 12-conductor tower

tower_universal(tower_x: float | str, conductors: List[Tuple[float, float]], ground_wires: List[Tuple[float, float]], **kwargs) TowerUniversal#

Add a tower with between 1 and 12 conductors, and between 0 and 2 grounds wires.

Both the conductors and the ground wires must be given as lists of (x,y) pairs:

Bergeron#

class mhi.xml.pscad.twm_types.BergOptions#
property parameters#

Return the paramlist backed Parameter object

class Parameters#
BDamp: IntBool#
Interp1: IntBool#
F1: UnitValue#
TZ: UnitValue#
TP: UnitValue#
Inflen: IntBool#

Frequency Dependent Options#

class mhi.xml.pscad.twm_types.FreDepOptions#
property parameters#

Return the paramlist backed Parameter object

class Parameters#
FS: UnitValue#
FE: UnitValue#
FT: UnitValue#
ZMaxP: int#
AMaxP: int#
ZMaxE: UnitValue#
AMaxE: UnitValue#
Interp1: IntBool#
Output: IntBool#
W1: float#
W2: float#
W3: float#
Inflen: IntBool#
class mhi.xml.pscad.twm_types.FrePhaseOptions#
property parameters#

Return the paramlist backed Parameter object

class Parameters#
Interp1: IntBool#
Output: IntBool#
Inflen: IntBool#
FS: UnitValue#
FE: UnitValue#
Numf: Choice['100'=100, '200'=200, '500'=500, '1000'=1000]#
YMaxP: int#
YMaxE: UnitValue#
AMaxP: int#
AMaxE: UnitValue#
MaxRPtol: float#
W1: float#
W2: float#
W3: float#
ET_PE: float#
NFP: Choice['100'=100, '500'=500, '1000'=1000, '2000'=2000, '5000'=5000]#
FSP: UnitValue#
MER_PE: float#
MIT_PE: int#
FEP: UnitValue#
FDIS: Choice['1'='Log', '2'='Linear', '3'='Log + Linear']#
CPASS: Choice['0'='Disable', '1'='Scan only', '2'='Enforcement']#
DCenab: IntBool#
DCCOR: Choice['1'='Functional Form', '2'='Add Pole/Residue']#
shntcab: UnitValue#
enablf: IntBool#

Grounding Options#

class mhi.xml.pscad.twm_types.Ground#
property parameters#

Return the paramlist backed Parameter object

class Parameters#
EarthForm2: Choice['0'='Analytical approximation (Deri-Semlyen)', '2'='Direct numerical integration']#
EarthForm: Choice['3'='Analytical approximation (Saad)', '0'='Analytical approximation (Wedepohl)', '2'='Direct numerical integration']#
EarthForm3: Choice['0'='Analytical approximation (Ametanil)', '2'='Analytical approximation (Lucca)']#
GrRho: Choice['0'='constant resistivity', '1'='frequency-dependent conductivity (Portela)']#
GRRES: UnitValue#
GPERM: float#
K0: UnitValue#
K1: UnitValue#
alpha: float#
GRP: float#

Manual Entry#

class mhi.xml.pscad.twm_types.ManualYZ#
property parameters#

Return the paramlist backed Parameter object

class Parameters#
Name: str#
NCond: int#
PU: Choice['0'='R,Xl,Xc (pu/m)', '1'='R,Xl,Xc (ohm/m)', '2'='Zsurge and Travel Time', '3'='R,X,B (pu/m)', '4'='Y,Z (mho,ohm)', '5'='Y,Z (multiple frequencies)']#
Estim: Choice['0'='Enter 0 Sequence Data', '1'='Estimate 0 Sequence Data', '2'='Same as Positive Sequence']#
REst: float#
ZEst: float#
TEst: float#
LONGLN: IntBool#
VR: UnitValue#
MVA: UnitValue#
RPUP: UnitValue#
XLPUP: UnitValue#
XCPUP: UnitValue#
RPUZ: UnitValue#
XLPUZ: UnitValue#
XCPUZ: UnitValue#
RPUZM: UnitValue#
XLPUZM: UnitValue#
XCPUZM: UnitValue#
RP: UnitValue#
XLP: UnitValue#
XCP: UnitValue#
RZ: UnitValue#
XLZ: UnitValue#
XCZ: UnitValue#
RZM: UnitValue#
XLZM: UnitValue#
XCZM: UnitValue#
RTP: UnitValue#
TTP: UnitValue#
ZTP: UnitValue#
RTZ: UnitValue#
TTZ: UnitValue#
ZTZ: UnitValue#
RTZM: UnitValue#
TTZM: UnitValue#
ZTZM: UnitValue#
VR2: UnitValue#
MVA2: UnitValue#
RPUP2: UnitValue#
XLPUP2: UnitValue#
BPUP2: UnitValue#
RPUZ2: UnitValue#
XLPUZ2: UnitValue#
BPUZ2: UnitValue#
RPUZM2: UnitValue#
XLPUZM2: UnitValue#
BPUZM2: UnitValue#
fname: str#
path: Choice['0'='Relative path', '1'='Absolute path']#
dformat: Choice['0'='Per metre', '1'='Total']#
fname2: str#
path2: Choice['0'='Relative path', '1'='Absolute path']#

Display Options#

class mhi.xml.pscad.twm_types.OutDisp#
property parameters#

Return the paramlist backed Parameter object

class Parameters#
DataF: UnitValue#
Zero_Tol: float#
Vbase: UnitValue#
MVAbase: UnitValue#
picomp: IntBool#
Rip: UnitValue#
EMM: Choice['0'='No (Classical formulas)', '1'='Yes (MoM-SO Algorithm)']#
OMM: int#
class mhi.xml.pscad.twm_types.ConstantsDebug#
property parameters#

Return the paramlist backed Parameter object

class Parameters#
DEBUG: IntBool#