簡體   English   中英

如何生成波特圖矩陣?

[英]How to generate a matrix of bode plots?

我有多個波德圖,並希望以緊湊的方式繪制它們以簡化視覺評估。 我想到了某事。 就像一個nxm矩陣圖。 但是,無論在Matlab還是Python中,我都找不到如何實現的。 任何幫助我實現此目標的建議都將受到高度贊賞。

用於生成兩個波特圖的一些示例數據。

f1=[1,10,100,1000] Hz
amp1=[12,56,89,100] V
phase1=[0, 90,180,270] deg

f2=[1,20,50,100] Hz
amp2=[16,34,76,90] V
phase2=[10, 45,145,160] deg

同一軸上的多個波德圖:

bode(sys)
hold on
bode(sys2)

子圖:

subplot(211);
bode(sys1);
hold on;
subplot(212);
bode(sys2);
hold on;
subplot(211);
bode(sys3);

不知道您在問什么。

如評論中所述,您可以提供頻率響應陣列作為MIMO系統的輸入輸出響應。 讓我們偽造一些3x4x100復數,並偽造一系列頻率,然后繪制波特

A = rand(3,4,1000);
A = A + (rand(3,4,1000)-0.5)*1i;
w = logspace(-2,2,1000);
G = frd(A,w);
bode(G)

您可以從mag / phase數組再次獲得復矢量,其中r*exp(i \\theta)的極坐標表示為幅度和相位角。

在此處輸入圖片說明


編輯

f1=[1,10,100,1000];
amp1=[12,56,89,100];
phase1=[0, 90,180,270];

f2=[1,20,50,100];
amp2=[16,34,76,90];
phase2=[10, 45,145,160];

resp1 = amp1.*exp(1i*phase1*pi/180);
resp2 = amp2.*exp(1i*phase2*pi/180);

G = frd(resp1,f1,'FrequencyUnit','Hz');
H = frd(resp2,f2,'FrequencyUnit','Hz');

bode(G,H);

subplot(211);
bode(G);
hold on;
subplot(212);
bode(H);

暫無
暫無

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

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