当前位置:文档之家› 自动控制原理MATLAB仿真实验指导书

自动控制原理MATLAB仿真实验指导书

自动控制原理MATLAB仿真实验指导书
自动控制原理MATLAB仿真实验指导书

自动控制原理

MATLAB 仿真实验实验指导书

电气电子信息工程系自动化教研室

实验一典型环节的MATLAB仿真

一、实验目的

1.熟悉 MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。

2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。

3.定性了解各参数变化对典型环节动态特性的影响。

二、 SIMULINK 的使用

MATLAB 中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。

1.运行 MA TLAB软件,在命令窗口栏“>> ”提示符下键入simulink 命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1 所示的 SIMULINK仿真环境下。

2.选择 File 菜单下 New 下的 Model 命令,新建一个simulink 仿真环境常规模板。

图 1-1SIMULINK 仿真界面图 1-2系统方框图

3.在 simulink 仿真环境下,创建所需要的系统。

以图 1-2 所示的系统为例,说明基本设计步骤如下:

1)进入线性系统模块库,构建传递函数。点击simulink 下的“ Continuous”,再将右边窗口中“ Transfer Fen”的图标用左键拖至新建的“untitled ”窗口。

2)改变模块参数。在 simulink 仿真环境“ untitled ”窗口中双击该图标,即可改变传递函数。其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设

置完成后,选择OK ,即完成该模块的设置。

3)建立其它传递函数模块。按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。例:比例环节用“Math ”右边窗口“ Gain”的图标。

4)选取阶跃信号输入函数。用鼠标点击simulink 下的“ Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled ”窗口,形成一个阶跃函数输入模块。

5)选择输出方式。用鼠标点击simulink 下的“ Sinks”,就进入输出方式模块库,通常选用“ Scope”

的示波器图标,将其用左键拖至新建的“untitled ”窗口。

6)选择反馈形式。为了形成闭环反馈系统,需选择“Math ”模块库右边窗口“Sum”图标,

7)连接各元件,用鼠标划线,构成闭环传递函数。

8)运行并观察响应曲线。用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。运行完之后用鼠标双击“Scope”元件,即可看到响应曲线。

三、实验原理

1.比例环节的传递函数为

Z 2R2

2 R1100K , R2200K

G(s)

R1

Z1

其对应的模拟电路及SIMULINK图形如图1-3 所示。

图 1-3比例环节的模拟电路及SIMULINK图形

2.惯性环节的传递函数为

R2

G (s)Z 2R12

R1100 K , R2 200K , C1 1uf Z1R2C1 10.2s1

其对应的模拟电路及SIMULINK图形如图 1-4所示。

图 1-4 惯性环节的模拟电路及SIMULINK图形3.积分环节 (I)的传递函数为

Z 211

100K , C1 1uf

G (s)R1

Z1R1C1 s0.1s

其对应的模拟电路及SIMULINK 图形如图 1-5所示。

图 1-5 积分环节的模拟电路及及SIMULINK图形

4.微分环节 (D) 的传递函数为

Z 2

R1C1 s sR1100K , C1 10uf C 2C1 0.01uf

G ( s)

Z1

其对应的模拟电路及SIMULINK图形如图1-6 所示。

图 1-6 微分环节的模拟电路及及SIMULINK图形5.比例 +微分环节( PD)的传递函数为

G ( s)Z 2R2(R1C1 s 1)(0.1s1)

Z1R1

R1R2100K ,C110uf C 2C10.01uf 其对应的模拟电路及SIMULINK图形如图 1-7所示。

图 1-7 比例 +微分环节的模拟电路及SIMULINK图形6.比例 +积分环节( PI )的传递函数为

Z 2R211

C1s

G( s)(1)R1 R2 100K , C1 10uf

Z1R1s

其对应的模拟电路及SIMULINK图形如图1-8 所示。

四、实验内容

按下列各典型环节的传递函数,建立相应的 SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。

①比例环节 G1 (s)1和 G1 (s) 2 ;

②惯性环节 G1 ( s)

1

(s)

1

和 G2

0.5s 1 s 1

③积分环节 G1 (s)1

s

④微分环节 G1 ( s)s

⑤比例 +微分环节( PD)G1(s)s2和 G 2 (s)s1

⑥比例 +积分环节( PI )G1(s)11

s 和 G2 (s)11

2s

五、实验报告

1.画出各典型环节的SIMULINK仿真模型。

2.记录各环节的单位阶跃响应波形,并分析参数对响应曲线的影响。

3.写出实验的心得与体会。

六、预习要求

1.熟悉各种控制器的原理和结构,画好将创建的SIMULINK图形。2.预习 MATLAB中 SIMULINK的基本使用方法。

实验二线性系统时域响应分析

一、实验目的

1.熟练掌握step( ) 函数和 impulse() 函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。

2.通过响应曲线观测特征参量和n 对二阶系统性能的影响。

3.熟练掌握系统的稳定性的判断方法。

二、基础知识及MATLAB函数

1.基础知识

时域分析法直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响

应)。本次实验从分析系统的性能指标出发,给出了在MATLAB环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。

用 MATLAB求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s 的降幂排列写为两个数组num、 den。由于控制系统分子的阶次m一般小于其分母的阶次n,所以 num中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。

用MATLAB求控制系统的瞬态响

应阶跃响应

求系统阶跃响应的指令有:

step(num,den)时间向量t 的范围由软件自动设定,阶跃响应曲线随即绘出

step(num,den,t)时间向量t 的范围可以由人工给定(例如t=0:0.1:10)

[y , x]=step(num,den)返回变量y 为输出向量, x 为状态向量

在MATLAB程序中,先定义 num,den 数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。

考虑下列系统:

C (s)25

R(s) s24s 25

该系统可以表示为两个数组,每一个数组由相应的多项式系数组成,并且以s 的降幂排列。则matlab 的调用语句:

num=[0025];%定义分子多项式

den=[1425];%定义分母多项式

step(num,den)%调用阶跃响应函数求取单位阶跃响应曲线

grid%画网格标度线

xlabel(‘t/s’),ylabel( ‘c(t) ’)%给坐标轴加上说明

title(‘Unit- step Respinse of G(s)=25/(s^2+4s+25)’)%给图形加上标题名则该单位阶跃响应曲线如图2-1 所示:

为了在图形屏幕上书写文本,可以用text命令在图上的任何位置加标注。例如:

text(3.4,-0.06, ’Y1’)和text(3.4,1.4,’Y2’)

第一个语句告诉计算机,在坐标点x=3.4,y=-0.06上书写出’ Y1’。类似地,第二个语句告诉

图2-1二阶系统的单位阶跃响应

图2-2定义时间范围的单位阶跃响应

若要绘制系统t 在指定时间( 0-10s )内的响应曲线,则用以下语句:

num=[0 025];

den=[1 425];

t=0:0.1:10;

step(num,den,t)

即可得到系统的单位阶跃响应曲线在0-10s 间的部分,如图2-2 所示。

脉冲响应

① 求系统脉冲响应的指令有:

impulse (num,den)时间向量 t的范围由软件自动设定,阶跃响应曲线随即绘出impulse (num,den,t)时间向量 t的范围可以由人工给定(例如t=0:0.1:10 )[y,x]=impulse(num,den)返回变量 y为输出向量, x 为状态向量

[y,x,t]=impulse(num,den,t)向量 t表示脉冲响应进行计算的时间

例:试求下列系统的单位脉冲响应:

C (s)

G (s)1

R(s)s20.2 s1

在 matlab 中可表示为

num=[0 0 1]; den=[1 0.2 1];

impulse(num,den)

grid

title(‘Unit -impulse Response of G(s)=1/(s^2+0.2s+1) ’)

由此得到的单位脉冲响应曲线如图2-3所示。

② 求脉冲响应的另一种方法

