Tech이야기~!
welcom 자세히보기

Mechanical/Vibration Mechanical

MATLAB 대 Python for processing FFT

Enhold 2018. 7. 15. 13:51


  • Load in a two column CSV
  • Plot all data
  • Compute and plot the moving 1 second RMS level
  • Compute and plot a FFT
  • 파이썬

    일반적으로 파이썬 은 자유롭고, 오픈 소스이며, 다양한 기능을 제공합니다. 그들의 NumPy와 및 SciPy 패키지는 MATLAB과 유사한 기능을 가지고 있습니다. Python은 MATLAB에 비해 매우 우아하고 직관적 인 프로그래밍 언어입니다. 읽기 쉬운 일반 언어로 작성되었습니다. 그리고 그들은 그것으로 확실히 성공했습니다! 파이썬은 데이터 분석 외에도 다른 프로그래밍 요구를 위해 MATLAB보다 나은 대안으로 보편적으로 받아 들여집니다.


    MATLAB

    반면에 MATLAB 은 선형 대수 연산을 위해 특별히 개발되었으므로 진동 분석 응용 프로그램에서보다 빠르게 수행 할 수 있습니다. 단점은 언어가 읽기 / 이해하기가 조금 더 어려울 수 있다는 것입니다. 그러나 MATLAB은 광범위한 라이브러리 함수와 통합 개발 환경 (IDE)을 가지고 있기 때문에 일반적으로보다 깔끔하게 패키지화 된 것으로 간주됩니다. 파이썬의 경우 추가 패키지와 IDE를 설치해야합니다 (중요한 리프트는 아닙니다!).  


    MATLAB의 큰 단점은 무료가 아니기 때문에 상용 라이센스로 2,150 달러를 쓸 수 있다는 것입니다. 또한 추가 도구 상자에 대해 일반적으로 1,000 달러를 청구합니다. 진동 분석을 위해 신호 처리 도구 상자 를 권하고 싶습니다 . 그래도 걱정하지 마십시오.이 분석을 위해 도구 상자에서 기능을 사용하지 않았거나 진동 분석 기본 블로그 에서 다루는 기능을 사용하지 않았습니다 .


    Python, by definition, is a programming language. The most common implementation is that in C (also known as CPython) and is what is mostly refered to as “Python”. Apart from the programming language and interpreter, Python also consists of an extensive standard library. This library is aimed at programming in general and contains modules for os specific stuff, threading, networking, databases, etc.

    Matlab is a commercial numerical computing environment and programming language. The concept of Matlab refers to the whole package, including the IDE. The standard library does not contain as much generic programming functionality, but does include matrix algebra and an extensive library for data processing and plotting. For extra functionality the Mathworks provides toolkits (but these cose you extra).

    Diagram illustrating the differences between Python and Matlab in terms of their ecosystem.

    http://www.pyzo.org/python_vs_matlab.html


    MATLAB® 진동 분석 기능 :

    저는 파이썬과 MATLAB을 비교하여 가능한 한 사과와 사과를주고 싶었습니다. 나는 또한 그것이 진동 분석을 위해 유용한 하나의 유용한 분석을하고 싶었다. 나는 MATLAB에 초기 스크립트를 작성하여 사용자에게 CSV를 묻고 CSV를로드하고 모든 데이터를 표시합니다. 그런 다음 간단한 이동 RMS 계산을 수행하고 전체 데이터 세트 및 플롯의 FFT를 수행 한 다음 플롯합니다. 스크립트는 이러한 주요 단계에 걸리는 시간을 측정합니다. 나는 시간이 지남에 따라 움직이는 진동의 힘을 감지하기 때문에 RMS를 움직이는 것을보고 있습니다. FFT는 기본적인 첫 번째 진동 분석 단계 중 하나입니다.

    Python 진동 분석 함수 :

    어려운 부분은 파이썬에서 상응하는 스크립트를 작성하는 것이 었습니다. 나는 이틀 전에 Python 스크립트를 작성한 적도 없었다. 나는이 MATLAB 스크립트를 얼마나 쉽게 Python으로 "번역"할 수 있었는지에 유쾌하게 놀랐다. 있다 톤 의 자원이 나는이 발견, 온라인 MATLAB 사용자를위한 NumPy와이 특히 도움이 튜토리얼. Pyhon 스크립트는 아래에 제공됩니다. 스크립트의 길이는 거의 동일합니다. 파이썬 스크립트는 필요한 라이브러리에로드하기 위해 몇 줄 더 길다.


    진동 데이터 파일

    이 비교에서는 7 가지 진동 데이터 세트를 검토합니다. 이 레코딩의 대부분은 진동 분석 기본 블로그 게시물 에서 좀 더 깊이있게 설명됩니다 . 모든 데이터는 Slam Stick 진동 로거를 사용하여 캡처 했으며 데이터를 CSV로 내 보냈습니다. 처음 두 개의 녹음은 일정한 10g, 100Hz 정현파 입력에서 진동하는 셰이커 테이블의 Slam Stick을 사용하여 60 초 녹음 한 것입니다. 하나의 파일은 400 Hz에서 샘플링하는 MEMS 가속도계에서 나온 파일입니다. 다른 하나는 5,000 Hz에서 샘플링하는 압전 가속도계로부터의 것입니다.

    리는 또한 MIL-STD-810G 에 따라 무작위적인 진동 노출 프로파일로 흥분되는 쉐이커의 10,000 Hz에서 샘플링 한 Slam Stick의 녹음 파일을 봅니다 . 두 번의 녹음은 항공기의 진동을 감지합니다. 하나 (aircraft.csv)는 샘플 속도가 2,500Hz 인 비행기 바깥쪽에있는 슬램 스틱 (Slam Stick)으로 촬영 한 것입니다 (응용 프로그램에 대해 너무 많이 공유 할 수 없음). 두 번째 녹음 (aircraft_takeoff.csv)은 상업용 비행기에서 이륙하는 동안 제 앞 좌석에 슬램 스틱을 장착하고 2,000Hz로 샘플링 한 것입니다. 제 아내는 그 시험에 너무 만족하지 않았습니다 ...


    마지막 두 장의 기록은 내 자동차 (2008 Saab 93 2.0T) 엔진의 데이터를보고 있습니다. 첫 번째 녹음 (car_engine.csv)은 더 많은 정보 가 담긴 하우투 비디오 시리즈 의 일부입니다 . 두 번째로 큰 데이터 세트 (commute.csv)는 슬램 스틱을 내 엔진에 장착하고 고속도로를 통행하는 아침 통근 중에 진동을 기록한 것입니다. 나는 20 분짜리 녹음이지만 10,000 Hz에서 샘플링 했으므로 1 천만 개가 넘는 데이터 포인트가 있습니다.


    FFT 알고리즘의 실행 시간은 변환 길이에 따라 다릅니다. 변환 길이가 2의 거듭 제곱 일 때는 가장 빠르며, 변환 길이가 작은 소수 요소 인 경우에는 거의 빠릅니다. 프라임 또는 큰 소수 요소를 갖는 변환 길이의 경우 일반적으로 더 느립니다. 그러나 시간차는 MATLAB에서 사용되는 것과 같은 현대식 FFT 알고리즘으로는 중요하지 않습니다. 효율성을 위해 변환 길이를 조정하는 것은 일반적으로 실제로는 불필요합니다.


    결론

    1. Python은 MATLAB에 대한 인상적인 무료 대안입니다.

    2. 파이썬의 SciPy FFT 함수  는 특히 2의 거듭 제곱과 길이가 다른 데이터 세트를 처리 할 때 MATLAB 보다 열등합니다

    3. pyFFTW 는 SciPy 나 NumPy의 FFT 함수보다 훨씬 뛰어나며 MATLAB과 비슷한 성능을 제공합니다

    4. 팬더 라이브러리는 CSV 파일를 로드할때 파이썬 사용자로 있어야합니다

    유일한 단점은 소프트웨어를 배포 할 때 라이센스 문제입니다.


    https://blog.mide.com/matlab-vs-python-speed-for-vibration-analysis-free-download