用Matlab实现系统的时域分析

合集下载

利用MATLAB进行时域分析

利用MATLAB进行时域分析

实验一 利用MATLAB 进行时域分析一 实验目的1 掌握利用MA TLAB 绘制控制系统时域响应方法。

2 研究二阶系统的两个重要参数阻尼比ζ和无阻尼自然频率ωn 对系统动态性能的影响。

3 掌握利用绘制的图形进行线性系统时域分析的方法二 实验内容1 初步掌握MA TLAB 时域分析中的基本命令;2 绘制系统响应曲线图并根据图形进行性能分析;三 实验步骤1 初步掌握MA TLAB 时域分析中的基本命令;A 熟悉MA TLAB 运行环境;B 控制系统模型的描述如考虑函数432543232546()34276s s s s G s s s s s s ++++=+++++ 传递函数模型描述sys=tf(num,den)执行如下程序:num=[3 2 5 4 6]; den=[1 3 4 2 7 2];sys=tf(num,den)执行结果如下:Transfer function:3 s^4 + 2 s^3 +5 s^2 + 4 s + 6------------------------------------- s^5 + 3 s^4 + 4 s^3 + 2 s^2 + 7 s + 2C 绘制系统的响应曲线考虑如下传递函数225()425G s s s =++ 绘制系统的单位阶跃响应曲线。

执行如下程序:num=[0 0 25];den=[1 4 25];impulse (num, den );step(num,den);grid或者num=[0 0 25];den=[1 4 25];sys2=tf(num,den);impulse(sys2, t); (或者可缺省t,即impulse(sys2) ;)step(sys2,t);grid执行结果如下D 绘制多条响应曲线求典型二阶系统222()2nn nss sωζωωΦ=++,当ωn=10时,ζ分别为0,0.25,0.5,0.7,1,2时的单位阶跃响应。

基于MATLAB的线性系统时域分析及仿真

基于MATLAB的线性系统时域分析及仿真

基于MATLAB的线性系统时域分析及仿真MATLAB是一种高级计算软件,广泛应用于各个领域中的科学和工程问题的分析与仿真。

在信号与系统领域,MATLAB提供了强大的工具来进行线性系统的时域分析与仿真。

线性系统是指具有线性特性的系统,它们满足叠加原理和比例原理。

在时域分析中,我们通常关注系统的时域响应,即系统对输入信号的输出响应。

MATLAB提供了许多实用的函数来分析线性系统的时域行为。

首先,我们可以通过建立线性系统模型来研究其时域特性。

MATLAB 中的tf和ss函数可以用于创建传递函数和状态空间模型。

传递函数是输入输出之间的比值关系,而状态空间模型描述了系统的状态变量和输入/输出之间的关系。

可以通过输入系统的差分方程或频域特性来创建或导入线性系统的模型。

接下来,我们可以使用step、impuls和lsim函数来分析线性系统的时域响应。

step函数用于计算系统的单位阶跃响应,impuls函数用于计算系统的单位脉冲响应,而lsim函数用于计算系统对任意输入信号的响应。

这些函数能够绘制系统的时域响应曲线,并提供有关系统稳定性和动态特性的信息。

除了时域分析,MATLAB还提供了一些仿真工具来模拟线性系统的时域行为。

Simulink是MATLAB的一个强大的仿真环境,它可以用于构建复杂的线性系统模型,并通过仿真来分析系统的时域响应。

Simulink提供了丰富的模块库,包括线性系统模型、输入信号源和观测器等,使用户能够快速搭建系统模型并进行仿真。

在仿真过程中,Simulink提供了多种仿真方法,如固定步长仿真和变步长仿真。

固定步长仿真通过以固定的时间步长进行仿真,可以在仿真过程中保持较高的精度。

变步长仿真则根据系统响应的动态特性自适应地调整仿真步长,以确保在不同仿真阶段获取较高的精度和仿真效率。

总之,MATLAB提供了强大的工具来进行线性系统的时域分析与仿真。

