matlab报告新手入门.docx
- 文档编号:17155724
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:27
- 大小:244.99KB
matlab报告新手入门.docx
《matlab报告新手入门.docx》由会员分享,可在线阅读,更多相关《matlab报告新手入门.docx(27页珍藏版)》请在冰点文库上搜索。
matlab报告新手入门
计算机控制系统课程设计实训报告
系(部)
班级
姓名
学号
指导教师
就在七月一日那一天,我们开始了由李老师带我们实训的一周。
本次实训一共十关,且看我一一道来。
第一关:
安装matlab7软件-------这个成功的关键在与windows7要切换到windows经典模式,才能安装得上。
还是很简单的。
第二关:
数组的学习先展示下成果
要求
matlab语言
A=[123]
A=[123]
B=
B=[1;2;3]
矩阵C=
c=[123;456;789]
3维单位矩阵
eye(3)
4维魔方矩阵
magic(4)
1.1数组定义:
按行(row)和列(column)顺序排列的实数或复数的有序集,被称为数组。
数组的分类
1一维数组,也称为向量,行向量、列向量。
2二维数组(矩阵matrix)。
3多维数组。
有效矩阵:
每行元素的个数必须相同,每列元素的个数也必须相同
1.2创建一维数组
1.2.1第一种方法:
使用方括号“[]”操作符eg:
a=[123]a=123
所有的向量元素必须在操作符“[]”之内;向量元素间用空格或英文的逗点“,”分开。
1.2.2第二种方法:
使用冒号“:
”操作符
b=1:
10b=12345678910
c=1:
2:
10c=13579
d=1:
2:
9d=13579
利用冒号“:
”操作符创建行向量的基本语法格式:
x=A:
B:
C
AX向量的第一个元素;BX向量相邻元素的差;C与A构成X向量范围;
若B=1,则可简写为:
x=A:
C。
1.2.3第三种方法:
x=linspace(X1,X2,N)
N该函数生成一个由n个元素组成的行向量;X1第一个元素;X2最后一个元素;
x=linspace(1,2,5)x=1.00001.25001.50001.75002.0000
X1、X2之间元素的间隔=(X2-X1)/(n-1)。
(2-1)/(5-1)=0.25
1.3列向量的创建
1.3.1使用方括号“[]”操作符,使用分号“;”分割行。
x=[1;2;3]x=1
2
3
1.3.2键入并执行x=(1:
3)’%“’”表示矩阵的转置
1.4创建二维数组变量
1.4.1第一种方法:
使用方括号“[]”操作符
数组元素必须在“[]”内键入;
行与行之间须用分号“;”间隔,也可以在分行处用回车键间隔;
行内元素用空格或逗号“,”间隔。
键入并执行a2=[123;456;789]
a2=123
456
789
键入并执行a2=[1:
3;4:
6;7:
9]%结果同上
1.4.2第二种方法:
函数方法
函数ones(生成全1矩阵)、zeros(生成全0矩阵)
创建全1的3x3数组。
ones(3)
创建全1的3x4数组。
ones(3,4)
1.5特殊矩阵的生成
1.5.1生成单位矩阵
eye(n)生成n阶单位阵
eye(m,n)生成mxn阶单位阵
eye(size(A))生成与矩阵A大小相同的单位阵
1.5.2生成全1矩阵
ones(n)生成n阶全1矩阵
ones(m,n)生成mxn阶全1矩阵
ones(size(A))生成与矩阵A大小相同的全1矩阵
1.5.2生成全0矩阵
zeros(n)生成n阶全0矩阵
zeros(m,n)生成mxn阶全0矩阵
zeros(size(A))生成与矩阵A大小相同的全0矩阵
1.5.2幻方矩阵(魔阵)即每行每列和对角线上元素之和相等
命令:
magic(n)
第三关:
这一关,我们来画图成果展示
y=[1324623453]把y画出来
y=[1324623453]plot(y)
x=0~2π,0.2为步长y=sinx的二维图形!
x=0:
0.2:
2*pi;y=sin(x);
plot(x,y,'b.')
xlabel('X');
ylabel('Y')
;title('绘制sinx');
gridon
X=0~10,步长为1;Y=x2-10x+6;画二维图
为图设置标题为:
“绘制Y=x^2-10x+6”
横轴标签:
x纵轴标签:
y
最后还要在图形背景加上网格哦!
x=linspace(0,10,10);
y=power(x,2)-10*x+6;
plot(x,y);xlabel('X');ylabel('Y');
title('绘制Y=x^2-10x+6');
gridon
2.1plot指令的基本调用格式
2.1.1plot(x)x为向量时,元素下标横坐标、元素值纵坐标
2.1.2plot(x,y)x、y为同维数组时,X元素横坐标Y元素纵坐标的曲线
2.1.3plot(x1,y1,x2,y2,…)
以x1横坐标、y1纵坐标的曲线1,
以x2横坐标、y2纵坐标的曲线2,等等。
其中x横坐标,y纵坐标,绘制y=f(x)函数曲线。
2.2多次叠绘
多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。
holdon保持当前坐标轴和图形,并可以接受下一次绘制。
holdoff取消当前坐标轴和图形保持,这种状态下,调用plot绘制完全新的图形,不保留以前的坐标格式、曲线。
2.3MATLAB允许在同一图形窗口布置几幅独立的子图。
具体指令:
subplot(m,n,k)在指定的位置上开辟子图,并成为当前图。
图形窗口包含(mxn)个子图,k为要指定的当前子图的编号。
其编号原则左上方为第1子图,然后向右向下依次排序
subplot(1,1,1)命令Subplot(1,1,1)返回非分割状态。
解x=linspace(0,2*pi,100);
y=sin(x);z=cos(x);
a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps)
subplot(2,2,1);plot(x,y),title('sin(x)')
subplot(2,2,2);plot(x,z),title('cos(x)')
subplot(2,2,3);plot(x,a),title('sin(x)cos(x)')
subplot(2,2,4);plot(x,b),title('sin(x)/cos(x)')
2.4plot调用格式PLOT(X,Y,’S’)%S为线的类型
2.4.1曲线线形控制符
符号
-
:
-.
--
含义
实线
虚线
点划线
双划线
曲线颜色控制符
符号
b
g
r
c
m
y
k
w
含义
兰
绿
红
青
P红
黄
黑
白
曲线的线形控制符、颜色控制符可组合使用,也可单独使用。
先后次序不影响绘图结果。
2.5图形处理
2.5.1在图形上加格栅、图例和标注
[1]gridon:
加格栅在当前图上
gridoff:
删除格栅
[2]xlabel(‘X’):
在当前图形的x轴标记X
ylabel(‘Y’):
在当前图形的y轴标记Y
zlabel(‘Z’):
在当前图形的z轴标记Z
title(‘标题’):
在当前图形的顶端标记标题
[3]gtext(‘string’)
命令gtext(‘sinx’)用鼠标放置标注
-----运行命令gtext(‘string’)时,
屏幕上出现当前图形,在图形上出现一个交叉,的十字,该十字随鼠标的移动移动,当按下鼠,标左键时,该标注string放在当前十交叉的位置.
例在区间[0,2*pi]画sin(x)和cos(x)
并分别标注“sin(x)”,”cos(x)”
解x=linspace(0,2*pi,30);
y=sin(x);z=cos(x);
plot(x,y,x,z)
gtext('sin(x)');gtext('cos(x)')
2.5.2定制坐标范围
Axis([x最小值x最大值y最小值y最大值z最小值z最大值])
Axisauto将坐标轴返回到自动缺省值
第4关:
图书馆借Matlab相关书籍或网上下载相关资料
虽然没有借书但是下载了不少书籍
第5关:
成果展示
试作信号的曲线试作信号的曲线
T=0~5,步长为0.05T=0~5,步长为0.05
t=linspace(0,5,101);t=linspace(0,5,101);
y=5*exp(-10*t);y=5*exp(-10*t);
plot(t,y,'r')plot(t,y,'.g')
xlabel('T');ylabel('F(t)');xlabel('T');ylabel('F(t)');
title('绘制f(t)=5*e^-^1^0^t')title('绘制f*(t)=5*e^-^1^0^k^t')
gridongridon
此题的要点就是kt是采样函数图形是离散的点
把这两个曲线画在一个图里吧!
x=linspace(0,5,100);
y=5*exp(-10*x);
z=5*exp(-10*x);
holdon
subplot(2,1,1);plot(x,z,'r'),
title('f(t)=5e^-^1^0^t')
xlabel('t')ylabel('f(t)')
gridon
subplot(2,1,2);plot(x,y,'g.'),
title('f*(t)=5e^-^1^0^k^t')
xlabel('t')ylabel('f(t)')
gridon
3.1各种字母含义
符号
含义
符号
含义
A+B
加法
exp
E为底的指数
A-B
减法
Power(x,y)
X的Y次幂
A*B
乘法
sqrt
平方根
A.*B
对应元素相乘
min
最小值
A\B
左除
max
最大值
A/B
右除
pi
内建的π值
A./B
A除B对应元素除
inf
∞值,无限大(1/0)
A.^n
A的各元素n次方
clear
清除所有变量名称
A.^B
两矩阵对应元素乘方
%
后面为注释.
A’
求A转置
sin
正弦
ans
预设的计算结果的变量名
cos
余弦
i或j
虚数单位i=j=(-1)^(1/2)
pi
内建的π值
第一天的学习结束了数组必须用点乘点除
第二天的学习开始了
第六关:
成果展示
1、那么的幅频特性曲线是否会画呢?
记得加标题和标签哦
要求:
频率w=-50~50,步长为1
幅频特性曲线
symst
f=5*exp(-10*t);
laplace(f)%求出拉式变换
%ans=5/(s+10)
w=linspace(-50,50,101);
%n-1=(50--50)/1;n=101
y=5./(sqrt(w.^2+100));%s=jw求模
plot(w,y);
title('f(t)=5e^-^1^0^t的频率特性');
xlabel('w(rad/s)');
ylabel('f(jw)')
2、Matlab可以很方便地求函数的拉氏变换!
结果
使用Matlab求下列函数的拉氏变换
F1=e-at
F2=t
F3=te-at
F4=sin(wt)
F5=e-atcos(wt)
symsta;f=exp(-a*t);F1=laplace(f)
symst;f=t;F2=laplace(f)
symsat;f=t*exp(-a*t);F3=laplace(f)
symswt;f=sin(w*t);F4=laplace(f)
symswta;f=exp(-a*t)*cos(w*t);F5=laplace(f)
3用matlab求反拉氏变换也难不倒我啦
拉式反变换结果
f1=1/s
f2=1/(s+a)
f3=1/s2
f4=w/(s2+w2)
f5=1/(s(s+2)2(s+3))
symss;f=1/s;F1=ilaplace(f)
symssa;f=1/(s+a);F2=ilaplace(f)
symssa;f=1/(s^2);F3=ilaplace(f)
symssw;f=w/(s^2+w^2);F4=ilaplace(f)
symss;f=1/(s*((s+2)^2)*(s+3));F5=ilaplace(f)
拉氏变换挺熟练,计算机控制系统里需要z变换,我也会呢
F1=e-akT结果
F2=kT
F3=kT*e-akT
F4=sin(akT)
F5=ak
symsakt;f=exp(-a*k*t);F1=ztrans(f)
symskt;f=k*t;F2=ztrans(f)
symsakt;f=k*t*exp(-a*k*t);F3=ztrans(f)
symsakt;f=sin(a*k*t);F4=ztrans(f)
symsak;f=a*k;F5=ztrans(f)
Whatabout逆z变换?
Ofcoursesoeasy
F1=z/(z-1)
F2=z/(z-e-aT)
F3=Tz/(z-1)2
F4=z/(z-a)
F5=z/((z+2)2(z+3))
symsz;f=z/(z-1);F1=iztrans(f)
symszat;f=z/(z-exp(-a*t));F2=iztrans(f)
symszt;f=t*z/(z-1)^2;F3=iztrans(f)
symsza;f=z/(z-a);F4=iztrans(f)
symsz;f=z/((z+2)^2*(z+3));F5=iztrans(f)
各种函数
4.1积分变换
fourier函数--Fourier积分变换
ifourier函数--逆Fourier积分变换
laplace函数--Laplace变换
ilaplace函数--逆Laplace变换
ztrans函数--求z-变换
iztrans函数--逆z-变换
sym函数--定义符号矩阵
syms函数--定义矩阵的又一函数
conv函数--矩阵的卷积和多项式乘法
还有例1-2求方程3x4+7x3+9x2-23=0的全部根。
p=[3,7,9,0,-23];%建立多项式系数向量
x=roots(p)%求根
这一次,唉?
又倒数第一再接再厉哦
第二天结束了
第三天:
结果
1、建立上侧两式的传递函数模型
PS:
采样周期为0.1s也要加进去哦
num=[110];
den=[156];
GS=tf([110],[156])%S模型
GZ=tf(num,den,0.1)%Z模型
2、建立以上两式的零极点增益模型结果
PS:
采样周期为0.1s也要加进去哦
num=[110];
den=[156];
sys=tf([110],[156])%S模型
[z,p,k]=tf2zp(num,den)%求零极k
GS=zpk(z,p,k)
GZ=zpk(z,p,k,0.1)
我们当然学会传递函数模型和
零极点增益模型的相互转化结果
1、传递函数模型转换成零极点增益模型
num=[110];
den=[156];
[z,p,k]=tf2zp(num,den)%求零极点增益
GS=zpk(z,p,k)
GZ=zpk(z,p,k,0.1)
z=[0,-1]%零极点增益模型转化成传递函数模型
p=[-3,-2]
k=[1]
Gs1=zpk(z,p,k)
Gz1=zpk(z,p,k,0.1)
[num,den]=zp2tf(z',p',k)
Gs2=tf(num,den)
Gz2=tf(num,den,0.1)
我们用一道练习题来巩固一下学习成果吧!
建立下式的系统模型
num=[1342];
den=[1410816];
sys=tf([1342],[1410816])
[z,p,k]=tf2zp(num,den)%求零极点增益
GS=zpk(z,p,k)
GZ=zpk(z,p,k,0.1)
z=[-1+1i,-1-1i,-1]
p=[-2+2i,-2-2i,1.4142i,-1.4142i]
k=[1]
Gs1=zpk(z,p,k)
Gz1=zpk(z,p,k,0.1)
[num,den]=zp2tf(z',p',k)
Gs2=tf(num,den)
Gz2=tf(num,den,0.1)
5.1MATLAB的控制系统工具箱(ControlSystemToolbox)提供了丰富的建立和转换线性定常系统数学模型的方法。
5.1.1传递函数(TransferFunction:
TF)模型
对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。
num=[b1,b2,…,bm,bm+1]
den=[a1,a2,…,an,an+1]
注意:
它们都是按s的降幂进行排列的。
5.1.2tf()函数——建立/转换传递函数模型
格式:
sys=tf(num,den)
sys=tf(num,den,Ts)
sys=tf(’s’)
sys=tf(’z’,Ts)
5.2.1零极点增益(Zero-Pole-Gain:
ZPK)模型
零点向量Z=[z1,z2,z3,……,zm]
极点向量p=[p1,p2,p3,……,pn]
系统增益K
5.2.2zpk()函数——建立/转换零极点增益模型
格式:
sys=zpk(z,p,k)
sys=zpk(z,p,k,Ts)
第三天结束了
第四天开始了
第八关:
成果
1、已知离散系统采样周期T=1s
被控对象传函
求带零阶保持器的开环脉冲传函
A=zpk([],[0,-1],1)%1/s(s+1)被控对象传函没有零点极点为0-1增益等于1
B=c2d(A,1,'zoh')%c2d是指把连续函数进行离散化的函数,A指的是被离散的函数,1
%表示离散时间间隔。
zoh带零阶保持器的离散化
%2求该开环系统经单位反馈变成闭环系统后的单位阶跃响应曲线
c=B/(1+B)%闭环传函
step(c);%单位阶跃响应曲线
title('阶跃响应');
xlabel('时间/s');ylabel('幅度')
第九关:
展示下成果
终于到我这里了,我都快等不及了
用simulink建立如下系统的PID控制模型
要求:
输入为阶跃信号,输出用示波器观测
6.1.1首先来看mux
Mux模块的基本思想就是将多路信号集成一束,这一束信号在模型中传递和处理中都看做
是一个整体。
6.1.2在MATLAB的命令窗口运行simulink命令,或单击工具栏中的
图标,就可以打开
Simulink模块库浏览器(SimulinkLibraryBrowser)窗口
6.1.3单击工具栏上的
图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。
6.1.4右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。
6.1.5用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图7.2所示。
6.1.3用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。
6.1.3在“untitled”窗口中,用鼠标指向“SineWave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。
如图7.3所示。
6.1.3开始仿真,单击“untitled”模型窗口中“开始仿真”图标
,或者选择菜单“Simulink”——“Start”,则仿真开始。
双击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形。
如图7.4所示。
6.1.3保存模型,单击工具栏的
图标,将该模型保存为“Ex0701.mdl”文件。
6.2.1输入信号源模块库(Sources):
输入信号源模块是用来向模型提供输入信号。
名称
模块形状
功能说明
Constant
恒值常数,可设置数值
Step
阶跃信号
Ramp
线性增加或减小的信号
SineWave
正弦波输出
6.2.2接收模块库(Sinks):
接收模块是用来接收模块信号的
名称
模块形状
功能说明
Scope
示波器,显示实时信号
Display
实时数值显示
XYGraph
显示X-Y两个信号的关系图
6.2.3连续系统模块库(Continuous):
连续系统模块是构成连续系统的环节
名称
模块形状
功能说明
Integrator
积分环节
Derivative
微分环节
State-Space
状态方程模型
TransferFcn
传递函数模型
Zero-Pole
零—极点增益模型
6.2.3离散系统模块库(Discrete):
离散系统模块是用来构成离散系统的环节,
名称
模块形状
功能说明
DiscreteTransferFcn
离散传递函数模型
DiscreteZero-Pole
离散零极点增益模型
DiscreteState-Space
离散状态方程模型
DiscreteFilter
离散滤波器
Zero-OrderHold
零阶保持器
First-OrderHold
一阶保持器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 报告 新手入门