vibration.human.seat_vibration
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.
ACTIVE_DAMPING_TEST_MASS_KG
Section titled “ACTIVE_DAMPING_TEST_MASS_KG”Constant (float).
ACTIVE_DAMPING_TEST_MASS_KG = 60.0corrected_seat_acceleration
Section titled “corrected_seat_acceleration”corrected_seat_acceleration( seat_acceleration: float, platform_acceleration: float, intended_platform_acceleration: float,) -> floatThe 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
| Name | Description |
|---|---|
seat_acceleration | The magnitude measured at the seat, . |
platform_acceleration | The input actually delivered, . |
intended_platform_acceleration | The input the test intended, . |
Returns: The corrected magnitude on the seat, in the unit the accelerations were given in.
Raises
| Exception | When |
|---|---|
| ValueError | If any acceleration is not positive and finite. |
DAMPING_TEST_MASS_KG
Section titled “DAMPING_TEST_MASS_KG”Constant (float).
DAMPING_TEST_MASS_KG = 75.0DAMPING_TEST_MASS_TOLERANCE
Section titled “DAMPING_TEST_MASS_TOLERANCE”Constant (float).
DAMPING_TEST_MASS_TOLERANCE = 0.01mean_of_test_runs
Section titled “mean_of_test_runs”mean_of_test_runs(values: ArrayLike, *, tolerance: float = 0.05) -> floatThe 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
| Name | Description |
|---|---|
values | The 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. |
tolerance | The 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
| Exception | When |
|---|---|
| ValueError | If 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
Section titled “resonance_transmissibility”resonance_transmissibility( seat_acceleration: float, platform_acceleration: float,) -> floatThe 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
| Name | Description |
|---|---|
seat_acceleration | , measured at the disc on the seat. |
platform_acceleration | , measured on the platform. |
Returns: .
Raises
| Exception | When |
|---|---|
| ValueError | If either acceleration is not positive and finite. |
RUN_AGREEMENT_TOLERANCE
Section titled “RUN_AGREEMENT_TOLERANCE”Constant (float).
RUN_AGREEMENT_TOLERANCE = 0.05seat_factor
Section titled “seat_factor”seat_factor(seat_acceleration: float, platform_acceleration: float) -> floatThe SEAT factor of Formula (2), dimensionless.
Parameters
| Name | Description |
|---|---|
seat_acceleration | The frequency-weighted r.m.s. acceleration measured at the seat, , in metres per second squared. |
platform_acceleration | The same quantity at the platform, . |
Returns: ; below 1 the seat attenuates.
Raises
| Exception | When |
|---|---|
| ValueError | If either acceleration is not positive and finite. |
seat_transmission
Section titled “seat_transmission”seat_transmission( seat_runs: ArrayLike, platform_runs: ArrayLike, *, tolerance: float = 0.05,) -> SeatTransmissionResultOne 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
| Name | Description |
|---|---|
seat_runs | The frequency-weighted r.m.s. accelerations measured at the seat, one per run, in metres per second squared. |
platform_runs | The same at the platform, one per run. |
tolerance | The permitted spread of each set, as a fraction of its mean. |
Returns: The test, as a SeatTransmissionResult.
Raises
| Exception | When |
|---|---|
| ValueError | For anything mean_of_test_runs refuses, or if the two sets do not hold the same number of runs. |
SeatTransmissionResult
Section titled “SeatTransmissionResult”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
| Name | Description |
|---|---|
seat_acceleration | The mean of the seat runs, , in metres per second squared. |
platform_acceleration | The mean of the platform runs, . |
seat_runs | The individual seat readings the mean came from. |
platform_runs | The individual platform readings. |
SeatTransmissionResult.attenuates
Section titled “SeatTransmissionResult.attenuates”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,) -> floatThe seat magnitude corrected to an intended input (10.2.3).
Parameters
| Name | Description |
|---|---|
intended_platform_acceleration | The input the test intended, in the unit the runs were given in. |
Returns: The corrected magnitude on the seat.
Raises
| Exception | When |
|---|---|
| ValueError | If the intended input is not positive and finite. |
SeatTransmissionResult.plot()
Section titled “SeatTransmissionResult.plot()”SeatTransmissionResult.plot( ax: Axes | None = None, *, language: str = 'en', **kwargs: Any,) -> AxesDraw the runs, their means and the SEAT factor between them.
Requires matplotlib (pip install phonometry[plot]); returns the
Axes.
Parameters
| Name | Description |
|---|---|
ax | Existing axes, or None to create a figure. |
language | Label language, "en" (default) or "es". |
kwargs | Forwarded to phonometry._plot.vibration.plot_seat_transmission. |
SeatTransmissionResult.seat_factor
Section titled “SeatTransmissionResult.seat_factor”property
The SEAT factor of Formula (2).
TEST_RUNS
Section titled “TEST_RUNS”Constant (int).
TEST_RUNS = 3UNITY_TRANSMISSION
Section titled “UNITY_TRANSMISSION”Constant (float).
UNITY_TRANSMISSION = 1.0