应当指出,当初始条件为零时,G (s) 的单位脉冲响应与sG(s) 的单位阶跃响应相同。考虑在上例题中求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s)=1所以

C(s)1s1

C(s) G(s)2

0.2s12

1 s

R(s)s s 0.2s

因此,可以将G(s)的单位脉冲响应变换成sG(s)的单位阶跃响应。

向 MA TLAB输入下列 num 和 den,给出阶跃响应命令,可以得到系统的单位脉冲响应曲线如图2-4 所示。

step(num,den)

grid

title( ‘Unit -step Response of sG(s)=s/(s^2+0.2s+1)’)

图 2-3二阶系统的单位脉冲响应图2-4单位脉冲响应的另一种表示法斜坡响应

MATLAB没有直接调用求系统斜坡响应的功能指令。在求取斜坡响应时,通常利用阶跃响应的指

令。基于单位阶跃信号的拉氏变换为 1/s ,而单位斜坡信号的拉氏变换为 1/s2 。因此,当求系统 G(s) 的单位斜坡响应时,可以先用 s 除 G(s) ,再利用阶跃响应命令,就能求出系统的斜坡响应。

例如,试求下列闭环系统的单位斜坡响应。

C (s)1

R(s)s2s1

对于单位斜坡输入量, R(s)=1/s2,因此

C ( s)1111

2s 1 s2( s2s 1) s s

s

在MATLAB中输入以下命令,得到如图2-5 所示的响应曲线:

num=[0 0 0 1]; den=[1 1 1 0];

step(num,den)

title( ‘Unit -Ramp Response Cuve for System G(s)=1/(s^2+s+1) ’)

图2-5 单位斜坡响应

C( s)2n

R(s)

2

2 n s

2 s n

二阶系统的单位阶跃响应在不同的特征参量下有不同的响应曲线。

对二阶系统性能的影响

设定无阻尼自然振荡频率

n 1(rad / s) ,考虑5种不同的值: =0,0.25,0.5,1.0和 2.0 ,利用 MATLAB对每一种求取单位阶跃响应曲线,分析参数对系统的影响。

为便于观测和比较,在一幅图上绘出 5 条响应曲线(采用“hold ”命令实现)。

num=[0 0 1]; den1=[1 0 1]; den2=[1 0.5 1];

den3=[1 1 1]; den4=[1 2 1]; den5=[1 41];

t=0:0.1:10; step(num,den1,t)

grid

text(4,1.7,'Zeta=0'); hold

step(num,den2,t)

text(3.3,1.5,'0.25')

step(num,den3,t)

text(3.5,1.2,'0.5')

step(num,den4,t)

text(3.3,0.9,'1.0')

step(num,den5,t)

text(3.3,0.6,'2.0')

title('Step-Response Curves for G(s)=1/[s^2+2(zeta)s+1]')

由此得到的响应曲线如图2-6 所示。

图 2-6不同时系统的响应曲线图2-7n 不同时系统的响应曲线

n对二阶系统性能的影响

同理,设定阻尼比0.25 时,当n 分别取1,2,3时,利用MATLAB求取单位阶跃响应曲线,分析参数n 对系统的影响。

num1=[0 0 1]; den1=[1 0.51];

t=0:0.1:10;

step(num1,den1,t);

grid;hold on

num2=[0 0 4]; den2=[1 1 4];

step(num2,den2,t); hold on

text(1.7,1.4, ’wn=2’)

num3=[0 0 9]; den3=[1 1.59];

step(num3,den3,t); hold on

text(0.5,1.4, ’wn=3’)

由此得到的响应曲线如图2-7 所示。

3.系统稳定性判断

1)直接求根判稳roots()

控制系统稳定的充要条件是其特征方程的根均具有负实部。因此,为了判别系统的稳定性,就

要求出系统特征方程的根,并检验它们是否都具有负实部。 MATLAB中对多项式求根的函数为 roots() 函数。

若求以下多项式的根s410 s335 s250s 24 ,则所用的MATLAB指令为:

>>roots([1,10,35,50,24])

ans =

-4.0000

-3.0000

-2.0000

-1.0000

特征方程的根都具有负实部,因而系统为稳定的。

2)劳斯稳定判据routh ()

劳斯判据的调用格式为:[r, info]=routh(den)

该函数的功能是构造系统的劳斯表。其中,den 为系统的分母多项式系数向量,r 为返回的routh 表矩阵, info为返回的routh表的附加信息。

以上述多项式为例,由routh判据判定系统的稳定性。

den=[1,10,35,50,24];

[r,info]=routh(den)

r=

1 35 24

10 500

30 240

42 0 0

24 0 0

info=

[ ]

由系统返回的routh表可以看出,其第一列没有符号的变化,系统是稳定的。

3)赫尔维茨判据hurwitz()

赫尔维茨的调用格式为:H=hurwitz ( den)。该函数的功能是构造hurwitz矩阵。其中,den为系统的分母多项式系数向量。

以上述多项式为例,由hurwitz判据判定系统的稳定性。

>>den=[1,10,35,50,24];H=hurwitz(den)

H=

10 50 00

135240

010500

013524

由系统返回的hurwitz矩阵可以看出,系统是稳定的。与前面的分析结果完全一致。

注意: routh ()和 hurwitz ()不是 MATLAB中自带的功能函数,须加载ctrllab3.1文件夹(自编)才能运行。

三、实验内容

1.观察函数step( )的调用格式,假设系统的传递函数模型为

s23s 7

G(s)

s44s36s24s 1

绘制出系统的阶跃响应曲线?

2.对典型二阶系统

2

G( s)n

s2 2 n s2n

1)分别绘出n2( rad / s) ,分别取 0,0.25,0.5,1.0 和 2.0 时的单位阶跃响应曲线,分析参数

对系统的影响,并计算=0.25 时的时域性能指标p , t r ,t p ,t s ,e ss 。

2)绘制出当=0.25 ,n 分别取1,2,4,6 时单位阶跃响应曲线,分析参数n 对系统的影响。

3.系统的特征方程式为2s4s33s25s 100,试判别该系统的稳定性。

四、实验报告

1.根据内容要求,写出调试好的MATLAB语言程序,及对应的MATLAB运算结果。

2.记录各种输出波形,根据实验结果分析参数变化对系统的影响。

3.总结判断闭环系统稳定的方法,说明增益K 对系统稳定性的影响。

4.写出实验的心得与体会。

五、预习要求

1. 预习实验中基础知识,运行编制好的 MATLAB语句,熟悉 MATLAB指令及 step( ) 和 impulse( ) 函数。

2.结合实验内容,提前编制相应的程序。

3.思考特征参量和n 对二阶系统性能的影响。

4.熟悉闭环系统稳定的充要条件及学过的稳定判据。

实验三线性系统的根轨迹

一、实验目的

1.熟悉 MATLAB用于控制系统中的一些基本编程语句和格式。

2.利用 MATLAB语句绘制系统的根轨迹。

3.掌握用根轨迹分析系统性能的图解方法。

4.掌握系统参数变化对特征根位置的影响。

二、基础知识及MATLAB函数

根轨迹是指系统的某一参数从零变到无穷大时,特征方程的根在s 平面上的变化轨迹。这个参数一般选为开环系统的增益K。课本中介绍的手工绘制根轨迹的方法,只能绘制根轨迹草图。而用MATLAB可以方便地绘制精确的根轨迹图,并可观测参数变化对特征根位置的影响。

假设系统的对象模型可以表示为

G( s)KG 0 (s) K b s m b s m 1b s b 12m m 1 s n a1 s n 1b n 1 s a n

系统的闭环特征方程可以写成

1KG 0 ( s) 0

对每一个 K 的取值,我们可以得到一组系统的闭环极点。如果我们改变K 的数值,则可以得到一系列这样的极点集合。若将这些K 的取值下得出的极点位置按照各个分支连接起来,则可以得到

一些描述系统闭环位置的曲线,这些曲线又称为系统的根轨迹。

绘制系统的根轨迹 rlocus ()

MATLAB中绘制根轨迹的函数调用格式为:

rlocus(num,den)开环增益 k 的范围自动设定。

rlocus(num,den,k)开环增益 k 的范围人工设定。

rlocus(p,z)依据开环零极点绘制根轨迹。

r=rlocus(num,den)不作图,返回闭环根矩阵。

[r,k]=rlocus(num,den)不作图,返回闭环根矩阵r 和对应的开环增益向量 k。

其中, num,den 分别为系统开环传递函数的分子、分母多项式系数,按s 的降幂排列。 K 为根轨迹增益,可设定增益范围。

例 3-1 :已知系统的开环传递函数

G(s)K

(s1),绘制系统的根轨迹的matlab 的调s34s22s 9

用语句如下:

num=[1 1];%定义分子多项式

den=[1 4 2 9];%定义分母多项式

rlocus (num,den)%绘制系统的根轨迹

grid%画网格标度线

xlabel('Real Axis'),ylabel('Imaginary Axis')%给坐标轴加上说明

title('Root Locus')%给图形加上标题名则该系统的根轨迹如图3-1 ( a)所示。

若上例要绘制 K 在( 1,10)的根轨迹图,则此时的matlab 的调用格式如下,对应的根轨迹如

num=[1 1]; den=[1 4 2 9];

k=1:0.5:10;

rlocus (num,den,k)

( a)完整根轨迹图形( b)特定增益范围内的根轨迹图形

图 3-1 系统的根轨迹图形

1)确定闭环根位置对应增益值K 的函数 rlocfind ()

在 MA TLAB 中,提供了 rlocfind 函数获取与特定的复根对应的增益K 的值。在求出的根轨迹图上,可确定选定点的增益值K 和闭环根 r (向量)的值。该函数的调用格式为:

[k,r]=rlocfind(num,den)

执行前,先执行绘制根轨迹命令rlocus(num,den),作出根轨迹图。执行rlocfind 命令时,出现提示语句“ Select a point in the graphics window ”,即要求在根轨迹图上选定闭环极点。将鼠标移至根轨迹图选定的位置,单击左键确定,根轨迹图上出现“+”标记,即得到了该点的增益K 和闭环根 r 的返回变量值。

例 3-2:系统的开环传递函数为G(s)K s25s 6,试求:( 1)系统的根轨迹;(2)系统

s325

8s23s

稳定的 K 的范围;(3) K=1 时闭环系统阶跃响应曲线。则此时的matlab 的调用格式为:G=tf([1,5,6],[1,8,3,25]);

rlocus (G);%绘制系统的根轨迹

[k,r]=rlocfind(G)%确定临界稳定时的增益值k 和对应的极点 r

G_c=feedback(G,1);%形成单位负反馈闭环系统

step(G_c)% 绘制闭环系统的阶跃响应曲线

则系统的根轨迹图和闭环系统阶跃响应曲线如图3-2 所示。

其中,调用 rlocfind ()函数,求出系统与虚轴交点的K 值,可得与虚轴交点的K 值为 0.0264,故系统稳定的 K 的范围为K(0.0264, ) 。

2)绘制阻尼比和无阻尼自然频率n 的栅格线sgrid( )

当对系统的阻尼比和无阻尼自然频率n 有要求时,就希望在根轨迹图上作等或等n线。matlab 中实现这一要求的函数为sgrid( ) ,该函数的调用格式为:

sgrid(, n )已知和n 的数值,作出等于已知参数的等值线。

sgrid(‘ new’ ) 作出等间隔分布的等和n 网格线。

例 3-3:系统的开环传递函数为G(s)1,由 rlocfind函数找出能产生主导极点阻尼

=0.707 的合适增益,如图3-3(a) 所示。

G=tf(1,[conv([1,1],[1,2]),0]);

zet=[0.1:0.2:1];wn=[1:10];

sgrid(zet,wn);hold on;rlocus(G)

[k,r]=rlocfind(G)

Select a point in the graphics window

selected_point =

-0.3791 + 0.3602i

k =

0.6233

r =

-2.2279

-0.3861 + 0.3616i

-0.3861 - 0.3616i

( a)根轨迹图形(b)K=1时的阶跃响应曲线

图 3-2系统的根轨迹和阶跃响应曲线

( a)根轨迹上点的选择(b)闭环系统阶跃响应

图 3-3 由根轨迹技术设计闭环系统

同时我们还可以绘制出该增益下闭环系统的阶跃响应,如图 3-3(b) 所示。事实上,等或等

n 线在设计系补偿器中是相当实用的,这样设计出的增益K=0.6233将使得整个系统的阻尼比接近

0.707 。由下面的MATLAB语句可以求出主导极点,即r(2.3)点的阻尼比和自然频率为

step(G_c)

dd0=poly(r(2:3,:));

wn=sqrt(dd0(3));zet=dd0(2)/(2*wn);[zet,wn]

ans =

0.72990.5290

我们可以由图3-3(a) 中看出,主导极点的结果与实际系统的闭环响应非常接近,设计的效果是令人满意的。

3)基于根轨迹的系统设计及校正工具rltool

matlab 中提供了一个系统根轨迹分析的图形界面,在此界面可以可视地在整个前向通路中添加

零极点(亦即设计控制器),从而使得系统的性能得到改善。实现这一要求的工具为rltool ,其调用格式为:

rltool或rltool(G)

例 3-4:单位负反馈系统的开环传递函数

s0.125

G (s)

s2 (s 5)( s 20)( s50)

输入系统的数学模型,并对此对象进行设计。

den=[conv([1,5],conv([1,20],[1,50])),0,0];

num=[1,0.125];

G=tf(num,den);

rltool(G)

该命令将打开rltool 工具的界面,显示原开环模型的根轨迹图,如图3-4(a)所示。单击该图形菜单命令 Analysis 中的 Response to Step Command 复选框,则将打开一个新的窗口,绘制系统的闭

环阶跃响应曲线,如图 3-4( b)所示。可见这样直接得出的系统有很强的振荡,就需要给这个对象模型

设计一个控制器来改善系统的闭环性能。

a)原对象模型的根轨迹(b)闭环系统阶跃响应

图 3-4 根轨迹设计工具界面及阶跃响应分析

单击界面上的零点和极点添加的按钮,可以给系统添加一对共轭复极点,两个稳定零点,调整

它们的位置,并调整增益的值,通过观察系统的闭环阶跃响应效果,则可以试凑地设计出一个控制

器:

G C

(s38.31)(s10.26)

(s) 181307.29

j 0.84)(s61.3j 0.84)

(s 61.3

在此控制器下分别观察系统的根轨迹和闭环系统阶跃响应曲线。可见,rltool 可以作为系统综合的实用工具,在系统设计中发挥作用。

三、实验内容

1.请绘制下面系统的根轨迹曲线

K

G(s)

s(s22s 2)( s26s13)

G (s)K (s 12)

212s100)( s 10)

( s 1)(s

G (s)K (0.051)

1)(0.012 s20.1s 1)

