MATLAB实验报告.docx
《MATLAB实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告.docx(36页珍藏版)》请在冰豆网上搜索。
![MATLAB实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/22/8753cdbc-475c-45fa-a64c-9b9a48f6d553/8753cdbc-475c-45fa-a64c-9b9a48f6d5531.gif)
MATLAB实验报告
《MATLAB语言及其应用》
实验指导书
实验一Matlab使用方法和程序设计........................
实验二控制系统的模型及其转换.............................
实验三控制系统的时域、频域和根轨迹分析...........
实验四动态仿真集成环境-Simulink.........................
姓名:
班级:
学号:
实验一Matlab使用方法和程序设计
一、实验目的
1、掌握Matlab软件使用的基本方法;
2、熟悉Matlab的数据表示、基本运算和程序控制语句
3、熟悉Matlab绘图命令及基本绘图控制
4、熟悉Matlab程序设计的基本方法
二、实验内容:
1、帮助命令
使用help命令,查找sqrt(开方)函数的使用方法;
解:
截图如下
2、矩阵运算
(1)矩阵的乘法
已知A=[12;34];B=[55;78];
求A^2*B
解:
A=[12;34];%定义矩阵A
B=[55;78];%定义矩阵B
C=A^2*B%定义矩阵C的表达式
(2)矩阵除法
已知A=[123;456;789];
B=[100;020;003];
A\B,A/B
解:
A=[123;456;789];
>>B=[100;020;003];
>>C=A\B%左除
Warning:
Matrixisclosetosingularorbadlyscaled.
Resultsmaybeinaccurate.RCOND=1.541976e-018.
(Type"warningoffMATLAB:
nearlySingularMatrix"tosuppressthiswarning.)
C=
1.0e+016*
-0.45041.8014-1.3511
0.9007-3.60292.7022
-0.45041.8014-1.3511
>>D=A/B%右除
D=
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];
B=A.'
C=A'
B=
5.0000+1.0000i0+6.0000i
2.0000-1.0000i4.0000
1.00009.0000-1.0000i
C=
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];
B1=A([12],[3])
B2=A([2,3],:
)
结果如下:
B1=
3
6
B2=
456
789
用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列
n=4;
A=magic(4)
B=A(:
[123])
A=
162313
511108
97612
414151
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];p=poly(A);
B=polyvalm(p,A)
B=
0.1364-0.33500.00800.1421
-0.0455-0.0114-0.1627-0.0909
-0.30840.1705-0.0227-0.2217
0.0171-0.1265-0.03270.0227
4、基本绘图命令
(1)绘制余弦曲线y=cos(t),t∈[0,2π]
解:
t=[0:
0.05:
2*pi];%定义二维曲线横坐标范围
y=cos(t);%写出函数表达式
plot(t,y)%绘图命令
(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]
解:
>>t=[0:
0.05:
2*pi];%定义二维曲线横坐标范围
y1=cos(t-0.25);%写出函数表达式y1
y2=sin(t-0.5);%写出函数表达式y2
plot(t,y1);%绘图命令
holdon;plot(t,y2)
5、基本绘图控制
绘制[0,4π]区间上的x1=10sint曲线,并要求:
(1)线形为点划线、颜色为红色、数据点标记为加号;
>>t=0:
0.1:
4*pi;x1=10*sin(t);plot(t,x1,'-.r+')
(2)坐标轴控制:
显示范围、刻度线、比例、网络线
>>t=0:
0.1:
4*pi;x1=10*sin(t);
plot(t,x1,'-.r+'),gridon
(3)标注控制:
坐标轴名称、标题、相应文本;
>>t=0:
0.1:
4*pi;x1=10*sin(t);
plot(t,x1,'-.r+'),gridon;
title('x1=10sint曲线');xlabel('x轴');ylabel('y轴')
6、基本程序设计
(1)编写命令文件:
计算1+2+…+n<2000时的最大n值;
>>s=0;n=0;
while(s<2000)
n=n+1;s=s+n;
end;n=n-1
n=
62
(2)编写函数文件:
分别用for和while循环结构编写程序,求2的0到n次幂的和。
functions=kuang(n,i)
s=0;
for(i=0:
n)
s=s+2^i;
end
(4)如果想对一个变量x自动赋值。
当从键盘输入y或Y时(表示是),x自动赋为1;当从键盘输入n或N时(表示否),x自动赋为0;输入其他字符时终止程序。
x=input('请输入:
','s');
if(x=='y'||x=='Y')
z=1;
elseif(x=='n'||x=='N')
z=0;
else('error')
end
x,z
实验二控制系统的模型及其转换
一、实验目的
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*s^2)+2*s+5)
Transferfunction:
4s^3+32s^2+72s+48
-----------------------------------------------
s^7+6s^6+12s^5+10s^4+3s^3+2s+5
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)
>>g1=zpk([-12],[-3;-4;-5],3);g2=zpk([-5;-3],[-3;-4;-5],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.400;1.4000;-1.8-0.3-1.4-0.6;000.60];B=[1;0;1;0];
C=[0001];D=zeros
(1);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*s^2)+2*s+5);
G1=zpk(G)
Zero/pole/gain:
4(s+4.732)(s+2)(s+1.268)
----------------------------------------------------------------------------
(s+2.995)(s^2+3.06s+2.549)(s^2-1.089s+0.5457)(s^2+1.034s+1.2)
2.2将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];G2=ss(G)
a=
x1x2x3
x1-340
x20-416
x300-5
b=
u1
x10
x20
x32
c=
x1x2x3
y10.21090.093750
y2-9.714e-0170.1252
d=
u1
y10
y20
2.3将1.3的模型转换为零极点模型
A=[-2.8-1.400;1.4000;-1.8-0.3-1.4-0.6;000.60];B=[1;0;1;0];
C=[0001];D=zeros
(1);G=ss(A,B,C,D);G3=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];G1=ss(A1,B1,C1,D1);
A2=[01;-1-3];B2=[0;1];C2=[14];D2=zeros(1,1);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
>>G=G1+G2
a=
x1x2x3x4
x10100
x21-200
x30001
x400-1-3
b=
u1
x10
x21
x30
x41
c=
x1x2x3x4
y11314
d=
u1
y11
>>G3=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
4、典型系统的生成:
4典型二阶系统
试建立
时的系统传递函数模型。
>>s=tf('s');
H=36/(s^2+1.2*s+36)
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、某系统的开环传递函数为
试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。
>>G=tf([20],[1836400]);step(feedback(G,1))
1.2、典型二阶系统
编程求:
当
分别取值为0.2、0.4、0.6、0.8、1.0、1.5、2.0时的单位阶跃响应曲线。
>>w=6;a=0.2;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);step(G)
>>a=0.4;step(G)
a=0.6;step(G)
a=0.8;step(G)
a=1.0;step(G)
a=1.5;step(G)
a=2.0;step(G)
1.3、典型二阶系统传递函数为:
绘制当:
分别取2、4、6、8、10、12时的单位阶跃响应曲线。
a=0.7;w=2;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);step(G)
w=4;step(G)
w=6;step(G)
w=8;step(G)
w=10;step(G)
w=12;step(G)
2、根轨迹分析
根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析使系统稳定的K值范围。
>>s=zpk('s');G=1/(s*(s+1)*(s+3));rlocus(G)
3、频域分析
典型二阶系统传递函数为:
3.1绘制当:
取2、4、6、8、10、12时的伯德图
>>a=0.7;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);
forw=2:
2:
12
bode(G);figure;end
3.2绘制当:
分别取0.2、0.4、0.6、0.8、1.0、1.5、2.0时的伯德图。
>>w=6;a=0.2;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);step(G)
>>a=0.4;step(G)
a=0.6;step(G)
a=0.8;step(G)
a=1.0;step(G)
a=1.5;step(G)
a=2.0;step(G)
实验四动态仿真集成环境—Simulink
一、实验目的
1、熟悉Simulink模块库中常用标准模块的功能及其应用;
2、掌握利用Simulink在用户窗口中建立控制系统仿真模型的方法;
3、掌握模块参数和仿真参数的设置以及建立子系统的方法。
二、实验内容
1.用Simulink对以下系统进行仿真
其中u(t)为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真时
间02.在滑艇的运行过程中,滑艇主要受到如下作用力的控制:
滑艇自身的牵引力F,滑艇受到的水的阻力
。
其中水的阻力
,
为滑艇的运动速度。
由运动学的相关定理可知,整个滑艇系统的动力学方程为:
其中,m为滑艇的质量。
假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。
3.输入教材中P198中例题5-2并作仿真。
(不做)