MATLAB控制新版系统仿真实验报告.docx

上传人:b****5 文档编号:3783850 上传时间:2022-11-25 格式:DOCX 页数:24 大小:289.83KB
下载 相关 举报
MATLAB控制新版系统仿真实验报告.docx_第1页
第1页 / 共24页
MATLAB控制新版系统仿真实验报告.docx_第2页
第2页 / 共24页
MATLAB控制新版系统仿真实验报告.docx_第3页
第3页 / 共24页
MATLAB控制新版系统仿真实验报告.docx_第4页
第4页 / 共24页
MATLAB控制新版系统仿真实验报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

MATLAB控制新版系统仿真实验报告.docx

《MATLAB控制新版系统仿真实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB控制新版系统仿真实验报告.docx(24页珍藏版)》请在冰豆网上搜索。

MATLAB控制新版系统仿真实验报告.docx

MATLAB控制新版系统仿真实验报告

清华大学自动化工程学院

试验汇报

 

课程:

控制系统仿真

 

专业自动化班级122

姓名学号

指导老师:

 

时间:

年10月19日—10月28日

 

试验一MATLAB环境熟悉和基础运算…………………………………………………1

试验二MATLAB语言程序设计…………………………………………………………6

试验三MATLAB图形绘制………………………………………………………………9

试验四采取SIMULINK系统仿真……………………………………………………14

试验五控制系统频域和时域分析………………………………………………………17

试验六控制系统PID校正器设计法………………………………………………………23

试验一MATLAB环境熟悉和基础运算

一、试验时间及地点:

试验时间:

.10.19早晨8:

30—9:

30

试验地点:

计算中心

二、试验目标:

1.熟悉MATLAB开发环境

2.掌握矩阵、变量、表示式多种基础运算

三、试验内容:

1、新建一个文件夹(自己名字命名,在机器最终一个盘符)

2、开启MATLAB6.5,将该文件夹添加到MATLAB路径管理器中。

3、保留,关闭对话框

4、学习使用help命令,比如在命令窗口输入helpeye,然后依据帮助说明,学习使用指令eye(其它不会用指令,依据此方法类推)

5、学习使用clc、clear,观察commandwindow、commandhistory和workspace等窗口改变结果。

6、初步程序编写练习,新建M-file,保留(自己设定文件名,比如exerc1、exerc2、exerc3……),学习使用MATLAB基础运算符、数组寻访指令、标准数组生成函数和数组操作函数。

注意:

每一次M-file修改后,全部要存盘。

练习A:

(1)helprand,然后随机生成一个2×6数组,观察commandwindow、commandhistory和workspace等窗口改变结果

(2)学习使用clc、clear,了解其功效和作用

(3)输入一个2维数值数组,体会标点符号作用(空格和逗号作用)。

(4)一维数组创建和寻访,创建一个一维数组(1×8)X,查询X数组第2个元素,查询X数组第3个元素到第6个元素,查询X数组第5个元素到最终一个元素,查询X数组第3、2、1个元素,查询X数组中≤5元素,将X数组第2个元素重新赋值为111,实例expm1。

(5)二维数组创建和寻访,创建一个二维数组(4×8)A,查询数组A第2行、第3列元素,查询数组A第2行全部元素,查询数组A第6列全部元素,查询数组A按列拉长形成新数组B(1×8),查询数组A按行拉长形成新数组C(1×8),以全元素赋值方法对数组A赋值。

(6)两种运算指令形式和实质内涵比较。

设有3个二维数组A2×4,B2×4,C2×2,写出全部由2个数组参与正当数组运算和矩阵指令

(7)学习使用表8列常见函数(经过help方法)

(8)学习使用表9数组操作函数

(9)学习字符串创建,a='Thisisanexample.'

串数组大小size(a)

串数组元素标识a14=a(1:

4)ra=a(end:

-1:

1)

对字符串ASCLL码数组操作

w=find(a>='a'&a<='z');

ascii_a(w)=ascii_a(w)-32;%英文大小写字母ASCLL值差32(小-32=大)

char(ascii_a)

练习B

(10)创建符号对象和函数命令sym()、syms()和class()熟悉和利用。

有符号表示式:

试计算

四、试验操作过程(试验说明)

>>helprand%用help指令学习rand使用方法

rand-Uniformlydistributedpseudorandomnumbers

ThisMATLABfunctionreturnsapseudorandomscalardrawnfromthestandard

uniformdistributionontheopeninterval(0,1).

r=rand

r=rand(n)

r=rand(sz1,...,szN)

r=rand(sz)

r=rand(classname)

r=rand(n,classname)