s(0.0714 s

同时得出在单位阶跃负反馈下使得闭环系统稳定的K 值的范围。

2.在系统设计工具 rltool 界面中,通过添加零点和极点方法,试凑出上述系统,并观察增加极、

零点对系统的影响。

四、实验报告

1.根据内容要求,写出调试好的MATLAB语言程序,及对应的结果。

2.记录显示的根轨迹图形,根据实验结果分析根轨迹的绘制规则。

3.根据实验结果分析闭环系统的性能,观察根轨迹上一些特殊点对应的 K 值,确定闭环系统稳定的范围。

4.根据实验分析增加极点或零点对系统动态性能的影响。

5.写出实验的心得与体会。

五、预习要求

1.预习实验中的基础知识,运行编制好的MATLAB语句,熟悉根轨迹的绘制函数rlocus()及分析函数 rlocfind(),sgrid()。

2.预习实验中根轨迹的系统设计工具rltool ,思考该工具的用途。

3.掌握用根轨迹分析系统性能的图解方法,思考当系统参数K 变化时,对系统稳定性的影响。

4.思考加入极点或零点对系统动态性能的影响。

实验四线性系统的频域分析

一、实验目的

1.掌握用MA TLAB 语句绘制各种频域曲线。

2.掌握控制系统的频域分析方法。

二、基础知识及MATLAB函数

频域分析法是应用频域特性研究控制系统的一种经典方法。它是通过研究系统对正弦信号下的稳态和动态响应特性来分析系统的。采用这种方法可直观的表达出系统的频率特性,分析方法比较简单,物理概念明确。

1.频率曲线主要包括三种:Nyquist 图、 Bode 图和 Nichols 图。

1)Nyquist 图的绘制与分析

MATLAB中绘制系统Nyquist 图的函数调用格式为:

nyquist(num,den)频率响应w 的范围由软件自动设定

nyquist(num,den,w)频率响应w 的范围由人工设定

[Re,Im]= nyquist(num,den)返回奈氏曲线的实部和虚部向量,不作图

例 4-1:已知系统的开环传递函数为

G (s)

2s6

s32s2

,试绘制 Nyquist 图,并判断系

5s 2

统的稳定性。

num=[2 6];

den=[1 2 5 2];

[z,p,k]=tf2zp(num,den); p

nyquist(num,den)

极点的显示结果及绘制的Nyquist 图如图4-1 所

示。由于系统的开环右根数P=0,系统的 Nyquist 曲线

没有逆时针包围(-1, j0)点,所以闭环系统稳定。

p =

-0.7666 + 1.9227i

-0.7666 - 1.9227i图 4-1开环极点的显示结果及Nyquist 图

-0.4668

若上例要求绘制(10 2 ,103 ) 间的Nyquist图,则对应的MA TLAB 语句为:

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中绘制系统Bode 图的函数调用格式为:

bode(num,den,w)频率响应 w 的范围由人工设定

[mag,phase,w]=bode(num,den,w)指定幅值范围和相角范围的伯德图

例 4-2:已知开环传递函数为

30(0.2s1)

G (s)

16 s

,试绘制系统的伯德图。

s(s2100)

num=[001530];

den=[1161000];

w=logspace(-2,3,100);

bode(num,den,w)

grid

绘制的 Bode 图如图 4-2(a)所示,其频率范围由人工选定,而伯德图的幅值范围和相角范围是自

动确定的。当需要指定幅值范围和相角范围时,则需用下面的功能指令:

[mag,phase,w]=bode(num,den,w)

图 4-2(a) 幅值和相角范围自动确定的Bode 图图 4-2(b)指定幅值和相角范围的Bode 图

mag,phase 是指系统频率响应的幅值和相角,由所选频率点的w 值计算得出。其中,幅值的单

位为 dB,它的算式为 magdB=20lg10(mag) 。

指定幅值范围和相角范围的MATLAB 调用语句如下,图形如图4-2(b)所示。

num=[001530];

den=[1161000];

w=logspace(-2,3,100);

[mag,phase,w]=bode(num,den,w);%指定 Bode 图的幅值范围和相角范围

subplot(2,1,1); %将图形窗口分为 2*1 个子图,在第 1 个子图处绘制图形

semilogx(w,20*log10(mag)); %使用半对数刻度绘图, X 轴为 log10 刻度, Y 轴为线性刻度

grid on

xlabel('w/s^-1'); ylabel('L(w)/dB');

title('Bode Diagram of G(s)=30(1+0.2s)/[s(s^2+16s+100)]');

subplot(2,1,2); %将图形窗口分为2*1 个子图,在第 2 个子图处绘制图形

semilogx(w,phase);

grid on

xlabel('w/s^-1'); ylabel('(0)');

注意:半 Bode 图的绘制可用s emilgx函数实现,其调用格式为semilogx(w,L) ,其中

3)Nichols 图的绘制

在MA TLAB 中绘制 Nichols 图的函数调用格式为:

[mag,phase,w]=nichols(num,den,w)

Plot(phase,20*log10(mag))

例 4-3:单位负反馈的开环传递函数为G( s)10,绘制 Nichols 图。对应的 MATLAB

3s2

s39s

语句如下,所得图形如图4-3 所示:

num=10; den=[1 3 9 0];

w=logspace(-1,1,500);

[mag,phase]=nichols(num,den,w);

plot(phase,20*log10(mag))

ngrid%绘制 nichols 图线上的网格

2.幅值裕量和相位裕量

幅值裕量和相位裕量是衡量控制系统相对稳定性的

重要指标,需要经过复杂的运算求取。应用MATLAB

功能指令可以方便地求解幅值裕量和相位裕量。

图 4-3 N ichols图其 MA TLAB 调用格式为:

[Gm,Pm,Wcg,Wcp]=margin(num,den)

其中, Gm,Pm 分别为系统的幅值裕量和相位裕量,而Wcg,Wcp 分别为幅值裕量和相位裕量处相应的频率值。

另外,还可以先作bode 图,再在图上标注幅值裕量Gm 和对应的频率 Wcg ,相位裕量 Pm 和对应的频率 Wcp 。其函数调用格式为:

margin(num,den)

例 4-4:对于例4-3 中的系统,求其稳定裕度,对应的MA TLAB 语句如下:

num=10; den=[1 3 9 0];

[gm,pm,wcg,wcp]=margin(num,den);

gm,pm,wcg,wcp

gm = 2.7000

pm =64.6998

wcg = 3.0000

wcp = 1.1936

如果已知系统的频域响应数据,还可以由下面的格式调用函数:

[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w)

其中( mag,phase,w)分别为频域响应的幅值、相位与频率向量。

三、实验内容

1.典型二阶系统

2

G(s)n

2

2 n s 2

s n

绘制出n 6 ,0.1 ,0.3,0.5,0.8,2的bode图,记录并分析对系统 bode 图的影响。

2.系统的开环传递函数为

G (s)10

2 (5 s 1)(s5)

s

G (s)8( s1)

s2 (s

15)( s26s 10)

G (s)4( s / 31)

s(0.02 s

1)(0.05 s1)(0.1s 1)

绘制系统的Nyquist 曲线、Bode 图和 Nichols 图,说明系统的稳定性,并通过绘制阶跃响应曲线验证。

s 1

3.已知系统的开环传递函数为G( s)s2 (0.1s1) 。求系统的开环截止频率、穿越频率、幅值裕度和相位裕度。应用频率稳定判据判定系统的稳定性。

四、实验报告

1.根据内容要求,写出调试好的MATLAB语言程序,及对应的结果。

2.记录显示的图形,根据实验结果与各典型环节的频率曲线对比分析。

3.记录并分析对二阶系统bode 图的影响。

4.根据频域分析方法分析系统,说明频域法分析系统的优点。

5.写出实验的心得与体会。

五、预习要求

1.预习实验中的基础知识,运行编制好的MATLAB语句,熟悉绘制频率曲线的三种图形函数

nyquist()、bode()和nichols()。

2.掌握控制系统的频域分析方法,理解系统绝对稳定性和相对稳定性的判断方法。

现代信号处理Matlab仿真——例611

