用MATLAB实现线性系统的频域分析分析解析
《自动控制原理》实验3.线性系统的频域分析
《自动控制原理》实验3.线性系统的频域分析实验三线性系统的频域分析一、实验目的1.掌握用MATLAB语句绘制各种频域曲线。
2.掌握控制系统的频域分析方法。
二、基础知识及MATLAB函数频域分析法是应用频域特性研究控制系统的一种经典方法。
它是通过研究系统对正弦信号下的稳态和动态响应特性来分析系统的。
采用这种方法可直观的表达出系统的频率特性,分析方法比较简单,物理概念明确。
1.频率曲线主要包括三种:Nyquist图、Bode图和Nichols图。
1)Nyquist图的绘制与分析MATLAB中绘制系统Nyquist图的函数调用格式为:nyquist(num,den) 频率响应w的范围由软件自动设定 nyquist(num,den,w) 频率响应w的范围由人工设定[Re,Im]= nyquist(num,den) 返回奈氏曲线的实部和虚部向量,不作图2s?6例4-1:已知系统的开环传递函数为G(s)?3,试绘制Nyquists?2s2?5s?2图,并判断系统的稳定性。
num=[2 6]; den=[1 2 5 2]; nyquist(num,den)极点的显示结果及绘制的Nyquist图如图4-1所示。
由于系统的开环右根数P=0,系统的Nyquist曲线没有逆时针包围(-1,j0)点,所以闭环系统稳定。
p =-0.7666 + 1.9227i -0.7666 - 1.9227i -0.4668图4-1 开环极点的显示结果及Nyquist图若上例要求绘制??(10?2,103)间的Nyquist图,则对应的MATLAB语句为:num=[2 6]; den=[1 2 5 2];w=logspace(-1,1,100); 即在10-1和101之间,产生100个等距离的点nyquist(num,den,w)2)Bode图的绘制与分析系统的Bode图又称为系统频率特性的对数坐标图。
Bode图有两张图,分别绘制开环频率特性的幅值和相位与角频率?的关系曲线,称为对数幅频特性曲线和对数相频特性曲线。
实验四 MATLAB用于频域分析
实验四 MATLAB用于频域分析一、实验目的1、利用MATLAB可以画出频率特性的精确图形2、求取系统的稳定裕量3、对系统进行分析和设计二、实验原理对于系统的传递函数,通过函数调用可画出2种频率特性图。
1、绘制伯德图可用函数Bode(num,den),该函数表示在同一幅图中,分上、下两部分生成对数幅频特性和相频特性,横轴均以rad/sec为单位。
2、绘制奈氏图可用函数nyquist(num,den)。
通过这两种形式的调用,可以计算G(jw)的实部和虚部,但是不能直接在屏幕上产生奈氏图,需要通过调用plot(re,im)函数才可得到奈氏图。
对系统进行频率特性分析时,相位裕量和幅值裕量是衡量系统相对稳定性的重要指标,应用MATLAB函数可以方便的求出系统的相位裕量和幅值裕量。
[gm,pm,wcg,wcp]=margin(mag,phase,w);三、实验代码1、bode([1],[1 0])nyquist([1],[1 0])2、%伯德图num=[1];zeta1=0.1;den1=[1 2*zeta1 1];zeta3=0.3;den3=[1 2*zeta3 1];zeta5=0.5;den5=[1 2*zeta5 1];zeta7=0.7;den7=[1 2*zeta7 1];zeta9=0.9;den9=[1 2*zeta9 1];[mag1,phase1,w1]=bode(num,den1);[mag3,phase3,w3]=bode(num,den3);[mag5,phase5,w5]=bode(num,den5);[mag7,phase7,w7]=bode(num,den7);[mag9,phase9,w9]=bode(num,den9);subplot(211);semilogx(w1,20*log10(mag1),w3,20*log10(mag3),w5,20*log10(mag5),w7,20*log10(mag7 ),w9,20*log10(mag9));subplot(212);semilogx(w1,phase1,w3,phase3,w5,phase5,w7,phase7,w9,phase9);%奈氏图num=[1];zeta4=0.4;den4=[1 2*zeta4 1];zeta6=0.6;den6=[1 2*zeta6 1];zeta8=0.8;den8=[1 2*zeta8 1];[re1,im1]=nyquist(num,den4);[re2,im2]=nyquist(num,den6);[re3,im3]=nyquist(num,den8);plot(re1,im1,re2,im2,re3,im3);3、z=[-10];p=[0,-1/2];k=1/2;h=zpk(z,p,k);bode(h);grid on;4、h1=tf([2.33],[0.162 1]);h2=tf([1],[0.0368 1]);h3=tf([1],[0.00167 1]);h=h1*h2*h3;[num,den]=tfdata(h);[mag,phase,w]=bode(num,den);subplot(211);semilogx(w,20*log10(mag));grid ; subplot(212);semilogx(w,phase);grid;[gm,pm,wcg,wcp]=margin(mag,phase,w);四、实验结果1、2、3、4、五、实验总结通过本次实验了解了如何利用MATLAB画出频率特性的伯德图和奈氏图,求出系统的稳定裕量,加深了对伯德图和奈氏图的理解,巩固了课上学到的系统频域分析的相关知识。
信号的频谱分析及MATLAB实现
信号的频谱分析及MATLAB实现频谱分析是对信号的频率特性进行研究和分析的方法,可以帮助我们了解信号中不同频率成分的强度和分布情况。
MATLAB是一款功能强大的数学计算和数据处理软件,具有丰富的信号处理工具箱,可以方便地进行频谱分析。
频谱分析的基本原理是将时域信号转换为频域信号,即将信号从时域表示转换为频域表示。
在频域表示中,信号的幅度和相位都可以很直观地观察和分析。
频谱分析的第一步是对信号进行采样和离散化,得到离散时间序列信号。
可以使用MATLAB中的信号处理函数进行采样和离散化的操作。
例如,可以使用"audioread"函数读取音频文件,并使用"fft"函数对信号进行快速傅里叶变换。
接下来,可以使用MATLAB提供的"fftshift"函数对离散频谱进行平移操作,使得频谱的零频率分量位于频谱中心。
然后,可以计算频谱的幅度谱和相位谱,并使用"abs"和"angle"函数提取幅度和相位信息。
除了基本的频谱分析方法外,MATLAB还提供了更高级的频谱分析工具,如功率谱密度估计和滤波器设计等。
使用这些工具,可以更准确地估计信号的频谱特性,并对信号进行滤波和频谱修正等处理。
总结起来,频谱分析是对信号频率特性进行研究的重要方法,MATLAB提供了丰富的工具和函数,便于实现频谱分析的各个步骤。
通过对信号频谱的分析,可以更深入地了解信号的特性和结构,为信号处理和相关研究提供有力支持。
(注:由于所给的字数限制,以上内容只是对频谱分析及MATLAB实现的简要介绍。
线性系统频域分析实验报告
实验三、线性系统的频域分析法一,实验目的1,掌握matlab绘制波特图以及奈奎斯特图的方法。
2,学会从波特图以及奈奎斯特图判定系统的稳定性。
3,学会从波特图上求系统的稳定裕度。
4,了解k值变化时对波特图幅频和相频曲线的影响。
5,掌握matalab绘制系统零极点分布图的方法。
6,学会从系统的零极点分布图判断系统的稳定性。
二,实验原理1,从奈奎斯特图判定系统是否稳定的原理奈式稳定判据:反馈控制系统稳定的充分必要条件是半闭合曲线ΓGH不穿过(-1,0j)点,且逆时针包围临界点(-1,0j)点的圈数R 等于开环传递函数正实部极点数P具体方法是,先观察系统传递函数得出系统是否在s平面的右半开平面由极点,得出P的值,在观察曲线从(-1,0j)点右侧穿越的次数,其中自上而下为正穿越,自下而上为负穿越,完整的一次穿越记为N 半次穿越记为0.5N,R=2N=2(N+ -N-) 而Z=P-R,观察Z是否为零,Z 为零则系统是稳定的,Z不为零时则系统是不稳定的。
2,从波特图判定系统是否稳定的原理。
从奈奎斯特稳定判定我们可以知道,要判定系统是否稳定就要观察曲线穿越(-1,0j)点次数,对应在波特图中,当取w=wc时,要满足A(wc)=|G(jwc)H(jwc)|=1 L(wc)=20logA(wc)=0因此wc为分界点,对应到相频曲线上,观察在w<wc时曲线穿越-180度的次数。
然后计算方法和上面相同,既可以判定系统的稳定性。
3,根据系统的零极点分布判断系统稳定性的原理三,实验内容A、设单位负反馈系统的开环传递函数为K(S+1)/S(S+2)(S^2+17S+4000) 其中K=1000(1)绘制波特图。
(2)观察绘制出的bode 图,分析系统的稳定性,并在图上求稳定裕度;(3)绘制K=2000 时系统的bode 图,分析曲线的改变情况,并分析K 值变化时,对系统幅频响应和相频响应的影响。
分析:1,绘制波特图matlab 文本命令为:s=tf(‘s’);G=1000*(s+1)/(s*(s+2)*(s^2+17*s+4000))Bode(G)Grid onMargin(G),2,绘制出的波形为2,由于传递函数中可知v=1所以要在相频中增补从-90度到0度的相频曲线,由波特图可以看出当L(w)=0dB时对应的频率值为wc,在w<wc 时,在相频曲线中没有穿越-180度,所以可以知道R=0,又由传递函数可以知道P=0,所以Z=0,从而我们知道系统此时是稳定的,由裕度函数我们可以在图中求出幅值裕度Gm=36.7dB,相角裕度Pm=93.5度.剪切频率wc=0.126rad/s.3,改变系统的k值,令k=2000绘制此时的波特图,matlab文本命令为;s=tf(‘s’);G=2000*(s+1)/(s*(s+2)*(s^2+17*s+4000))Bode(G)margin(G)grid on得到系统的波特图为:由波特图可以看出,当k值变大后,对相频曲线没有影响,因为k环节不提供相角,而对于幅频曲线来说当k值变为2000后相当于整个曲线向上平移了20lg2,从而使得幅值裕度和相角裕度改变了,幅值裕度为Gm=30.7dB,相角裕度为Pm=97度,剪切频率wc=0.256rad/s.B,设单位负反馈的开环传递函数为G(s)=10/(s+5)/(s-1)(1)绘制系统的Nyquist 曲线(2)分析系统的稳定性(3)根据系统的闭环零极点的分布图来分析系统的稳定性,和(2)得到的结果比较;1,绘制Nyquist 曲线的matlab文本命令为:num=10;den=conv([1 5],[1 -1]);nyquist(num,den)绘制出的图形为:2,分析系统的稳定性,当w趋于零时G(Jw)等于-2所以曲线的起点在(-2,0j),由曲线我们可以看出,曲线在(-1,0j)左边有半次自上而下的正穿越所以N+=0.5,N=2(N+-N-)=1,所以R=1,由系统的传递函数可以知道P=1,所以Z=P-R=0,从而得出系统是稳定的。
线性系统的频域分析报告MATLAB实验
1γ=50 20-=sK0原系统的伯德图:num/den =1.2347 s + 1 ------------- 0.20154 s + 1校正之后的系统开环传递函数为:num/den =6.1734 s + 5 ------------------------------------------- 0.20154 s^4 + 1.6046 s^3 + 3.4031 s^2 + 2 sP h a s e (d e g )Bode DiagramGm = Inf dB (at Inf rad/sec) , P m = 9.04 deg (at 3.14 rad/sec)-20020406080M a g n i t u d e (d B )alpha =6.1261;[il,ii]=min(abs(mag1-1/sqrt(alpha))); wc=w( ii); T=1/(wc*sqrt(alpha)); numc=[alpha*T,1]; denc=[T,1];[num,den]=series(num0,den0,numc,denc);[gm,pm,wcg,wcp]=margin(num,den); printsys(numc,denc)disp('УÕýÖ®ºóµÄϵͳ¿ª»·´«µÝº¯ÊýΪ:');printsys(num,den) [mag2,phase2]=bode(numc,denc,w); [mag,phase]=bode(num,den,w); subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),'--',w,20*log10(mag2),'-.');grid; ylabel('·ùÖµ(db)'); title('--Go,-Gc,GoGc'); subplot(2,1,2);semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-180-w),':'); grid; ylabel('Ïàλ(0)'); xlabel('ƵÂÊ(rad/sec)');title(['УÕýÇ°£º·ùÖµÔ£Á¿=',num2str(20*log10(gm1)),'db','ÏàλԣÁ¿=',num2str(pm1),'0';'УÕýºó£º·ùÖµÔ£Á¿=',num2str(20*log10(gm)),'db','ÏàλԣÁ¿=',num2s tr(pm),'0']);10-110101102-60-40-2002040幅值(d b )--Go,-Gc,GoGc10-110101102-300-200-1000100相位(0)频率(rad/sec)矫正后系统的伯德图矫正之前系统单位阶跃响应矫正之后系统的单位阶跃响应:比较矫正前后系统的响应情况:可以看出超前矫正使系统的调节时间变短,响应更加迅速,但是超调量偏大,对改善系统的动态性能起到了巨大的作用。
实验三利用MATLAB进行系统频域分析
实验三利用MATLAB进行系统频域分析系统频域分析是指通过对系统的输入输出信号进行频域分析,从而分析系统的频率响应特性和频率域特征。
利用MATLAB进行系统频域分析可以方便地实现信号的频谱分析、滤波器设计等功能。
下面将介绍如何利用MATLAB进行系统频域分析的基本步骤。
一、信号频谱分析1. 将信号导入MATLAB环境:可以使用`load`函数导入数据文件,或者使用`audioread`函数读取音频文件。
2. 绘制信号的时域波形图:使用`plot`函数绘制信号的时域波形图,以便对信号的整体特征有一个直观的了解。
3. 计算信号的频谱:使用快速傅里叶变换(FFT)算法对信号进行频谱分析。
使用`fft`函数对信号进行频域变换,并使用`abs`函数计算频谱的幅度。
4. 绘制信号的频谱图:使用`plot`函数绘制信号的频谱图,以便对信号的频率特征有一个直观的了解。
二、滤波器设计1.确定滤波器类型和要求:根据系统的要求和信号的特性,确定滤波器的类型(如低通滤波器、高通滤波器、带通滤波器等)和相应的频率响应要求。
2. 设计滤波器:使用MATLAB中的滤波器设计函数(如`fir1`、`butter`、`cheby1`等)来设计滤波器。
这些函数可以根据指定的滤波器类型、阶数和频率响应要求等参数来生成相应的滤波器系数。
3. 应用滤波器:使用`filter`函数将滤波器系数应用到信号上,得到滤波后的信号。
三、系统频率响应分析1. 生成输入信号:根据系统的要求和实际情况,生成相应的输入信号。
可以使用MATLAB中的信号生成函数(如`square`、`sine`、`sawtooth`等)来生成基本的周期信号,或者使用`randn`函数生成高斯白噪声信号。
2.绘制输入信号的频谱图:使用前面提到的信号频谱分析方法,绘制输入信号的频谱图。
3. 输入信号与输出信号的频域分析:使用`fft`函数对输入信号和输出信号进行频谱分析,并使用`abs`函数计算频谱的幅度。
基于Matlab对信号进行频域分析的方法
基于Matlab对信号进行频域分析的方法Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。
本文讨论使用Matlab对信号进行频域分析的方法。
说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。
之所以要有信号的频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。
FFTMatlab提供的傅里叶变换的函数是FFT,中文名叫做快速傅里叶变换。
快速傅里叶变换的提出是伟大的,使得处理器处理数字信号的能力大大提升,也使我们生活向数字化迈了一大步。
接下来就谈谈如何使用这个函数。
fft使用很简单,但是一般信号都有x和y两个向量,而fft只会处理y向量,所以想让频域分析变得有意义,那么就需要用户自己处理x向量一个简单的例子从一个简单正弦信号开始吧,正弦信号定义为:我们现在通过以下代码在Matlab中画出这个正弦曲线fo = 4; %frequency of the sine waveFs = 100; %sampling rateTs = 1/Fs; %sampling time intervalt = 0:Ts:1-Ts; %sampling periodn = length(t); %number of samplesy = 2*sin(2*pi*fo*t); %the sine curve%plot the cosine curve in the TIme domainsinePlot = figure;plot(t,y)xlabel(‘TIme (seconds)’)ylabel(‘y(t)’)TItle(‘Sample Sine Wave’)grid这就是我们得到的:当我们对这条曲线fft时,我们希望在频域得到以下频谱(基于傅里叶变换理论,我们希望看见一个幅值为1的峰值在-4Hz处,另一个在+4Hz处)使用FFT命令我们知道目标是什么了,那么现在使用Matlab的内建的FFT函数来重新生成频谱%plot the frequency spectrum using the MATLAB fft commandmatlabFFT = figure; %create a new figureYfreqDomain = fft(y); %take the fft of our sin wave,y (t)stem(abs(YfreqDomain)); %use abs command to get the magnitude%similary,we would use angle command to get the phase plot!%we‘ll discuss phase in another post though!xlabel(’Sample Number‘)ylabel(’Amplitude‘)TItle(’Using the Matlab fft command‘)gridaxis([0,100,0,120])效果如下:但是注意一下,这并不是我们真正想要的,有一些信息是缺失的x轴本来应该给我们提供频率信息,但是你能读出频率吗?幅度都是100没有让频谱中心为为FFT定义一个函数来获取双边频谱以下代码可以简化获取双边频谱的过程,复制并保存到你的.m文件中function [X,freq]=centeredFFT(x,Fs)%this is a custom function that helps in plotting the two-sided spectrum%x is the signal that is to be transformed%Fs is the sampling rateN=length(x);%this part of the code generates that frequency axisif mod(N,2)==0k=-N/2:N/2-1; % N evenelsek=-(N-1)/2:(N-1)/2; % N oddendT=N/Fs;freq=k/T; %the frequency axis%takes the fft of the signal,and adjusts the amplitude accordinglyX=fft(x)/N; % normalize the dataX=fftshift(X); %shifts the fft data so that it is centered这个函数输出正确的频域范围和变换后的信号,它需要输入需要变换的信号和采样率。
自动控制原理的MATLAB仿真与实践第5章 线性系统的频域分析
函数模型,如:tf(), zpk(), ss()。 bode(num,den):num,den分别为传递函数的分子与
margin(G);[Gm,Pm,Wcg,Wcp]= margin(G): 直接求出系统G的幅值裕度和相角裕度。 其中:Gm幅值裕度;Pm相位裕度;Wcg幅值裕度 处对应的频率ωc;Wcp相位裕度处对应的频率ωg。
nichols(G);nichols(G,w):绘制单位反馈系统开环传 递尼科尔斯曲线。
20
>>clear; num=[2, 3];den=[1, 2, 5, 7]; %G(s)的分子分母 多项式系数向量
p=roots(den) 求根结果:
%求系统的极点
p=
-0.1981 + 2.0797i
-0.1981 - 2.0797i
-1.6038 可见全为负根,则s右半平面极点数P=0。 绘制Nyquist曲线: >> nyquist(num,den) %绘制Nyquist曲线
本节分别介绍利用MATLAB进行频域绘图和频 率分析的基本方法。
6
5.2.1 Nyquist曲线和Bode图
MATLAB频率特性包括幅频特性和相频特性。 当用极坐标图描述系统的幅相频特性时,通常称为 奈奎斯特(Nyquist)曲线;用半对数坐标描述系 统的幅频特性和相频特性时,称为伯德(Bode) 图;在对数幅值-相角坐标系上绘制等闭环参数( M和N)轨迹图,称为尼克尔斯(Nichols)图。
第六章 利用Matlab对信号进行频域分析
练习 1连续求以下信号的DTFS的系数 连续求以下信号的DTFS的系数
x[n] = cos(nπ / 30) + 2sin(nπ / 90)
2已知一个信号在一个周期内的DTFS系数由下式给 已知一个信号在一个周期内的DTFS系数由下式给 出X[k]=(1/2)k,假设N=10,求出时域信号x[n]. 假设N=10,求出时域信号x[n].
Example T0=1;N=19;T=T0/N; t=0:T:T0; x=cos(2*pi*5*t)+2*sin(2*pi*9*t); Xm=fft(x,N)/N; f=(-(N-1)/2:(N-1)/2)/N/T;%% f=(-(N-1)/2:(Nfigure; stem(t,xlabel('f(Hz)');ylabel('Magnitude');title('幅度谱'); xlabel('f(Hz)');ylabel('Magnitude');title('幅度谱');
例题2 例题2 π π 7π x[n] = cos( n + ) + 0.5cos( n) 已知一个周期序列, 8 3 8 利用FFT计算它的离散时间傅里叶级数 利用FFT计算它的离散时间傅里叶级数 理论计算可得
7π x[n] = cos( n + ) + 0.5cos( n) 8 3 8 = e
∞
∫
相比离散时间非周期信号的DTFT分析方法,连续非周期信号的 相比离散时间非周期信号的DTFT分析方法,连续非周期信号的 DFT分析方法增加了时域抽样环节.如果不满足抽样定理,会出 DFT分析方法增加了时域抽样环节.如果不满足抽样定理,会出 现混叠误差.如果信号在时域加窗截断过程中,窗口宽度(截断 长度)或窗口类型不合适,则会产生较大的频率泄露而影响频谱 分辨率.因此确定抽样间隔T和相应的截断长度是决定DTFT能否 分辨率.因此确定抽样间隔T和相应的截断长度是决定DTFT能否 正确分析信号频谱的关键.
实验五Matlab频域分析
实验五 MATLAB 频域特性分析5.1 频率特性的概念系统的频率响应是在正弦信号作用下系统的稳态输出响应。
对于线性定常系统,在正弦信号作用下,稳态输出是与输入同频率的正弦信号,仅是幅值和相位不同。
设系统传递函数为()G s ,其频率特性为s j (j )(s)|G G ωω==例5-1 对系统22(s)s 2s 3G =++,在输入信号()sin r t t =和()sin3r t t =下可由Matlab 求系统的输出信号,其程序如下:》num=2;den=[1 2 3]; 》G=tf(num,den); 》t=0:0.1:6*pi; 》u=sin(t);/ u=sin(3*t); 》y=lsim(G ,u,t); 》plot(t,u,t,y)运行程序显示系统响应如图5-1所示。
a) sin t 的响应 b) sin (3t)的响应 图5-1 正弦信号输入系统的稳态响应5.2用()nyquist sys 绘制极坐标图频率特性中的奈奎斯特图是奈奎斯特(Nyquist )稳定性判据的基础。
反馈控制系统稳定的充分必要条件为:奈奎斯特曲线逆时针包围(1,0)j -点的次数等于系统开环右极点个数。
调用Matlab 中nyquist() 函数可绘出奈奎斯特图,其调用格式为:,,[re im ω]=nyquist(num,den,ω)或sys =tf(num,den);nyquist(sys)式中,()/G s num den =;ω为用户提供的频率范围;re 为极坐标的实部;im 为极坐标的虚部。
若不指定频率范围,则为nyquist(num,den)。
在输入指令中,如果缺省了左边的参数说明,奈奎斯特函数将直接生成奈奎斯特图;当命令包含左端变量时,即[re,im,ω]=nyquist(num,den)时,则奈奎斯特函数将只计算频率响应的实部和虚部,并将计算结果放在数据向量re 和im 中。
在此情况下,只有调用plot 函数和向量re 、im ,才能生成奈奎斯特图。
MATLAB实验3信号与系统频域分析的MATLAB实现
➢ N=500;%采样点数
➢ W=5*pi*1;%设定采样角频率
➢ w=k*W/N;%对频率采样
6
➢续
➢ F=r*sinc(t/pi)*exp(-j*t'*w);%计算采样函数的频谱
➢ F1=r*f1*exp(-j*t‘*w);%计算门函数的频谱 subplot(221);plot(t,f);
➢ xlabel('t'); ylabel('f(t)');
时域抽样定理
一个频谱受限的信号 f ( t ) , 如果频谱只占据 m ~ m
的范围, 则信号 f ( t ) 可以用等间隔的抽样值唯一的表示。而
1
抽样间隔必须不大于
2 fm
(其中m 2 fm)
或者说,最低抽样频率为 2 f m 。
最低抽样频率 fs 2fm 称为“奈奎斯特频率”。
也就是说:对于带限信号,当 2 时,频谱不发生混
➢ subplot(222); plot(w,F);
➢ axis([-2 2 -1 4]);
➢ xlabel('w'); ylabel('F(w)');
➢ subplot(223); plot(t,f1);
➢ axis([-2 2 -1 4]);
➢ xlabel('t'); ylabel('f1(t)');
17
%数值求解余弦信号的频谱 N = 300; W = 2*pi*5; k = -N:N; w = k*W/N; Y = 0.01*y*exp(-j*t‘*w); Y = abs(Y); subplot(222); plot(w/pi,Y) axis([-2,2,0,pi*7+0.2]); title('F(j\omega)'); xlabel('\omega 单位:pi');
MATLAB进行控制系统频域分析
MATLAB进行控制系统频域分析一、基于MATLAB 的线性系统的频域分析基本知识(1)频率特性函数)(ωj G 。
设线性系统传递函数为:n n n n m m m m a s a s a s a b s b s b s b s G ++⋅⋅⋅++++⋅⋅⋅++=---1101110)(则频率特性函数为:n n n n m m m m a j a j a j a b j b j b j b jw G ++⋅⋅⋅++++⋅⋅⋅++=---)()()()()()()(1101110ωωωωωω由下面的MATLAB 语句可直接求出G(jw)。
i=sqrt(-1) % 求取-1的平方根GW=polyval(num ,i*w)./polyval(den ,i*w)其中(num ,den )为系统的传递函数模型。
而w 为频率点构成的向量,点右除(./)运算符表示操作元素点对点的运算。
从数值运算的角度来看,上述算法在系统的极点附近精度不会很理想,甚至出现无穷大值,运算结果是一系列复数返回到变量GW 中。
(2)用MATLAB 作奈魁斯特图。
控制系统工具箱中提供了一个MATLAB 函数nyquist( ),该函数可以用来直接求解Nyquist 阵列或绘制奈氏图。
当命令中不包含左端返回变量时,nyquist ()函数仅在屏幕上产生奈氏图,命令调用格式为:nyquist(num,den) nyquist(num,den,w)或者 nyquist(G) nyquist(G,w)该命令将画出下列开环系统传递函数的奈氏曲线: )()()(s den s num s G 如果用户给出频率向量w,则w 包含了要分析的以弧度/秒表示的诸频率点。
在这些频率点上,将对系统的频率响应进行计算,若没有指定的w 向量,则该函数自动选择频率向量进行计算。
w 包含了用户要分析的以弧度/秒表示的诸频率点,MATLAB 会自动计算这些点的频率响应。
利用matlab进行信号和系统的复频域分析心得
利用matlab进行信号和系统的复频域分析心得
利用MATLAB进行信号和系统的复频域分析是非常常见的。
下面是一些心得和步骤供参考:
1. 导入信号数据:首先,你需要将信号数据导入到MATLAB中。
这可以通过多种方式实现,例如读取文件或直接生成信号矩阵。
2. 选择合适的频域分析方法:根据你的需求和信号类型,选择合适的频域分析方法。
常见的方法包括傅里叶变换、快速傅里叶变换(FFT)、离散傅里叶变换(DFT)等。
3. 执行频域分析:使用MATLAB提供的相应函数,如fft()或fftshift()来执行频域分析。
这将为你提供信号的频谱信息。
4. 绘制频谱图:使用MATLAB的绘图函数,如plot()或stem(),将频谱数据可视化为频谱图。
你可以选择线性频谱图或对数频谱图,具体取决于信号特性和需求。
5. 分析频谱信息:根据频谱图,你可以分析信号的频率分量、幅度特性以及相位特性。
对于系统分析,你还可以计算系统的传递函数。
6. 系统设计和优化:根据频域分析结果,你可以对系统进行设计和优化。
例如,你可以确定降噪滤波器的截止频率,或者针对特定的频率范围进行信号增强。
需要注意的是,MATLAB提供了丰富的信号处理和系统分析工具箱,可以帮助你更轻松地完成复频域分析任务。
同时,请确保使用合法授权的软件和工具,遵守中国法律政策。
MATLAB进行控制系统频域分析报告
一、基于MATLAB 的线性系统的频域分析基本知识(1)频率特性函数)(ωj G 。
设线性系统传递函数为:nn n n m m m m a s a s a s a b s b s b s b s G ++⋅⋅⋅++++⋅⋅⋅++=---1101110)( 则频率特性函数为:nn n n m m m m a j a j a j a b j b j b j b jw G ++⋅⋅⋅++++⋅⋅⋅++=---)()()()()()()(1101110ωωωωωω 由下面的MATLAB 语句可直接求出G(jw)。
i=sqrt(-1) % 求取-1的平方根GW=polyval(num ,i*w)./polyval(den ,i*w)其中(num ,den )为系统的传递函数模型。
而w 为频率点构成的向量,点右除(./)运算符表示操作元素点对点的运算。
从数值运算的角度来看,上述算法在系统的极点附近精度不会很理想,甚至出现无穷大值,运算结果是一系列复数返回到变量GW 中。
(2)用MATLAB 作奈魁斯特图。
控制系统工具箱中提供了一个MATLAB 函数nyquist( ),该函数可以用来直接求解Nyquist 阵列或绘制奈氏图。
当命令中不包含左端返回变量时,nyquist ()函数仅在屏幕上产生奈氏图,命令调用格式为:nyquist(num,den)nyquist(num,den,w)或者nyquist(G) nyquist(G,w)该命令将画出下列开环系统传递函数的奈氏曲线: )()()(s den s num s G = 如果用户给出频率向量w,则w 包含了要分析的以弧度/秒表示的诸频率点。
在这些频率点上,将对系统的频率响应进行计算,若没有指定的w 向量,则该函数自动选择频率向量进行计算。
w 包含了用户要分析的以弧度/秒表示的诸频率点,MATLAB 会自动计算这些点的频率响应。
当命令中包含了左端的返回变量时,即:[re,im,w]=nyquist(G)或[re,im,w]=nyquist(G,w)函数运行后不在屏幕上产生图形,而是将计算结果返回到矩阵re 、im 和w 中。
如何利用Matlab技术进行频域分析
如何利用Matlab技术进行频域分析MATLAB是一种功能强大的数学软件,被广泛应用于科学研究和工程领域。
其中的频域分析功能被广泛用于信号处理、图像处理、音频处理等领域。
本文将介绍如何利用MATLAB技术进行频域分析,以及常用的频域分析方法和技巧。
一、频域分析的基本概念在开始介绍如何利用MATLAB进行频域分析之前,我们先来了解一下频域分析的基本概念。
频域分析是指将信号从时域(时间域)转换到频域(频率域),以便更好地理解信号的频谱特性。
频域分析的基本原理是傅里叶变换。
傅里叶变换是将一个信号分解成一系列正弦函数和余弦函数的和,通过这种方式可以清晰地看到信号的频谱成分。
MATLAB中提供了多种傅里叶变换的函数,比如fft、ifft等,可以快速、方便地进行频域分析。
二、MATLAB中的频域分析函数MATLAB中提供了多种用于频域分析的函数,包括快速傅里叶变换(FFT)、离散傅里叶变换(DFT)、傅里叶逆变换(IFFT)等。
1. 快速傅里叶变换(FFT)快速傅里叶变换是一种将离散信号转换为频域表示的快速方法。
在MATLAB 中,可以使用fft函数进行快速傅里叶变换,如下所示:```MATLABX = fft(x);```其中,x为输入信号,X为傅里叶变换后的结果。
通过快速傅里叶变换,可以将信号从时域转换到频域,得到信号的频谱信息。
2. 离散傅里叶变换(DFT)离散傅里叶变换是一种将离散信号转换为频域表示的方法。
在MATLAB中,可以使用dft函数进行离散傅里叶变换,如下所示:```MATLABX = dft(x);```其中,x为输入信号,X为傅里叶变换后的结果。
3. 傅里叶逆变换(IFFT)傅里叶逆变换是一种将频域信号转换回时域信号的方法。
在MATLAB中,可以使用ifft函数进行傅里叶逆变换,如下所示:```MATLABx = ifft(X);```其中,X为输入的频域信号,x为傅里叶逆变换后的结果。
实验六Matlab频域分析
实验六 MATLAB 频域分析5.1 频率特性的概念系统的频率响应是在正弦信号作用下系统的稳态输出响应。
对于线性定常系统,在正弦信号作用下,稳态输出是与输入同频率的正弦信号,仅是幅值和相位不同。
设系统传递函数为()G s ,其频率特性为s j (j )(s)|G G ωω==例5-1 对系统22(s)s 2s 3G =++,在输入信号()sin r t t =和()sin3r t t =下可由Matlab 求系统的输出信号,其程序如下:》num=2;den=[1 2 3]; 》G=tf(num,den); 》t=0:0.1:6*pi; 》u=sin(t);/ u=sin(3*t); 》y=lsim(G ,u,t); 》plot(t,u,t,y)运行程序显示系统响应如图5-1所示。
a) sin t 的响应 b) sin (3t)的响应 图5-1 正弦信号输入系统的稳态响应5.2用()nyquist sys 绘制极坐标图频率特性中的奈奎斯特图是奈奎斯特(Nyquist )稳定性判据的基础。
反馈控制系统稳定的充分必要条件为:奈奎斯特曲线逆时针包围(1,0)j -点的次数等于系统开环右极点个数。
调用Matlab 中nyquist() 函数可绘出奈奎斯特图,其调用格式为:,,[re im ω]=nyquist(num,den,ω)或sys =tf(num,den);nyquist(sys)式中,()/G s num den =;ω为用户提供的频率范围;re 为极坐标的实部;im 为极坐标的虚部。
若不指定频率范围,则为nyquist(num,den)。
在输入指令中,如果缺省了左边的参数说明,奈奎斯特函数将直接生成奈奎斯特图;当命令包含左端变量时,即[re,im,ω]=nyquist(num,den)时,则奈奎斯特函数将只计算频率响应的实部和虚部,并将计算结果放在数据向量re 和im 中。
在此情况下,只有调用plot 函数和向量re 、im ,才能生成奈奎斯特图。
利用MATLAB进行频域分析^
实验三利用MATLAB进行频域分析一实验目的1 掌握利用MA TLAB绘制奈氏曲线、bode图的方法。
2 掌握利用绘制的图形进行线性系统频域分析的方法二实验内容1 奈氏曲线的绘制;2 bode图的绘制方法;3 系统稳定性及稳定裕度的分析。
三实验步骤1 奈氏曲线的绘制命令nyquist可以计算连续时间线性定常系统的时间响应,当命令不包含左端变量时,仅在屏幕上产生奈奎斯特图。
命令nyquist(num,den)将画出传递函数()()()num sG sden s=的奈奎斯特图,式中num和den包含以s的降幂排列的多项式系数。
命令nyquist(num,den,w)仅在用户指定的频率矢量所表示的诸点上,对系统的频率响应进行计算。
命令[re,im,w]= nyquist(num,den)把系统的频率响应表示成矩阵re, im和w,在频幕上不产生图形。
2bode图的绘制命令bode可以计算线性连续定常系统频率响应的幅值和相角。
命令bode(num,den)将画出传递函数()()()num sG sden s=的bode图,式中num和den包含以s的降幂排列的多项式系数。
命令margin(num,den)可直接画出bode图,并将截至频率与穿越频率在图中求出。
MATLAB软件仿真实验方案1)惯性环节惯性环节方框图如图4-1所示。
程序:num=1;den=[0.1 1];figure(1)bode(num,den) %此函数为对数频率特性作图函数,即Bode图figure(2)nyquist(num,den)%此函数为奈奎斯特曲线作图命令,即极坐标图程序运行结果:2)两个惯性环节组成的二阶系统系统方框图如图4-2所示。
程序:num=1;den=[0.2 0.3 1];figure(1)bode(num,den)%此函数为对数频率特性作图函数,即Bode 图figure(2)nyquist(num,den)%此函数为奈奎斯特曲线作图命令,即极坐标图运行结果如图所示:1/(0.1s+1)1/(0.2s+1)+ -R (s )C (s )2)典型二阶系统系统方框图如图4-3所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二用MATLAB实现线性系统的频域分析[实验目的]1.掌握MATLAB平台下绘制典型环节及系统开环传递函数的Bode图和Nyquist图(极坐标图)绘制方法;2.掌握利用Bode图和Nyquist图对系统性能进行分析的理论和方法。
[实验指导]一、绘制Bode图和Nyquist图1.Bode图绘制采用bode()函数,调用格式:①bode(sys);bode(num,den);系统自动地选择一个合适的频率范围。
②bode(sys,w);其中w(即ω)是需要人工给出频率范围,一般由语句w=logspace(a,b,n)给出。
logspace(a,b,n):表示在10a到10b之间的 n个点,得到对数等分的w值。
③bode(sys,{wmin,wmax});其中{wmin,wmax}是在命令中直接给定的频率w的区间。
以上这两种格式可直接画出规范化的图形。
④[mag,phase,ω]=bode(sys)或[m,p]=bode(sys)这种格式只计算Bode图的幅值向量和相位向量,不画出图形。
m为频率特性G(jω )的幅值向量;p为频率特性G(jω )的幅角向量,单位为角度(°)。
w为频率向量,单位为[弧度]/秒。
在此基础上再画图,可用:subplot(211);semilogx(w,20*log10(m) %对数幅频曲线subplot(212);semilogx(w,p) %对数相频曲线⑤bode(sys1,sys2,…,sysN) ;⑥bode((sys1,sys2,…,sysN,w);这两种格式可在一个图形窗口同时绘多个系统的bode图。
2. Nyquist曲线的绘制采用nyquist()函数调用格式:① nyquist(sys) ;② nyquist(sys,w) ;其中频率范围w由语句w=w1:Δw:w2确定。
③nyquist(sys1,sys2,…,sysN) ;④nyquist(sys1,sys2,…,sysN,w);⑤ [re,im,w]=nyquist(sys) ;re—频率响应实部im—频率响应虚部使用命令axis()改变坐标显示范围,例如axis([-1,1.5,-2,2])。
⑥当传递函数串有积分环节时ω=0处会出现幅频特性为无穷大的情况,可用命令axis(),自定义图形显示范围,避开无穷大点。
二、系统分析1.计算控制系统的稳定裕度采用margin( )函数可以直接求出系统的幅值裕度和相角裕度。
调用格式为:①[Gm,Pm,Wcg,Wcp]= margin(num,den) ;[Gm,Pm,Wcg,Wcp]= margin(A,B,C,D) ;[Gm,Pm,Wcg,Wcp]= margin(sys) ;Gm--- 幅值裕度;Pm---相位裕度;wcg ---幅值裕度处对应的频率ωc;wcp ---相位裕度处对应的频率ωg。
②[Gm,Pm,Wcg,Wcp]= margin(mag ,phase,w);③ margin(sys)在当前图形窗口中绘制出系统裕度的Bode图。
2.用幅值裕度和相角裕度判断闭环系统稳定性与相对稳定性3.用Nyquist图判断闭环系统稳定性由Nyquist曲线包围(-1,j0)点的情况,根据Nyquist稳定判据判断闭环系统稳定性。
三、举例例1:振荡环节如下:16()21016G s s s =++,做出该环节的Bode 图和Nyquist 图。
程序:>>n=[16];d=[1 10 16];sys=tf(n,d);figure(1);bode(sys);figure(2);nyquist(sys)运行结果:Bode DiagramFrequency (rad/sec)P h a s e (d e g )M a g n i t u d e (d B )10101010Nyquist DiagramReal AxisI m a g i n a r y A x is例2:振荡环节如下:16()216n G s s s ξω=++,做出该环节的Bode 图和Nyquist 图。
ξ变化,取[0.05,0.1,0.2,0.5,0.7,1,2]。
1.Bode 图程序:>> wn=8;znb=[0.05,0.1,0.5,0.7,2];w=logspace(0,2,10000);figure(1);n=[wn^2]; for k=znb d=[1 2*k*wn wn^2];sys=tf(n,d);bode(sys,w);hold on; end 运行结果:Bode DiagramFrequency (rad/sec)P h a s e (d e g )M a g n i t u d e (d B)-60-40-2002040101010-180-135-90-4501.Nyquist 图程序:>> wn=8;znb=[0.05,0.1,0.5,0.7,2];w=logspace(0,2,10000);figure(1);n=[wn^2]; for k=znb d=[1 2*k*wn wn^2];sys=tf(n,d); nyqiust(sys,w); hold on; end 运行结果:Nyquist DiagramReal AxisI m a g i n a r y A x i s例3:系统开环传递函数如下:①020()(0.51)G s s s =+,②0.231()0.0551c s G s s +=+,③20(0.231)()(0.0551)(0.51)s G s s s s +=++,做出各自的Bode 图,并求①、③幅值裕度和相角裕度 1.Bode 图程序:>> n1=20;d1=conv([1,0],[0.5,1]);sys1=tf(n1,d1); figure(2);bode(sys1); n2=[0.23 1];d2=[0.055,1];sys2=tf(n2,d2);hold on; figure(2);bode(sys2);n=[4.6 20];d=conv([1,0],conv([0.055,1],[0.5,1]));sys=tf(n,d);hold on; figure(2); bode(sys)运行结果:Bode DiagramFrequency (rad/sec)P h a s e (d e g )M a g n i t u d e (d B )101010102.求①②幅值裕度和相角裕度程序(图形与数据) >> n1=20;d1=conv([1,0],[0.5,1]);sys1=tf(n1,d1); figure(1);margin(sys1)运行结果:Bode DiagramFrequency (rad/sec)P h a s e (d e g )M a g n i t u d e (d B)Gm = Inf, P m = 17.964 deg (at 6.1685 rad/sec)101010>> n=[4.6 20];d=conv([1,0],conv([0.055,1],[0.5,1]));sys=tf(n,d);hold on; figure(2); margin(sys)运行结果:Bode DiagramFrequency (rad/sec)P h a s e (d e g )M a g n i t u d e (d B )Gm = Inf, P m = 50.472 deg (at 8.9542 rad/sec)101010102.求①②幅值裕度和相角裕度程序和结果(数据)>> [Gm,Pm,Wcg,Wcp]= margin(sys1)Gm = Inf Pm = 17.9642 Wcg = InfWcp = 6.1685>> [Gm,Pm,Wcg,Wcp]= margin(sys)Gm = Inf Pm = 50.4719 Wcg = Inf Wcp = 8.9542例4:系统开环传递函数为:0431)()(21)s G s s s +=+( 做出nyquist 图,按nyquist 稳定判据判断闭环系统的稳定性。
程序与结果:>> n=conv([4],[3 1]);d=conv([1 0],[2 1]);sys2=tf(n,d) Transfer function: 12 s + 4 --------- 2 s^2 + s>> figure(4);nyquist(sys2);v=[-1,6,-60,60];axis(v)Nyquist DiagramReal AxisI m a g i n a r y A x i s分析判断:p=0,nyquist 曲线没有包围(-1,j0)点,闭环系统是稳定的。
下面通过闭环系统时域阶跃响应来验证闭环系统的稳定性:>> n=conv([4],[3 1]);d=conv([1 0],[2 1]);G1=tf(n,d); G2=1;G=feedback(G1,G2,-1) Transfer function: 12 s + 4 ---------------- 2 s^2 + 13 s + 4 >> figure(7);step(G)Time (sec)A m p l i t u d e0.10.20.30.40.50.60.70.80.91ω=0-例5:系统开环传递函数为:023)()(1)s G s s s +=-( 做出nyquist 图,按nyquist 稳定判据判断闭环系统的稳定性。
程序与结果:>>z=[-3];p=[0,1];k=2;sys=zpk(z,p,k) Zero/pole/gain:2 (s+3) ------- s (s-1)>>nyquist(sys);v=[-10,10,-20,20];axis(v)Nyquist DiagramReal Axis分析判断:p=1,nyquist 曲线逆时针包围(-1,j0)点1周,闭环系统是稳定的。
下面通过闭环系统时域阶跃响应来验证闭环系统的稳定性: >> z=[-3];p=[0,1];k=2;sys=zpk(z,p,k);h=1;g= feedback(sys,h,-1) Zero/pole/gain: 2 (s+3)------------- (s^2 + s + 6) >> figure(8);step(g)ω=0+ω=0-Step ResponseTime (sec)A m p l i t u d e0246810120.20.40.60.811.21.41.61.8[实验内容]1.作各典型环节的Bode 图和Nyquist 图,参数自定。