(matlab)频率特性仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运行结果:
)
图6 例4系统Nyquist曲线(
*
)
二、 MATLAB频域分析实例
例5:系统的开环传递函数为
绘制系统的Nichols曲线。 num=100; den=[1 8 0]; w=logspace(-1,2,100); nichols(num,den,w); %指定频率范围的 Nichols曲线 ngrid; %绘制等M圆和等N圆
运行结果:
resonantPeak = 5.2388 resonantFreq = 0.7906 bandwidth = 1.2649
*
三、MATLAB频率校正方法
1. 基于Bode图的相位超前校正步骤
超前网络: 为了获得最大的相位超前量,应使得超前网络的 最大相位超前发生在校正后系统的幅值穿越频率 处,即 。根据这一思想,具体设计步骤 如下: (1)根据要求的稳态误差指标,确定开环增益 K; (2)计算校正前的系统相位裕度γ。利用已确定的 开环增益,绘制校正前的系统 Bode图,并求 取γ值。 *
例8:已知单位负反馈系统的开环传递函数为 。使用MATLAB设计超前校正网 络,使系统的稳态速度误差系数 ,相 位裕度不小于 。
n由要求可计算得
。则满足稳态速度误 差要求的系统开环传递函数为 。
*
delta=3; s=tf('s'); G=20/(s*(s+1)); margin(G) [gm,pm]=margin(G) phim1=50; phim=phim1-pm+delta; phim=phim*pi/180; alfa=(1+sin(phim))/(1sin(phim)); a=10*log10(alfa); [mag,phase,w]=bode(G); adB=20*log10(mag); wm=spline(adB,w,-a); t=1/(wm*sqrt(alfa)); Gc=(1+alfa*t*s)/(1+t*s); [gmc,pmc]=margin(G*G c) figure; margin(G*Gc)
*
运行结果:
* Bode图 图2 例2系统的
二、 MATLAB频域分析实例
例3:系统的开环传递函数为 绘制K取不同值时系统的Bode图。 k=[10 500 1000]; %K分别取10,50,1000 for ii=1:3 G(ii)=tf(k(ii),[1 10 500]); end bode(G(1),'r:',G(2),'b--',G(3)) title('系统K/(s^2+10s+500)Bode图 ,K=10,500,1000','fontsize',16); grid
频率特性仿真
主要内容
– MATLAB频率分析的相关函数 – MATLAB频率分析实例 – MATLAB频率校正方法
*
一、MATLAB频率分析的相关函数
表1 频域分析的相关函数用法及功能说明
bode(G) bode(G,w) bode(G1,'r-',G2,'gx',…) [mag,phase,w] = bode(G) [mag,phase] = bode(G,w)
*
运行结果:
图7 例5系统的Nichols 曲线 *
num=100; den=[1 8 0]; w=logspace(-1,2,100); [mag,phase]=nichols(num,den,w); %返回Nichols曲线参 数 magdB=20*log10(mag); %转换为对数幅值 subplot(2,1,1) semilogx(w,magdB); %使用Nichols曲线参数绘制幅频特性 title('系统幅频特性曲线'); subplot(2,1,2) semilogx(w,phase); %使用Nichols曲线参数绘制相频特性 title('系统相频特性曲线'); figure(2); bode(num,den,w) %直接求取系统Bode图 * title('系统Bode图');
表2 基于频域法的控制系统稳定判定相关 MATLAB函数
margin(G) [Gm,Pm,Wg,Wp] = margin(G) 绘制系统Bode图。带有裕量及相应频 率显示 给出系统相对稳定参数。分别为幅值裕 度、相角裕度、幅值穿越频率、相角穿越 频率 给出系统相对稳定参数。由Bode函数 得到的幅值、相角和频率向量计算。返回 参数分别为幅值裕度、相角裕度、幅值穿 越频率、相角穿越频率 返回相对稳定参数组成的结构体。包含幅 值裕度、相角裕度及其相应频率,时滞 幅值裕度和频率,是否稳定的标识符
*
三、MATLAB频率校正方法
1. 基于Bode图的相位超前校正步骤 (7)由超前网络参数得到校正器,并提高 校正器的增益以抵消1/a的衰减。得到经 补偿后的校正器。 (8)绘制校正后的系统Bode图。验证相 位裕度是否满足要求,有必要时重复上 述步骤。
*
三、MATLAB频率校正方法
频域法超前校正实例
三、MATLAB频率校正方法
1. 基于Bode图的相位超前校正步骤
(3)确定需要对系统增加的相位超前量 。 其中γ*表示期望的校正后系统的相位裕度。因为增加 超前校正装置后,会使幅值穿越频率向右方移动,因 而减小相位裕度,所以在计算相位超前量 时,应额 外加 。 (4)确定校正器衰减因子 。由 得 。 (5)确定最大超前频率 。在原系统幅值为 的频率 ,即作为校正后 系统的幅值穿越频率。 (6)确定校正网络的参数T。
[Gm,Pm,Wg,Wp] = margin(mag,phase,w) S = allmargin(G)
*
二、 MATLAB频域分析实例
例1:系统的开环传递函数为
绘制系统的Bode图。 s=tf('s'); G=1000*(s+1)/(s*(s+2)*(s^2+17*s+4000)); bode(G) %绘制波特图 grid %绘制网格
返回系统Nyquist图相应的实部、虚部和频率向量
返回系统Nyquist图与指定w相应的实部、虚部。
*
一、MATLAB频率分析的相关函数
表1 频域分析的相关函数用法及功能说明
nichols(G) nichols(G,w) nichols(G1,'r-',G2,'gx',…) 绘制系统Nichols图。系统自动选取频率范围 绘制系统Nichols图。由用户指定选取频率范围 同时绘制多系统Nichols图。图形属性参数可选
* 图4 例4系统的Nyquist 曲线
例4续:
n
对于图4,如果想要看清某部分细节, 也可通过设置坐标范围进行局部放大, 从而得到更清晰的局部图像,如图 5。
num=[20 20 10]; den=conv([1 1 0],[1 10]); Nyquist(num,den) axis([-2 2 -5 5]) %设置坐标范围
*
一、MATLAB频率分析的相关函数
表1 频域分析的相关函数用法及功能说明
ngrid 在Nichols曲线图上绘制等M圆和等N圆。要注在对 数坐标中,圆的形状会发生变化 绘制网格前清除原图,然后设置 hold on。后续 Nichols函数可与网格绘制在一起
ngrid('new')
*
一、MATLAB频率分析的相关函数
绘制系统Bode图。系统自动选取 频率范围 绘制系统Bode图。由用户指定选 取频率范围 同时绘制多系统Bode图。图形属 性参数可选 返回系统Bode图相应的幅值、相 位和频率向量。可使用magdb = 20*log10(mag)将幅值转换为分贝值 返回系统Bode图与指定w相应的 幅值、相位。可使用magdb = 20*log10(mag) 将幅值转换为分贝值 *
*
运行结果:
图5
* 例4局部放大的系统 Nyquist曲线
Baidu Nhomakorabea
例4续:
n
同样,还可通过设置 范围得到局部的Nyquist 曲线。如只绘制系统位于 的Nyquist曲线, 如图6。
num =[20 20 10]; den=conv([1 1 0],[1 10]); w=0.1:0.1:100; %设置频率范围 [re,im]=Nyquist(num,den,w); %返回指定频率范围 的Nyquist曲线数据 plot(re,im) axis([-2 2 -5 5]); grid; title('系统(20s^2+20s+10)/[(s^2+s)(s+10)]Nyquist * 图(\omega>0)','fontsize',12);
运行结果:
图10 例6系统
的*Bode图
运行结果:
图11 例6系统
*
的Bode图
二、 MATLAB频域分析实例
例7:单位负反馈系统的开环传递函数为
绘制闭环系统的Bode图。此外,继续给出闭 环频率特性性能指标谐振峰值、谐振频率和系 统带宽。
*
二、 MATLAB频域分析实例
例 7:
s=tf('s'); Gk=1/s/(0.5*s+1)/(s+1); G=feedback(Gk,1); %闭环系统传递函数 w=logspace(-1,1); %给出从 共50个(默认)频率值 [mag,phase,w]=bode(G,w); %返回闭环系统bode图参数 [Mp,k]=max(mag); %谐振峰值 resonantPeak=20*log10(Mp) %谐振峰值单位转换 resonantFreq=w(k) %谐振频率 n=1; while 20*log10(mag(n))>=-3 n=n+1; end bandwidth=w(n) % 系统带宽 * bode(G,w),grid; %系统bode图
可利用Nichols曲线返回的幅值和 相位数据绘制波特图
运行结果:
* 图8 例5由Nichols曲线参数绘制对数坐标图
运行结果
图9 例5直接求取的系统波特图 *
二、 MATLAB频域分析实例
例6:分别判定系统 和 的稳定性。如果系统稳 定,进一步给出系统相对稳定参数。 num1=5; den1=conv([1 2],[1 5 0]); G1=tf(num1,den1); margin(G1) figure(2) num2=200; den2=conv([1 2],[1 5 0]); G2=tf(num2,den2); * margin(G2)
一、MATLAB频率分析的相关函数
表1 频域分析的相关函数用法及功能说明
Nyquist(sys) Nyquist(sys,w) Nyquist(G1,'r-',G2,'gx',…) [re,im,w] = Nyquist(sys) [re,im] = Nyquist(sys,w) 绘制系统Nyquist图。系统自动选取频率范围 绘制系统Nyquist图。由用户指定选取频率范围 同时绘制多系统Nyquist图。图形属性参数可选
[mag,phase,w] = 返回系统Nichols图相应的幅值、相位和频率向量。 nichols(G) 可使用magdb = 20*log10(mag)将幅值转换为分贝 值 [mag,phase] = nichols(G,w) 返回系统Nichols图与指定w相应的幅值、相位。可 使用magdb = 20*log10(mag)将幅值转换为分贝值
*
二、 MATLAB频域分析实例
例2续: title('系统Bode图'); xlabel('Frequency(rad/sec)'); ylabel('Gain dB'); subplot(2,1,2); semilogx(w,phase); %绘制对数相频特性图 grid; xlabel('Frequency(rad/sec)'); ylabel('Phase deg');
*
运行结果:
图1 例1系统Bode图
*
二、 MATLAB频域分析实例
例2:系统的开环传递函数为
绘制系统的Bode图。
num=5; den=conv([1 2],[1 2 1]); w=logspace(-2,3,100); %指定频率范围 [mag,phase,w]=bode(num,den,w); %返回波特图数据 magdB=20*log10(mag); %进行幅值的单位转换 subplot(2,1,1); semilogx(w,magdB); %绘制对数幅频特性图 grid;
*
运行结果:
* 50,1000的系统Bode图 图3 例3K分别取10,
二、 MATLAB频域分析实例
例4:单位负反馈系统的开环传递函数为
绘制系统Nyquist曲线。 num=[20 20 10]; den=conv([1 1 0],[1 10]); Nyquist(num,den)
*
运行结果:
相关文档
最新文档