例6.11 利用卡尔曼滤波估计一个未知常数 题目: 设已知一个未知常数x 的噪声观测集合,已知噪声v(n)的均值为零, 方差为 ,v(n)与x 不相关,试用卡尔曼滤波估计该常数 题目分析: 回忆Kalman 递推估计公式 由于已知x 为一常数,即不随时间n 变化,因此可以得到: 状态方程: x(n)=x(n-1) 观测方程: y(n)=x(n)+v(n) 得到A(n)=1,C(n)=1, , 将A(n)=1,代入迭代公式 得到:P(n|n-1)=P(n-1|n-1) 用P(n-1)来表示P(n|n-1)和P(n-1|n-1),这是卡尔曼增益表达式变为 从而 2v σ1??(|1)(1)(1|1)(|1)(1)(1|1)(1)()()(|1)()[()(|1)()()]???(|)(|1)()[()()(|1)](|)[()()](|1)H w H H v x n n A n x n n P n n A n P n n A n Q n K n P n n C n C n P n n C n Q n x n n x n n K n y n C n x n n P n n I K n C n P n n --=----=----+=--+=-+--=--2()v v Q n σ=()0w Q n =(|1)(1)(1|1)(1)()H w P n n A n P n n A n Q n -=----+21 ()(|1)[(|1)]v K n P n n P n n σ-=--+22(1)()[1()](1)(1)v v P n P n K n P n P n σσ-=--=-+

Matlab实验指导书