r=rand(sz1,...,szN,classname)

r=rand(sz,classname)

r=rand('like',p)

r=rand(n,'like',p)

r=rand(sz1,...,szN,'like',p)

r=rand(sz,'like',p)

>>rand(2,6)%随机生成一个2×6数组

ans=

0.81470.12700.63240.27850.95750.1576

0.90580.91340.09750.54690.96490.9706

>>clear%清除命令窗口

>>[12;34]%输入一个二维数组

ans=

12

34

>>[1,2;3,4]%将空格改为逗号效果一致

ans=

12

34

>>a=[1234;5678];

>>b=a(2:

2,3:

4)%逗号前面是行,后面是列,冒号前后数表示所选范围

b=

78

>>eye(3)%产生单位矩阵

ans=

100

010

001

>>magic(3)%产生魔方矩阵

ans=

816

357

492

>>flipud(ans)%以数组“水平中线”为对称轴,交换上下对称位置上元素

ans=

492

357

816

>>rot90(ans)%逆时针旋转数组90°

ans=

276

951

438

>>a='hello'

a=

hello

>>b=size(a)%字符串a大小为1x5

b=

15

>>symsxypkabc%创建符号对象

>>e1=x^2*a*c*y+a*p*x^2+b*p*x+c*k*y+k*p%创建函数命令

e1=

k*p+a*p*x^2+c*k*y+b*p*x+a*c*x^2*y

>>e2=c*y+p

e2=

p+c*y

>>e1/e2

ans=

(k*p+a*p*x^2+c*k*y+b*p*x+a*c*x^2*y)/(p+c*y)

>>a=[12]

a=

12

>>c=reshape(a,2,1)%改变数组a行数和列数

c=

1

2

五、试验结果及讨论

1.熟悉了MATLAB基础软件操作。

2.经过此次试验熟悉了MATLAB开发环境掌握了矩阵、变量、表示式多种运算了解了*和.*、/和\、^和.^等区分和绝对值、开方e阶乘、正弦、正切运算符号。

3.让我明白了MATLAB实用性。

试验二MATLAB语言程序设计

一、试验时间及地点:

试验时间:

.10.19早晨8:

30—9:

30

试验地点:

黄岛老校区计算中心

二、试验目标:

1、熟悉MATLAB程序编辑和设计环境

2、掌握多种编程语句语法规则及程序设计方法

3、函数文件编写和设计

4、了解和熟悉跨空间变量传输和赋值

三、试验内容:

练习A

1、熟悉MATLAB程序编辑和设计环境

2、用for循环语句实现求1~100和

3、用for循环语句实现编写一个求

阶乘函数文件

练习B

思索题

4、已知一维数组

,用for循环语句实现

求和函数可用

5、

(1)编写求解一维数组平均值函数文件。

(2)编写求解二维数组平均值函数文件。

四、试验操作过程(试验说明)

1.用for循环语句实现求1~100和,函数名为theSec().

程序:

a=0;

fori=1:

100

a=i+a;

end

fprintf('%d\n',a)

实施结果:

>>theSec%求1~100和

5050

2.用for循环语句实现编写一个求

阶乘函数文件,函数名为jiex(x).

程序:

functionjiex(x)

a=1;

fori=1:

x

a=a*i;

end

fprintf('%d\n',a)

实施结果:

>>jiex(4)%求4阶乘

24

3.已知一维数组

,用for循环语句实现

求和,函数名用ABsum()

程序:

functiony=ABsum()

a=[2,4,5,8,10];

b=[4,9,6,7,4];

n=5;

sum=0;

fori=1:

n

sum=sum+a(1,i)*b(1,n-i+1);

end

y=sum;

实施结果:

>>ABsum()

ans=

178

4.编写求解任意数组平均值函数文件,函数名为avg(f).

程序:

functiony=avg(f)

[m,n]=size(f);

sum=0;

fori=1:

m

forj=1:

n

sum=sum+f(i,j);

end

end

y=sum/(m*n);

实施结果:

>>a=[1,2,3,4;5,6,7,8]%定义一个数组

a=

1234

5678

>>avg(2*a)%求数组2*a平均值

ans=

9

五、试验结果及讨论

1.编程语句:

循环语句有for循环和while循环,我习惯使用for循环,使用格式以下:

for循环变量=表示式1(初值):

表示式2(增量):

表示式3(终值)

循环语句组

end

条件判定语句if语句格式为:

if表示式

实施语句

end

试验三MATLAB图形绘制

一、试验时间及地点:

试验时间:

.10.21早晨8:

30—9:

30

试验地点:

黄岛老校区计算中心

二、试验目标:

