MATLAB Linear Analysis Tool 的bode图数据获取
生活随笔
收集整理的這篇文章主要介紹了
MATLAB Linear Analysis Tool 的bode图数据获取
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版本:MATLAB 2018b
問題描述:MATLAB/Simulink的Linear Analysis Tool 功能很強大,可以用其做小信號分析,獲得的bode圖的數據很難獲取,在此總結了如何獲取bode圖數據的方法。
第一步:插入擾動輸入與輸出,軟件掃頻獲得bode圖,下圖,為SS補償WPT無線電能傳輸系統的一種控制方法的傳遞函數。
第二步:將上述bode導出為print to figure,并保存。
下圖為導出的figure形式。
第三步:從figure中獲取數據。由于bode圖有相位圖和幅值圖,我們一下的命令一次只能獲得一個圖的信息,因此要進行兩次操作,全程請保持figure圖開啟。
① 獲取幅值圖
鼠標點擊幅值圖,保證我們運行的命令是針對幅值圖的。
需要用到命令。提示:figure 不要關閉。
lh=findall(gca,'type','line'); % 從當前圖(gca)中取出曲線的handle, xc=get(lh,'xdata'); % 取出x軸數據,注意,這個x和y是以cell的數據結構保存的 yc=get(lh,'ydata'); % 取出y軸數據x=xc{1};從cell轉換成矩陣,可以這樣寫y=yc{1};運行結束后,或發現xc,yc分別為cell形式的數據
xc{3,1}與yc{3,1}存儲了我們所需要的數據。我們可以直接通過一下命令來獲取頻率信息和幅值。然后通過下邊的命令保存我們的頻率和幅值信息。
frequency = xc{3}; mag = yc{3}② 獲取相位圖信息
鼠標點擊相位圖,確保我們的命令是針對相位圖的。重復上述獲取數據的命令,在進行轉換。我們就完成了數據的獲取。
以上的數據全部存儲在數組當中,我們可以通過命令編輯上述數據,進行我們想要的操作了。
附送大家一段代碼,將兩個bode數據繪制到同一個圖中。
figure; color1=[1,0,0]; %[0.64706 0.16471 0.16471]; color2=[0,0.45,0.74];%[0 0 1];subplot(2,1,1); semilogx(Fre_Hz,20*log10(Amp1),'-','Color',color1,'LineWidth',1.2); hold on; % semilogx(VarName1,20*log10(VarName3/2/2/pi),'o','Color','g','LineWidth',1.2); semilogx(VarName1,VarName3,'o','Color','g','LineWidth',1.2); hold on; grid onsubplot(2,1,2); semilogx(Fre_Hz,Pha-720,'-','Color',color1,'LineWidth',1.2); hold on; semilogx(VarName1,VarName2,'o','Color','g','LineWidth',1.2); hold on; grid on;效果就是這一個樣子。
?
總結
以上是生活随笔為你收集整理的MATLAB Linear Analysis Tool 的bode图数据获取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python qrcode二维码操作——
- 下一篇: codeblocks||=== Buil