Ir al contenido
Esta documentación describe la versión 4.0.0, todavía sin publicar. La versión actual en PyPI es la 3.3.0 y no incluye todo lo que se describe aquí.

vibration.human.seat_vibration

La referencia de la API se publica en inglés en los dos idiomas: se genera a partir de los docstrings del código, que son su texto original.

What a seat does to the vibration under it (ISO 10326-1:2016).

A driver does not sit on the floor of the machine. The seat is between them, and whether it helps is not obvious: a suspension seat can amplify what it was bought to attenuate, if the excitation happens to sit near its resonance. This standard is the laboratory method that answers the question with one number.

The SEAT factor (10.2.2) is that number. Drive a vibration simulator with the input spectrum the application standard prescribes, measure the frequency-weighted r.m.s. acceleration at the seat and at the platform, and divide:

Below 1 the seat is doing its job; at 1 it passes the vibration through unchanged; above 1 it is making the ride worse. is the arithmetic mean of three consecutive runs agreeing within ± 5 % at the seat, and the mean of the platform values from those same runs, which 10.2.1 holds to the input tolerances of 9.2 instead. mean_of_test_runs enforces the agreement, because a mean of runs that disagree by more is not a measurement this standard recognises.

Correcting to an intended input (10.2.3). A simulator does not reproduce its target spectrum exactly, so the magnitude measured on the seat is scaled by the ratio between the input actually delivered and the input intended:

The printed Formula (3) asterisks all four symbols and so reduces to ; the reading above is the one its own prose, and Formula (4) beside it, require. See docs/ERRATA.md.

The damping test (10.3) is the other half. Load the seat with an inert mass of 75 kg ± 1 %, drive the base at the suspension’s resonance frequency, and take the ratio there:

The arithmetic is the SEAT arithmetic, and the meaning is not: SEAT is a whole-spectrum verdict on a seat in service, and is what the seat does at the one frequency where it does the most. Clause 11 makes them the two acceptance values a specific application standard may set, and this standard sets neither: it fixes the method and leaves the numbers to whoever writes for the machine.

Auto-generated from the source docstrings by scripts/generate_api_docs.py (make api-docs). Do not edit by hand.

Constant (float).

ACTIVE_DAMPING_TEST_MASS_KG = 60.0
corrected_seat_acceleration(
seat_acceleration: float,
platform_acceleration: float,
intended_platform_acceleration: float,
) -> float

The seat magnitude corrected to the intended input (10.2.3).

, which is Formula (4) with the SEAT factor substituted, and what the prose of 10.2.3 asks for. The printed Formula (3) carries an asterisk on every symbol and reduces to an identity; docs/ERRATA.md records it.

Parameters

NameDescription
seat_accelerationThe magnitude measured at the seat, .
platform_accelerationThe input actually delivered, .
intended_platform_accelerationThe input the test intended, .

Returns: The corrected magnitude on the seat, in the unit the accelerations were given in.

Raises

ExceptionWhen
ValueErrorIf any acceleration is not positive and finite.

Constant (float).

DAMPING_TEST_MASS_KG = 75.0

Constant (float).

DAMPING_TEST_MASS_TOLERANCE = 0.01
mean_of_test_runs(values: ArrayLike, *, tolerance: float = 0.05) -> float

The arithmetic mean of the runs of one test (10.2.1, 10.3).

The standard asks for three consecutive runs whose values lie within ± 5 % of their arithmetic mean, and records that mean. A set that does not meet the spread is not a result to be averaged anyway, so it is refused here rather than quietly returned.

Parameters

NameDescription
valuesThe r.m.s. accelerations of the runs, one per reading, in any consistent unit. Three of them, as the standard asks; a different count is accepted rather than enforced, because 10.2.1 asks for three runs that agree, and its own warm-up note recommends discarding the first reading of each series, which leaves a laboratory holding a different number of them. Two is the floor: a spread needs two readings to exist.
toleranceThe permitted spread as a fraction of the mean; RUN_AGREEMENT_TOLERANCE by default.