1、学习MATLAB图形绘制基础方法;

2、熟悉和了解MATLAB图形绘制程序编辑基础指令;

3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形多种标注;

4、掌握plot、subplot指令格式和语法。

三、试验内容:

练习A

【1】二维曲线绘图基础指令演示。

t=(0:

pi/50:

2*pi)';

k=0.4:

0.1:

1;

Y=cos(t)*k;

plot(t,Y)

plot指令基础操作演示

【2】用图形表示连续调制波形

及其包络线。

t=(0:

pi/100:

pi)';

y1=sin(t)*[1,-1];

y2=sin(t).*sin(9*t);

t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);plot(t,y1,'r:

',t,y2,'b',t3,y3,'bo')

axis([0,pi,-1,1])

【3】经过绘制二阶系统阶跃响应,综合演示图形标识。

本例比较综合,包含指令较广。

请耐心读、实际做、再看例后说明,定会有匪浅收益。

clf;t=6*pi*(0:

100)/100;y=1-exp(-0.3*t).*cos(0.7*t);

tt=t(find(abs(y-1)>0.05));ts=max(tt);

plot(t,y,'r-','LineWidth',3)

axis([-inf,6*pi,0.6,inf])

set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])

gridon

title('\ity=1-e^{-\alphat}cos{\omegat}')

text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')

text(13.5,1.1,'\fontsize{12}{\omega}=0.7')

holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff

cell_string{1}='\fontsize{12}\uparrow';

cell_string{2}='\fontsize{16}\fontname{隶书}镇静时间';

cell_string{3}='\fontsize{6}';

cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];

text(ts,0.85,cell_string)

xlabel('\fontsize{14}\bft\rightarrow')

ylabel('\fontsize{14}\bfy\rightarrow')

二阶阶跃响应图标识

四、试验操作过程(试验说明)

1.二维曲线绘图基础指令演示:

>>t=(0:

pi/50:

2*pi)';

k=0.4:

0.1:

1;

Y=cos(t)*k;

plot(t,Y)

实施结果:

(图3-1)

图3-1

2.用图形表示连续调制波形

及其包络线:

>>t=(0:

pi/100:

pi)';

y1=sin(t)*[1,-1];

y2=sin(t).*sin(9*t);

t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);plot(t,y1,'r:

',t,y2,'b',t3,y3,'bo')

axis([0,pi,-1,1])

实施结果:

(图3-2)

图3-2

3.经过绘制二阶系统阶跃响应,综合演示图形标识:

>>clf;t=6*pi*(0:

100)/100;y=1-exp(-0.3*t).*cos(0.7*t);

tt=t(find(abs(y-1)>0.05));ts=max(tt);

plot(t,y,'r-','LineWidth',3)

axis([-inf,6*pi,0.6,inf])

set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])

gridon

title('\ity=1-e^{-\alphat}cos{\omegat}')

text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')

text(13.5,1.1,'\fontsize{12}{\omega}=0.7')

holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff

cell_string{1}='\fontsize{12}\uparrow';

cell_string{2}='\fontsize{16}\fontname{隶书}镇静时间';

cell_string{3}='\fontsize{6}';

cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];

text(ts,0.85,cell_string)

xlabel('\fontsize{14}\bft\rightarrow')

ylabel('\fontsize{14}\bfy\rightarrow')

实施结果:

(图3-3)

图3-3

五、试验结果及讨论

1,经过这次试验,我学会了MATLAB图形绘制基础方法,掌握了MATLAB图形绘制程序编辑基础指令,而且还知道了利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形多种标注。

2,感觉到了MATLAB强大,而且很实用。

 

试验四采取SIMULINK系统仿真

一、试验时间及地点:

试验时间:

.10.21早晨8:

30—9:

30

试验地点:

黄岛老校区计算中心

二、试验目标:

1、熟悉SIMULINK工作环境及特点

2、掌握线性系统仿真常见基础模块使用方法

3、掌握SIMULINK建模和仿真方法

4、子系统创建和封装设计

1、试验内容:

练习A

1、SIMULINK仿真实际应用,建立双环调速电流环系统方框图模型,模型参数设为Ks=44;Ts=0.00167;Ta=0.017;R=1;Tm=0.075;Ce=0.1925;Kt=0.01178;T1=0.049;T2=0.088,

(1)在Simulink集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,0.3秒后在扰动信号点输入单位阶跃响应信号。

并绘制对应响应曲线

(2)计算仿真结果超调量、上升时间、调整时间、稳态误差。

(3)设计PID调整器替换图中百分比积分调整器,调整

用使系统满足超调量15%,上升时间0.3s,调整时间0.4s要求。

