第3章 用MATLAB进行控制系统时域分析
2_用MATLAB进行控制系统的时域分析
实验三用MATLAB进行控制系统的时域分析[实验目的]1.研究线性系统在典型输入信号作用下的暂态响应;2.熟悉线性系统的暂态性能指标;3.研究二阶系统重要参数阻尼比ξ对系统动态性能的影响;4.熟悉在MATLAB下判断系统稳定性的方法;5.熟悉在MATLAB下求取稳态误差的方法。
[实验指导]MATLAB中有两类用于求解系统时域响应的方法。
其一是利用MATLAB 中的控制系统工具箱(Control System Toolbox)提供的函数(命令);其二是Simulink仿真,它主要用于对复杂系统进行建模和仿真。
一、用MATLAB函数(命令)进行暂态响应分析1 求取线性连续系统的单位阶跃响应的函数——step基本格式为:step(sys)step(num,den)step(A,B,C,D)step(sys,t)step(sys1,sys2,…,t)y=step(sys,t)[y,t]=step(sys)[y,t,x]=step(sys)其中模型对象的类型如下:sys = tf(num,den) 多项式模型sys = zpk(z,p,k) 零点极点模型sys = ss(a,b,c,d) 状态空间模型参数无t,表示时间向量t的范围自动设定。
参数有t,表示给定时间向量t,应该有初值,时间增量,末值,如t=0:0.01:2。
前5种函数可以绘出阶跃响应曲线;后3种函数不绘阶跃响应曲线,而是返回响应变量y,时间向量t,以及状态变量x。
基本格式为:impulse(sys)impulse(num,den)impulse (sys,tf)impulse (sys,t)impulse (sys1,sys2,…,t)y=impulse(sys,t)[y,t]=impulse(sys)[y,t,x]=impulse (sys)3 求取线性连续系统的单位斜坡响应MATLAB没有直接求系统斜坡响应的功能函数。
在求取控制系统的斜坡响应时,通常用阶跃响应函数step()求取传递函数为G (s)/s的系统的阶跃响应,则其结果就是原系统G (s)的斜坡响应。
第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提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。
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)```通过绘制系统的阶跃响应曲线,我们可以观察到系统的稳态特性。
自动控制原理MATLAB分析与设计-仿真实验报告
兰州理工大学《自动控制原理》MATLAB分析与设计仿真实验报告院系:电气工程与信息工程学院班级:电气工程及其自动化四班姓名:学号:时间:年月日电气工程与信息工程学院《自动控制原理》MATLAB 分析与设计仿真实验任务书(2014) 一、仿真实验内容及要求 1.MATLAB 软件要求学生通过课余时间自学掌握MATLAB 软件的基本数值运算、基本符号运算、基本程序设计方法及常用的图形命令操作;熟悉MATLAB 仿真集成环境Simulink 的使用。
2.各章节实验内容及要求1)第三章 线性系统的时域分析法∙ 对教材第三章习题3-5系统进行动态性能仿真,并与忽略闭环零点的系统动态性能进行比较,分析仿真结果;∙ 对教材第三章习题3-9系统的动态性能及稳态性能通过仿真进行分析,说明不同控制器的作用;∙ 在MATLAB 环境下选择完成教材第三章习题3-30,并对结果进行分析; ∙ 在MATLAB 环境下完成英文讲义P153.E3.3;∙ 对英文讲义中的循序渐进实例“Disk Drive Read System”,在100=a K 时,试采用微分反馈控制方法,并通过控制器参数的优化,使系统性能满足%5%,σ<3250,510s ss t ms d -≤<⨯等指标。
2)第四章 线性系统的根轨迹法∙ 在MATLAB 环境下完成英文讲义P157.E4.5; ∙ 利用MATLAB 绘制教材第四章习题4-5;∙ 在MATLAB 环境下选择完成教材第四章习题4-10及4-17,并对结果进行分析;∙ 在MATLAB 环境下选择完成教材第四章习题4-23,并对结果进行分析。
3)第五章 线性系统的频域分析法∙ 利用MATLAB 绘制本章作业中任意2个习题的频域特性曲线;4)第六章 线性系统的校正∙ 利用MATLAB 选择设计本章作业中至少2个习题的控制器,并利用系统的单位阶跃响应说明所设计控制器的功能;∙ 利用MATLAB 完成教材第六章习题6-22控制器的设计及验证;∙ 对英文讲义中的循序渐进实例“Disk Drive Read System”,试采用PD控制并优化控制器参数,使系统性能满足给定的设计指标ms t s 150%,5%<<σ。
基于MATLAB的控制系统时域分析
基于MATLAB的控制系统时域分析控制系统的时域分析是通过对控制系统的输入与输出进行观察、计算和分析,研究系统的动态特性和稳态特性,以便设计出性能良好的控制系统。
MATLAB是一种功能强大的数学软件,也是控制系统分析和设计常用的工具。
基于MATLAB的控制系统时域分析包括系统的零极点分析、步跃响应分析、频域响应分析以及稳态误差分析等方面。
首先,零极点分析是控制系统时域分析的基础。
零极点是系统传递函数的根,可以通过MATLAB的roots函数来求解。
根据零极点的位置,可以判断系统的稳定性、阻尼比和共振频率等信息。
例如,根在左半平面的系统为稳定系统,零根的个数与极根的个数之差即为系统的阶数;根在右半平面的系统为不稳定系统;根在虚轴上的系统为临界稳定系统等。
其次,步跃响应分析是研究系统对输入步跃信号的响应情况。
通过MATLAB中的step函数,可以绘制系统的单位阶跃响应曲线,并可以获得系统的一些重要参数,如上升时间、峰值时间、峰值大小和稳态误差等。
其中,上升时间是指系统从初始值到达其稳定值的时间;峰值时间是指系统响应曲线达到其峰值的时间;峰值大小是指系统响应曲线在峰值时的大小;稳态误差是指系统响应与输入信号的差异。
接下来,频域响应分析是研究系统对输入频率信号的响应情况。
通过MATLAB中的freqresp函数,可以绘制系统的频率响应曲线。
频域响应曲线可以展示系统在不同频率下的增益和相位特性,用于研究系统的稳定性和频率补偿。
频域响应分析常用的工具包括Bode图和Nyquist图等。
最后,稳态误差分析是分析系统输出与输入的差异,用于评估系统的性能。
通过MATLAB中的step函数和sys2tf函数,可以计算系统的稳态误差,并绘制稳态误差曲线。
稳态误差可以分为位置误差和速度误差,用于评估系统的静态精确性。
综上所述,基于MATLAB的控制系统时域分析涵盖了零极点分析、步跃响应分析、频域响应分析和稳态误差分析等方面。
实验四基于MATLAB的控制系统时域分析以及根轨迹分析
实验四基于MATLAB的控制系统时域分析以及根轨迹分析一、实验目的掌握运用MATLAB进行控制系统的时域暂态及稳态分析方法以及根轨迹图的绘制方法。
二、实验题目1.已知系统闭环传递函数为:(1)判定该系统的闭环稳定性;(2)绘出系统在阶跃信号为0.1 1(t)时的响应曲线,并求系统性能指标:稳态值、上升时间、调节时间、超调量;(3)绘制该系统的单位脉冲响应图;(4)绘制该系统的单位斜坡响应图,并分析该系统的稳态误差。
设误差定义为输入量减去输出量;(5)绘制该系统在0.2t+sin(2t)作用下的响应曲线,设初始条件为零。
sys=tf([20],[1 8 36 40 20]); root=roots(sys.den{1});if find(real(root)>0)disp('该系统不稳定') else disp('该系统稳定') endsubplot(2,2,1);% title('0.1*阶跃响应'); t = linspace(0,10,200); subplot(2,2,2)title('单位脉冲响应'); impulse(sys);%单位脉冲响应subplot(2,2,3)title('斜坡响应');t = linspace(0,10,200);u=t;lsim(sys,u,t);%单位斜坡响应实验结果Stepchar代码function [pos tr ts tp]=stepchar(g0,delta)%超调量,上升时间,调整时间,峰值时间[y,t]=step(g0);[mp,ind]=max(y);%最大值dimt=length(t);yss=y(dimt);%稳态值for i=1:dimtif y(i)>=ysstr=t(i); %调节时间break;endendfor i=1:length(y)if2.一个系统的结构框图如下所示。
自控原理0303第三章时域分析法-用MATLAB求解系统单位阶跃响应
“自动控制原理”
2020年4月18日星期六
29
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
30
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
31
第三章 时域分析法
“自动控制原理”
2020年4月控制原理”
2020年4月18日星期六
33
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
34
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
35
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
36
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
37
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
24
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
25
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
26
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
27
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
28
第三章 时域分析法
2020年4月18日星期六
38
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
39
10
第三章 时域分析法
“自动控制原理”
2020年4月18日星期六
11
第三章 时域分析法
“自动控制原理”
No-3.6 用MATLAB分析控制系统性能(数学模型和时域分析)
(3)上升时间(risetime) C=dcgain(G); n=1; while y(n)<C n=n+1; end risetime=t(n)
n=1; while y(n)<0.1*C n=n+1; end m=1; while y(m)<0.9*C m=m+1; end risetime=t(m)-t(n)
用MATLAB分析控制系统性能
• 控制系统的数学模型 • 时域响应分析
控制系统的数学模型
例:如图所示机械系统, 物体质量为m,弹簧 系数为k,粘性摩擦 系数为f,求外力 f(t)=F突然加到系统 上时,位移x(t)的变 化规律。
控制系统的数学模型
解:根据牛顿定律可得运动方程
d 2 x(t ) dx(t ) m 2 f kt f (t ) dt dt
3
劳斯判定表:
1 20000
1020
5000
Ka
b1
5000 K a
当 Ka 4080, b1 0 出现临界稳定的情况。
时域响应分析
例 磁盘驱动读取系统
2 1020 s 5000 4080 0 借助辅助方程
可知:系统在虚轴上的根为 s j141.4
为了保证系统的稳定性,应要求 Ka 4080
时域响应分析
求阶跃响应的性能指标: 用阶跃响应函数step()获得输出量,将其返 回到变量y,同时返回了自动生成的时间变 量t,调用格式:[y,t] = step(G)
(1)峰值时间(timetopeak) [Y,k] = max(y); timetopeak = t(k)
时域响应分析
求阶跃响应的性能指标:
MTALAB实验三 控制系统的时域、频域和根轨迹分析
实验三 控制系统的时域、频域和根轨迹分析一、 实验目的1、掌握如何使用Matlab 进行系统的时域分析2、掌握如何使用Matlab 进行系统的频域分析3、掌握如何使用Matlab 进行系统的根轨迹分析二、 实验内容:1、时域分析1.1、某系统的开环传递函数为43220()83640G s s s s s=+++试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。
>> G=tf([20],[1 8 36 40 0]); G=feedback(G,1); step(G)Step ResponseTime (sec)A m p l i t u d e024681012140.20.40.60.811.21.41.2、典型二阶系统222()2nn nG s s s ωξωω=++ 编程求:当6,n ωξ=分别取值为0.2、0.4、0.6、0.8、1.0、1.5、2.0时的单位阶跃响应曲线。
>>s=tf('s');wn=6;zet=[0.2,0.4,0.6,0.8,1.0,1.5,2.0]; for i=1:7G=wn^2/(s^2+2*wn*zet(:,i)*s+wn^2);step(G),hold on end00.51 1.52 2.53 3.54 4.550.20.40.60.811.21.41.6Step ResponseTime (sec)A m p l i t u d e1.3、典型二阶系统传递函数为:222()2nn nG s s s ωξωω=++ 绘制当:0.7,n ξω=分别取2、4、6、8、10、12时的单位阶跃响应曲线。
>> s=tf('s');zet=0.7;wn=[2:2:12];for i=1:6G=wn(:,i)^2/(s^2+2*wn(:,i)*zet*s+wn(:,i)^2);step(G),hold onend00.51 1.52 2.53 3.54 4.50.20.40.60.811.21.4Step ResponseTime (sec)A m p l i t u d e2、根轨迹分析根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析使系统稳定的K 值范围。
自动控制原理的MATLAB仿真与实践第3章 线性系统的时域分析
3
2.1.1 生成模型的常用函数命令格式
连续时间信号f(t)的单边拉普拉斯变换F(s)的定义:
记为: 拉普拉斯反变换的定义:
记为:
4
s=tf(‘s’):生成以s为变量的递函数s。此时,s既是传 递函数也是指定变量。
sys=tf(num, den):生成传递函数模型,num, den分 别为模型的分子和分母多项式系数向量。
的时间函数g(t)。 解:求解G(s)的拉氏反变换程序如下:
11
>>clear; syms s; Gs=(s^3+4*s^2+8*s+5)/(s^2+3*s+4); gt=ilaplace(Gs) 运行结果: gt = Dirac(t)+Dirac(1,t)-1/7*exp(-
3/2*t)*7^(1/2)*sin(1/2*7^(1/2)*t)+exp(3/2*t)*cos(1/2*7^(1/2)*t)
3.1 时域分析的拉普拉斯变换法 3.1.1 连续时间函数的拉普拉斯变换 3.1.2 时域函数的拉氏反变换法 3.1.3 时域函数的部分分时展开法 3.2 时域分析的函数命令方法 3.3作业与实验
2
3.1 时域分析的拉普拉斯变换法
利用拉普拉斯变换法对线性系统进行时域分 析的一般步骤: (1)对系统的传递函数模型进行部分分式展开,将 其变为简单传递函数之和; (2)利用拉普拉斯反变换,得到系统的输出时间响 应函数; (3)绘制系统的响应曲线; (4)通过改变系统的参数,观察系统输出响应的变 化情况,对系统的时域特性(如性能指标等)进 行分析。
上式的拉氏变换后的传递函数模型为:
生成上述模型的MATLAB模型:
自动控制原理MATLAB仿真实验一(控制系统的时域分析)
实验一 MATLAB 及仿真实验(控制系统的时域分析)一、实验目的学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性;二、实验内容(一) 稳定性1. 系统传函为()27243645232345234+++++++++=s s s s s s s s s s G ,试判断其稳定性num1=[0 3 2 5 4 6];den1=[1 3 4 2 7 2];sys1=tf(num1,den1);figure(1);hold on[gm,pm,wcp,wcg]=margin(sys1);margin(sys1);title('对数频率特性图');xlabel('频率rad/sec');ylabel('Gain dB');2. 用Matlab 求出253722)(2342++++++=s s s s s s s G 的极点。
a=[0 0 1 2 2];b=[1 7 3 5 2];[z,p,k]=tf2zpk(a,b) ;(二)阶跃响应1. 二阶系统()102102++=s s s G1)键入程序,观察并记录单位阶跃响应曲线num1=[10];den1=[1 2 10];step(num1,den1);grid on ;2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录 wn=sqrt(10);%自然振荡频率zunibi=2/wn;%阻尼比syms s ;S=solve(s^2+2*s+10);%求闭环根3)修改参数,分别实现1=ζ和2=ζ的响应曲线,并记录 n0=10;d0=[1 2 10];step(n0,d0);%原响应曲线hold on ;n1=10;d1=[1 6.32 10];step(n1,d1);n2=10;d2=[1 12.64 10]; step(n2,d2);4)修改参数,分别写出程序实现0121w w n =和022w w n =的响应曲线,并记录 n0=10;d0=[1 2 10];step(n0,d0);%原响应曲线hold on ;n1=2.5;d1=[1 1 2.5];step(n1,d1);n2=40;d2=[1 4 40];step(n2,d2);2. 作出以下系统的阶跃响应,并分析结果(1)()10210221+++=s s s s G(2)()102105.0222++++=s s s s s G (3)()1025.0222+++=s s s s s G (4)()10222++=s s ss Gn0=[2 10];d0=[1 2 10];step(n0,d0);hold on ;n1=[1 0.5 10];d1=[1 2 10];step(n1,d1);hold on ;n2=[1 0.5 0];d2=[1 2 10];step(n2,d2);hold on ;n3=[1 0];d3=[1 2 10];step(n3,d3);3. 25425)()(2++=s s s R s C 求该系统单位阶跃响应曲线,并在所得图形上加网格线和标题 num0=[25];den0=[1 4 25];step(num0,den0);grid on ;xlabel('X');ylabel('Y ');title('单位阶跃曲线');(三)系统动态特性分析用Matlab 求二阶系统12012120)(2++=s s s G 和01.0002.001.0)(2++=s s s G 的峰值时间p t ,上升时间r t ,调整时间s t ,超调量%σ。
(完整版)利用MATLAB进行时域分析
自动控制原理与系统课程实验报告实验题目:利用MATLAB进行时域分析班级:机电1131班姓名:刘润学号:38号一、实验目的及内容时域分析法是一种直接在时间域中对系统进行分析的方法,具有直观、准确的优点,并且可以提供系统时间响应的全部信息。
在此实验中,主要介绍时域法进行系统分析,包括一阶系统、二阶系统以及高阶系统,以及系统的性能指标。
通过实验,能够快速掌握、并利用MATLAB及控制系统箱对各种复杂控制系统进行时域分析。
二、实验设备三、实验原理典型的二阶系统在不同的阻尼比的情况下,它们的阶跃响应输出特性的差异是很大的。
若阻尼比过小,则系统的振荡加剧,超调量大幅度增加;若阻尼比过大,则系统的响应过慢,又大大增加了调整时间,下面通过此实验课题分析输出响应变化规律:已知二阶振荡环节的传递函数为:G(s)=ωn*ωn/(s*s+2*ζ*ωn*s+ωn*ωn),其中ωn=0.4,ζ从0变化到2,求此系统的单位阶跃响应曲线,并分析当ζ发生变化时,二阶系统的响应有什么样的变化规律。
四、实验步骤编出程序如下图:五、实验结果画出图表如下图:六、结果分析(1)当ξ=0(无阻尼)(零阻尼)时:无阻尼时的阶跃响应为等幅振荡曲线。
如图ξ=0曲线。
(2)当0<ξ<1(欠阻尼)时:对应不同的ξ,可画出一系列阻尼振荡曲线,且ξ越小,振荡的最大振幅愈大。
如图ξ=0.4曲线。
(3)当ξ=1(临界阻尼)时:临界阻尼时的阶跃响应为单调上升曲线。
如图ξ=1曲线。
(4)当ξ>1(过阻尼)时:过阻尼时的阶跃响应也为单调上升曲线。
不过其上升的斜率较临界阻尼更慢。
如图ξ=1.6曲线七、教师评语。
第3章 用MATLAB进行控制系统时域分析
k= [ ]
C (s)
拉氏变换得:
ቤተ መጻሕፍቲ ባይዱ
1 2 1 1 1 0 s 4 s 3 s 2 s 1 s
c(t ) e 4t 2e 3t e 2t e t 1
(2)单位阶跃响应的求法: 控制系统工具箱中给出了一个函数 step()来直接求取线性系统的阶跃响应,如果已知 传递函数为:
在 MATLAB 中通过函数 polyval()可以求得多项式在给定点的值, 该函数的调用格式为: polyval(p,v) 对于上例中的 p 值,求取多项式在 x 点的值,可输入如下命令: >> p=[1,0,3,2,1,1]; x=1 polyval(p,x) 结果显示 ans = 8 (4)部分分式展开 考虑下列传递函数:
3.0000 -1.0000 中留数为列向量 r,极点为列向量 p,余项为行向量 k。 由此可得出部分分式展开式:
G (s)
6 4 3 2 s 3 s 2 s 1 M (s) 之比的形式, 命令格式为: N (s)
该函数也可以逆向调用, 把部分分式展开转变回多项式
[num,den]=residue(r,p,k) 对上例有: >> [num,den]=residue(r,p,k) 结果显示 num= 2.0000 5.0000 3.0000 6.0000 den= 1.0000 6.0000 11.0000 6.0000 应当指出,如果 p(j)=p(j+1)=…=p(j+m-1),则极点 p(j)是一个 m 重极点。在这种情况 下,部分分式展开式将包括下列诸项:
r , p, k residue (num, den)
则
M (s) 的部分分式展开由下式给出: N (s) M (s) r (1) r ( 2) r ( n) k (s) N ( s ) s p (1) s p (2) s p ( n)
基于-MATLAB的控制系统时域分析
基于MATLAB/Simulink的控制系统时域分析实验报告学号:031410224姓名:孙旭东实验内容一:已知单位负反馈系统,其开环传递函数为(s)=(1)保持T=0.625不变,要求在同一坐标下绘制开环增益K分别为2、5、10时系统的单位阶跃响应曲线,并分析开环增益K变化对系统稳定性的影响。
MATLAB程序:clc;clear;k=[2,5,10];t=0.625;gg=[];wwn=[];zz=[];fori=1:length(k)num=[k(i)];den=conv([t 1],[1 0]);g0=tf(num,den);g=feedback(g0,1);[wn,z,p]=damp(g)gg=[gg,g]wwn=[wwn,wn]zz=[zz,z]endstep(gg(1),'-',gg(2),'--',gg(3),'-.') 阶跃响应曲线:分析:增益变化对系统性能的影响:(2)保持K=10不变,画出当时间常数T分别为0.2、0.5、1s时系统的单位阶跃响应曲线,要求绘制在同一坐标系下,分析时间常数T的变化对系统稳定性的影响。
MATLAB程序:clc;clear;k=10;t=[0.2,0.5,1];gg=[];wwn=[];zz=[];fori=1:length(t)num=k;den=conv([t(i) 1],[1 0]);g0=tf(num,den);g=feedback(g0,1);[wn,z,p]=damp(g)gg=[gg,g]wwn=[wwn,wn]zz=[zz,z]endstep(gg(1),'-',gg(2),'--',gg(3),'-.') 阶跃响应曲线:分析:时间常数变化对系统性能的影响:结论:实验内容二:具有可变结构参数的二阶系统的动态特性研究已知二阶系统如图所示,、 为控制装置参数。
实验三线性控制系统的MATLAB时域分析
实验三线性控制系统的MATLAB时域分析线性控制系统是指其数学模型是线性微分方程的控制系统。
在工程实践中,我们经常使用MATLAB进行线性控制系统的时域分析。
本实验将介绍如何利用MATLAB进行线性控制系统的时域分析。
首先我们需要创建一个线性控制系统的数学模型。
我们可以使用MATLAB的控制系统工具箱来实现这一点。
在命令窗口中输入"controlSystemDesigner",然后按回车键打开控制系统设计工具。
在控制系统设计工具中,我们可以选择不同的方式来创建一个线性控制系统。
例如,我们可以选择传递函数方式、状态空间方式或者输入输出方式。
在本实验中,我们将使用传递函数方式来创建一个线性控制系统。
在传递函数方式下,我们需要输入系统的传递函数。
传递函数通常由系统的输入、输出以及系统的传递特性来表示。
例如,一个传递函数可以写成G(s)=(s+1)/(s^2+2s+1),其中G(s)是系统的传递函数。
在控制系统设计工具中,我们可以直接输入系统的传递函数。
然后可以选择将系统的输入输出响应绘制在Bode图、Nyquist图或者极点图上。
我们还可以对系统进行稳定性分析和根轨迹分析等。
在确定了线性控制系统的数学模型之后,我们可以使用MATLAB进行时域分析。
在命令窗口中输入"step"命令,然后输入线性控制系统的传递函数,即可绘制出系统的单位阶跃响应图。
我们还可以使用"impulse"命令来绘制系统的单位冲激响应图。
除了绘制系统的响应图之外,我们还可以计算系统的性能指标。
例如,我们可以使用MATLAB的"stepinfo"命令来计算系统的超调量、峰值时间、上升时间和调节时间等性能指标。
此外,MATLAB还提供了一些其他的功能来分析线性控制系统的时域响应。
例如,我们可以使用“ltiview”命令来通过图形界面对系统进行时域分析。
我们还可以使用“margin”和“bode”命令来分析系统的幅频和相频特性。
基于MATLAB的自动控制系统时域分析(精)
基于MATLAB的自动控制系统时域分析摘要自动控制系统就是在无人直接操作或干预的条件下,通过控制装置使控制对象自动的按照给定的规律运行,使被控量按照给定的规律去变化的系统。
在现代工业生产中,自动控制系统已经遍布每一个角落,对于线性时不变控制系统,可以通过时域、频域分析法来分析系统的性能,但是对于多输入多输出的控制系统,时域、频域分析已经无能为力,鉴于这样的控制系统,可以通过线性系统的状态空间分析法来分析。
本文针对自动控制系统的设计很大程度上还依赖于实际系统的反复实验,结合具体的实例,介绍了利用先进的MATLAB软件对自动控制系统进行时域、频域分析与仿真和线性系统状态空间分析的方法,通过快速直观的仿真和分析达到自动控制系统的优化。
Automatic control system is under the condition of no direct manipulation or intervention, through the control device to control the object automatically run according to the given rule, was accused of amount to change according to the given rule system. In modern industrial production, the automatic control system has been around every corner, for linear time-invariant control system, by the time domain, frequency domain analysis method to analyze the performance of the system, but for multiple input multiple output control system, and the time domain, frequency domain analysis has been powerless, in view of this control system can be analysis by state space analysis method for linear systems.关键词:MATLAB 自动控制系统时域频域状态空间一、引言随着科学技术的发展,自动控制系统已经普遍出现在人类生产、生活和探索新技术的各个领域中。
利用MATLAB进行系统的时域分析
利用MATLAB进行系统的时域分析 1.1连续时间系统零状态响应的求解
例:如下图所示的电路系统中,电容器极板上电 荷量与输入电压的关系为
设电感系数为L=1H,电阻R=10Ω,电容器的电容 C=5mF,系统的初始储能为零,若外加电压 是
振幅为10V、频率1Hz的正弦信号,求电容器极板 上的电荷量 。
计算此系统的单位冲激响应和单位阶跃响应的 MATLAB程序如下
程序运行结果如下图(1)和(2)所示。
图(1)单位冲激响应曲线 图(2)单位阶跃响应曲线
信号与系统
解:由已知条件,系统的输入信号为
系统的微分方程为
计算电荷量 的MA.2 利用MATLAB求单位冲激响应和单位阶跃响 应 系统的单位冲激响应:
系统的单位阶跃响应:
其中y为输出响应;sys为由tf,zpk或ss建立的 系统模型;t为仿真时间区段(可选)。
例:若系统的微分方程为
自动控制原理实验三 利用MATLAB进行时域分析
阶跃 0<ξ<1
(ξ=0.5) 0.2 ξ=0 1 0.2 -1<ξ<0 1 0.2
ξ<-1 1 参数影响说明: 当 ξ>1 时,系统为过阻尼系统,系统的阶跃响应为非震荡过程,表现为单调变化曲线,无超调 和震荡;当 0<ξ<1 时,系统是欠阻尼系统,系统的阶跃响应为震荡过程,ξ 越小,振荡次数越多,超调越大, 调节时间越长;当 ξ=0 时,系统为零阻尼系统,系统的阶跃响应为持续等幅振荡过程;ξ<0 时,系统响应为发 散震荡。
hold on,grid
num=wn^2, den=[1 2*sigma*wn end
wn^2], hold off
sys=tf(num,den); title('wn±ä»¯Ê±½×Ô¾ÏìÓ¦')
i=i+1;
短,调节时间时间越短,上升时间越短,超阶跃响应曲线: 性能分析
当阻尼不变时,wn 越大,峰值时间越调不变。 【综合实践】通过分别改变典型二阶系统的 ξ 和 ω,观察系统在脉冲、阶跃作用下的响应 n 特性, 求时域指标,总结参数对系统性能影响的规律。 脉 ξ ω t t σ% t 响应曲线
den=[1 2*sigma*10 100], title('²»Í¬×èÄá½×Ô¾ÏìÓ¦') damp(den) lab1='E=0';text(0.3,1.9,lab1), sys=tf(num,den); lab2='E=0.25';text(0.3,1.5,lab2), i=i+1; lab3='E=0.5';text(0.3,1.2,lab3), step(sys,2) lab4='E=0.75';text(0.3,1.05,lab4), hold on, lab5='E=1';text(0.35,0.9,lab5), lab6='E=1.25';text(0.35,0.8,lab6), end
利用MATLAB进行时域分析
利用MATLAB进行时域分析时域分析是信号处理中的重要一环,它可以帮助我们了解信号的时域特性和动态行为。
MATLAB是一个功能强大的数学软件,其中的信号处理工具箱可以方便地进行时域分析。
首先,我们需要将信号载入到MATLAB中。
MATLAB支持多种载入信号的方式,如读取文件、生成随机信号或者使用MATLAB中的内置信号。
如果有信号文件,我们可以使用`audioread`函数将音频文件加载到MATLAB中。
如下所示的代码将导入名为`audio.wav`的文件并存储为`y`变量:```matlab[y, Fs] = audioread('audio.wav');```其中,`y`是一个包含音频数据的向量,`Fs`是采样率。
第二步是绘制信号波形。
通过使用`plot`函数,我们可以可视化信号的时域波形。
以下代码将绘制信号`y`的波形:```matlabt = (0:length(y)-1)/Fs; % 计算时间轴plot(t, y);xlabel('Time (s)');ylabel('Amplitude');title('Time Domain Analysis');```这将绘制信号`y`的时间波形,其中x轴表示时间,y轴表示信号的幅度。
接下来,我们可以计算信号的功率谱密度(PSD)。
功率谱密度是用于描述信号频谱特性的一种方法。
MATLAB提供了`pwelch`函数用于计算功率谱密度。
以下代码计算信号`y`的功率谱密度:```matlab[p,f] = pwelch(y,[],[],[],Fs); % 计算功率谱密度plot(f, 10*log10(p));xlabel('Frequency (Hz)');ylabel('Power Spectral Density (dB/Hz)');title('Power Spectral Density');```这将绘制信号`y`的功率谱密度图,其中x轴表示频率,y轴表示功率谱密度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x 5 3x 3 2 x 2 x 1
特征方程的解可由下面的 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.0000 3.0000 2.0000 1.0000 1.0000 由此可见,函数 roots()与函数 poly()是互为逆运算的。 (3)多项式求值
在 MATLAB 中通过函数 polyval()可以求得多项式在给定点的值, 该函数的调用格式为: polyval(p,v) 对于上例中的 p 值,求取多项式在 x 点的值,可输入如下命令: >> p=[1,0,3,2,1,1]; x=1 polyval(p,x) 结果显示 ans = 8 (4)部分分式展开 考虑下列传递函数:
k= [ ]
C (s)
拉氏变换得:
1 2 1 1 1 0 s 4 s 3 s 2 s 1 s
c(t ) e 4t 2e 3t e 2t e t 1
(2)单位阶跃响应的求法: 控制系统工具箱中给出了一个函数 step()来直接求取线性系统的阶跃响应,如果已知 传递函数为:
G (s)
num den
则该函数可有以下几种调用格式: step(num,den) (a) step(num,den,t) (b) 或 step(G) (c) step(G,t) (d) 该函数将绘制出系统在单位阶跃输入条件下的动态响应图, 同时给出稳态值。 对于式(b) 和(d),t 为图像显示的时间长度,是用户指定的时间向量。式(a)和(c)的显示时间由系统 根据输出曲线的形状自行设定。 如果需要将输出结果返回到 MATLAB 工作空间中,则采用以下调用格式: c=step(G) 此时,屏上不会显示响应曲线,必须利用 plot()命令去查看响应曲线。plot 可以根据两 个或多个给定的向量绘制二维图形,详细介绍可以查阅后面的章节。 例 3.7 已知传递函数为:
则部分分式展开由以下命令获得: >> v=[-1,-1,-1] num=[0,1,2,3]; den=poly(v); [r,p,k]=residue(num,den) 结果显示 r= 1.0000 0.0000 2.0000 p= -1.0000 -1.0000 -1.0000 k= [ ] 其中由 poly()命令将分母化为标准降幂排列多项式系数向量 den, k=[]为空矩阵。 由上可得展开式为:
title(¹Pole-Zero Map¹)
% 图形标题。图 3-1 MATLABFra bibliotek函数零、极点分布图
二. 系统动态特性分析。 控制系统软件包提供了控制系统工程需要的基本的时域与频域分析工具函数。 连续时间系统分析函数 impulse 脉冲响应 step 阶跃响应 lsim 任意输入的仿真 bode 波特图 nyquist 奈奎斯特图 lyap 李雅普诺夫方程 gram 可控性与可观性 (1)时域响应解析算法――部分分式展开法 用拉氏变换法求系统的单位阶跃响应,可直接得出输出 c(t)随时间 t 变化的规律,对 于高阶系统,输出的拉氏变换象函数为:
r (1) r1 , r (2) r2 ,…, r (n) rn 为各极点的留数, k ( s ) 为余项。
例 3.2 设传递函数为:
G (s)
2 s 3 5 s 2 3s 6 s 3 6 s 2 11s 6
该传递函数的部分分式展开由以下命令获得: >> num=[2,5,3,6]; den=[1,6,11,6]; [r,p,k]=residue(num,den) 命令窗口中显示如下结果 r= p= k= -6.0000 -3.0000 2 -4.0000 -2.0000
G (s)
3s 4 2 s 3 5 s 2 4 s 6 s 5 3s 4 4 s 3 2 s 2 7 s 2
利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图 3-1 所 示。 >> num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; pzmap(num,den)
M ( s ) num b0 s n b1 s n 1 bn N ( s ) den a 0 s n a1 s n 1 a n
式中 a 0 0 ,但是 a i 和 b j 中某些量可能为零。 MATLAB 函数可将 函数的调用格式为:
M (s) 展开成部分分式,直接求出展开式中的留数、极点和余项。该 N (s)
r( j) r ( j 1) r ( j m 1) 2 s p ( j ) s p ( j ) s p( j )m
例 3.3 设传递函数为:
G (s)
s 2 2s 3 s 2 2s 3 ( s 1) 3 s 3 3s 2 3s 1
G (s)
6.8s 2 61.2 s 95.2 s 4 7.5s 3 22 s 2 19.5s
输入如下命令: num=[6.8,61.2,95.2]; den=[1,7.5,22,19.5,0]; G=tf(num,den); G1=zpk(G); Z=tzero(G) P=G1.P{1} 结果显示 Z = -7 -2 P = 0 -3.0000 + 2.0000i -3.0000 - 2.0000i -1.5000 其结果与例 8 完全一致。 (6)零极点分布图 在 MATLAB 中,可利用 pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳 定性,该函数调用格式为: pzmap(num,den) 例 3.5 给定传递函数:
r , p, k residue (num, den)
则
M (s) 的部分分式展开由下式给出: N (s) M (s) r (1) r ( 2) r ( n) k (s) N ( s ) s p (1) s p (2) s p ( n)
式中 p (1) p1 , p ( 2) p 2 ,…, p ( n) p n ,为极点,
G (s)
1 0 2 0 2 s 1 ( s 1) ( s 1) 3
(5)由传递函数求零点和极点。 在 MATLAB 控制系统工具箱中,给出了由传递函数对象 G 求出系统零点和极点的函数, 其调用格式分别为: Z=tzero(G) P=G.P{1} 注意:式 19 中要求的 G 必须是零极点模型对象,且出现了矩阵的点运算“.”和大括号 {}表示的矩阵元素,详细内容参阅后面章节。 例 3.4 已知传递函数为:
G (s) 进行部分分式展开。 s
>> num=[1,7,24,24] den=[1,10,35,50,24]
[r,p,k]=residue(num,[den,0]) 输出结果为 r= p= -1.0000 -4.0000 2.0000 -3.0000 -1.0000 -2.0000 -1.0000 -1.0000 1.0000 0 输出函数 c(s)为:
G (s)
25 s 4 s 25
2
利用以下 MATLAB 命令可得阶跃响应曲线如图 3-2 所示。
图 3-2 MATLAB 绘制的响应曲线 >> num=[0,0,25]; den=[1,4,25]; step(num,den) grid % 绘制网格线。 title(¹Unit-Step Response of G(s)=25/(s^2+4s+25) ¹) % 图像标题 我们还可以用下面的语句来得出阶跃响应曲线 >> G=tf([0,0,25],[1,4,25]); t=0:0.1:5; % 从 0 到 5 每隔 0.1 取一个值。 c=step(G,t); % 动态响应的幅值赋给变量 c plot(t,c) % 绘二维图形,横坐标取 t,纵坐标取 c。 Css=dcgain(G) % 求取稳态值。 系统显示的图形类似于上一个例子,在命令窗口中显示了如下结果 Css= 1 (3)求阶跃响应的性能指标 MATLAB 提供了强大的绘图计算功能,可以用多种方法求取系统的动态响应指标。我们 首先介绍一种最简单的方法――游动鼠标法。对于例 16,在程序运行完毕后,用鼠标左键 点击时域响应图线任意一点, 系统会自动跳出一个小方框, 小方框显示了这一点的横坐标 (时 间)和纵坐标(幅值) 。按住鼠标左键在曲线上移动,可以找到曲线幅值最大的一点――即 曲线最大峰值, 此时小方框中显示的时间就是此二阶系统的峰值时间, 根据观察到的稳态值 和峰值可以计算出系统的超调量。 系统的上升时间和稳态响应时间可以依此类推。 这种方法 简单易用,但同时应注意它不适用于用 plot()命令画出的图形。 另一种比较常用的方法就是用编程方式求取时域响应的各项性能指标。 与上一段介绍的 游动鼠标法相比,编程方法稍微复杂,但通过下面的学习,读者可以掌握一定的编程技巧, 能够将控制原理知识和编程方法相结合, 自己编写一些程序, 获取一些较为复杂的性能指标。 通过前面的学习,我们已经可以用阶跃响应函数 step( )获得系统输出量,若将输出量 返回到变量 y 中,可以调用如下格式 [y,t]=step(G) 该函数还同时返回了自动生成的时间变量 t, 对返回的这一对变量 y 和 t 的值进行计算,