MATLAB复习知识点汇总.docx
- 文档编号:12558404
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:16
- 大小:156.69KB
MATLAB复习知识点汇总.docx
《MATLAB复习知识点汇总.docx》由会员分享,可在线阅读,更多相关《MATLAB复习知识点汇总.docx(16页珍藏版)》请在冰点文库上搜索。
MATLAB复习知识点汇总
MATLAB复习
1、实现符号函数
运算功能的函数m文件为:
functiony=sgn(x)
ifx<0
y1=-1;
elseifx==0
y1=0;
else
y1=1;
end
y=y1;
2、求满足1+2+3+…n<100的最大正整数n的MATLAB程序为:
sum=0;n=0;
whilesum<100
n=n+1;
sum=sum+n;
end
sum=sum-n;
n=n-1;
n,sum
3、m文件有两种形式,一种称为命令文件(ScriptFile),另一种称为函数文件(FunctionFile),两种文件的扩展名都是m。
4、反馈控制系统品质要求:
稳定性、准确性、快速性
5、按不同系统的特征方程式,可将自动控制系统分为线性系统和非线性系统。
6、MATLAB控制相关的工具箱
(1)控制系统工具箱
(2)系统辨识工具箱
(3)模型预测控制工具箱
(4)鲁棒控制工具箱
(5)神经网络工具箱
7、MATLAB系统的构成
(1)开发环境
(2)数学函数库(3)MATLAB语言(4)图形处理系统(5)应用程序接口
8、常用工具箱
(1)控制类工具箱
(2)应用数学类工具箱(3)信号处理类工具箱(4)其他常用工具箱
9、MATLAB语句形式:
>>变量=表达式
10、MATLAB常用命令
quit关闭MATLAB
exit关闭MATLAB
clc清除MATLAB命令窗口中的所有显示内容
clear清除工作空间中保存的所有变量
11、MATLAB基本数据类型:
双精度数组、字符串数组、元胞数组、结构数组
12、矩阵的创建
(1)直接输入法
(2)通过数据文件创建矩阵(3)通过m文件创建矩阵(4)通过函数创建矩阵(5)冒号法
13、冒号法
[1]冒号法构造向量
冒号表达式的一般格式为:
向量名=初值:
步长:
终值
[2]冒号法构造矩阵
一般格式为:
A(:
j):
表示矩阵A的第j列;
A(i,:
):
表示矩阵A的第i行。
A(i,j)表示取矩阵A的第i行第j列交叉位置的元素
14、矩阵的运算
/(矩阵的右除)或\(矩阵的左除)
A-1=inv(A)矩阵的逆
15、求下面方程组的根
>>A=[2,1,-3;3,-2,2;5,-3,-1];
>>B=[5;5;16];%列向量
>>X=A\B
16、矩阵的大小测度
行数:
m=size(A,1)
列数:
n=size(A,2)
测行数和列数:
d=size(A)
17、矩阵的元素操作
A(2,3):
找出元素
A(3,5)=-1:
赋值
18、符号变量和符号表达式
①用函数sym建立符号变量、符号表达式和符号矩阵。
调用格式为:
变量=sym(‘表达式’)
②用函数syms建立符号变量、符号表达式和符号矩阵。
调用格式为:
Symsvar1var2var3…
19、符号微积分
limit(f,x,a)求表达式f当x→a时的极限
diff(f)求表达式f对缺省变量的微分
diff(f,n)求表达式f对缺省变量求n阶微分
diff(f,v)求表达式f对变量v的微分
diff(f,v,n)求表达式f对变量v的n阶微分
int(f)求表达式f对缺省变量的积分
int(f,v)求表达式f对变量v的积分
int(f,v,a,b)求表达式f在区间(a,b)上对变量v的定积分
20、已知f(x)=ax2+bx+c,求f(x)的微分和积分。
解:
>>symsabcx
>>f=sym(‘a*x^2+b*x+c’)
f=
a*x^2+b*x+c
>>diff(f,a)
ans=
x^2
>>int(f)
ans=
1/3*a*x^3+1/2*b*x^2+c*x
>>int(f,x,0,2)
ans=
8/3*a+2*b+2*c
21、MATLAB绘图命令
例在[0,2]用红线画sinx,用绿圈画cosx.
x=linspace(0,2*pi,30);%%(30等分)
y=sin(x);
z=cos(x);
plot(x,y,'r',x,z,'go')
符号函数(显函数、隐函数和参数方程)画图
ezplot命令
(1)ezplot(‘f(x)’,[a,b])
表示在a (2)ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax]) 表示在区间xmin (3)ezplot(‘x(t)’,’y(t)’,[tmin,tmax]) 表示在区间tmin 例在[-2,0.5],[0,2]上画隐函数 的图. 解: 输入命令: ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) 例在[-1,2]上画 的图形. 解: 先建M文件myfun1.m: functionY=myfun1(x) Y=exp(2*x)+sin(3*x.^2) 再输入命令: fplot(‘myfun1’,[-1,2]) 处理图形 (1)GRIDON: 加格栅在当前图上GRIDOFF: 删除格栅 (2)hh=xlabel(string): 在当前图形的x轴上加图例string hh=ylabel(string): 在当前图形的y轴上加图例string hh=zlabel(string): 在当前图形的z轴上加图例string hh=title(string): 在当前图形的顶端上加图例string (3)holdon保持当前图形,以便继续画图到当前图上 holdoff释放当前图形窗口 22、Simulink仿真实例 例题1、使用Simulink创建系统,求解非线性微分方程 .其初始值为 绘制函数的波形. 例题2、力-质量系统,要拉动一个箱子(拉力f=1N),箱子质量为M(1kg),箱子与地面存在摩擦力[(b=0.4N(/m/s)],其大小与车子的速度成正比。 其运动方程式为: 拉力作用时间为2s,建构的模型为 例题3、力-弹簧-阻尼系统,假设箱子与地面无摩擦存在,箱子质量为M(1kg),箱子与墙壁间有线性弹簧(k=1N/m)与阻尼器(b=0.3N/ms-1)。 阻尼器主要用来吸收系统的能量,吸收系统的能量转变成热能而消耗掉。 现将箱子拉离静止状态2cm后放开,试求箱子的运动轨迹。 运动方程式为: 23、控制系统数学模型 1、传递函数(TransferFunction: TF)模型 num=[b0,b1,…,bm-1,bm],den=[a0,a1,…,an-1,an] 在MATLAB中,控制系统的分子多项式系数和分母多项式系数分别用向量num和den表示,即 2、零极点增益(Zero-Pole-Gain: ZPK)模型 在MATLAB中,控制系统的零点和极点分别用向量Z和P表示,即 Z=[z1,z2,…,zm],P=[p1,p2,…,pn] 3、传递函数模型 sys=tf(num,den)生成传递函数模型sys 直接生成传递函数模型。 在MATLAB命令窗口中输入: >>sys=tf([132],[1573]) 4、零极点增益模型 sys=zpk(z,p,k)%建立连续系统的零极点增益模型sys。 z,p,k分别对应系统的零点向量,极点向量和增益 sys2=tf(sys)%将零极点增益模型转换为传递函数模型 【例2.1】已知控制系统的传递函数为,用MATLAB建立其数学模型 【解】 (1)生成连续传递函数模型。 在MATLAB命令窗口中输入: >>num=[132]; >>den=[1573]; >>sys=tf(num,den) 【例2.3】系统的零极点增益模型为,用MATLAB建立其传递函数模型。 【解】在MATLAB命令窗口中输入: >>z=[-0.1,-0.2];p=[-0.3,-0.3];k=1; >>sys=zpk(z,p,k)%建立系统的零极点增益模型 5、模型连接 (1)串联连接 格式: sys=series(sys1,sys2) (2)并联连接 格式: sys=parallel(sys1,sys2) (3)反馈连接 格式: sys=feedback(sys1,sys2,sign) 24、时域分析 时域响应性能指标求取 1、峰值时间 [Y,k]=max(y)%求出y的峰值及相应的时间 timetopeak=t(k)%获得峰值时间 2、超调量 C=dcgain(G)%求取系统的终值 [Y,k]=max(y)%求出y的峰值及相应的时间 percentovershoot=100*(Y-C)/C%计算超调量 3、上升时间 C=dcgain(G) n=1 whiley(n) n=n+1 end m=1; risetime=t(n) 4、调节时间 C=dcgain(G) i=length(t) while(y(i)>0.98*C)&(y(i)<1.02*C) i=i-1 end Settingtime=t(i) ※※例1已知二阶系统传递函数为 ,编程求取系统的性能指标。 G=zpk([],[-1+3*i,-1-3*i],3);%计算最大峰值时间和它对应的超调量 C=dcgain(G) [y,t]=step(G); plot(t,y) grid [Y,k]=max(y); timeopeak=t(k)%取得最大峰值时间 percentovershoot=100*(Y-C)/C%计算超调量 n=1%计算上升时间 whiley(n) n=n+1 end risetime=t(n) i=length(t);%计算稳态响应时间 while(y(i)>0.98*C)&(y(i)<1.02*C) i=i-1; end settingtime=t(i) 例2已知单位负反馈系统,其开环传递函数为 ,其中n=1,试绘制分别为0,0.2,0.4,0.6,0.9,1.2,1.5时其单位负反馈系统的单位阶跃响应曲线。 wn=1 sigma=[0,0.2,0.4,0.6,0.9,1.2,1.5] figure (1);holdon num=wn*wn t=linspace(0,20,200)'%将t在0到20之间均等分成200份 fori=sigma den=conv([1,0],[1,2*wn*i]); s1=tf(num,den) sys=feedback(s1,1) step(sys,t) grid end title('典型二阶系统取不同阻尼比时的单位阶跃响应') holdon gtext('sigma=0');gtext('sigma=0.2');gtext('sigma=0.4');gtext('sigma=.6'); gtext('sigma=0.9');gtext('sigma=1.2');gtext('sigma=1.5'); 例3已知单位负反馈的二阶系统,其开环传函为 其中T=1,试绘制k分别为0.1,0.2,0.5,0.8,1.0,2.4时,其单位负反馈系统的单位阶跃响应曲线。 T=1 k=[0.1,0.2,0.5,0.8,1.0,2.4] t=linspace(0,20,200)' num=1;den=conv([1,0],[T,1]) forj=1: 6 s1=tf(num*k(j),den) sys=feedback(s1,1) y(: j)=step(sys,t); end plot(t,y(: 1: 6));grid title(‘典型二阶系统取不同开环增益时的单位阶跃响应') gtext('k=0.1');gtext('k=0.2');gtext('k=0.5'); gtext('k=0.8');gtext('k=1.0');gtext('k=2.4'); 例4已知单位负反馈的二阶系统,其中T=1,K=1,试绘制分别为0,0.05,0.2,0.5,1.0,2.4时,其单位负反馈系统的单位阶跃响应曲线。 T=1 k=1 tou=[0,0.05,0.2,0.5,1.0,2.4] t=linspace(0,20,200)' num=1 forj=1: 6 den=conv([1,0],[T,1+tou(j)]) s1=tf(num*k,den) sys=feedback(s1,1) y(: j)=step(sys,t); end plot(t,y(: 1: 6));grid title('典型二阶系统采用输出微分反馈时的单位阶跃响应') gtext('tou=0');gtext('tou=0.05');gtext('tou=0.2'); gtext('tou=0.5');gtext('tou=1.0');gtext('tou=2.4'); 25、生成特定的激励信号的函数gensig() 格式: [u,t]=gensig(type,tau) 功能: 按指定的类型type和周期tau生成特定类型的激励信号u。 其中变元type可取字符为: ‘sin’(正弦)、‘square’(方波)、‘pulse’(脉冲)。 26、单位冲激响应函数impulse() 格式: impulse(sys) 例: 系统传递函数为: 求脉冲响应。 MATLAB程序如下: sys=tf(4,[114]);%生成传递函数模型 impulse(sys);%计算并绘制系统的单位冲激响应 title('脉冲响应'); 27、任意输入的响应函数lsim() 格式: lsim(sys,u,T) 功能: 计算和绘制LTI模型sys在任意输入u、持续时间T的作用下的输出y,不返回数据,只返回图形。 ※※例: 求系统: 的方波响应,其中方波周期为6秒,持续时间12秒,采样周期为0.1秒。 MATLAB程序为: [u,t]=gensig('square',6,12,0.1);%生成方波信号 plot(t,u,'--');holdon;%绘制激励信号 sys=tf([1,1],[1,2,5]);%生成传递函数模型 lsim(sys,u,t);%系统对方波激励信号的响应 27、阶跃响应函数step()格式: step(sys) 28、Bode图绘制与Nyquist图绘制 Bode图绘制 bode(sys) Nyqusit图绘制 nyquist(sys) 例: 试绘制开环系统H(s)的Nyquist曲线,判断闭环系统的稳定性,并求出闭环系统的单位冲激响应。 其中 MATLAB程序为: k=50;z=[];p=[-5,2]; sys=zpk(z,p,k); figure (1);nyquist(sys);title('Nyquist曲线图'); figure (2);sb=feedback(sys,1); impulse(sb);title('单位冲激响应'); 29、MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。 30、MATLAB中clf用于清除图形窗、clc用于清除指令窗中显示内容、clear用于清除MATLAB工作空间中保存的变量。 31、为了使两个plot的图形在同一个坐标显示,可以用(holdon)命令进行图形保持,一个图形窗口上绘制多个图形可以用(subplot())函数进行分割窗口。 可以使用___gridon____命令为图形添加网格。 32、求可逆矩阵A的逆矩阵的指令是__inv(A)__. 33、M文件包括__M脚本__文件和__M函数__文件. 34、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第2行第3列元胞中的内容用A{2,3}。 35、“左除”与“右除”有什么区别? 在通常情况下,左除x=a\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\b b/a。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 复习 知识点 汇总