自控原理实验上机指导书.docx

上传人:b****6 文档编号:8266053 上传时间:2023-01-30 格式:DOCX 页数:35 大小:33.64KB
下载 相关 举报
自控原理实验上机指导书.docx_第1页
第1页 / 共35页
自控原理实验上机指导书.docx_第2页
第2页 / 共35页
自控原理实验上机指导书.docx_第3页
第3页 / 共35页
自控原理实验上机指导书.docx_第4页
第4页 / 共35页
自控原理实验上机指导书.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

自控原理实验上机指导书.docx

《自控原理实验上机指导书.docx》由会员分享,可在线阅读,更多相关《自控原理实验上机指导书.docx(35页珍藏版)》请在冰豆网上搜索。

自控原理实验上机指导书.docx

自控原理实验上机指导书

自控原理实验上机指导书

自动控制原理基础实验

自动化工程学院自动控制系

实验一MATLAB基本操作实验

实验目的:

1.掌握Matlab软件使用的基本方法;

2.熟悉Matlab的数据表示、基本运算和程序控制语句;

3.熟悉Matlab绘图命令及基本绘图控制;

4.熟悉Matlab程序设计的基本方法。

实验装置:

计算机

实验原理及内容:

1.1基本规则

1.1.1一般MATLAB命令格式为

[输出参数1,输出参数2,……]=(命令名)(输入参数1,输入参数2,……)

输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用

括号。

1.1.2%后面的任意内容都将被忽略,而不作为命令执行。

1.1.3可用↑、↓键来重现已输入的数据或命令。

用←、→键来移动光标进行修改。

1.1.4所有MATLAB命令都用小写字母。

大写字母和小写字母分别表示不同的

变量。

1.1.5常用数有特定的名字,如pi(=3.141596)、Inf(=∞)、NaN则表示不定

型求得的结果(如0/0)。

1.1.6矩阵的输入要一行一行的进行,每行各元素用空格或(,)分开,每行用

(;)分开。

123

A=456

789

A=[123;456;789]在MATLABZ中运行如下程序可得到A矩阵

a=[123;456;789]

a=

123

456

789

1.1.7需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”号。

运行下面两种格式可以看出他们的区别

a=[123;456;789]a=[123;456;789];

a=(不显示计算结果)

123

456

789

1.1.8当输入语句过长需要换行时,应加上“…”后再回车,则可连续输入。

1.2文件管理常用命令

1.2.1帮助(HELP)命令

MATLAB有很多命令,因此很不容易记忆。

使用HELP命令可以得到有关命令的屏幕帮助信息。

如在MATLAB环境下直接运行HELP命令就会在屏幕上给出MATLAB的基本命令以及相关的工具箱软件命令(请同学自行验证)。

而下面的格式可以得到指定命令的帮助信息,和详细说明。

help命令名

如:

helpstep

STEPStepresponseofLTIsystems.

STEP(SYS)plotsthestepresponseofeachinputchannelof

theLTIsystemSYS.Thetimerangeandnumberofpointsare

chosenautomatically.

STEP(SYS,TFINAL)simulatesthestepresponsefromt=0tothefinaltimet=TFINAL.Fordiscrete-timesystemswithunspecifiedsamplingtime,TFINALisinterpretedasthenumberofsamples.

STEP(SYS,T)usestheuser-suppliedtimevectorTforsimulation.Fordiscrete-timesystems,TshouldbeoftheformTi:

Ts:

Tf

whereTsisthesampletimeofthesystem.Forcontinuoussystems,TshouldbeoftheformTi:

dt:

Tfwheredtwillbecomethesampletimeofadiscreteapproximationtothecontinuoussystem.

STEP(SYS1,SYS2,...,T)plotsthestepresponseofmultipleLTI

systemsSYS1,SYS2,...onasingleplot.ThetimevectorTis

optional.Youcanalsospecifyacolor,linestyle,andmarker

foreachsystem,asinstep(sys1,'r',sys2,'y--',sys3,'gx').

Wheninvokedwithleft-handarguments,

[Y,T]=STEP(SYS,...)

returnstheoutputresponseYandthetimevectorTusedfor

simulation.Noplotisdrawnonthescreen.IfSYShas

NUinputsandNYoutputs,andLT=length(T),thearrayYis

LT-by-NY-by-NUandY(:

:

j)givesthestepresponseofthe

j-thinputchannel.

Forstate-spacesystems,

[Y,T,X]=STEP(SYS,...)

alsoreturnsthestatetrajectoryXwhichisanLT-by-NX-by-NU

arrayifSYShasNXstates.

SeealsoINITIAL,IMPULSE,LSIM.

Overloadedmethods

helplti/step.m

1.2.2diary命令

使用该命令可以在窗口中以ASCII码形式记录所有的输入和输出。

但这个命令不是存储数据,而是存储输入与屏幕上输出的内容。

它可以记录下工作的过程。

在每个工作过程之前使用该命令,工作结束后使用diaryoff则能将整个工作过程记录下来。

格式diary(文件名)(扩展名)

.

.

diaryoff

一般来说扩展名可取,m这样就可在MATLAB\BIN\目录下存入该文件。

1.2.3save命令

该命令存储定义的变量或演算结果,也可以用来存储指定的变量。

命令格式为

save文件名.扩展名

1.2.4what命令

该命令可以在当目录下显示MATLAB文件和MAT数据文件

1.2.5dir命令

显示当前目录下的所有文件.

1.2.6clear命令

如果输入calearabc,则表示清除工作空间中指定变量a,b,c;如果仅仅输入calear命令,则清除整个工作空间。

1.3矩阵运算

MATLAB具有强大的矩阵运算功能,但由于我们实验所涉及的不多,因此这里我们只作简单介绍.

1.3.1在MATLAB中表示一个矢量要用方括号,而列矢量的输入只需在行矢量

输入格式基础上加转置符(?

)即可。

如x=[123;456]

x=

123

456

x=[123;456]'(加转置符)

x=

14

25

36

注意上面两式的区别。

1.3.2下面三条命令可以产生一个行矢量

1a=linspace(x,y,n)

2a=logspace(x,y,n)

3a=[x:

n:

y]

第一条命令可以在线性空间产生一个值在10x至10y之间间隔点数为n

的行矢量(一组数据)。

第二条命令可以在对数空间产生一个值在x至y之间等间隔的行矢量

(一组数据)。

其行矢量的起始值是x,终值为y,点数为n。

第三条命令产生X至y步长为n的行矢量。

但是,三个命令之间存在差别,下面的例子可以说明这一点。

例一x=logspace(0,5,6)

x=

110100100010000100000

例二x=linspace(0,10,11)

x=

012345678910

例三x=[0:

1:

10]

x=

012345678910

通过上面三个例子可以看出例一,例二中n代表选取的点数。

而在例三中n则表示步长.请同学注意它们的区别。

1.3.3矩阵的加,减,乘,除等,和其它语言书写一样。

但要注意的是在运算符前面加有(.)则表示是元素对元素的操作.

例四请同学们注意下面的不同情况.

a=[12;34];

b=[22;22];

c=a*b

c=

66

1414

c=a.*b

c=

24

68

c=a/b

c=

1.0e+015*

-2.25182.2518

-2.25182.2518

c=a./b

c=

0.50001.0000

1.50002.0000

1.4常用运算命令

例五求a=S^3+2S^2+3S+4根.

a=[1234];

roots(a)

ans=

-1.6506-0.1747+1.5469i-0.1747-1.5469i

roots([1234])

ans=

-1.6506-0.1747+1.5469i-0.1747-1.5469i

例六已知某多项式的根如下

-1.6506-0.1747+1.5469i-0.1747-1.5469i

求该多项式.

poly([-1.6506,-0.1747+1.5469i,-0.1747-1.5469i])

ans=

1.00002.00003.00014.0001

即所求多项式为S^3+2S^2+3S+4.

1.5绘图命令

1.5.1Plot

该命令在线性坐标系下绘制y对应于x的轨迹。

若其中之一为矩阵则该命令将对应于矩阵的行或者列绘制一簇曲线。

该命令也可以在同一坐标轴下绘制多条曲线。

例七运行程序

t=[0:

1:

10];

x1=t;

plot(x1)

可在图形窗口得到下面图形。

1234567891011

例八

x=[0:

0.5:

7];

y=sin(x);

y1=2*x;

y2=3*x;

plot(y,x,y1,x,y2,x)

7

6

5

4

3

2

1

0-50510152025

从上面的例子可以看出,如果要在同一坐标轴下绘制多条曲线,可用如下格

式:

plot(x1,y1,x2,y2……..xn,yn)%对应于不同矢量时

其中x1,y1……….xn,yn是对应的关系。

1.5.2loglog

在两个对数(标准对数)坐标间绘制图形。

1.5.3semilogx或semilogy

在x轴或y轴为对数坐标,而另一轴为线性轴的空间绘制图形。

1.5.4Polar

在极坐标空间绘制图形。

1.5.5Grid

在图形中加栅格,其格式为

命令句,grid

1.5.6Subplot(r,c,p)

该命令将屏幕分成r*c个窗口,p表示在第几个窗口.同时绘制多个图形窗口时,绘图语句间应用逗号分开。

例九下面的程序产生四个窗口,且分别绘制相应图形.

t=[0:

0.01:

2*pi];

y=sin(t);

x=cos(t);

subplot(221),plot(t,y),grid,subplot(222),plot(t,x),

grid,subplot(223),polar(t,y),subplot(224),polar(t,x)

从上面的程序可以看出,subplot语句中的r,c,p可以不用逗号分开。

在语句后面应有相应的绘图命令.

上面程序执行后得到如下图形:

02468

02468

1.5.7Gtext

该命令用于鼠标定位的文字注释.执行完绘图命令后再执行gtext(?

说明文字?

)命令,就可在屏幕上得到一个光标,然后,用鼠标选择说明文字的位置。

例十t=[0:

1:

10];x1=2*t;x2=0.5*t;plot(x1,t,x2,t);gtext('x=2t');gtext('x=0.5t')

109876543

2100

2

4

6

8

10

12

14

16

18

20

1.5.8如果需要同时在不同窗口绘制图形,可用figure语句来完成。

例十一t=[0:

1:

10];

x1=2*t;

x2=3*t;

figure,plot(x1),figure,plot(x2)

上面程序执行后,可得到面两个图形窗口。

1.5.8有关绘图方面的还有

?

Title给当前图像加标题。

?

xlabel或ylabel给x或y轴加标注。

?

text在当前图像上指定位置加注释。

等。

1.5.9在同一座标系中绘制多个曲线时,曲线的颜色可以自动确定,也可以自己

选择。

在颜色选项中r=红色,g=绿色,b=蓝色.也可以选择线形.如?

#?

?

*?

等.其使用格式如下:

plot(x,y,?

r?

)或plot(x,y,?

$?

1.6关系及逻辑运算

1.6.1关系运算允许常量(或矩阵中的元素与元素)之间的比较.如果比较结

果为真,则答案为1,否则为0.常用的关系运算符如下:

<小于,>大于,==等于

<=小于等于,>=大于等于,~=不等于

对于复数”==”和”~=”既比较实部也比较虚部,而其它运算仅比较实部。

例十二比较a=[5:

1:

15]与b=[12887101211131415]中的对应元素是否相同,则运行下面程序

a=[5:

1:

15];

b=[12887101211131415];

y=a==b

y=

00010100111

1.6.2MATLAB有三个逻辑运算符.

&逻辑与|逻辑或~逻辑非

在矩阵运算中,以上命令是将两个矩阵中的对应元素进行运算,得到的结果是具有同样元素的矩阵。

例十三分别对下面两个矩阵进行逻辑运算.

X=[01;10];Y=[00;10];

X&Y

ans=

00

10

X|Y

ans=

01

10

~X

ans=

10

01

MATLAB在进行混合运算时,其顺序为:

算术运算→关系比较→逻辑运算

例十四计算x&y+x>y时,程序首先执行x+y运算,然后将相加结果与

y比较,最后将比较结果和x作与运算,运行结果如下。

x=[01;10];

y=[00;10];

x&y+x>y

ans=

01

10

1.7环与条件结构

MATLAB中有三个命令用于循环,条件循环,与条件叙述.它们是for,while,ifelse。

循环可以嵌套,陈述句可以跨行,但所有命令必须用end作为结束命令。

1.7.1for它执行一系列重复的陈述命令.其格式如下

for循环变量=起始值:

步长:

终止值(步长缺省值为1)

循环体

end

例十五注意下面两条程序的不同点。

1.forx=1:

1:

5;

y=5*x

end

y=

5

y=

10

y=

15

y=

20

y=

25

2.x=[1:

1:

5];

y=5*x

y=

510152025

通过上面的例子可以看出,第一个程序是将每次循环的x值乘以5;而第二个程序则是将5与x矢量中的每个元素相乘。

1.7.2while条件循环命令。

命令格式如下

while表达式

循环体

end

若表达式为真,则执行循环体的内容,执行后再判断是否满足表达式,若不满足,则跳出循环体。

例十六求出1到多少的自然数之和大于或等于100。

其程序如下

a=0;y=0;设置初始值

whilea<100;设置表达式

y=y+1;取自然数

a=a+y;自然数累加

end循环结束

y=y显示y值

a=a显示a值

执行上面程序后,结果如下

y=

14

a=

105

1.7.3if,else,elseif条件转移语句。

其格式如下

if表达式

执行语句

end

其执行方式为∶若表达式为真则执行语句中的内容,然后向下执行。

若表达式为假,则跳过执行语句向下执行。

另有两种格式如下∶

if表达式

执行语句1

else

执行语句2

end

和∶

if表达式1

执行语句1

elseif表达式2

执行语句2

……

end

在if-else格式中执行的方式为∶若表达式为真,则执行语句1,然后跳过语句2向下执行。

若表达式为假,则行语句2,然后向下执行。

在if-elseif格式中执行的方式为∶若表达式1为真,则执行语句1,若表达式1为假,则判断表达式2是否为真,如果为真,则执行语句2,否则向下执行。

实验方法及步骤:

1、运行Matlab软件;

2、在其命令窗口中输入响应的命令或程序;

3、观察并记录。

实验报告要求及习题:

实验习题一

分别用>,和~=求得a=[5:

1:

15]与b=[12887101211131415]的比较,并对结果进行分折。

实验习题二

(1)绘制余弦曲线y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]实验习题三

绘制[0,4π]区间上的x1=10sint曲线,并要求:

(1)线形为点划线、颜色为红色、数据点标记为加号;

(2)坐标轴控制:

显示范围、刻度线、比例、网络线

(3)标注控制:

坐标轴名称、标题、相应文本。

实验习题四

x=[01;10];

y=[00;10];

计算x&y+x>y时,程序首先执行x+y运算,然后将相加结果与y比较,最后将比较结果和x作与运算。

实验二MATLAB系统模型建立和动态特性分析实验

实验目的∶

1.掌握如何使用MALAB进行系统模型的建立;

2.学习利用MALAB命令得阶跃响应曲线,分析系统动态特性;

3.利用MALAB求阶跃响应的性能指标。

实验仪器∶

计算机

实验原理及内容∶

2.1控制系统的模型

控制系统的表示可用三种模型:

传递函数、零极点增益、状态空间。

每一种模型又有连续与离散之分。

为分析系统方便有时需要在三种模型间转换。

MATLAB提供了各种命令,使我们可以很方便的完成这些工作,下面以连续系统为例简要说明有关命令。

2.1.1模型与表示式

1、传递函数模型

bmsm?

bm?

1sm?

1?

...?

b1s?

b0G(s)?

nn?

1ans?

an?

1s?

...?

a1s?

a0

在MATLAB中直接用矢量组表示传递函数的分子、分母多项式系数,即:

num=[bmbm-1……b0];表示传递函数的分子多项式系数

den=[anan-1……a0];表示传递函数的分母多项式系数

sys=tf(num,den)tf命令将sys变量表示成传递函数模型。

2、零极点增益模型

(s?

z1)?

(s?

z2)...(s?

zm)G(s)?

k(s?

p1)?

(s?

p2)...(s?

pn)

在MATLAB中用z、p、k矢量组分别表示系统的零点、极点和增益,即:

z=[z1z2……zm];

p=[p1p2……pn];

k=[k];

sys=zpk(z,p,k)zpk命令将sys变量表示成零极点增益模型。

3、状态空间模型

x=ax+bu

y=cx+du

在MATLAB中用(a、b、c、d)矩阵组表示,然后

sys=ss(a,b,c,d)ss命令将sys变量表示成状态空间模型。

2.1.2模型间的转换

在MATLAB中进行模型间转换的命令有:

ss2tf、ss2zp、tf2ss、tf2zp、zp2tf、zp2ss

它们之间的作用可由下面的示意图表示:

2.1.3模型间的关系与系统建模

实际工作中常常需要由多个简单系统构成复杂系统,MATLAB中有下面几种命令可以解决两个系统间的连接问题。

1、系统的并联

y

并联后的系统传递函数表示式为:

n?

d?

n2?

d1g(s)?

g1(s)?

g2(s)?

12d1?

d2

其中n1、d1和n2、d2分别为g1(s)、g2(s)的传递函数分子、分母系数行矢量。

命令格式:

[n,d]=parallel(n1,d1,n2,d2)

[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)

例十七将下面两个系统并联连接

32s?

4g1(s)?

g2(s)?

2s?

4s?

2s?

3

执行下面程序:

n1=[3];

d1=[14];

n2=[24];

d2=[123];

[n,d]=parallel(n1,d1,n2,d2)

运行结果:

n=

051825

d=

161112

可得并联后系统的传递函数为

5s2?

18s?

25g(s)?

32s?

6s?

11s?

12

2、系统的串联

series命令实现两个系统的串联,示意图如下:

串联后系统的传递函数为

n?

ng(s)?

g1(s)?

g2(s)?

12d1?

d2

命令格式:

[n,d]=series(n1,d1,n2,d2)

[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2)

3、系统的反馈

feedback命令实现两个系统的反馈连接,示意图如下:

1

连接后系统的传递函数表示为:

g(s)n1?

d2g(s)?

1?

1?

g2(s)d1?

d2?

n1?

n2

命令格式:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1