Returns: The arithmetic mean, in the unit the values were given in.

Raises

ExceptionWhen
ValueErrorIf the values are not one-dimensional, if fewer than two are given, if any is not positive and finite, if the tolerance is not positive, or if any value lies outside the tolerance band around the mean.
resonance_transmissibility(
seat_acceleration: float,
platform_acceleration: float,
) -> float

The transmissibility at resonance of Formula (5), dimensionless.

The damping test drives the base at the suspension’s resonance frequency with the seat carrying an inert DAMPING_TEST_MASS_KG, and this is the ratio there. The arithmetic matches seat_factor and the meaning does not: this is the one frequency the seat treats worst, not a verdict over a spectrum, and Clause 11 makes it the acceptance value of a different test.

Parameters

NameDescription
seat_acceleration, measured at the disc on the seat.
platform_acceleration, measured on the platform.

Returns: .

Raises

ExceptionWhen
ValueErrorIf either acceleration is not positive and finite.

Constant (float).

RUN_AGREEMENT_TOLERANCE = 0.05
seat_factor(seat_acceleration: float, platform_acceleration: float) -> float

The SEAT factor of Formula (2), dimensionless.

Parameters

NameDescription
seat_accelerationThe frequency-weighted r.m.s. acceleration measured at the seat, , in metres per second squared.
platform_accelerationThe same quantity at the platform, .

Returns: ; below 1 the seat attenuates.

Raises

ExceptionWhen
ValueErrorIf either acceleration is not positive and finite.
seat_transmission(
seat_runs: ArrayLike,
platform_runs: ArrayLike,
*,
tolerance: float = 0.05,
) -> SeatTransmissionResult

One simulated input vibration test, from its runs (10.2).

Each set of runs is averaged through mean_of_test_runs, so a test whose runs do not agree within ± 5 % is refused rather than averaged. 10.2.1 asks for that agreement at the seat only, so on the platform side this is stricter than the clause.

Parameters

NameDescription
seat_runsThe frequency-weighted r.m.s. accelerations measured at the seat, one per run, in metres per second squared.
platform_runsThe same at the platform, one per run.
toleranceThe permitted spread of each set, as a fraction of its mean.

Returns: The test, as a SeatTransmissionResult.

Raises

ExceptionWhen
ValueErrorFor anything mean_of_test_runs refuses, or if the two sets do not hold the same number of runs.
SeatTransmissionResult(
seat_acceleration: float,
platform_acceleration: float,
seat_runs: tuple[float, ...],
platform_runs: tuple[float, ...],
)

One simulated input vibration test, as the standard records it.

Attributes

NameDescription
seat_accelerationThe mean of the seat runs, , in metres per second squared.
platform_accelerationThe mean of the platform runs, .
seat_runsThe individual seat readings the mean came from.
platform_runsThe individual platform readings.

property

Whether the seat passes less vibration than it receives.

True is the whole of what it means: a SEAT factor below 1. It is not an acceptance, because Clause 11 leaves acceptance values to the application standard written for the machine.

SeatTransmissionResult.corrected_acceleration()

Section titled “SeatTransmissionResult.corrected_acceleration()”
SeatTransmissionResult.corrected_acceleration(
intended_platform_acceleration: float,
) -> float

The seat magnitude corrected to an intended input (10.2.3).

Parameters

NameDescription
intended_platform_accelerationThe input the test intended, in the unit the runs were given in.

Returns: The corrected magnitude on the seat.

Raises

ExceptionWhen
ValueErrorIf the intended input is not positive and finite.
SeatTransmissionResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Draw the runs, their means and the SEAT factor between them.

Requires matplotlib (pip install phonometry[plot]); returns the Axes.

Parameters

NameDescription
axExisting axes, or None to create a figure.
languageLabel language, "en" (default) or "es".
kwargsForwarded to phonometry._plot.vibration.plot_seat_transmission.

property

The SEAT factor of Formula (2).

Constant (int).

TEST_RUNS = 3

Constant (float).

UNITY_TRANSMISSION = 1.0