matlab语言及其用实验.docx
- 文档编号:28445392
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:24
- 大小:59.29KB
matlab语言及其用实验.docx
《matlab语言及其用实验.docx》由会员分享,可在线阅读,更多相关《matlab语言及其用实验.docx(24页珍藏版)》请在冰豆网上搜索。
matlab语言及其用实验
《MATLAB语言及其用》
实验指导书
实验一Matlab使用方法和程序设计........................
实验二控制系统的模型及其转换.............................
实验三控制系统的时域、频域和根轨迹分析...........
实验四动态仿真集成环境-Simulink.........................
实验一Matlab使用方法和程序设计
一、实验目的
1、掌握Matlab软件使用的基本方法;
2、熟悉Matlab的数据表示、基本运算和程序控制语句
3、熟悉Matlab绘图命令及基本绘图控制
4、熟悉Matlab程序设计的基本方法
二、实验内容:
1、帮助命令
使用help命令,查找sqrt(开方)函数的使用方法;
在CommandWindowL里输入help,接在在search里输入sqr即可。
sqrt
Squareroot
Syntax
B=sqrt(X)
Description
B=sqrt(X)returnsthesquarerootofeachelementofthearrayX.FortheelementsofXthatarenegativeorcomplex,sqrt(X)producescomplexresults.
Tips
Seesqrtmforthematrixsquareroot.
Examples
sqrt((-2:
2)')
ans=
0+
0+
0
SeeAlso
nthroot|realsqrt|sqrtm
2、矩阵运算
(1)矩阵的乘法
已知A=[12;34];B=[55;78];
求A^2*B
A=[12;34];B=[55;78];
C=A^2*B
>>formatcompact
C=
105115
229251
(2)矩阵除法
已知A=[123;456;789];
B=[100;020;003];
A\B,A/B
A=[123;456;789];
B=[100;020;003];
C=A\B,D=A/B
C=
+016*
D=
(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=
+0+
-
-
C=
-0-
+
+
(4)使用冒号表达式选出指定元素
已知:
A=[123;456;789];
求A中第3列前2个元素;A中所有列第2,3行的元素;
A=[123;456;789];
B1=A([1,2],[3])
B2=A([2,3],:
)
B1=
3
6
B2=
456
789
方括号[]
用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列
A=magic(4)
B=A(:
[1,2,3])
或
A=magic(4)
A(:
4)=[]
A=
162313
511108
97612
414151
B=
1623
51110
976
41415
3、多项式
(1)求多项式
的根
Y=[10-2-4];
S=roots(Y)
S=
+
-
(2)已知A=[35;556;3901;1234],
求矩阵A的特征多项式;
把矩阵A作为未知数代入到多项式中;
A=[35;556;3901;1234]
P=poly(A)
polyval(P,A)
A=
0
P=
ans=
+003*
4、基本绘图命令
(1)绘制余弦曲线y=cos(t),t∈[0,2π]
(2)在同一坐标系中绘制余弦曲线y=cos和正弦曲线y=sin,t∈[0,2π]
(1)
t=[0:
:
2*pi];
y=cos(t);
plot(t,y)
(2)
t=[0:
:
2*pi];
y1=cos;
y2=sin;
plot(t,y1)
holdon
plot(t,y2)
5、基本绘图控制
绘制[0,4π]区间上的x1=10sint曲线,并要求:
(1)线形为点划线、颜色为红色、数据点标记为加号;
(2)坐标轴控制:
显示范围、刻度线、比例、网络线
(3)标注控制:
坐标轴名称、标题、相应文本;
t=[0:
:
4*pi];
x1=10*sin(t);
plot(t,x1,'r-.+');%画图,显示红色、点划线、标记加号;
axis([0,15,-10,10]);%定义显示范围,横轴为[0,15],纵轴为[-10,10];
title('曲线x1=10sint');%显示标题;
xlabel('T轴');
ylabel('X1轴');%显示坐标轴名称;
set(gca,'xminortick','on');
set(gca,'yminortick','on');%显示刻度线;
gridon%显示网络线
6、基本程序设计
(1)编写命令文件:
计算1+2+…+n<2000时的最大n值;
(2)编写函数文件:
分别用for和while循环结构编写程序,求2的0到n次幂的和。
(3)@如果想对一个变量x自动赋值。
当从键盘输入y或Y时(表示是),x自动赋为1;
当从键盘输入n或N时(表示否),x自动赋为0;输入其他字符时终止程序。
(1)
s=0;i=0;
while(s<2000)i=i+1;
s=s+i;
end
i=i-1,s=s-i
s=
1954
i=
62
(2)
sum1=0;
fori=0:
15
sum1=sum1+2^i;
end
disp(['用for循环所求的值为'num2str(sum1)]);
sum2=0;
i=0;
whilei<16
sum2=sum2+2^i;
i=i+1;
end
disp(['用while循环所求的值为'num2str(sum2)]);
结果:
用for循环所求的值为65535
用while循环所求的值为65535
实验二控制系统的模型及其转换
一、实验目的
1、掌握建立控制系统模型的函数及方法;
2、掌握控制系统模型间的转换方法及相关函数;
3、熟悉控制系统模型的连接方法;
4、掌握典型系统模型的生成方法。
二、实验内容:
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+14s^5+21s^4+24s^3+17s^2+5s
已知单输入双输出系统的零极点模型
建立系统的零极点模型。
s=zpk('s');
g11=3*(s+12);
g21=4*(s+5)*(s+3);
G=[g11;g21]/(s+3)/(s+4)/(s+5)
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)
给定系统的状态空间表达式,
建立系统的状态空间模型。
A=[,,0,0;,0,0,0;,,,;0,0,,0];
B=[1;0;1;0];
C=[0,0,0,1];
D=zeros(1,1);
G=ss(A,B,C,D)
a=
x1x2x3x4
x100
x2000
x3
x4000
b=
u1
x11
x20
x31
x40
c=
x1x2x3x4
y10001
d=
u1
y10
Continuous-timemodel.
2.控制系统模型的转换
将的模型转换为零极点模型
s=zpk('s');
G=4*(s+2)*(s^2+6*s+6)/s/(s+1)^3/(s^3+3*s^2+2*s+5)
Zero/pole/gain:
4(s+2)(s+(s+
--------------------------------------------
s(s+1)^3(s+(s^2++
将的模型转换为状态空间模型
s=zpk('s');
g1=3*(s+12);
g2=4*(s+5)*(s+3);
G=[g1;g2]/(s+3)/(s+4)/(s+5);
ZTFC=ss(G)
结果
a=
x1x2x3
x1-310
x20-42
x300-5
b=
u1
x10
x20
x34
c=
x1x2x3
y10
y201
d=
u1
y10
y20
Continuous-timemodel.
将的模型转换为零极点模型
A=[,,0,0;,0,0,0;,,,;0,0,,0];
B=[1;0;1;0];
C=[0,0,0,1];
D=zeros(1,1);
G=ss(A,B,C,D);
X=zpk(G)
Zero/pole/gain:
(s^2+s+
------------------------------
(s+^2(s+(s+
3.控制系统模型的连接:
已知两个系统
求按串联、并联、系统2联接在反馈通道时的负反馈系统的状态方程。
A1=[0,1;1,-2];
B1=[0;1];
C1=[1,3];
D1=[1];
A2=[0,1;-1,-3];
B2=[0;1];
C2=[1,4];
D2=[0];
G1=ss(A1,B1,C1,D1);
G2=ss(A2,B2,C2,D2);
G=G2*G1
G3=G1+G2
G4=G1/(1+G1*G2)
结果:
a=
x1x2x3x4
x10100
x2-1-313
x30001
x4001-2
b=
u1
x10
x21
x30
x41
c=
x1x2x3x4
y11400
d=
u1
y10
Continuous-timemodel.
a=
x1x2x3x4
x10100
x21-200
x30001
x400-1-3
b=
u1
x10
x21
x30
x41
c=
x1x2x3x4
y11314
d=
u1
y11
Continuous-timemodel.
a=
x1x2x3x4x5x6
x1010000
x21-2-1-3-1-4
x3000100
x4001-214
x5000001
x600-1-3-2-7
b=
u1
x10
x21
x30
x40
x50
x61
c=
x1x2x3x4x5x6
y113-1-3-1-4
d=
u1
y11
Continuous-timemodel.
>>
4、典型系统的生成:
4典型二阶系统
试建立
时的系统传递函数模型。
s=tf('s');
H=36/(s^2+*s+36)
结果
Transferfunction:
36
----------------
s^2+s+36
5、连续系统的离散化:
对连续系统
在采样周期T=时进行离散化。
s=tf('s');
G=6*(s+3)/((s+1)*(s+2)*(s+5));
G1=c2d(G,
结果:
Transferfunction:
z^2+z-
----------------------------------
z^3-z^2+z-
Samplingtime:
实验三控制系统的时域、频域和根轨迹分析
一、实验目的
1、掌握如何使用Matlab进行系统的时域分析
2、掌握如何使用Matlab进行系统的频域分析
3、掌握如何使用Matlab进行系统的根轨迹分析
二、实验内容:
1、时域分析
、某系统的开环传递函数为
试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量
>>den=[20]
den=
20
>>num=[1836400]
num=
1836400
>>G=tf(den,num)
Transferfunction:
20
---------------------------
s^4+8s^3+36s^2+40s
>>Gc=feedback(G,1)
Transferfunction:
20
--------------------------------
s^4+8s^3+36s^2+40s+20
>>step(Gc)
、典型二阶系统
编程求:
当
分别取值为、、、、、、时的单位阶跃响应曲线。
>>s=tf('s');
>>G=6^2/(s^2+2**6*s+6^2);
>>G1=6^2/(s^2+2**6*s+6^2);
>>G2=6^2/(s^2+2**6*s+6^2);
>>G3=6^2/(s^2+2**6*s+6^2);
>>G4=6^2/(s^2+2**6*s+6^2);
>>G5=6^2/(s^2+2**6*s+6^2);
>>G6=6^2/(s^2+2**6*s+6^2);
>>step(G,G1,G2,G3,G4,G5,G6);
绘制出的曲线如下:
、典型二阶系统传递函数为:
绘制当:
分别取2、4、6、8、10、12时的单位阶跃响应曲线。
>>s=tf('s');
>>G=2^2/(s^2+2**2*s+2^2);
>>G1=4^2/(s^2+2**4*s+4^2);
>>G2=6^2/(s^2+2**6*s+6^2);
>>G3=8^2/(s^2+2**8*s+8^2);
>>G4=10^2/(s^2+2**10*s+10^2);
>>G5=12^2/(s^2+2**12*s+12^2);
>>step(G,G1,G2,G3,G4,G5)
绘制出的曲线如下:
2、根轨迹分析
根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析使系统稳定的K值范围。
>>s=tf('s');
>>G=1/s*(s+1)*(s+3);
>>rlocus(G)
绘制出的图形如下:
使得K值稳定的范围是0 3、频域分析 典型二阶系统传递函数为: 3.1绘制当: 取2、4、6、8、10、12时的伯德图 >>s=tf('s'); >>G=2^2/(s^2+2**2*s+2^2); >>G1=4^2/(s^2+2**4*s+4^2); >>G2=6^2/(s^2+2**6*s+6^2); >>G3=8^2/(s^2+2**8*s+8^2); >>G4=10^2/(s^2+2**10*s+10^2); >>G5=12^2/(s^2+2**12*s+12^2); >>bode(G,G1,G2,G3,G4,G5) 绘制出的图形如下: 3.2绘制当: 分别取、、、、、、时的伯德图。 >>s=tf('s'); >>G=6^2/(s^2+2**6*s+6^2); >>G1=6^2/(s^2+2**6*s+6^2); >>G2=6^2/(s^2+2**6*s+6^2); >>G3=6^2/(s^2+2**6*s+6^2); >>G4=6^2/(s^2+2**6*s+6^2); >>G5=6^2/(s^2+2**6*s+6^2); >>G6=6^2/(s^2+2**6*s+6^2); >>bode(G,G1,G2,G3,G4,G5,G6) 实验四动态仿真集成环境—Simulink 一、实验目的 1、熟悉Simulink模块库中常用标准模块的功能及其应用; 2、掌握利用Simulink在用户窗口中建立控制系统仿真模型的方法; 3、掌握模块参数和仿真参数的设置以及建立子系统的方法。 二、实验内容 1.用Simulink对以下系统进行仿真 其中u(t)为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真时 间0 在Simulink中建立模型,在Fcn里输入2*sin(u)*abs(u>30)+8*sin(u)*abs(u<=30) 模型如下: 选择仿真时间为0—100s 进行仿真 在CommandWindow里输入 plot(tout,yout) 即可得到下图: 2.在滑艇的运行过程中,滑艇主要受到如下作用力的控制: 滑艇自身的牵引力F,滑艇受到的水的阻力 。 其中水的阻力 , 为滑艇的运动速度。 由运动学的相关定理可知,整个滑艇系统的动力学方程为: 其中,m为滑艇的质量。 假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。 设置F=2000; 在CommandWindow里输入以下命令: >>plot(tout,yout) 即可得到下图: 3.输入教材中P198中例题5-2并作仿真。 在CommandWindow里输入以下命令: >>plot(tout,yout) >>comet3(yout(: 1),yout(: 2),yout(: 3)) 就可得到下图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 语言 及其 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)