实验一 Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句; 3、熟悉Matlab绘图命令及基本绘图控制; 4、熟悉Matlab程序设计的基本方法。 二、实验内容 1、帮助命令 2、矩阵运算 (1)矩阵的乘法和乘方 已知A=[1 2;3 4]:B=[5 5;7 8]:求A^2*B ( 2 )矩阵除法 已知A=[1 2 3:4 5 6:7 8 9]:B=[1 0 0:0 2 0:0 0 3],求矩阵左除A\B,右除A/B。 ( 3 )矩阵的转置及共轭转置 已知A=[5+i,2-i,1;6*i,4,9-i],求该复数矩阵的转置A',共轭转置A.' ( 4 )使用冒号选出指定元素 已知:A=[1 2 3:4 5 6:7 8 9];求A中第3列前2个元素;A中第2、3行元素。 ( 5 )方括号[] 用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列 3、多项式 (1)求多项式P(x)=x3-2x-4的根 ( 2 )已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4].,构造多项式,并计算多项式值为20的解。 4、基本绘图命令 ( 1 ) 绘制余弦曲线 ] 2,0[ ), cos(π ∈ =t t y 。 ( 2 ) 在同一坐标系中绘制曲线 ] 2,0[ ), 5.0 sin( ), 25 .0 cos( yπ ∈ - = - =t t y t 5、基本绘图控制 绘制 ] 4,0[π 区间上的y=10sint曲线,并要求: (1)线形为点划线,颜色为红色,数据点标记为加号; (2)坐标轴控制:显示范围,刻度线,比例,网络线; (3)标注控制:坐标轴名称,标题,相应文本。 6、基本程序设计 (1)编写命令文件:计算1+2+....+n<2000时的最大n值; (2)编写函数文件:分别用n和which循环结构编写程序,求2的0到n次幂的和. n=input('输入正数n:') ji=1: for i=1:n; ji=ji+2^i: end ji input('输入正数n:') ji-1:i-1: While i<=n ji=ji+2^i; i=i+1; end ji (3)如果想对一个变量x赋值,当从键盘输入y或Y时,x自动赋为1;当从键盘输入n或N时,x自 动赋为0;输入其他字符时终止程序。 k=input('shuruX:'.'s'): if k=='y' k=='Y' x=1 ; else k=='n' k=='N' x=0; else ruturn end >> n=input('输入正数n:') 输入正数n:20 n =20

MATLAB仿真实验报告

MATLAB 仿真实验报告 课题名称:MATLAB 仿真——图像处理 学院:机电与信息工程学院 专业:电子信息科学与技术 年级班级:2012级电子二班 一、实验目的 1、掌握MATLAB处理图像的相关操作,熟悉相关的函数以及基本的MATLAB语句。 2、掌握对多维图像处理的相关技能,理解多维图像的相关性质 3、熟悉Help 命令的使用,掌握对相关函数的查找,了解Demos下的MATLAB自带的原函数文件。 4、熟练掌握部分绘图函数的应用,能够处理多维图像。 二、实验条件

MATLAB调试环境以及相关图像处理的基本MATLAB语句,会使用Help命令进行相关函数查找 三、实验内容 1、nddemo.m函数文件的相关介绍 Manipulating Multidimensional Arrays MATLAB supports arrays with more than two dimensions. Multidimensional arrays can be numeric, character, cell, or structure arrays. Multidimensional arrays can be used to represent multivariate data. MATLAB provides a number of functions that directly support multidimensional arrays. Contents : ●Creating multi-dimensional arrays 创建多维数组 ●Finding the dimensions寻找尺寸 ●Accessing elements 访问元素 ●Manipulating multi-dimensional arrays操纵多维数组 ●Selecting 2D matrices from multi-dimensional arrays从多维数组中选择二维矩 阵 (1)、Creating multi-dimensional arrays Multidimensional arrays in MATLAB are created the same way as two-dimensional arrays. For example, first define the 3 by 3 matrix, and then add a third dimension. The CAT function is a useful tool for building multidimensional arrays. B = cat(DIM,A1,A2,...) builds a multidimensional array by concatenating(联系起来)A1, A2 ... along the dimension DIM. Calls to CAT can be nested(嵌套). (2)、Finding the dimensions SIZE and NDIMS return the size and number of dimensions of matrices. (3)、Accessing elements To access a single element of a multidimensional array, use integer subscripts(整数下标). (4)、Manipulating multi-dimensional arrays

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

Matlab仿真实例-卫星轨迹

卫星轨迹 一.问题提出 设卫星在空中运行的运动方程为: 其中是k 重力系数(k=401408km3/s)。卫星轨道采用极坐标表示,通过仿真,研究发射速度对卫星轨道的影响。实验将作出卫星在地球表面(r=6400KM ,θ=0)分别以v=8KM/s,v=10KM/s,v=12KM/s 发射时,卫星绕地球运行的轨迹。 二.问题分析 1.卫星运动方程一个二阶微分方程组,应用Matlab 的常微分方程求解命令ode45求解时,首先需要将二阶微分方程组转换成一阶微分方程组。若设,则有: 2.建立极坐标如上图所示,初值分别为:卫星径向初始位置,即地球半径:y(1,1)=6400;卫星初始角度位置:y(2,1)=0;卫星初始径向线速度:y(3,1)=0;卫星初始周向角速度:y(4,1)=v/6400。 3.将上述一阶微分方程及其初值带入常微分方程求解命令ode45求解,可得到一定时间间隔的卫星的径向坐标值y(1)向量;周向角度坐标值y(2)向量;径向线速度y(3)向量;周向角速度y(4)向量。 4.通过以上步骤所求得的是极坐标下的解,若需要在直角坐标系下绘制卫星的运动轨迹,还需要进行坐标变换,将径向坐标值y(1)向量;周向角度坐标值y(2)向量通过以下方程转换为直角坐标下的横纵坐标值X,Y 。 5.卫星发射速度速度的不同将导致卫星的运动轨迹不同,实验将绘制卫星分别以v=8KM/s ,v=10KM/s ,v=12KM/s 的初速度发射的运动轨迹。 三.Matlab 程序及注释 1.主程序 v=input('请输入卫星发射速度单位Km/s :\nv=');%卫星发射速度输入。 axis([-264007000-1000042400]);%定制图形输出坐标范围。 %为了直观表达卫星轨迹,以下语句将绘制三维地球。 [x1,y1,z1]=sphere(15);%绘制单位球。 x1=x1*6400;y1=y1*6400;???????-=+-=dt d dt dr r dt d dt d r r k dt r d θ θθ2)(2 22222θ==)2(,)1(y r y ?????????????**-=**+*-===)1(/)4()3(2)4()4()4()1()1()1()3()4()2() 3()1(y y y dt dy y y y y y k dt dy y dt dy y dt dy ???*=*=)] 2(sin[)1(Y )]2(cos[)1(X y y y y

MATLAB实验指导书

实验一MATLAB 工作环境熟悉及简单命令的执行 一、 实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、 实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条(T oolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3; (2)area=pi*2.5^2; (3)已知x=3,y=4,在MATLAB 中求z : ()23 2y x y x z -= ; (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1( 2 , 3 ) >>m1( 11 ) >>m1( : , 3 ) >>m1( 2 : 3 , 1 : 3 ) >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) (5)执行命令>>help abs 查看函数abs 的用法及用途,计算abs( 3 + 4i ); (6)执行命令 >>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y) (7)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。 四、思考题 1、以下变量名是否合法?为什么? (1)x2; (2)3col ; (3)_row ; (4)for ;

MATLAB仿真实验全部

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些 2、 如何判断系统稳定性 3、 系统的动态性能指标有哪些 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

MATLAB实现通信系统仿真实例

补充内容:模拟调制系统的MATLAB 仿真 1.抽样定理 为了用实验的手段对连续信号分析,需要先对信号进行抽样(时间上的离散化),把连续数据转变为离散数据分析。抽样(时间离散化)是模拟信号数字化的第一步。 Nyquist 抽样定律:要无失真地恢复出抽样前的信号,要求抽样频率要大于等于两倍基带信号带宽。 抽样定理建立了模拟信号和离散信号之间的关系,在Matlab 中对模拟信号的实验仿真都是通过先抽样,转变成离散信号,然后用该离散信号近似替代原来的模拟信号进行分析的。 【例1】用图形表示DSB 调制波形)4cos()2cos(t t y ππ= 及其包络线。 clf %%计算抽样时间间隔 fh=1;%%调制信号带宽(Hz) fs=100*fh;%%一般选取的抽样频率要远大于基带信号频率,即抽样时间间隔要尽可能短。 ts=1/fs; %%根据抽样时间间隔进行抽样,并计算出信号和包络 t=(0:ts:pi/2)';%抽样时间间隔要足够小,要满足抽样定理。 envelop=cos(2*pi*t);%%DSB 信号包络 y=cos(2*pi*t).*cos(4*pi*t);%已调信号 %画出已调信号包络线 plot(t,envelop,'r:','LineWidth',3); hold on plot(t,-envelop,'r:','LineWidth',3); %画出已调信号波形 plot(t,y,'b','LineWidth',3); axis([0,pi/2,-1,1])% hold off% xlabel('t'); %写出图例 【例2】用图形表示DSB 调制波形)6cos()2cos(t t y ππ= 及其包络线。 clf %%计算抽样时间间隔 fh=1;%%调制信号带宽(Hz) fs=100*fh;%抽样时间间隔要足够小,要满足抽样定理。 ts=1/fs; %%根据抽样时间间隔进行抽样

MATLAB Simulink系统建模与仿真 实验报告

MATLAB/Simulink 电力系统建模与仿真 实验报告 姓名:****** 专业:电气工程及其自动化 班级:******************* 学号:*******************

实验一无穷大功率电源供电系统三相短路仿真 1.1 无穷大功率电源供电系统仿真模型构建 运行MATLAB软件,点击Simulink模型构建,根据电路原理图,添加下列模块: (1)无穷大功率电源模块(Three-phase source) (2)三相并联RLC负荷模块(Three-Phase Parallel RLC Load) (3)三相串联RLC支路模块(Three-Phase Series RLC Branch) (4)三相双绕组变压器模块(Three-Phase Transformer (Two Windings)) (5)三相电压电流测量模块(Three-Phase V-I Measurement) (6)三相故障设置模块(Three-Phase Fault) (7)示波器模块(Scope) (8)电力系统图形用户界面(Powergui) 按电路原理图连接线路得到仿真图如下: 1.2 无穷大功率电源供电系统仿真参数设置 1.2.1 电源模块 设置三相电压110kV,相角0°,频率50Hz,接线方式为中性点接地的Y形接法,电源电阻0.00529Ω,电源电感0.000140H,参数设置如下图:

1.2.2 变压器模块 变压器模块参数采用标幺值设置,功率20MVA,频率50Hz,一次测采用Y型连接,一次测电压110kV,二次侧采用Y型连接,二次侧电压11kV,经过标幺值折算后的绕组电阻为0.0033,绕组漏感为0.052,励磁电阻为909.09,励磁电感为106.3,参数设置如下图: 1.2.3 输电线路模块 根据给定参数计算输电线路参数为:电阻8.5Ω,电感0.064L,参数设置如下图: 1.2.4 三相电压电流测量模块 此模块将在变压器低压侧测量得到的电压、电流信号转变成Simulink信号,相当于电压、电流互感器的作用,勾选“使用标签(Use a label)”以便于示波器观察波形,设置电压标签“Vabc”,电流标签“Iabc”,参数设置如下图:

增量调制MATLAB仿真实验

增量调制MATLAB仿真实验

增量调制(DM)实验 一、实验目的 (1)进一步掌握MATLAB的应用。 (2)进一步掌握计算机仿真方法。 (3)学会用MATLAB软件进行增量调制(DM)仿真实验。 二、实验原理 增量调制是由PCM发展而来的模拟信号数字化的一种编码方式,它是PCM的一种特例。增量调制编码基本原理是指用一位编码,这一位码不是表示信号抽样值的大小,而是表示抽样幅度的增量特性,即采用一位二进制数码“1”或“0”来表示信号在抽样时刻的值相对于前一个抽样时刻的值是增大还是减小,增大则输出“1”码,减小则输出“0”码。输出的“1”,“0”只是表示信号相对于前一个时刻的增减,不表示信号的绝对值。 增量调制最主要的特点就是它所产生的二进制代码表示模拟信号前后两个抽样值的差别(增加、还是减少)而不是代表抽样值本身的大小,因此把它称为增量调制。在增量调制系统的发端调制后的二进制代码1和0只表示信号这一个抽样时刻相对于前一个抽样时刻是增加(用1码)还是减少(用0码)。收端译码器每收到一个1码,译码器的输出相对于前一个时刻的值上升一个量化阶,而收到一个0码,译码器的输出相对于前一个时刻的值下降一个量化阶。 增量调制(DM)是DPCM的一种简化形式。在增量调制方式下,采用1比特量化器,即用1位二进制码传输样值的增量信息,预测器是

一个单位延迟器,延迟一个采样时间间隔。预测滤波器的分子系数向量是[0,1],分母系数为1。当前样值与预测器输出的前一样值相比较,如果其差值大于零,则发1码,如果小于零则发0码。 三、实验内容 增量调制系统框图如图一所示,其中量化器是一个零值比较器,根据输入的电平极性,输出为 δ,预测器是一个单位延迟器,其输出为前一个采样时刻的解码样值,编码器也是一个零值比较器,若其输入为负值,则编码输出为0,否则输出为1。解码器将输入1,0符号转换为 δ,然后与预测值相加后得出解码样值输出,同时也作为预测器的输入 输入样值 e n e n =δsgn(e n ) 传输 n ) n n-1+δsgn(e n ) x n + - + + 预测输出 + n-1 + 预测输出 解码样值输出 x n-1 预测输入x n =x n-1+δsgn(e n ) 图一 增量调制原理框图 设输入信号为: x(t)=sin2π50t+0.5sin 2π150t 增量调制的采样间隔为1ms,量化阶距δ=0.4,单位延迟器初始值为0。建立仿真模型并求出前20个采样点使客商的编码输出序列以 解码 编码 二电平量化 单位延迟 单位 延迟

控制理论实验报告MATLAB仿真实验解析

实验报告 课程名称:控制理论(乙) 指导老师:林峰 成绩:__________________ 实验名称:MATLAB 仿真实验 实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验九 控制系统的时域分析 一、 实验目的: 1.用计算机辅助分析的办法,掌握系统的时域分析方法。 2.熟悉Simulink 仿真环境。 二、实验原理及方法: 系统仿真实质上就是对系统模型的求解,对控制系统来说,一般模型可转化成某个微分方程或差分方程表示,因此在仿真过程中,一般以某种数值算法从初态出发,逐步计算系统的响应,最后绘制出系统的响应曲线,进而可分析系统的性能。控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,分别称为单位阶跃响应和单位冲激响应。在MATLAB 中,提供了求取连续系统的单位阶跃响应函数step ,单位冲激响应函数impulse ,零输入响应函数initial 等等。 二、实验内容: 二阶系统,其状态方程模型为 ? 1x -0.5572 -0.7814 1x 1 = + u ? 2x 0.7814 0 2x 0 1x y = [1.9691 6.4493] +[0] u 2x 四、实验要求: 1.编制MATLAB 程序,画出单位阶跃响应曲线、冲击响应曲线、系统的零输入响应、斜坡输入响应; (1)画出系统的单位阶跃响应曲线; A=[-0.5572 -0.7814;0.7814 0 ]; B=[1;0];

高频电子线路Matlab仿真实验

高频电子线路Matlab 仿真实验要求 1. 仿真题目 (1) 线性频谱搬移电路仿真 根据线性频谱搬移原理,仿真普通调幅波。 基本要求:载波频率为8kHz ,调制信号频率为400Hz ,调幅度为0.3;画出调制信号、载波信号、已调信号波形,以及对应的频谱图。 扩展要求1:根据你的学号更改相应参数和代码完成仿真上述仿真;载波频率改为学号的后5位,调制信号改为学号后3位,调幅度设为最后1位/10。(学号中为0的全部替换为1,例如学号2010101014,则载波为11114Hz ,调制信号频率为114,调幅度为0.4)。 扩展要求2:根据扩展要求1的条件,仿真设计相应滤波器,并获取DSB-SC 和SSB 的信号和频谱。 (2) 调频信号仿真 根据调频原理,仿真调频波。 基本要求:载波频率为30KHz ,调制信号为1KHz ,调频灵敏度32310f k π=??,仿真调制信号,瞬时角频率,瞬时相位偏移的波形。 扩展要求:调制信号改为1KHz 的方波,其它条件不变,完成上述仿真。 2. 说明 (1) 仿真的基本要求每位同学都要完成,并且记入实验基本成绩。 (2) 扩展要求可以选择完成。

1.0 >> ma = 0.3; >> omega_c = 2 * pi * 8000; >> omega = 2 * pi * 400; >> t = 0 : 5 / 400 / 1000 : 5 / 400; >> u_cm = 1; >> fc = cos(omega_c * t); >> fa = cos(omega * t); >> u_am = u_cm * (1 + fa).* fc; >> U_c =fft(fc,1024); >> U_o =fft(fa,1024); >> U_am =fft(u_am, 1024); >> figure(1); >> subplot(321);plot(t, fa, 'k');title('调制信号');grid;axis([0 2/400 -1.5 1.5]); >> subplot(323);plot(t, fc, 'k');title('高频载波');grid;axis([0 2/400 -1.5 1.5]); >> subplot(325);plot(t, u_am, 'k');title('已调信号');grid;axis([0 2/400 -3 3]); >> fs = 5000; >> w1 = (0:511)/512*(fs/2)/1000; >> subplot(322);plot(w1, abs([U_am(1:512)']),'k');title('调制信号频谱');grid;axis([0 0.7 0 500]); >> subplot(324);plot(w1, abs([U_c(1:512)']),'k');title('高频载波频谱');grid;axis([0 0.7 0 500]); >> subplot(326);plot(w1, abs([U_am(1:512)']),'k');title('已调信号频谱');grid;axis([0 0.7 0 500]); 1.1 >> ma = 0.8; >> omega_c = 2 * pi * 11138; >> omega = 2 * pi * 138; >> t = 0 : 5 / 400 / 1000 : 5 / 400; >> u_cm = 1; >> fc = cos(omega_c * t);

MATLAB仿真实验报告

MATLA仿真实验报告 学院:计算机与信息学院 课程:—随机信号分析 姓名: 学号: 班级: 指导老师: 实验一

题目:编写一个产生均值为1,方差为4的高斯随机分布函数程序, 求最大值,最小值,均值和方差,并于理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示 G仁random( 'Normal' ,0,4,1,1024); y=max(G1) x=mi n(G1) m=mea n(G1) d=var(G1) plot(G1);

实验二 题目:编写一个产生协方差函数为CC)=4e":的平稳高斯过程的程序,产生样本函数。估计所产生样本的时间自相关函数和功率谱密度,并求统计自相关函数和功率谱密度,最后将结果与理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示。 N=10000; Ts=0.001; sigma=2; beta=2; a=exp(-beta*Ts); b=sigma*sqrt(1-a*a); w=normrnd(0,1,[1,N]); x=zeros(1,N); x(1)=sigma*w(1); for i=2:N x(i)=a*x(i-1)+b*w(i); end %polt(x); Rxx=xcorr(x0)/N; m=[-N+1:N-1]; Rxx0=(sigma A2)*exp(-beta*abs(m*Ts)); y=filter(b,a,x) plot(m*Ts,RxxO, 'b.' ,m*Ts,Rxx, 'r');

periodogram(y,[],N,1/Ts); 文件旧硯化)插入(1〕 ZMCD 克闻〔D ]窗口曲) Frequency (Hz) 50 100 150 200 250 300 350 400 450 500 NH---.HP)&UO 二 balj/ 」- □歹

