Giter VIP home page Giter VIP logo

comfpy's Introduction

comfpy

Several python scripts for the offline evaluation of ride comfort in vehicles using measured acceleration signals follwing diverse standards, such as EN 12299 or Wz-Method.

Current state

  • EN 12299: filtering implemented and calculation of CC-values
  • Wz: Filtering and calculation of Wz-values

To Do

  • ISO 2631: additional filters need to be implemented
  • ISO 2631: VDV, ... missing
  • add measured test data
  • Maybe introduce sensor objects that contain multiple acceleration channels (at the moment channels dict is used)
  • measurement setup containing sensor objects

Usage

First a channels dictionary needs to be composed:

channels = {'x': {'1': ax1},
            'y': {'1': ay1},
            'z': {'1': az1}}

ax1, ay1, az1 are all np.ndarray datatypes.

The channels dictionary may also contain more channels:

channels = {'x': {'1': ax1, '2': ax2, ..., 'n': axn},
            'y': {'1': ay1, '2': ay2, ..., 'n': ayn},
            'z': {'1': az1, '2': az2, ..., 'n': azn}}

If more channels are provided, each method will iterate over all data and calculate the comfort indices for each channel and direction following the method, described in each standard respectively.

EN 12299

A detailed description of the method can be found in [1]. Using the previously composed channels dictionary channels, a sample frequency of the acceleration channels of fs=200 Hz (consistancy for each channel assumed), the Continuous Comfort Values CC can be calculated. The application of the appropriate filters is done automatically:

f = en12299(fs=200, channels=channels, analyse='full')
print(f.get('1', 'cc'))

will output a pandas DataFrame containing the continuous comfort values (frequency weighted 5 s RMS values) for each direction for channel 1:

             x         y         z
0     0.001375  0.000607  0.002540
1     0.001360  0.000623  0.005034
2     0.073673  0.003369  0.013517
3     0.027843  0.012021  0.030859
4     0.042937  0.030399  0.071295
        ...       ...       ...

Wz Values

w = wz(fs=200, channels=channels, analyse='full')
print(w.get('1', 'wz'))

References

[1] EN 12299:2009. Railway applications-ride comfort for passengers-measurements and evaluation. Brussels: CEN; 2009 April.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.