在此,我們將測試兩個類似的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模組形式,以後可直接呼叫。模組 引數設定 第一種方法,基於方波產生三角波。很簡單,框圖如下,由積分器產生帶斜率的直線,由方波的週期控制三角波的週期。第二種方法,由觸發方式產生三角波。這種...