昆明理工大学MATLAB实验指导书(第二次实验)

************************ MATLAB上机指导书 ************************ 昆明理工大学机电学院 彭用新 2015年3月

实验三符号计算 一、操作部分:在命令窗口执行命令完成以下运算,记录运算结果。 1.findsym:帮助我们获取系统定义的自变量 f= sym('sin(a*x+b*y)'); findsym(f) 2.numden(获取分子分母), sym2poly,(获取多项式时系数)poly2sym(根据多项式系 数获得符号表达式) [n,d]=numden(sym('x*x+y')+sym('y^2')) p=sym('2*x^3+3*x^2+4'); sym2poly(p) x=[2,3,0,4]; poly2sym(x) 3. collect :合并同类项;expand:展开多项式;horner: 分解成嵌套形式;factor:因式 分解;simplify: 对表达式化简 syms x y; collect(x^2*y+y*x-x^2-2*x) collect((x+y)*(x^2+y^2+1), y) syms x y; expand((x-2)*(x-4)) syms x;horner(x^3-6*x^2+11*x-6) syms x;factor(x^3-6*x^2+11*x-6) syms x;simplify((x^2+5*x+6)/(x+2)) 4. finverse :求得符号函数的反函数。 syms x y; finverse(1/tan(x)) f= x^2+y; finverse(f,y) finverse(f) https://www.doczj.com/doc/5714670488.html,pose 求符号函数的复合函数 syms x y; f = 1/(1 + x^2); g = sin(y); compose(f,g) 6. subs :表达式替换。 syms a b;subs(a+b,a,4)

Matlab 编程方法及仿真实验

《现代机械工程基础实验》之机械工程控制基础综合实验报告 姓名 学号 班级 山东建筑大学机电工程学院 2012.06.04~06

