Design

The Design class is used to design a test based on certain assumptions.

A typical example of use:

import weibull

designer = weibull.Design(
    target_cycles=10000,
    reliability=0.9,
    confidence_level=0.90,
    expected_beta=1.5
)

# The 'test_cycles' parameter can be in any units.
# Days, weeks, hours, cycles, etc., so long
#   as the target unit is consistent
print(f'Minimum number of units for 10000 hour run: {designer.num_of_units(test_cycles=10000)}')
print(f'Minimum hours for 20 units: {designer.num_of_cycles(number_of_units=20)}')

Class Documentation

class weibull.Design(target_cycles: (<class 'int'>, <class 'float'>), reliability: float = 0.9, confidence_level: float = 0.9, expected_beta: float = 2.0)

Will determine the required test time required given the number of units under test and the target cycles OR it will determine the number of units given the test time and the target cycles.

Parameters:
  • target_cycles – The target number of cycles/minutes/hours
  • reliability – The fraction of units still running after target_cycles, 0.001 to 0.999
  • confidence_level – The fractional level of confidence, 0.001 to 0.999
  • expected_beta – The anticipated level of beta - often worse-case - based on historical data or other assumptions
num_of_cycles(number_of_units: int)

Design a test, calculating the test duration/cycles to prove the required reliability at target_cycles.

Returns:the required duration or cycles
num_of_units(test_cycles: (<class 'int'>, <class 'float'>))

Design a test, calculating the number of units required to run for the test duration / cycles in order to prove the reliability at target_cycles.

Returns:The number of units required