(4)要求对加入PID控制器封装成一个模块使用

封装步骤1创建子系统

封装步骤2封装子系统

封装步骤3设置参数

封装步骤4修改和设计模块图标

四、试验操作过程(试验说明)

1.画出双环调速电流环系统方框图模型,并在Simulink集成环境下建立模型:

(图4-1)

图4-1

2.绘制对应响应曲线:

(图4-2)

图4-2

 

五、试验结果及讨论

1、SIMULINK基础操作:

1)开启SIMULINK软件包:

能够在MATLAB命令窗口键入“SIMULINK”命令,回车后将弹出SIMULINK图形库浏览器(SIMULINKLIBRARYBREWSER)界面,也能够选择“SIMULINK>LIBRARYBREWSER”一样能够打开该界面;

2)SIMULINK用户接口:

SIMULINK仿真模型编译器界面有菜单栏、工具栏、状态栏等,经过这些接口能够调整仿真运行时间,仿真模式等,能够查看仿真运行进度等信息。

3)构建SIMULINK框图:

用鼠标将模块库中所需模块拖至系统模型中,然后添加连线将各个模块连接起来,模型中能够包含WORKSPACE中已定义变量;

4)运行:

点击仿真模型编译器界面中运行按钮,系统会在输入信号作用下输出,经过SCOPE模块能够查看输出响应曲线,经过TOWORKSPACE模块能够将输出立即间信号送至工作区。

 

试验五控制系统频域和时域分析

一、试验时间及地点:

试验时间:

.10.28早晨8:

30-9:

30

试验地点:

黄岛老校区计算中心

二、试验目标:

1、掌握控制系统数学模型基础描述方法和相互转化

2、了解控制系统稳定性分析方法

3、掌握控制系统频域和时域分析基础方法

三、试验内容:

练习A:

1、

表示下列传输函数模型,并转化成其它数学模型

(1)

(2)

(3)

(4)

2、一个单位负反馈开环传输函数为

试绘出系统闭环根轨迹图;并在跟轨迹图上任选一点,试计算该点增益

及其全部极点位置

四、试验操作过程(试验说明)

>>num=[4,-2]

num=

4-2

>>den=[1025]

den=

1025

>>Gs=tf(num,den)

Gs=

4s-2

----------------

s^3+2s+5

Continuous-timetransferfunction.

>>

>>

>>

>>num=0.5;

>>den=[12.51];

>>Gs=tf(num,den)

Gs=

0.5

-------------------

s^2+2.5s+1

Continuous-timetransferfunction.

>>

>>

>>

>>k=1;

>>num=k;

>>den=[24.510];

>>Gs=tf(num,den)

Gs=

1

--------------------------

2s^3+4.5s^2+s

Continuous-timetransferfunction.

>>Ms=Gs/(Gs+1)

Ms=

2s^3+4.5s^2+s

---------------------------------------------------------------

4s^6+18s^5+24.25s^4+11s^3+5.5s^2+s

Continuous-timetransferfunction.

>>rlocus(Ms)%绘制系统闭环根轨迹图(图5-1)

图5-1

>>pzmap(Ms)%绘制零极点图(5-2)

图5-2

>>[p,z]=pzmap(Ms)

p=

0.0000+0.0000i

-2.1254+0.0000i

-2.0000+0.0000i

-0.0623+0.4810i

-0.0623-0.4810i

-0.2500+0.0000i

z=

0

-2.0000

-0.2500

>>[k,poles]=rlocfind(Ms)

Selectapointinthegraphicswindow

selected_point=

0.5795+0.4927i

k=

4.1162

poles=

0.0000+0.0000i

-2.4675+0.0000i

-2.0000+0.0000i

0.1088+1.0124i

0.1088-1.0124i

-0.2500+0.0000i

五、试验结果及讨论

1.MATLAB经过函数tf(num,den)建立传输函数模型,经过zpk(z,p,k)建立零极点增益模型,经过ss(A,B,C,D)建立连续系统状态空间模型;

2.MATLAB经过ss2tf(),ss2zp(),tf2ss(),tf2zp(),zp2ss(),zp2tf()等函数将传输函数模型、零极点增益模型、状态空间模型等模型相互转换;

3.经过函数rlocus(sys)可绘制系统sys根轨迹图,经过pzmap(sys)可绘制系统sys零极点图,经过[k,poles]=rlocfind(Ms)在根轨迹图上任选一点可计算出该点增益k及全部极点位置。

 

试验六控制系统PID校正器设计法

一、试验时间及地点:

试验

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

当前位置:首页 > 小学教育 > 数学

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

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