MATLAB 语言及其应用 实验报告.docx
- 文档编号:11750329
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:29
- 大小:219.48KB
MATLAB 语言及其应用 实验报告.docx
《MATLAB 语言及其应用 实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB 语言及其应用 实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
MATLAB语言及其应用实验报告
《MATLAB语言及其应用》
实验报告
目录
实验一Matlab使用方法和程序设计........................
实验二控制系统的模型及其转换.............................
实验三控制系统的时域、频域和根轨迹分析...........
实验四动态仿真集成环境-Simulink.........................
实验一Matlab使用方法和程序设计
一、实验目的
1、掌握Matlab软件使用的基本方法;
2、熟悉Matlab的数据表示、基本运算和程序控制语句
3、熟悉Matlab绘图命令及基本绘图控制
4、熟悉Matlab程序设计的基本方法
二、实验内容:
1、帮助命令
使用help命令,查找sqrt(开方)函数的使用方法;
答:
helpsqrt
2、矩阵运算
(1)矩阵的乘法
已知A=[12;34];B=[55;78];
求A^2*B
解:
>>A=[12;34];
B=[55;78];
A^2*B
ans=
105115
229251
(2)矩阵除法
已知A=[123;456;789];
B=[100;020;003];
A\B,A/B
解:
>>A=[123;456;789];
B=[100;020;003];
>>A\B
ans=
1.0e+016*
-0.45041.8014-1.3511
0.9007-3.60292.7022
-0.45041.8014-1.3511
>>A/B
ans=
1.00001.00001.0000
4.00002.50002.0000
7.00004.00003.0000
(3)矩阵的转置及共轭转置
已知A=[5+i,2-i,1;6*i,4,9-i];
求A.',A'
解:
>>A=[5+i,2-i,1;6*i,4,9-i];
>>A.'
ans=
5.0000+1.0000i0+6.0000i
2.0000-1.0000i4.0000
1.00009.0000-1.0000i
>>A'
ans=
5.0000-1.0000i0-6.0000i
2.0000+1.0000i4.0000
1.00009.0000+1.0000i
(4)使用冒号表达式选出指定元素
已知:
A=[123;456;789];
求A中第3列前2个元素;A中所有列第2,3行的元素;
>>A=[123;456;789];
>>B=A(1:
2,3)
B=
3
6
>>B1=A(2:
3,:
)
B1=
456
789
用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列
>>A=magic(4)
A=
162313
511108
97612
414151
>>B=A(:
1:
3)
B=
1623
51110
976
41415
3、多项式
(1)求多项式
的根
>>p=[10-2-4];
>>r=roots(p)
r=
2.0000
-1.0000+1.0000i
-1.0000-1.0000i
(2)已知A=[1.2350.9;51.756;3901;1234],
求矩阵A的特征多项式;
>>A=[1.2350.9;51.756;3901;1234];
>>p=poly(A)
p=
1.0000-6.9000-77.2600-86.1300604.5500
把矩阵A作为未知数代入到多项式中;
>>A=[1.2350.9;51.756;3901;1234];
>>symsx;P=x^3-2*x-4;
>>P1=subs(P,x,A)
P1=
-4.672017.0000111.0000-5.0710
111.0000-2.4870111.0000200.0000
17.0000707.0000-4.0000-5.0000
-5.0000017.000052.0000
4、基本绘图命令
(1)绘制余弦曲线y=cos(t),t∈[0,2π]
(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]
解:
(1)程序为:
t=[0:
0.05:
2*pi];
y=cos(t);
plot(t,y)
(2)程序如下:
x=[0:
0.05:
2*pi];
y1=cos(x-0.25);
y2=sin(x-0.5);
plot(x,y1,x,y2)
绘制曲线如下:
5、基本绘图控制
绘制[0,4π]区间上的x1=10sint曲线,并要求:
(1)线形为点划线、颜色为红色、数据点标记为加号;
(2)坐标轴控制:
显示范围、刻度线、比例、网络线
(3)标注控制:
坐标轴名称、标题、相应文本;
程序为:
>>t=[0:
0.05:
4*pi];
x1=10*sin(t);
plot(t,x1,'r-.+')
gridon;
axis([0,15,-10,10]);
title('曲线x1=10sint');
xlabel('T轴');ylabel('X1轴');
set(gca,'xminortick','on');
set(gca,'yminortick','on');
6、基本程序设计
(1)编写命令文件:
计算1+2+…+n<2000时的最大n值;
>>s=1;n=1;
while(s<2000-n),n=n+1;
s=s+n;
end,[s,n]
ans=
195362
(2)编写函数文件:
分别用for和while循环结构编写程序,求2的0到n次幂的和。
1)functions=spc(n)
s=0;i=0;
while(i<=n)
s=s+2^i;
i=i+1;
end
>>s=spc(10)
s=
2047
2)functions=spc(n)
s=0;
fori=0:
n
s=s+2^i;
end
>>s=spc1(10)
s=
2047
(3)如果想对一个变量x自动赋值。
当从键盘输入y或Y时(表示是),x自动赋为1;
当从键盘输入n或N时(表示否),x自动赋为0;输入其他字符时终止程序。
str=input('pleaseinputYorN:
','s');
ifstr=='y'||str=='Y'
x=1
elseifstr=='n'||str=='N'
x=0
elseerror('error');
end
pleaseinputYorN:
n
x=
0
三、实验报告要求:
编写实验内容中的相关程序在计算机中运行,程序、运行结果及相关图形一并写在报告上。
实验二控制系统的模型及其转换
一、实验目的
1、掌握建立控制系统模型的函数及方法;
2、掌握控制系统模型间的转换方法及相关函数;
3、熟悉控制系统模型的连接方法;
4、掌握典型系统模型的生成方法。
二、实验内容:
1.控制系统模型
1.1系统的模型为
试建立系统的传递函数模型。
>>s=tf('s');
G=4*(s+2)*(s^2+6*s+6)/(s*(s+1)^3*(s^3+3^2+2*s+5))
Transferfunction:
4s^3+32s^2+72s+48
-----------------------------------------------------
s^7+3s^6+5s^5+21s^4+48s^3+44s^2+14s
1.2已知单输入双输出系统的零极点模型
建立系统的零极点模型。
方法一:
>>s=zpk('s');
>>g1=3*(s+12)/((s+3)*(s+4)*(s+5));
>>g2=4*(s+5)*(s+3)/((s+3)*(s+4)*(s+5));
>>G=[g1;g2]
Zero/pole/gainfrominputtooutput...
3(s+12)
#1:
-----------------
(s+3)(s+4)(s+5)
4(s+5)(s+3)
#2:
-----------------
(s+3)(s+4)(s+5)
方法二:
>>z1=[-12];z2=[-5;-3];p=[-3;-4;-5];
>>g1=zpk(z1,p,3);
>>g2=zpk(z2,p,4);
>>G=[g1;g2]
Zero/pole/gainfrominputtooutput...
3(s+12)
#1:
-----------------
(s+3)(s+4)(s+5)
4(s+5)(s+3)
#2:
-----------------
(s+3)(s+4)(s+5)
1.3给定系统的状态空间表达式,
建立系统的状态空间模型。
>>A=[-2.8,-1.4,0,0;1.4,0,0,0;-1.8,-0.3,-1.4,-0.6;0,0,0.6,0];
>>B=[1;0;1;0];
>>C=[0001];D=[0];
>>G=ss(A,B,C,D)
a=
x1x2x3x4
x1-2.8-1.400
x21.4000
x3-1.8-0.3-1.4-0.6
x4000.60
b=
u1
x11
x20
x31
x40
c=
x1x2x3x4
y10001
d=
u1
y10
Continuous-timemodel.
2.控制系统模型的转换
2.1将1.1的模型转换为零极点模型
>>s=tf('s');
>>G=4*(s+2)*(s^2+6*s+6)/(s*(s+1)^3*(s^3+3^2+2*s+5))
Transferfunction:
4s^3+32s^2+72s+48
-----------------------------------------------------
s^7+3s^6+5s^5+21s^4+48s^3+44s^2+14s
>>G1=zpk(G)
Zero/pole/gain:
4(s+4.732)(s+2)(s+1.268)
------------------------------------------
s(s+2.135)(s+1)^3(s^2-2.135s+6.558)
2.2将1.2的模型转换为状态空间模型
>>z1=[-12];z2=[-5;-3];p=[-3;-4;-5];
>>g1=zpk(z1,p,3);
>>g2=zpk(z2,p,4);
>>G=[g1;g2]
Zero/pole/gainfrominputtooutput...
3(s+12)
#1:
-----------------
(s+3)(s+4)(s+5)
4(s+5)(s+3)
#2:
-----------------
(s+3)(s+4)(s+5)
>>G1=ss(G)
a=
x1x2x3
x1-340
x20-416
x300-1
b=
u1
x10
x20
x32
c=
x1x2x3
y10.21090.093750
y200.1252
d=
u1
y10
y20
Continuous-timemodel.
2.3将1.3的模型转换为零极点模型
>>A=[-2.8,-1.4,0,0;1.4,0,0,0;-1.8,-0.3,-1.4,-0.6;0,0,0.6,0];
>>B=[1;0;1;0];
>>C=[0,0,0,1];D=[0];
>>G=ss(A,B,C,D)
a=
x1x2x3x4
x1-2.8-1.400
x21.4000
x3-1.8-0.3-1.4-0.6
x4000.60
b=
u1
x11
x20
x31
x40
c=
x1x2x3x4
y10001
d=
u1
y10
Continuous-timemodel.
>>G1=zpk(G)
Zero/pole/gain:
0.6(s^2+s+1.54)
------------------------------
(s+1.4)^2(s+1.061)(s+0.3394)
3.控制系统模型的连接:
已知两个系统
求按串联、并联、系统2联接在反馈通道时的负反馈系统的状态方程。
>>A1=[01;1-2];B1=[0;1];C1=[13];D1=[1];
>>A2=[01;-1-3];B2=[0;1];C2=[14];D2=[0];
>>G1=ss(A1,B1,C1,D1);
>>G2=ss(A2,B2,C2,D2);
>>G=G2*G1
a=
x1x2x3x4
x10100
x2-1-313
x30001
x4001-2
b=
u1
x10
x21
x30
x41
c=
x1x2x3x4
y11400
d=
u1
y10
Continuous-timemodel.
>>G=G1+G2
a=
x1x2x3x4
x10100
x21-200
x30001
x400-1-3
b=
u1
x10
x21
x30
x41
c=
x1x2x3x4
y11314
d=
u1
y11
Continuous-timemodel.
>>G=feedback(G1,G2)
a=
x1x2x3x4
x10100
x21-2-1-4
x30001
x413-2-7
b=
u1
x10
x21
x30
x41
c=
x1x2x3x4
y113-1-4
d=
u1
y11
Continuous-timemodel.
>>
4、典型系统的生成:
4典型二阶系统
试建立
时的系统传递函数模型。
>>s=tf('s');
>>w=6;e=0.1;
>>H=w^2/(s^2+2*e*w*s+w^2)
Transferfunction:
36
----------------
s^2+1.2s+36
5、连续系统的离散化:
对连续系统
在采样周期T=0.1时进行离散化。
>>z=[-3];p=[-1;-2;-5];
>>G=zpk(z,p,6);
>>G1=c2d(G,0.1)
Zero/pole/gain:
0.025525(z+0.8468)(z-0.7408)
--------------------------------
(z-0.9048)(z-0.8187)(z-0.6065)
Samplingtime:
0.1
实验三控制系统的时域、频域和根轨迹分析
一、实验目的
1、掌握如何使用Matlab进行系统的时域分析
2、掌握如何使用Matlab进行系统的频域分析
3、掌握如何使用Matlab进行系统的根轨迹分析
二、实验内容:
1、时域分析
1.1、某系统的开环传递函数为
试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。
>>num=[20];den=[1,8,36,40,0];
>>G=tf(num,den);
>>G1=feedback(G,1);
>>step(G1,30)
1.2、典型二阶系统
编程求:
当
分别取值为0.2、0.4、0.6、0.8、1.0、1.5、2.0时的单位阶跃响应曲线。
>>s=tf('s');
>>wn=6;zet=[0.2:
0.2:
1.0,1.5,2.0];
>>forz=zet
G=wn^2/(s^2+2*z*wn*s+wn^2);
step(G,5);
holdon;
end
1.3、典型二阶系统传递函数为:
绘制当:
分别取2、4、6、8、10、12时的单位阶跃响应曲线。
>>wn=[2:
2:
12];zet=0.7;
>>s=tf('s');
>>forw=wn
G=w^2/(s^2+2*zet*w*s+w^2);
step(G,5);holdon;
end
2、根轨迹分析
根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析使系统稳定的K值范围。
>>s=tf('s');
>>num=[1];den=[1,4,3,0];
>>G=tf(num,den);
>>rlocus(G)
3、频域分析
典型二阶系统传递函数为:
3.1绘制当:
取2、4、6、8、10、12时的伯德图
>>zet=0.7;wn=[2:
2:
12];
>>forw=wn
s=tf('s');G=w^2/(s^2+2*zet*w*s+w^2);
bode(G);holdon;
end
3.2绘制当:
分别取0.2、0.4、0.6、0.8、1.0、1.5、2.0时的伯德图。
>>s=tf('s');
>>wn=6;zet=[0.2:
0.2:
1.0,1.5,2.0];
>>forz=zet
G=wn^2/(s^2+2*z*wn*s+wn^2);
bode(G);holdon;
end
实验四动态仿真集成环境—Simulink
一、实验目的
1、熟悉Simulink模块库中常用标准模块的功能及其应用;
2、掌握利用Simulink在用户窗口中建立控制系统仿真模型的方法;
3、掌握模块参数和仿真参数的设置以及建立子系统的方法。
二、实验内容
1.用Simulink对以下系统进行仿真
其中u(t)为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真时
间0 解: 模块连接后的系统模型如下图 查表模块的参数设置如下 系统仿真的示波器输出如下 2.在滑艇的运行过程中,滑艇主要受到如下作用力的控制: 滑艇自身的牵引力F,滑艇受到的水的阻力 。 其中水的阻力 , 为滑艇的运动速度。 由运动学的相关定理可知,整个滑艇系统的动力学方程为: 其中,m为滑艇的质量。 假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。 3.输入教材中P198中例题5-2并作仿真。 三、实验报告要求: 编写实验内容中的相关算法,算式,编制程序在计算机中运行,程序、运行结果及相关图形一并写在报告上。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 语言及其应用 实验报告 语言 及其 应用 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)