簡體   English   中英

在matlab中找到波特圖中的傳遞函數

[英]Find transfer function from bode plot in matlab

我已經獲得了系統的波特圖。 該系統似乎具有非常復雜的幅度和相位圖。 手動找不到傳遞函數是不可能的。 有沒有辦法從大小和相位數據中找到傳遞函數,在Matlab中?

這是我的代碼:

%%FFT method for finding Transfer Function 
load testdata2.mat;
input = fft(signal(:,1));
% FFT of input data 
output = fft(signal(:,2));
% FFT of output data 
fft_ratio = output ./ input;

subplot(2,1,1) 

%Magnitude 
semilogx(20*log10(abs(fft_ratio))) 

subplot(2,1,2) 

%Phase 
semilogx((180/pi)*angle(fft_ratio)) 
mag = 20*log10(abs(fft_ratio)); 
phase = (180/pi)*angle(fft_ratio); 

這是我的數據。

我不相信,這不是Matlab的錯。 這個問題在數學上是不平凡的,因為傳遞函數的極點和零點可能處於大的虛頻率。 這些可能不會顯着影響波德情節,但你會如何排除它們的存在?

我認為你最好的選擇是將波德圖調整到合理的傳遞函數,並且只是在傳遞函數中增加極點和零點數,直到你得到可接受的協議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM