Python對比MATLAB波動資料分析優勢

2021-10-22 08:32:19 字數 2100 閱讀 2924

在此,我們將測試兩個類似的matlab和python指令碼,因為它們執行了一些基本的振動分析。這些指令碼執行以下操作:

載入兩列csv

繪製所有資料

計算並繪製移動的1秒rms電平

計算並繪製fft

一般而言,python的優點是免費,開源且用途更廣。 他們的numpy和scipy軟體包具有與matlab類似的功能。 與matlab相比,python是一種非常優雅且直觀的程式語言。 它被建立為一種易於閱讀的通用語言。 他們肯定成功了! 除資料分析外,python被公認為是matlab滿足其他程式設計需求的更好的替代方案。

另一方面,matlab是專門為線性代數運算開發的,可以使其更快地用於振動分析應用程式。 不利的一面是,該語言可能難以閱讀/理解。 但是通常認為matlab封裝更乾淨,因為您可以在其中獲得乙個廣泛的函式庫和乙個整合開發環境(ide)。 對於python,您需要安裝額外的程式包和ide(儘管這不是一件大事!)。

我希望python和matlab之間的比較盡可能地精確。 我還希望它能夠進行有用的分析,這是振動測試的一種典型方法。 我在matlab中編寫了初始指令碼,以提示使用者輸入csv,載入csv並繪製所有資料。 然後,我執行乙個簡單的移動rms計算並繪製此圖,然後對整個資料集和圖進行fft。 指令碼將計算這些主要步驟中的每乙個花費多長時間。 我正在研究移動rms,因為這可以感覺到隨著時間的推移振動的強度。 fft是基本的第一振動分析步驟之一。

close all

clear all

%get filename and path

[fname,pathname] = uigetfile('.csv','select csv file to load, plot, compute rms & fft');

disp([pathname fname])

%load csv

tic %start timer

data = csvread([pathname fname]);

fprintf('%4.2f seconds - time to load data\n',toc)

%determine variables and display size

[n,m] = size(data);

t = data(:,1); %time in seconds

x = data(:,2); %array of data for rms and fft

fs = 1/(t(2)-t(1));

fprintf('%12.0f data points\n',n)

...

困難的部分是用python編寫乙個等效的指令碼。下面提供了pyhon指令碼。 指令碼的長度實際上是相同的。 python指令碼的載入時間要長幾行,以將其載入到必要的庫中。

import matplotlib.pyplot as plt

import numpy as np

from scipy.fftpack import fft

import tkinter as tk

from tkinter import filedialog

import time

#prompt user for file

root = tk.tk(

)root.withdraw(

)file_path = filedialog.askopenfilename(filetypes=[(

"two column csv"

,"*.csv")]

)print

(file_path)..

.

在此比較中,我們檢視了7個不同的振動資料集。在我們的振動分析基礎知識文中,對這些記錄中的大多數進行了更深入的解釋。前兩個記錄來自60秒的記錄,其中振動台上的感測器以恆定的10g,100 hz正弦輸入振動。 乙個檔案來自mems加速度計,取樣頻率為400 hz; 另乙個來自於5,000 hz的壓電加速度計取樣。

在下面單擊以檢視從兩個指令碼生成的振動分析示例圖。 頂部來自matlab,底部來自python。 從左到右,先繪製整個資料集,然後繪製移動rms,然後繪製整個資料集的fft。 您可以看到matlab和python都在同乙個地方。 但問題是他們多快到達那裡?

詳情參閱

python和matlab操作對比

在numpy中構造array資料時,盡量不要用np.array 1,2,3 這種,這種格式代表是乙個陣列,既不是行向量,也不是列向量,麻煩但必要的做法是 np.array 1,2,3 代表行向量,np.array 1 2 3 代表列向量。a 0 與a 0 a 0 1 的不同,如下圖 總結matlab...

小波 matlab 代做Matlab

matlab車牌識別 可做matlab數字影象,零定金做演示 誠信為本 點我想要私聊。影象檢索 基於綜合特徵的影象檢索設計,實現根據包括形狀 顏色和紋理不同權重實現檢索功能,也就是以圖搜圖 車牌識別 國內全國車牌識別 國外車牌識別,部分含設計 車型識別 差影法可做到判斷三種車型 基於gui的數字訊號...

MATLAB產生三角波

simulink產生三角波的三種方法 xianfa110 在這裡我採用兩種方法產生三角波,並做成了simulink模組形式,以後可直接呼叫。模組 引數設定 第一種方法,基於方波產生三角波。很簡單,框圖如下,由積分器產生帶斜率的直線,由方波的週期控制三角波的週期。第二種方法,由觸發方式產生三角波。這種...