Input data
Line Section
This paragraph describes the input data and the associated format needed to perform calculations on a line section in mechaphlowers.
Units
Unless specified otherwise, all units will be those of the International System of Units (SI). A list of these units can be found here.
In mechaphlowers a line section is described by the following data:
- for each support:
- the name of the support
- a boolean named
suspensiondescribing whether it's a suspension or tension support - the conductor attachment altitude
- the crossarm length
- the line angle (in degrees)
- the insulator length
- the insulator mass
- an optional field ground altitude
- an optional counterweight
- for each span:
- the span length, denoted later as \(a\)
- a sagging parameter, denoted later as \(p\)
- a sagging temperature (in Celsius degrees).
Warning
Ground altitude is optional because it is autofilled if not provided.
Autofill rule: ground_altitude = conductor_attachment_altitude - options_paramater.
options_parameter is globally defined in options.ground.default_support_length and can be modified by user.
Angle orientation convention
The angles input in the section
Input data should be organized in a table (for example a pandas dataframe), where each row describes one support with its following span, except the last row which only describes the last support (since it doesn't have a "following" span). Hence the last span length is expected to be "not a number", typically numpy.nan.
For example, a line section could be described by the following table:
| name | suspension | conductor_attachment_altitude | crossarm_length | line_angle | insulator_length | span_length |
|---|---|---|---|---|---|---|
| first support | False | 1 | 12 | 0 | 0 | 500 |
| second support | True | -0.75 | 10 | 11 | 4 | 800 |
| third support | False | 0.5 | 11.5 | 0 | 0 |
Altitude
Since the conductor attachment altitude is measured from the sea level, it may be negative.
In this example the span length between the first and second supports is 500 m, and the span length between the second and third support is 800 m. The line angle in the middle of the section is of 10 degrees.
You may use the following code to define this data and load it so that it can be used by mechaphlowers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Sagging default values
Sagging parameters and temperature have default values. In this way, user can vizualise section in the same time it is created.
Rules:
- sagging_temperature = 15°C
- sagging_parameter = equivalent_span \(\times\) 5
- equivalent_span is the following, with \(a_i\) the span length of the ith span:
Bundle number
When creating a SectionArray, you may add a bundle_number argument. bundle_number is set by default to 1.
1 | |
Cable
This paragraph describes the input data and the associated format needed about the cable properties in mechaphlowers.
A Cable is described using the following data:
- section in \(mm^2\), denoted later as \(S\)
- diameter in \(mm\), denoted later as \(D\)
- linear weight in \(N/m\), denoted later as \(\lambda\)
- Young modulus in \(GPa\), denoted later as \(E\)
- temperature of reference in \(°C\)
- dilatation coefficient in \(°C^{-1}\), denoted later as \(\alpha_{th}\)
- coefficients of the polynomial model between stress and deformation in \(GPa\)
Similarly to line section data, input data should be organized in a table. However, the number of rows should be equal to 1: the attributes of a cable are the same on any span.
| section | diameter | linear_weight | young_modulus | dilatation_coefficient | temperature_reference | a0 | a1 | a2 | a3 | a4 | b0 | b1 | b2 | b3 | b4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 450 | 30.5 | 14 | 45 | 23 | 0 | 0 | 15 | 45000 | 2300000 | -1800000000 | 0 | 0 | 0 | 0 | 0 |
You may use the following code to define this data and load it so that it can be used by mechaphlowers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
External loads
External loads can be added to the cable array. We only support wind loads, but it's easy to extend this by adding more external loads. To add a weather load, you can use BalanceEngine.solve_change_state(...) method.
1 2 3 4 5 6 7 8 | |
The following example shows how to add a wind load on the cable.
Parameters unit
The ice_thickness and wind_pressure are in meters and Pascal respectively.
The format of those vectors is span oriented: their size is the same than the section but the last value is not used
That's why we put np.nan at the end.
Wind direction convention
Another attention point is that the wind load can be negative, which means that the wind is blowing in the opposite direction of the line. The sign convention is parameterized by wind_direction ("clockwise" or "anticlockwise").
If "clockwise": towards user (right), if "anticlockwise": away from user (left). Default to "anticlockwise".
Then you can display the effect of this load with:
- load_angle
- resulting_norm
- load_coefficient
- ice_load
- wind_load
Support Shapes / position sets
Mechaphlowers provide a specific object to handle simple set representation: the SupportShape class.
The idea is to provide a simple way to define a set of arms, each arm being represented by X,Y,Z coordinates of the arms.
The arm length is computed from x, y coordinate.
Assumption for the representation:
- The support is centered with origin at the support ground.
- Trunk is a vertical bar
- base arms are on Y coordinate only, from the trunk
- set point are on X coordinate only, from the edge of the base arms
Warning
This is a simplified representation to visualize sets positions on the geometry.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |