控制工程MATLAB实验报告材料

发布时间:2020-01-17 13:41:45

浙江科技学院

机电系统开放性实验

设计题目: MATLAB控制机电系统实分析

业: 造及

级: 122

学生姓名: 王朝旭

指导老师:

20140530

实验一 MATLAB语言基本命令

1 实验目的

1. 掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;

2. 掌握MATLAB的命令运行方式和M文件运行方式;

3. 掌握矩阵在MATLAB中的运用。

2 实验器材

计算机WinXPMatlab7.0软件

3 实验内容

(1). 输入 A=[7 1 5;2 5 6;3 1 5]B=[1 1 1; 2 2 2;3 3 3]

在命令窗口中执行下列表达式,掌握其含义:

A(2, 3) A(:,2) A(3,:) A(:,1:2:3)

A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B

A^2 A.^2 B/A B./A

(2).输入 C=1:2:20 Ci表示什么其中 i=1,2,3,,10

(3).查找已创建变量的信息删除无用的变量

(4). 试用 help命令理解下面程序各指令的含义

clear

t =0:0.001:2*pi;

subplot(2,2,1);

polar(t, 1+cos(t))

subplot(2,2,2);

plot(cos(t).^3,sin(t).^3)

subplot(2,2,3);

polar(t,abs(sin(t).*cos(t)))

subplot(2,2,4);

polar(t,(cos(2*t)).^0.5)

4 实验步骤:

打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。

5 实验报告内容

1>> A=[7 1 5;2 5 6;3 1 5]

A =

7 1 5

2 5 6

3 1 5

>> B=[1 1 1; 2 2 2;3 3 3]

B =

1 1 1

2 2 2

3 3 3

>> A(2, 3) 取矩阵A中第二行第三列的元素”

ans =

6

>> A(:,2) 取矩阵A中第二列的元素”

ans =

1

5

1

>> A(3,:) 取矩阵A中第三行的元素”

ans =

3 1 5

>> A(:,1:2:3) “使矩阵的第一列到第二列,第二例到第三列,构成新的2*3的矩阵”

ans =

7 5

2 6

3 5

>> A(:,3).*B(:,2) “取矩阵A的三列和B的第二列,对应元素一次相乘”

ans =

5

12

15

>> A(:,3)*B(2,:) “取矩阵A的三列和B的第二行,对应元素进行叉乘”

ans =

10 10 10

12 12 12

10 10 10

>> A*B “矩阵进行叉乘”

ans =

24 24 24

30 30 30

20 20 20

>> A.*B “两矩阵对应元素相乘”

ans =

7 1 5

4 10 12

9 3 15

>> A^2 “矩阵A叉乘上矩阵A

ans =

66 17 66

42 33 70

38 13 46

>> A.^2 “举证A中的元素翻倍”

ans =

49 1 25

4 25 36

9 1 25

>> B/A “矩阵B除以矩阵A

ans =

0.1842 0.2105 -0.2368

0.3684 0.4211 -0.4737

0.5526 0.6316 -0.7105

>> B./A “两矩阵对应元素相除”

ans =

0.1429 1.0000 0.2000

1.0000 0.4000 0.3333

1.0000 3.0000 0.6000

2>> C=1:2:20

C =

1 3 5 7 9 11 13 15 17 19

Ci表示奇数 2*i-1

(3)查找已创建变量的信息删除无用的变量

clear “清除”

t =0:0.001:2*pi; “定义时间向量”

subplot(2,2,1); “定义多块图画的绘图位置”

polar(t, 1+cos(t)) “绘制函数图像”

subplot(2,2,2);

plot(cos(t).^3,sin(t).^3)

subplot(2,2,3);

polar(t,abs(sin(t).*cos(t)))

subplot(2,2,4);

(4)polar(t,(cos(2*t)).^0.5)

实验二 MATLAB控制系统工具箱使用

1 实验目的

1)了解Matlab控制系统工具箱中常用函数.

2掌握模型转换方法以及奈氏图、伯德图的绘制。

3)掌握系统脉冲、阶跃等响应的仿真方法

2 实验器材

计算机Win7Matlab7.0软件

3 实验内容

1)利用residue函数求取传递函数的部分分式展开式

2)利用tf函数构建系统传递函数

3)利用impulsesteplsim等函数仿真系统的单位脉冲、阶跃、速度响应。

4)画出单位负反馈的开环传递函数的在频率0.01-100rad/s间的伯德图

5)画出系统的乃奎斯特图

4 实验步骤及内容

(1) 写出传递函数的部分展开式

a. 列些分子num、分母den的系数

b. 利用residue(num,den) 求出零极点和余项

实验运行结果:

r =[ 1.0000 2.5000 -3.0000 0.5000 ] p =[-4.000 -3.0000 -2.000 -1.0000] k=1

2)对于系统

A.首先利用conv函数展开分母,获得各阶系数,此时num=[14 21];

den=conv(conv(conv([1 0 0], [3 1]),conv([1 2],[1 2])), [5 0 3 8])

b.再利用tf函数构建传递函数

运行结果:

G(S)=

3a. tf(num,den)函数构建高阶系统传递函数

b.构建时间向量t

c 用函数impulsestep仿真系统的单位脉冲响应、单位阶跃响应

d. lism函数仿真系统速度响应

e. 程序调试成功后实验结果:

A impulse 单位脉冲信号实验结果

B step 单位阶跃信号仿真结果

C lism函数仿真系统速度响应

4)绘制单位负反馈的开环传递函数的伯德图。

a. 写出numden

b. logspace函数设定频率范围

c 利用bode函数输入幅值增益、相位

d. 把增益值转换为分贝值

e. 添加网格线,并生成二行一列的图表

f. semilogx在两个图标中分别生成幅值频率和相频特性曲线。

g. margin函数获取开环的幅值裕量和相位裕量。

h. 程序调试后写入实验报告

margin函数获取开环的幅值裕量和相位裕量。

Gm = Inf Pm =126.0768 wcg =NaN wcp = 7.2725

实验三 MATLAB数字控制器设计初步

1 实验目的

1)掌握离散信号z变换和z逆变换的matlab方法

2)掌握离散系统的系统函数零极点分布与系统频率特性的matlab实现方法

3)掌握matlab计算差分方程的方法。

2 实验器材

计算机Win7Matlab7.0软件

3 实验内容

1)找到matlab的符号运算工具箱提供的z变换函数ztrans与反变换函数iztrans,通过help理解其用法,并掌握符号表达式的构建和应用。

F=ztrans(f) %求符号函数fz变换,返回函数的自变量为z

F=ztrans(f,w) %求符号函数fz变换,返回函数的自变量为w

F=ztrans(f,k,w) %对自变量为k的符号函数fz变换,返回函数的自变量为w

f=iztrans(F) %对自变量为z的符号函数F求逆z变换,返回函数的自变量为n

f=iztrans(F,k) %对自变量为z的符号函数F求逆z变换,返回函数的自变量为k

f=iztrans(F,w,k) %对自变量为w的符号函数F求逆z变换,返回函数的自变量为k

4 实验步骤及实验内容

1.已知序列,求其z变换。

解:在命令窗口中输入如下命令,即可完成f(k)z变换

>> syms k

>> f=sym('2^(-k)'); %定义序列

>> F=ztrans(f) %z变换

F =

z/(z - 1/2)

2)已知一离散系统的系统函数,求其冲激响应h(k)

解:运行如下M文件,

syms k z

H=sym('z/(z^2+3*z+2)');

h=iztrans(H,k) %求逆z变换

h =

(-1)^k - (-2)^k

(3) MATLABzplane函数用于系统函数的零极点图的绘制,调用方式为:

zplane(b,a) 其中, ba分别为系统函数分子、分母多项式的系数向量

.已知一离散系统的系统函数,试绘制其零极点图。

解:MATLAB的命令窗口中输入如下命令,即可得到零极点图(图7-1)。

>> a=[1 3 2];

>> b=[1 -0.7 0.1];

>> zplane(b,a) %绘制其零极点图

(4) 若描述离散系统的差分方程为,已知激励,初始状态y(-1)=1,y(-2)=0,求系统的零输入响应,零状态响应。

【解】将差分方程两边取z变化的

,进整理,得

,前一部分为零输入响应,后一部分为零状态响应。

y(-1)=1,y(-2)=0代入第一部分,则零输入响应的表达式为

,因此经过z的逆变化得,

同理,则零状态激励响应响应的表达式为

如果直接利用iztrans函数进行编程求解如下

clc

syms z

y=0.5*(1/z-1)/(1+1/2*z-1/2*z^2)

y=iztrans(y)

结果:1/2*charfcn[1](n)-3/4*charfcn[0](n)+1/12*2^n+2/3*(-1)^n

5)已知,通过部分分式展开法求F(z)

F=sym('(s+2)/(s*(s+1)^2*(s+3))');%传递函数F(s)进行符号定义

[numF,denF]=numden(F) ;%提取分子分母

pnumF=sym2poly(numF) ;%将分子转化为一般多项式

pdenF=sym2poly(denF) ;%将分母转化为一般多项式

[R,P,K]=residue(pnumF,pdenF)%部分分式展开

对应部分分式分解结果为:

实验四 控制系统数学模型的MATLAB实现

(用MATLAB展开及合并部分分式)

1 实验目的

1)掌握matlab展开部分分式的方法

2 实验器材

计算机Win7Matlab7.0软件

3 实验步骤及实验内容

(1)matlab展开部分分式

numden分别表示G(s)的分子和分母多项式,即

MATLAB提供函数reside用于实现部分分式展开,其句法为

[r, p, k]=reside(num,den)其中,r, p分别为展开后的留数及极点构成的列向量;k 为余项多项式行向量。若无重极点,MATLAB展开后的一般形式为:

若存在q个重极点pj),则展开式将包括下列各式:

4 实验步骤及实验内容

(1)求下式的部分分式展开

解:>> num=[1 11 39 52 26];

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

>> [r,p,k]=residue(num,den)

r =

1.0000

2.5000

-3.0000

0.5000

p =

-4.0000

-3.0000

-2.0000

-1.0000

k =

1

所以展开式为:

函数residue也可用于将部分分式合并,其句法为

[num,den]=residue(r,p,k)

>> r=[1 2 3 4]';p=[-1 -2 -3 -4]';k=0

k =

0

>> [num,den]=residue(r,p,k)

num =

10 70 150 96

den =

1 10 35 50 24

所以合并式为:

实验报告总结:

通过本次实验,培养了一定的动手能力以及一定的交流能力和团队精神,具备了对本专业、本行业等方面的大系统的理解、掌控能力。初步掌握机械设计制造、计算机与电子科学、电气与自动控制、网络与信息检索、传感与检测等基础知识和技术,具有机械工程产品与系统的设计和应用能力。通过本开放实验,初步掌握MATLAB仿真应用软件的建模,仿真方法与过程。同时也通过本次实验,了解了自身的不足,还需要多多学习。

控制工程MATLAB实验报告材料

相关推荐