用MATLAB进行系统频率特性曲线绘制
- 格式:doc
- 大小:192.50 KB
- 文档页数:6
《自动控制原理》实践报告实验三系统频率特性曲线的绘制及系统分析熟悉利用计算机绘制系统伯德图、乃奎斯特曲线的方法,并利用所绘制图形分析系统性能。
一、实验目的1.熟练掌握使用MATLAB软件绘制Bode图及Nyquist曲线的方法;2.进一步加深对Bode图及Nyquist曲线的了解;3.利用所绘制Bode图及Nyquist曲线分析系统性能。
二、主要实验设备及仪器实验设备:每人一台计算机奔腾系列以上计算机,配置硬盘≥2G,内存≥64M。
实验软件:WINDOWS操作系统(WINDOWS XP 或WINDOWS 2000),并安装MATLAB 语言编程环境。
三、实验内容已知系统开环传递函数分别为如下形式, (1))2)(5(50)(++=s s s G (2))15)(5(250)(++=s s s s G(3)210()(21)s G s s s s +=++ (4))12.0)(12(8)(++=s s s s G (5)23221()0.21s s G s s s s ++=+++ (6))]105.0)125.0)[(12()15.0(4)(2++++=s s s s s s G 1.绘制其Nyquist 曲线和Bode 图,记录或拷贝所绘制系统的各种图形; 1、 程序代码: num=[50];den=conv([1 5],[1 2]); bode(num,den)num=[50];den=conv([1 5],[1 2]); nyquist(num,den)-80-60-40-20020M a g n i t u d e (d B)10-210-110101102103-180-135-90-450P h a s e (d e g )Bode DiagramFrequency (rad/sec)-1012345-4-3-2-11234Nyquist DiagramReal AxisI m a g i n a r y A x i s2、 程序代码: num=[250];den=conv(conv([1 0],[1 5]),[1 15]); bode(num,den)num=[250];den=conv(conv([1 0],[1 5]),[1 15]);-150-100-5050M a g n i t u d e (d B )10-110101102103-270-225-180-135-90P h a s e (d e g )Bode DiagramFrequency (rad/sec)nyquist(num,den)3、 程序代码: num=[1 10];den=conv([1 0],[2 1 1]); bode(num,den)-150-100-50050100M a g n i t u d e (d B)10-210-110101102103-270-225-180-135-90P h a s e (d e g )Bode DiagramFrequency (rad/sec)-1-0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.10-15-10-551015System: sys Real: -0.132Imag: -0.0124Frequency (rad/sec): -10.3Nyquist DiagramReal AxisI m a g i n a r y A x i snum=[1 10];den=conv([1 0],[2 1 1]); nyquist(num,den)-25-20-15-10-5-200-150-100-5050100150200Nyquist DiagramReal AxisI m a g i n a r y A x i s-100-5050100M a g n i t u d e (d B )10-210-110101102-270-225-180-135-90P h a s e (d e g )Bode DiagramFrequency (rad/sec)4、 程序代码: num=[8];den=conv(conv([1 0],[2 1]),[0.2 1]); bode(num,den)-18-16-14-12-10-8-6-4-20-250-200-150-100-50050100150200250Nyquist DiagramReal AxisI m a g i n a r y A x i snum=[8];den=conv(conv([1 0],[2 1]),[0.2 1]); nyquist(num,den)5、 程序代码: num=[1 2 1]; den=[1 0.2 1 1]; bode(num,den)num=[1 2 1];den=[1 0.2 1 1]; nyquist(num,den)-40-30-20-10010M a g n i t u d e (d B )10-210-110101102-360-270-180-90P h a s e (d e g )Bode DiagramFrequency (rad/sec)-2.5-2-1.5-1-0.500.51 1.5-3-2-1123Nyquist DiagramReal AxisI m a g i n a r y A x i s-100-5050100M a g n i t u d e (d B )10-210-110101102-270-225-180-135-90P h a s e (d e g )Bode DiagramFrequency (rad/sec)6、 num=[2 4];den=conv(conv([1 0],[2 1]),[0.015625 0.05 1]); bode(num,den)num=[2 4];den=conv(conv([1 0],[2 1]),[0.015625 0.05 1]); nyquist(num,den)2.利用所绘制出的Nyquist 曲线及Bode 图对系统的性能进行分析:(1)利用以上任意一种方法绘制的图形判断系统的稳定性; 由Nyquist 曲线判断系统的稳定性,Z=P-2N 。
matlab画幅频响应和相频响应
要使用MATLAB绘制系统的幅频响应和相频响应,可以按照以下步骤进行:
1. 定义系统传递函数或频率响应函数。
假设你有一个系统的传递函数H(s),可以使用MATLAB的`tf`函数定义传递函数。
例如,假设传递函数为H(s) = (s+1)/(s^2+2s+3),可以使用以下代码定义传递函数:
matlab
num = [1 1];
den = [1 2 3];
H = tf(num, den);
2. 绘制幅频响应。
使用MATLAB的`bode`函数可以绘制系统的幅频响应曲线。
以下代码演示如何绘制幅频响应曲线:
matlab
bode(H);
这将绘制出系统的幅频响应曲线,并显示频率范围和幅度值。
3. 绘制相频响应。
使用MATLAB的`bode`函数的输出参数可以获取系统的相频响应数据。
以下代码演示如何获取相频响应数据并绘制相频响应曲线:
matlab
[mag, phase, wout] = bode(H);
semilogx(wout, squeeze(phase));
这将绘制出系统的相频响应曲线,并显示频率范围和相位值。
以上是基本的步骤,你可以根据实际需求和系统的特点进行相应的修改和调整。
用MATLAB分析闭环系统的频率特性闭环系统的频率特性指的是系统在不同频率下的响应特性。
在MATLAB中,可以通过不同的函数和工具箱来分析闭环系统的频率特性。
下面将介绍一些常用的方法。
1. 传递函数分析法(Transfer Function Analysis Method):传递函数描述了系统的输入和输出之间的关系。
在MATLAB中,可以使用tf函数创建传递函数对象,并利用bode函数绘制系统的频率响应曲线。
例如,假设有一个传递函数G(s) = 1/(s^2 + s + 1),可以用以下代码创建传递函数对象并绘制其频率响应曲线:```matlabG = tf([1], [1, 1, 1]);bode(G);```运行上述代码,将会显示出频率响应曲线,并且可以通过该函数的增益曲线和相位曲线来分析系统在不同频率下的响应特性。
2. 状态空间分析法(State-Space Analysis Method):状态空间模型描述了系统的状态变量之间的关系。
在MATLAB中,可以使用ss函数创建状态空间模型,并利用bode函数绘制系统的频率响应曲线。
例如,假设有一个状态空间模型A、B、C和D分别为:```matlabA=[01;-1-1];B=[0;1];C=[10];D=0;sys = ss(A, B, C, D);bode(sys);```运行上述代码,将会显示出频率响应曲线,并且可以通过该函数的增益曲线和相位曲线来分析系统在不同频率下的响应特性。
3. 伯德图法(Bode Plot Method):Bode图可以直观地表示系统的频率响应曲线。
在MATLAB中,可以使用bode函数绘制系统的Bode图。
例如,假设有一个传递函数G(s) =1/(s^2 + s + 1),可以用以下代码绘制其Bode图:```matlabG = tf([1], [1, 1, 1]);bode(G);```运行上述代码,将会显示出Bode图,并且可以通过该图来分析系统在不同频率下的增益和相位特性。
实验2利用MATLAB分析信号频谱及系统的频率特性引言:在信号处理和通信领域中,频谱分析是一项非常重要的技术。
频谱分析可以帮助我们了解信号的频率特性,包括频率成分和幅度。
MATLAB是一款功能强大的数学软件,提供了多种工具和函数用于信号处理和频谱分析。
本实验旨在通过MATLAB分析信号频谱及系统的频率特性,深入理解信号处理和频域分析的原理和应用。
实验步骤:1.生成一个信号并绘制其时域波形。
首先,我们可以使用MATLAB提供的函数生成一个信号。
例如,我们可以生成一个用正弦函数表示的周期信号。
```matlabt=0:0.001:1;%时间范围为0到1秒,采样率为1000Hzf=10;%信号频率为10Hzx = sin(2*pi*f*t); % 生成正弦信号plot(t,x) % 绘制信号的时域波形图title('Time domain waveform') % 添加标题```2.计算信号的频谱并绘制频谱图。
使用MATLAB中的FFT函数可以计算信号的频谱。
FFT函数将信号从时域转换为频域。
```matlabFs=1000;%采样率为1000HzL = length(x); % 信号长度NFFT = 2^nextpow2(L); % FFT长度X = fft(x,NFFT)/L; % 计算X(k)f = Fs/2*linspace(0,1,NFFT/2+1); % 计算频率轴plot(f,2*abs(X(1:NFFT/2+1))) % 绘制频谱图title('Frequency spectrum') % 添加标题```3.使用MATLAB分析系统的频率特性。
MATLAB提供了Signal Processing Toolbox,其中包含了分析系统频率特性的函数和工具。
```matlabHd = designfilt('lowpassfir', 'FilterOrder', 6,'CutoffFrequency', 0.3, 'SampleRate', Fs); % 设计一个低通滤波器fvtool(Hd) % 显示滤波器的频率响应``````matlab[W,F] = freqz(Hd); % 计算滤波器的频率响应plot(F,abs(W)) % 绘制滤波器的振幅响应title('Frequency response of lowpass filter') % 添加标题```实验结果:运行上述代码后,我们可以得到如下结果:1.时域波形图2.频谱图3.滤波器频率响应讨论与结论:本实验通过MATLAB分析信号频谱及系统的频率特性,深入理解了信号处理和频域分析的原理和应用。
用MATLAB进行控制系统的动态性能的分析MATLAB是一款功能强大的工具,可用于控制系统的动态性能分析。
本文将介绍使用MATLAB进行动态性能分析的常用方法和技巧,并提供实例来说明如何使用MATLAB来评估和改进控制系统的性能。
控制系统的动态性能是指系统对输入信号的响应速度、稳定性和精度。
评估控制系统的动态性能往往需要分析系统的阶跃响应、频率响应和稳态误差等指标。
一、阶跃响应分析在MATLAB中,可以使用step函数来绘制控制系统的阶跃响应曲线。
假设我们有一个系统的传递函数为:G(s)=(s+1)/(s^2+s+1)要绘制阶跃响应曲线,可以按照以下步骤操作:1.自动生成传递函数:num = [1 1];den = [1 1 1];G = tf(num,den);2.绘制阶跃响应曲线:step(G);二、频率响应分析频率响应分析用于研究控制系统对不同频率输入信号的响应特性。
在MATLAB中,可以使用bode函数来绘制控制系统的频率响应曲线。
假设我们有一个传递函数为:G(s)=1/(s+1)要绘制频率响应曲线,可以按照以下步骤操作:1.自动生成传递函数:num = [1];den = [1 1];G = tf(num,den);2.绘制频率响应曲线:bode(G);运行以上代码,MATLAB将生成一个包含系统幅频特性和相频特性的图形窗口。
通过观察频率响应曲线,可以评估系统的增益裕度(gain margin)和相位裕度(phase margin)等指标。
三、稳态误差分析稳态误差分析用于研究控制系统在稳态下对输入信号的误差。
在MATLAB中,可以使用step函数结合stepinfo函数来计算控制系统的稳态误差。
假设我们有一个传递函数为:G(s)=1/s要计算稳态误差,可以按照以下步骤操作:1.自动生成传递函数:num = [1];den = [1 0];G = tf(num,den);2.计算稳态误差:step(G);info = stepinfo(G);运行以上代码,MATLAB将生成一个阶跃响应曲线的图形窗口,并输出稳态误差等信息。
matlab差分方程画幅频相应差分方程是描述离散时间系统动态行为的数学模型,广泛应用于信号处理、控制系统、图像处理等领域。
在MATLAB中,我们可以利用差分方程来绘制幅频响应图,以分析系统在频域上的特性。
让我们来了解一下差分方程的基本概念。
差分方程是一种递推关系式,它描述了系统的输出信号与输入信号之间的关系。
差分方程通常具有如下形式:y(n) = a0 * x(n) + a1 * x(n-1) + a2 * x(n-2) + ... + am * x(n-m)其中,y(n)表示系统在时刻n的输出信号,x(n)表示系统在时刻n 的输入信号,a0、a1、a2等为系数,m为差分方程的阶数。
绘制幅频响应需要分析系统在频域上的特性,通常使用离散傅里叶变换(DFT)来将差分方程转化为差分方程的频域表示。
DFT是一种将时域信号转换为频域信号的数学工具,可以用来分析信号在不同频率上的能量分布。
在MATLAB中,我们可以使用fft函数来进行DFT变换。
假设我们有一个差分方程:y(n) = 0.5 * x(n) + 0.25 * x(n-1) + 0.125 * x(n-2)我们可以通过以下步骤来绘制该差分方程的幅频响应:1. 定义差分方程的系数向量a和输入信号向量x:a = [0.5, 0.25, 0.125];x = [1, zeros(1, 999)];其中,输入信号x是一个长度为1000的向量,其中只有第一个元素为1,其余元素为0。
2. 使用fft函数对输入信号x进行DFT变换,得到频域表示X:X = fft(x);3. 计算系统的频域响应Y:Y = a * X;其中,*表示向量的点乘操作。
4. 绘制幅频响应图:f = 0:1/1000:1-1/1000; % 定义频率向量H = abs(Y); % 计算幅度谱plot(f, H) % 绘制幅频响应图xlabel('频率') % 设置x轴标签ylabel('幅度') % 设置y轴标签title('差分方程的幅频响应') % 设置图表标题通过以上步骤,我们就可以在MATLAB中绘制出差分方程的幅频响应图。
matlab中impulse函数的用法及其说明Matlab中的impulse函数是一种非常有用的信号处理工具,它可以用来分析系统或者信号的特性。
本文将介绍impulse函数的用法和说明。
一、impulse函数的定义impulse函数是一种特殊的单位脉冲响应函数,也被称为单位冲击响应函数,通常表示为h(t),其中t表示时间。
impulse函数的定义如下:h(t) = δ(t)在时间t=0时,impulse函数的值为无穷大,而在t≠0时为0。
二、impulse函数的作用impulse函数可以在信号处理中起到非常重要的作用,它可以计算系统或信号的特性,例如阶跃响应、频率响应等,还可以用来计算系统的稳定性和可控性等指标。
下面我们将介绍具体的使用方法。
三、impulse函数的用法1、计算系统的阶跃响应在Matlab中,可以使用impulse函数来计算系统的阶跃响应。
例如,假设我们有一个系统的传递函数为H(s),则可以通过如下代码来计算系统的阶跃响应:>> H = tf([0 1],[1 2 3]);>> step(H);其中,tf函数是Matlab中用于创建传递函数的函数,[0 1]表示分子系数,[1 2 3]表示分母系数。
step函数用于计算信号经过系统后的阶跃响应。
2、计算系统的频率响应除了计算系统的阶跃响应,impulse函数还可以计算系统的频率响应。
通过如下代码,可以绘制系统的幅频特性曲线和相频特性曲线。
>> H = tf([0 1],[1 2 3]);>> bode(H);其中,bode函数用于计算系统的幅频特性曲线和相频特性曲线。
3、计算系统的稳定性和可控性impulse函数还可以用来计算系统的稳定性和可控性等指标。
例如,假设我们有一个系统的状态空间表示为[A,B,C,D],则可以通过如下代码来计算系统的稳定性和可控性:>> A = [1 2;3 4];>> B = [0;1];>> C = [1 0];>> D = 0;>> [G,T,X] = impulse(ss(A,B,C,D))其中,ss函数用于创建状态空间模型,impulse函数返回系统的冲击响应,并通过G,T,X三个输出参数计算系统的稳定性和可控性。
自动控制原理 课程验证性实验报告
为参变量,当变化时,频率特性构成的向
)奈氏判据,奈氏判据是利用系统开环频率特性来判断闭环系统稳定性的一个判据,便于研究当系统结构改变时对系统稳定性的影响。
变到10j ,点逆时针包围临界点
10j ,的圈数)对于开环稳定的系统,系统稳定的充分必要条件是:开环系统的奈氏曲线10j ,点。
反之,则闭环系统是不稳定的。
(2)对于开环不稳定的系统,有个开环极点位于右半件是:当变到
时,开环系统的奈氏判据10j ,点内容:[re,im,w]=nyquist(num,den) 2
10210
s s ,绘制其3
2
0.5
20.5
s s s
,绘制Nyquist 已知系统开环传递函数为12(1)(1)
k T G s
s T s
,要求:分别作出2T 和12T T 时的
1221(1)
k T s s T s
,情况又发生怎么样的变
12
k
s s
s
,令1,分别绘制1210,,时系统的Nyquist 较分析系统开环增益k 不同时,系统Nyquist 图的差异,并得出结论。
令1,分别绘制
123,,,时系统的Nyquist 图并保持,比较分析不同时,系统Nyquist 图的差异,并得出结
论。
e.二阶系统传递函数为2
22
2
n
n n
s s ,试用绘制出不同和
n
的伯德图。
3
2
3.5232
s
s
s 求系统的幅值裕度和相角裕度,并求其闭环阶跃
2
2
100519
s s
s s
,求系统的幅值裕度和相角裕度。
num=10,den=[1 2 10];w=0:0.1:100;axis([-1,1.5,-2,2]);nyquist(num,den) b) num=0.5;den=[1 2 1 0.5];figure(1);nyquist(num,den)
n为固定值,变化时,运行下面的程序,wn=1,zet=[0:0.1:1,2,3,4,5];
hold on
for i=1:length(zet)
为固定值,n变化时,运行下面的程序
Wn=[0.1:0.1:1];zet=0.707;
for i=1:length(wn)
2T 时的2T 时的Nyquist Diagram。