通过建立线性系统模型、使用时域分析函数和Simulink仿真工具,用户可以方便地研究和分析系统的时域特性,并得到系统的时域响应曲线,进而了解系统的稳定性、动态特性和性能等信息。

MATLAB与信号实验——连续LTI系统的时域分析

MATLAB与信号实验——连续LTI系统的时域分析

MATLAB与信号实验——连续LTI系统的时域分析连续LTI系统的时域分析是信号与系统学中的重要课题。

MATLAB作为一种强大的科学计算软件,提供了丰富的工具和函数来进行信号与系统的分析。

下面将介绍MATLAB在连续LTI系统时域分析中的应用。

首先,我们需要了解连续LTI系统的基本概念。

一个连续域线性时不变系统(LTI系统)可以由它的冲激响应完全描述。

冲激响应是系统对单位冲激信号的响应。

在MATLAB中,可以使用impulse函数来生成单位冲激信号。

假设我们有一个连续LTI系统的冲激响应h(t),我们可以使用conv 函数来计算系统对任意输入信号x(t)的响应y(t)。

conv函数实现了卷积运算,可以将输入信号与冲激响应进行卷积运算得到输出信号。

例如,我们假设一个连续LTI系统的冲激响应为h(t) = exp(-t)u(t),其中u(t)是单位阶跃函数。

我们可以使用以下代码生成输入信号x(t)和计算输出信号y(t):```matlabt=-10:0.1:10;%时间范围x = sin(t); % 输入信号h = exp(-t).*heaviside(t); % 冲激响应y = conv(x, h, 'same'); % 计算输出信号```这段代码首先定义了时间范围t,然后定义了输入信号x(t)和冲激响应h(t)。

接下来,使用conv函数计算输入信号和冲激响应的卷积,设置参数’same’表示输出信号与输入信号长度相同。

最后,得到了输出信号y(t)。

在得到输出信号后,我们可以使用MATLAB的绘图功能来可视化结果。

例如,使用以下代码可以绘制输入信号和输出信号的图像:```matlabfigure;plot(t, x, 'b', 'LineWidth', 2); % 绘制输入信号hold on;plot(t, y, 'r', 'LineWidth', 2); % 绘制输出信号xlabel('时间');ylabel('幅度');legend('输入信号', '输出信号');```除了卷积运算外,MATLAB还提供了许多其他函数来进行连续LTI系统的时域分析。

实验二利用matlab进行时域分析

实验二利用matlab进行时域分析

实验二利用matlab进行时域分析在本实验中,我们将使用MATLAB来进行时域分析。

时域分析是指对信号的时间范围内的波形进行分析。

总的来说,它是一种非常实用的分析方法,因为它允许我们对信号进行详细的观察和研究。

在此之前,建议你先了解一些MATLAB的基础知识,比如如何在MATLAB中载入数据、如何绘制图形等等。

我们假设你已经掌握了这些基础知识,并已经准备好开始这个实验。

在MATLAB中,有许多内置函数可用于分析时间域信号。

下面仅介绍几个常用的函数。

1. plot函数使用plot函数可以绘制信号波形。

在MATLAB中,我们可以载入所需的数据,然后使用“plot”函数将数据绘制成波形。

例如,以下代码绘制了一个简单的余弦波:```t = 0:0.01:pi;y = cos(t);plot(t,y);```在这个例子中,我们使用“t”来表示时间,它的范围是从0到π,步长为0.01。

我们还设置了一个“y”向量,它是根据时间向量计算得出的余弦函数值。

最后,我们使用“plot”函数将时间和信号值绘制成波形。

2. fft函数使用FFT函数可以将时域信号转换为频域信号。

MATLAB中的fft函数可以帮助我们计算信号的傅里叶变换,进而分析信号的频谱。

以下是示例代码:```Fs = 1000;t = 0:1/Fs:1-1/Fs;x = sin(2*pi*100*t) + sin(2*pi*200*t);N = length(x);X = fft(x)/N;f = Fs*(0:N/2-1)/N;plot(f,2*abs(X(1:N/2)));```在这个例子中,我们首先定义采样率“Fs”,取样时间“t”,并定义一个包含100和200Hz正弦波的信号“x”。