第一部分 Matlab 编程方法及仿真实验 实验1. 三维曲面的绘制(略) 实验2. 系统零极点绘制例:求部分分式展开式和)(t g 一个线性定常系统的传递函数是 1 5422 3)(2 3 ++++= s s s s s G (1) 使用MATLAB 建立传递函数,并确定它的极点和零点,写出)(s G 的部分分式展开式并绘制 系统的脉冲响应。 实验结果:零点-0.6667 极点-0.8796 + 1.1414i -0.8796 - 1.1414i -0.2408 实验3. 系统的阶跃响应 例. )(s G 的阶跃响应 对例2中由(1)式给出的传递函数)(s G ,增加一个0=s 处的极点,使用impulse 命令绘制其拉普拉斯反变换式曲线,得到阶跃响应图。将该响应与对)(s G 使用step 命令所得到的响应比较,确定系统的DC 增益。利用初值定理和终值定理来校验结果。 实验结果:DC 增益= 2

实验4. 双输入反馈系统单位阶跃响应 考虑一个如图1所示的反馈系统,它既有参考输入也有干扰输入,其中对象和传感器的传递函数是 )12)(15.0(4)(++=s s s G p ,105.01 )(+=s s H 控制器是一个增益为80,有一个在3-=s 处的零点,极点/零点比15=α超前控制器。推导 两个独立的MATLAB 模型,其中一个模型的输入为)(s R ,另一个输入为)(s D 。使用这些模型确定闭环零点和极点,并在同一坐标系内绘制它们的阶跃响应。 D (s ) 图1 具有参考和干扰输入的反馈系统方框图 实验结果: 参考输入的CL 极点:-49.3658 -7.3336 + 7.9786i -7.3336 - 7.9786i -3.4670 参考输入的DC 增益:320 干扰输入的CL 零点:-45 干扰输入的CL 极点:-49.3658 -7.3336 + 7.9786i -7.3336 - 7.9786i -3.4670 干扰输入的DC 增益:4 -20

MATLAB实验指导书(学生定稿)

实验一 MATLAB语言平台及基本运算 一、实验目的 1、熟悉MATLAB基本的操作界面。 2、掌握MATLAB中变量、数组、向量等对象的生成方法。 3、掌握矩阵的生成和基本运算方法。 4、掌握MATLAB中的常用绘图命令使用方法 二、实验设备 计算机,MATLAB语言环境 三、实验指导原理 1、常见数学函数 如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则 ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 系统的在线帮助 (1) help 命令: 1).当不知系统有何帮助内容时,可直接输入 help以寻求帮助: >> help(回车) 2).当想了解某一主题的内容时,如输入: >> help syntax (了解 Matlab 的语法规定) 3).当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数 sqrt 的相关信息)

(2) lookfor 命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 3、常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后 可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表: (1)数值型向量(矩阵)的输入 1).任何矩阵(向量),可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([ ]内;例1: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] >> X_Data = [2.32 3.43;4.37 5.98] 2).系统中提供了多个命令用于输入特殊的矩阵: 上面函数的具体用法,可以用帮助命令 help 得到。如:help zeros ZEROS Zeros array. ZEROS(N) is an N-by-N matrix of zeros. ZEROS(M,N) or ZEROS([M,N]) is an M-by-N matrix of zeros.等等 4、数组(矩阵)的点运算 运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方), 例4: >> g = [1 2 3 4];h = [4 3 2 1]; >> s1 = g + h, s2 = g.*h, s3 = g.^h, s4 = g.^2, s5 = 2.^h 5、矩阵的运算

Matlab仿真实验教程

MATLAB的实验仿真 目录 实验一MATLAB在控制系统模型建立与仿真中的应用 (1) 实验二典型系统的时域响应分析 (13) 实验三线性控制系统的根轨迹与频域分析 (17) 实验四线性系统的校正 (22) 附录一 MATLAB6.5 控制系统工具箱函数和结构化的控制语句 (30) 附录二 SIMULINK 基本模块介绍 (34)

实验一 MATLAB 在控制系统模型建立与仿真中的应用 一、 MATLAB 基本操作与使用 1. 实验目的 1) 掌握MATLAB 仿真软件的安装及启动,熟悉 MATLAB 工作环境平台。 2) MATLAB 命令窗口,包括工具条以及菜单选项的使用;MATLAB 语言的基本规定,包括数值的表示、变量命名规定、基本运算符、预定义变量以及表达式等。 3) MATLAB 图形绘制功能、M 文件程序设计和线性控制系统传递函数模型的建立等。 2. 实验仪器 PC 计算机一台,MATLAB 软件1套 3. 实验内容 1) MATLAB 的启动 这里介绍MATLAB 装入硬盘后,如何创建MATLAB 的工作环境。 方法一 MATLAB 的工作环境由matlab.exe 创建,该程序驻留在文件夹matlab\bin\ 中。它的图标是 matlab 。只要从<我的电脑>或<资源管理器>中去找这个程序,然后双击此图标,就会自动创建如图1所示的MATLAB6.5 版的工作平台 。 图1 在英文Windows 平台上的MATLAB6.5 MATLAB 工作平台 方法二 假如经常使用MATLAB ,则可以在Windows 桌面上创建一个MATLAB 快捷方式图标。具体办法为: 把<我的电脑>中的 matlab 图标用鼠标点亮,然后直接把此图标拖到Windows 桌面上即可。此后,直接双击Windows 桌面上的matlab 图标,就可建立图1所示的 MATLAB 工作平台。 2) MATLAB 工作环境平台 桌面平台是各桌面组件的展示平台,默认设置情况下的桌面平台包括 6 个窗口,具体如下: ① MATLAB 窗口 Command Window

MATLAB程序设计实验报告

MATLAB 程序设计实验报告 一、实验目的 1. 通过实验熟悉MATLAB 仿真软件的使用方法; 2. 掌握用MATLAB 对连续信号时域分析、频域分析和s 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 3. 掌握用MATLAB 对离散信号时域分析、频域分析和z 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 4. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。 二、实验设备 1. 计算机 : 2. MATLAB R2007a 仿真软件 三、实验原理 对系统的时域分析 信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。 (1)信号的相加和相乘:已知信号)(1t f 和)(2t f ,信号相加和相乘记为 )()(1t f t f =)(2t f +;)()(1 t f t f =)(2t f *。 (2)信号的微分和积分:对于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function,’variable’,n),其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。连续信号的积分运算用int 函数来完成,语句格式为:diff(function,’variable’,a,b),其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a 和b 省略时为求不定积分。 (3)信号的平移、翻转和尺度变换 信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(t f 的面积和能量。信号的尺度变换是对信号)(t f 在时间轴上的变化,可使信号压缩或扩展。)(at f 将原波形压缩a 倍,)/(a t f 将原波形扩大a 倍。 ¥ 对系统频率特性的分析

matlab实验指导书

matlab实验指导书 实验一 MATLAB运算基础及矩阵分析与处理 一实验目的 1.熟悉启动和退出MATLAB的方法。 2.熟悉MATLAB 命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。 5. 掌握生成特殊矩阵的方法。 6. 掌握矩阵分析的方法。 7. 用矩阵求逆解线性方程组。二实验仪器和设备装有以上计算机一台三实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。基本规则 一般MATLAB命令格式为 [输出参数1,输出参数2,……]= 输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用括号。 %后面的任意内容都将被忽略,而不作为命令执行,一般用于为代码加注 释。 可用↑、↓键来重现已输入的数据或命令。用←、→键来移动光标进行修改。所有MATLAB命令都用小写字母。

大写字母和小写字母分别表示不同的 变量。 常用预定义变量,如pi 、Inf、NaN、ans 矩阵的输入要一行一行的进行,每行各元素用空格或“,”分开,每行用 “;”分开。如 123 A456789 MATLAB书写格式为A=[1 2 3 ;4 5 6 ;7 8 9] 在MATLABZ中运行如下程序可得到A 矩阵 a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”号。运行下面两种格式可以看出它 们的区别: a=[1 2 3;4 5 6;7 8 9] a=[1 2 3;4 5 6;7 8 9]; a= 1 2 3 不显示结果 4 5 6 7 8 9 当输入语句过长需要换行时,应加上“…”后再回车,则可续行输入。文件管理常用命令帮助命令 MATLAB有很多命令,因此很不容易记忆。使用HELP命 令可以得到有关命令的屏幕帮助信息。 如在MATLAB环境下直接运行HELP命令就会在屏幕上

相关主题
文本预览
相关文档 最新文档