P7 频域分析法-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink與控制系統仿真》程序指令總結
- Matlab_Simulink_BookExample
- 7. 頻域分析法
- 7.1 Matlab 函數
- 7.2 頻率特性概念
- 7.2.1 諧振頻率 ωr\omega_rωr?
- 7.2.2 諧振峰值 MrM_rMr?
- 7.2.3 頻帶 ωb\omega_bωb?
- 7.2.4 零頻 A(0)A(0)A(0)
- 7.3 頻率特性的表示方法
- 7.3.1 極坐標圖
- 7.3.2 對數坐標圖
- 7.3.3 對數幅相圖
- 7.5 頻率響應分析
- 7.5.1 相角裕量 γ\gammaγ
- 7.5.2 截止頻率 ωc\omega_cωc?
- 7.7 頻率法的穩定性分析
- 7.7.1 相對穩定性
- 7.7.2 增益裕度
- 7.7.3 相角裕度
- 7.7.4 用幅相頻率特性曲線分析系統穩定性
- 例題 7_1
- 例題 7_2
- 例題 7_3
- 例題 7_4
- 例題 7_5
- 例題 7_6
- 例題 7_7
- 例題 7_8
- 例題 7_9
書中詳細實例代碼可見:Github
Matlab_Simulink_BookExample
圖書:《Matlab/Simulink與控制系統仿真》
7. 頻域分析法
7.1 Matlab 函數
nyquist() Nyquist 曲線繪制函數
bode() Bode 圖繪制函數
nichols() Nichols 曲線繪制函數
ngrid() 繪制等 M 圓和等 N 圓的函數
margin 計算系統穩定裕度的函數
allmargin 計算幅值裕度、相角裕度以及對應的頻率
7.2 頻率特性概念
頻率響應法的基本思想是控制系統中的各個變量看成一些信號,而這些信號又是由許多不同頻率的正弦信號合成的;各個變量的運動就是系統對各個不同頻率的信號的響應的總和。
這種觀察問題和處理問題的方法起源于通信中的音頻信號傳播,各種音頻信號(電話、電報)信號都被看做由不同頻率的正弦信號成分合成的,并按此觀點進行處理和傳播。
頻率分析法是根據頻率特性曲線的形狀及其特征量來分析研究系統的特性,而不是對系統模型求解,它是以傳遞函數為基礎的又一種圖解法,它同根軌跡法一樣卓有成效地用于線性定常系統的分析和設計。
頻率特性是在正弦信號作用下,穩態輸出與輸入之比相對頻率的關系特性。
需要注意的是,當輸入非正弦的周期信號時,其輸入可利用傅里葉級數展開成正弦波的疊加,則其輸出為相應的正弦波的疊加。此時系統頻率特性定義為系統輸出量的傅氏變換與輸入量的傅氏變換之比。
7.2.1 諧振頻率 ωr\omega_rωr?
表示幅頻特性 A(ω)A(\omega)A(ω) 出現最大值時所對應的頻率。
7.2.2 諧振峰值 MrM_rMr?
表示幅頻特性的最大值,MrM_rMr? 值大表明系統對頻率的正弦信號反應強烈,即系統的平穩性差,階躍響應的超調量大。
7.2.3 頻帶 ωb\omega_bωb?
表示幅頻特性 A(ω)A(\omega)A(ω) 的幅值衰減到起始初值的 0.7070.7070.707 倍時所對應的頻率。ωb\omega_bωb? 大表明系統復現快速變化信號的能力強,失真小,即系統快速性好,階躍響應上升時間短,調節時間短。
7.2.4 零頻 A(0)A(0)A(0)
表示頻率 ω=0\omega=0ω=0 時的幅值。A(0)A(0)A(0) 表示系統階躍響應的終值,A(0)A(0)A(0) 與 111 之間的差反映了系統的穩態精度,A(0)A(0)A(0) 越接近 111,系統的精度越高。
7.3 頻率特性的表示方法
7.3.1 極坐標圖
7.3.2 對數坐標圖
7.3.3 對數幅相圖
7.5 頻率響應分析
7.5.1 相角裕量 γ\gammaγ
它反映系統的相對穩定性;它是在頻域內描述系統穩定程度的指標,而系統的穩定程度直接影響時域指標超調量 σ%\sigma \%σ% 和調節時間 tst_sts?,γ\gammaγ 與 σ%\sigma \%σ% 和 tst_sts? 存在內在聯系。
7.5.2 截止頻率 ωc\omega_cωc?
它反映系統的快速性。ωc\omega_cωc? 是 A(ωc)=1A(\omega_c)=1A(ωc?)=1 所對應的角頻率,或對數幅頻特性圖上 L(ω)L(\omega)L(ω) 穿越 000 分貝線的斜率。
7.7 頻率法的穩定性分析
Nyquist 穩定判據的理論基礎是復變函數理論中的幅角定理,也稱映射定理。
7.7.1 相對穩定性
7.7.2 增益裕度
7.7.3 相角裕度
7.7.4 用幅相頻率特性曲線分析系統穩定性
例題 7_1
% Page178:已知傳遞函數,繪制 Nyquist 圖 clear; clc;num = 5; den = [3,1]; G = tf(num, den); % 繪制 Nyquist 曲線并添加柵格 nyquist(G); grid例題 7_2
% Page179:已知傳遞函數,繪制未知參數的 Bode 圖 clear; clc;% w 為 10^{-2} 到 10^{2} 之間對數等間距分布的 200 個數 w = [0, logspace(-2, 2, 200)]; % 自然振蕩角頻率 wn = 0.7; % 阻尼比的不同取值 tau = [0.1, 0.4, 1.0, 1.6, 2.0]; for j=1:length(tau)num = wn^2;den = [1, 2*tau(j)*wn, wn^2];sys = tf(num, den);bode(sys, w);hold on end例題 7_3
% Page180:已知高階系統傳遞函數,繪制 Nichols 圖 clear; clc;num = [0.0001 0.0281 1.06356 9.6]; den = [0.0006 0.0286 0.06356 6]; G = tf(num, den); % 繪制等 M 圓和等 N 圓 ngrid('new') % 繪制系統的 Nichols 圖 nichols(G)例題 7_4
% Page180:已知傳遞函數,計算諧振幅值和諧振頻率 clear; clc;num = 3.6; den = [1, 3, 5]; G = tf(num, den); [Mr, Pr, Wr] = mr(G) bode(G)function [Mr, Pr, Wr] = mr(G) % 得到系統 Bode 圖相應的幅值 mag、相角 pha 與角頻率點 w 矢量 [mag, pha, w] = bode(G); magn(1, :) = mag(1, :); phase(1, :) = pha(1, :); [M, i] = max(magn); % 求得諧振峰值 Mr = 20 * log(M); Pr = phase(1, i); % 求得諧振頻率 Wr = w(i, 1); end例題 7_5
% Page186:已知傳遞函數,計算相角穩定裕量和幅值穩定裕量 clear; clc;num = 5 * [0.0167, 1]; den = conv(conv(conv([1, 0], [0.03, 1]),[0.0025, 1]),[0.001, 1]); G = tf(num, den); w = logspace(0, 4, 50); bode(G, w); grid; % 求穩定裕量 [Gm, Pm, Wcg, Wcp] = margin(G);例題 7_6
% Page186:已知傳遞函數,計算穩定裕量的變化 clear; clc;K = [5, 500, 800, 3000]; for j=1:4num = K(j)*[0.0167, 1];den = conv(conv(conv([1, 0], [0.03, 1]), [0.0025, 1]), [0.001, 1]);G = tf(num, den);% 計算幅值裕度、相角裕度以及對應的頻率y(j) = allmargin(G); end例題 7_7
% Page188:已知傳函,繪制極坐標圖,利用奈氏判據判斷穩定性 clear; clc;k = 100; z = [-5]; p = [2, -8, -20]; G = zpk(z,p,k); nyquist(G); grid例題 7_8
% Page188:已知傳函,繪制極坐標圖,利用奈氏判據判斷穩定性 clear; clc;z = []; p = [0, -5, -10]; k = 100. * [1, 7.8, 20]; G = zpk(z, p, k(1)); [re1, im1] = nyquist(G); G = zpk(z, p, k(2)); [re2, im2] = nyquist(G); G = zpk(z, p, k(3)); [re3, im3] = nyquist(G); plot(re1(:),im1(:), re2(:),im2(:), re3(:),im3(:)) grid xlabel('Real Axis'); ylabel('Imaginary Axis'); text(-0.4, -3.6, 'K=1'); text(-2.7, -2.7, 'K=7.8'); text(-4.4, -1.6, 'K=20');例題 7_9
% Page189:根據仿真得到的系統線性狀態空間模型,求取頻域性能指標 clear; clc;% 以下指令放置在命令行界面運行 % 提取 Simulink 模型的線性狀態空間模型 [A, B, C, D] = linmod('Eg7_9'); sys = ss(A, B, C, D); % 求取頻域指標 margin(sys);總結
以上是生活随笔為你收集整理的P7 频域分析法-《Matlab/Simulink与控制系统仿真》程序指令总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P6 根轨迹分析法-《Matlab/Si
- 下一篇: P8 控制系统校正与综合-《Matlab