然后,我们使用“fft”函数计算信号“x”的傅里叶变换。

“N”是“x”的长度,而“X”是计算出的FFT系数。

最后,我们使用“plot”函数将傅里叶变换的振幅绘制成图形。

实验二 利用MATLAB进行时域分析报告

实验二 利用MATLAB进行时域分析报告

实验二 利用MATLAB 进行时域分析本实验容包含以下三个部分:基于MATLAB 的线性系统稳定性分析、基于MATLAB 的线性系统动态性能分析、和MATALB 进行控制系统时域分析的一些其它实例。

一、 基于MATLAB 的线性系统稳定性分析线性系统稳定的充要条件是系统的特征根均位于S 平面的左半部分。

系统的零极点模型可以直接被用来判断系统的稳定性。

另外,MATLAB 语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。

(1)直接求特征多项式的根设p 为特征多项式的系数向量,则MATLAB 函数roots()可以直接求出方程p=0在复数围的解v,该函数的调用格式为:v=roots(p)例3.1 已知系统的特征多项式为: 123235++++x x x x特征方程的解可由下面的MATLAB 命令得出。

>> p=[1,0,3,2,1,1]; v=roots(p) 结果显示:v =0.3202 + 1.7042i 0.3202 - 1.7042i -0.7209 0.0402 + 0.6780i 0.0402 - 0.6780i利用多项式求根函数roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其它性能。

(2)由根创建多项式如果已知多项式的因式分解式或特征根,可由MATLAB 函数poly()直接得出特征多项式系数向量,其调用格式为:p=poly(v)如上例中:v=[0.3202+1.7042i;0.3202-1.7042i;-0.7209;0.0402+0.6780i; 0.0402-0.6780i];>> p=poly(v) 结果显示p =1.0000 0.0001 3.00002.0001 0.9998 0.9999由此可见,函数roots()与函数poly()是互为逆运算的。

(3)多项式求值在MATLAB 过函数polyval()可以求得多项式在给定点的值,该函数的调用格式为: polyval(p,v) 对于上例中的p 值,求取多项式在x 点的值,可输入如下命令:>> p=[1,0,3,2,1,1]; x=1polyval(p,x) 结果显示 x = 1 ans = 8(4)部分分式展开 考虑下列传递函数:nn n nn n a s a s a b s b s b den num s N s M +⋅⋅⋅+++⋅⋅⋅++==--110110)()( 式中0a 0≠,但是i a 和j b 中某些量可能为零。

第3章用MATLAB进行控制系统时域分析

第3章用MATLAB进行控制系统时域分析

第3章用MATLAB进行控制系统时域分析MATLAB是一种功能强大的计算机软件,被广泛用于进行控制系统分析和设计。

在控制系统领域,时域分析是一种常用的方法,它可以用来评估和改进系统的性能及稳定性。

在MATLAB中,有几个重要的函数可以用于进行控制系统时域分析,包括step、impulse、lsim和initial等。

这些函数可以帮助我们了解系统的响应和行为。

首先,我们可以使用step函数来绘制系统的阶跃响应。

阶跃响应表示系统对输入信号的反应。

通过分析阶跃响应曲线的特性,我们可以评估系统的稳定性和性能。

例如,我们可以从阶跃响应曲线中获取系统的超调量、上升时间和峰值时间等信息。

step函数的使用方法如下:```step(sys)```其中,sys是一个控制系统的传递函数或状态空间模型。

调用step 函数后,MATLAB会自动绘制系统的阶跃响应曲线,并且返回一个包含系统响应数据的结构体。

另一个常用的时域分析函数是impulse,它可以用来绘制系统对冲击输入的响应。

冲击响应是系统对于单位冲击信号的输出。

通过分析冲击响应曲线,我们可以了解系统的固有特性,例如共振频率和阻尼比。

impulse函数的使用方法与step函数类似:```impulse(sys)```同样,调用impulse函数后,MATLAB会绘制系统的冲击响应曲线,并且返回一个包含系统响应数据的结构体。

除了阶跃响应和冲击响应外,我们还可以使用lsim函数来绘制系统对任意输入信号的响应。

lsim函数可以接受用户自定义的输入信号,并给出系统的输出响应。

通过分析系统的输出信号,我们可以更加全面地了解系统的性能和行为。

lsim函数的使用方法如下:```lsim(sys,u,t)```其中,sys是一个控制系统的传递函数或状态空间模型,u是输入信号,t是时间向量。

调用lsim函数后,MATLAB会根据输入信号和时间向量绘制系统的输出响应曲线,并返回一个包含系统响应数据的结构体。

实验二-MATLAB用于时域分析

实验二-MATLAB用于时域分析

实验二 MATLAB用于时域分析一、实验目的通过使用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。

二、实验原理在MATLAB中,可以通过单输入单输出系统的传递函数,进行系统的脉冲响应,阶跃响应以及一般输入响应等时域分析。

用到以下函数:单位阶跃响应 step(num,den,t)单位脉冲响应impluse(num,den,t)一般输入响应 y=Isim(num,den,u,t)时间t是事先定义的矢量,u为输入信号。

此外,还可以求出系统的超调量,调节时间以及稳态误差。

SIMULINK是MATLAB的一个附加组件,用来提供一个系统的建模、动态仿真及综合分析的工作平台。

SIMULINK模型可以用来模拟线性或非线性、连续或离散,或者两者混合的系统,即可用它来模拟几乎所有的动态系统。

三、实验内容通过MATLAB以及其中的SIMULINK完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。

四、实验代码1、一阶系统响应sys1=tf([100],[1 0]);sys2=tf([0.1],[1]);sys=feedback(sys1,sys2);step(sys)2、二阶系统响应wn=1t=0:0.1:12;num=[1];zeta1=0;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=1.0;den9=[1 2*zeta9 1];[y1,x,t]=step(num,den1,t);[y3,x,t]=step(num,den3,t);[y5,x,t]=step(num,den5,t);[y7,x,t]=step(num,den7,t);[y9,x,t]=step(num,den9,t);plot(t,y1,t,y3,t,y5,t,y7,t,y9)grid on;3、稳定性分析den=[1 1 2 24];roots(den)4、求动态性能指标t=0:0.01:2;num=[1000]';den=[1 34.5 1000];[y,x,t]=step(num,den,t);plot(t,y);maxy=max(y);yes=y(length(t));pos=100*(maxy-yes)/yesfor i=1:1:201if y(i)==maxy,n=i;endendtp=(n-1)*0.01for i=1:1:201if(y(i)<1.05&y(i)>0.95),n=i;endbreak;endts=(n-1)*0.015、稳态误差分析t=0:0.1:15;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=impulse(num1,den1,t);y2=impulse(num2,den2,t);y3=impulse(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=0-y1(length(t))er2=0-y2(length(t))er3=0-y3(length(t))6、求单位阶跃响应及其稳态误差t=0:0.1:20[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,den1,t);y2=step(num2,den2,t);y3=step(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=1-y1(length(t));er2=1-y2(length(t));er3=1-y3(length(t));7、求单位斜坡响应及其稳态误差t=0:0.1:20;t1=0:0.1:100;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,[den1 0],t1);y2=step(num2,[den2 0],t);y3=step(num3,[den3 0],t);subplot(311);plot(t1,y1,t1,t1);subplot(312);plot(t,y2,t,t);subplot(313);plot(t,y3,t,t);er1=t1(length(t1))-y1(length(t1))er2=t(length(t))-y2(length(t))er3=t(length(t))-y3(length(t))8、实例分析kp=[0.11 6];t=[0:0.01:1];num1=303.03*kp(1);den1=[0.00001 0.00633 0.20167 21.21*kp(1)+1];y1=step(num1,den1,t);num2=303.03*kp(2);den2=[0.00001 0.00633 0.20167 21.21*kp(2)+1];y2=step(num2,den2,t);subplot(211);plot(t,y1);subplot(212);plot(t,y2);gtext('kp=0.11');gtext('kp=6');9、SIMULINK用于系统仿真五、实验结果1、一阶系统响应2、二阶系统响应3、稳定性分析4、求动态性能指标5、稳态误差分析6、求单位阶跃响应及其稳态误差7、求单位斜坡响应及其稳态误差8、实例分析9、SIMULINK用于系统仿真六、实验总结通过本次实验实现了用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。

基于MATLAB自动控制系统时域频域分析与仿真

基于MATLAB自动控制系统时域频域分析与仿真

基于MATLAB自动控制系统时域频域分析与仿真MATLAB是一款强大的数学软件,也是自动控制系统设计的常用工具。

它不仅可以进行时域分析和频域分析,还可以进行相关仿真实验。

本文将详细介绍MATLAB如何进行自动控制系统的时域和频域分析,以及如何进行仿真实验。

一、时域分析时域分析是指对系统的输入信号和输出信号进行时域上的观察和分析,以了解系统的动态特性和稳定性。

MATLAB提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。

1.时域响应分析通过时域响应分析,可以观察系统对于不同的输入信号的响应情况。

在MATLAB中,可以使用`lsim`函数进行系统的时域仿真。

具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。

-定义输入信号。

- 使用`lsim`函数进行时域仿真,并绘制系统输出信号。

例如,假设我们有一个二阶传递函数模型,并且输入信号为一个单位阶跃函数,可以通过以下代码进行时域仿真:```num = [1];den = [1, 1, 1];sys = tf(num, den);t=0:0.1:10;u = ones(size(t));[y, t, x] = lsim(sys, u, t);plot(t, y)```上述代码中,`num`和`den`分别表示系统的分子和分母多项式系数,`sys`表示系统模型,`t`表示时间序列,`u`表示输入信号,`y`表示输出信号。

通过绘制输出信号与时间的关系,可以观察到系统的响应情况。

2.稳态分析稳态分析用于研究系统在稳态下的性能指标,如稳态误差和稳态标准差。

在MATLAB中,可以使用`step`函数进行稳态分析。

具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。

- 使用`step`函数进行稳态分析,并绘制系统的阶跃响应曲线。

例如,假设我们有一个一阶传递函数模型,可以通过以下代码进行稳态分析:```num = [1];den = [1, 1];sys = tf(num, den);step(sys)```通过绘制系统的阶跃响应曲线,我们可以观察到系统的稳态特性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f=stepfun(t,0)-stepfun(t,1);
y=lsim(sys,f,t);
plot(t,y); gridon
xlabel('Time(sec)')
ylabel('y(t)')
抽样间隔为0.001:
抽样间隔为0.5:
2.
clear;
k=0:30;
a=[1 0.7 -0.45 -0.6];
姓名:李强
实验名称:用Matlab实现系统的时域分析
学号:1101050814
实验时间:2012.10.27
评语:
一.实验目的
1.深入理解系统时域响应的物理意义
2.学会用Matlab实现系统的时域分析
二.实验内容
1.某系统满足的微分方程为
(1)求出该系统的零状态响应 。
解:
故有冲击响应
系统零状态响应
(2)用lism求出该系统的零状态响应的数值解。利用(1)求得的结果,比较不同的抽样间隔对数值解精度的影响。
2.利用impz函数,计算系统
的单位脉冲响应,并画出前30点的图。
三.仿真分析
1.(2)
clear;
ts=0; te=5; dt=0.001;
sys=tf(1, [1 5 6]);
t=ts:dt:te;
b=[0.8 -0.44 0.36 0.02];
h=impz(b,a,k);
stem(k,h,'.')
四.实验总结
利用练运用MATLAB中的函数。
相关文档
最新文档