matlab高级讲义(第四章)
合集下载
第四章 MATLAB课件(2)
部函数(Build—in Functions)创建。
figure创建图形窗口
调用格式: h=figure(n) n为窗口序号
例:创建1号窗口,返回句柄。 h=figure(1) h= 1 返回值为窗口号数
axes 创建轴对象
h=axes( ‘position’, [left, bottom, width, height] ) 定义轴对象的位置与大小 line 创建线对象 h=line( x, y, z) 如果不指定z, 则在x, y平面上 划线。
界面控制(Uicontrol):图形窗口的子代,独立于轴。创建用户界面 控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。 界面菜单(Uimenu): 图形窗口的子代,独立于轴。创建用户界面菜 单对象,允许用户在图形窗口的上方建立菜单。
窗口对象
1 0.8 0.6 0.4 0.2 0
轴对象
>>lin2=line(sin(20*x),cos(20*x),’LineStyle’,’:’,’Color’,’b’) %用0.5号细虚蓝线画弦。此线句柄存放于lin2。 fig = 1 ax = 0.0013 lin1 = 157.0011 lin2 = 157.0012
例:创建三维网线图时设置对象品性 >> fig_2=figure; >> ax=axes('Box','on','View',[-37.5,30],'Nextplot','replace'); >> [x,y,z]=peaks(25); >> surfh=surface(x,y,z,'Facecolor','w','LineWidth',2,'Edgecolor','k'); 说明:由于在设置中 “Facecolor”设为“w”,这实 际上是高层指令mesh所画 的网线图。此图的网线比 较租。
matlab讲义第四章
图4.11 函数PEAKS的带洞孔曲面图
MATLAB的surf也有两个同种函数:surfc,它画出具有 基本等值线的曲面图。surfl,它画出一个有亮度的曲面 图。例如:
» [X,Y,Z]=peaks(30); » surfc(X,Y,Z) % surf plot with contour plot » grid,xlabel('x-axis'),ylabel('yaxis'),zlabel('z-axis') » title('SURFC of PEAKS')
图4.3 正弦曲线图
利用在x-y平面的矩形网格点上的z轴坐标值,MATLAB 定义了一个网格曲面。MATLAB通过将邻接的点用直线连接起 来形成网状曲面 ,其结果好象在数据点有结点的鱼网。例 如,用MATLAB的函数peaks可以画一个简单的曲面。 » [X,Y,Z]=peaks(30); » mesh(X,Y,Z) » grid on » xlabel('x-axis'),ylabel('y-axis'),zlabel('zaxis') » title('MESH of PEAKS')
图4.4 函数PEAKS的网格图
在显示器上要注意到线的颜色与网格的高度有关。一般情况下, 函数mesh有可选的参量来控制绘图中所用的颜色。关于MATLAB如何 使用、改变颜色在下面讨论。在任何情况下,由于颜色用于增加图 形有效的第四维,这样使用的颜色被称做伪彩色。 上图所示,网格线条之间的区域是不透明的。MATLAB命令 hidden控制网格图的这个特性。例如,用MATLAB的函数sphere产生 两个球面如下: » [X,Y,Z]=sphere(12); » subplot(1,2,1) » mesh(X,Y,Z),title('Opaque') » hidden on; » axis off; » subplot(1,2,2),title('Transparent'); » mesh(X,Y,Z); » hidden off; » axis off;
MATLAB第四章
‘unreal’
非“实”符号变量。
调用格式4:syms(‘a1’,’a2’,’a3’) 功能:把字符串a定义为基本符号对象。 另外,格式4的简洁形式如下:syms a1 a2 a3 例1:比较符号常数形成的差异 >> a=[6,1/6,sqrt(2),pi/3-1] a= %为数值常数
6.0000 0.1667 1.4142 0.0472
第四章 符号计算目录
§4-1 在线帮助和系统演示 §4-2 创建和使用符号对象 §4-3 运算符 §4-4 微积分 §4-5线性代数 §4-6符号计算在控制理论中的应用 §4-7微分方程求解 §4-8约当标准型
第四章 符号计算
前一章介绍了数值计算,它的操作对象都有确定的数值,如果 未对某个变量赋值而执行命令,MATLAB则会给出错误信息。 如: >> clear >> A=[1 1 1;x 3 4] %在数值计算中,x没赋值 ??? Undefined function or variable 'x'. 如果把它们看作符号计算,则不会出现错误信息。 如: >> A=sym('[1 1 1;x 3 4]') A= [ 1, 1, 1] [ x, 3, 4]
end
end
使用M文件来创建符号函数是比较方便的。 >> genhilb(5)
ans = [ 1/(2-t), [ 1/(3-t), [ 1/(4-t), [ 1/(5-t), [ 1/(6-t),
1/(3-t), 1/(4-t), 1/(5-t), 1/(6-t), 1/(7-t),
1/(4-t), 1/(5-t), 1/(6-t), 1/(7-t), 1/(8-t),
matlab第四章PPT.ppt.ppt
25
3.矩阵逆 如果n×n矩阵A和B,满足AB=In×m,那么B称作A的逆, 并采用符号A-1记述之。
MATLAB提供一个求矩阵逆的指令如下:
A_1=inv(A) 求非奇异方阵A的逆,使A*A_1=I
26
4.2.4 一般代数方程的解
[x, favl]=fzero(fun,x0) [x, fval]=fsolve(fun,x0) 求一元函数零点指令的最简格式 解非线性方程组的最简单格式
2 0 . 1 t
例 4 . 2 9 求 f ( t ) s i n te 0 . 5 | t | 的 零 点 。
27
(2) 数值法求解 (A)使用内联对象表示被处理函数。 (B)作图法观察函数零点分布
28
(C)利用zoom和ginput指令获得零点的初始近似值。 >>zoom on >>[tt,yy]=ginput(5);zoom off
一、近代交通业发展的原因、特点及影响 1.原因 (1)先进的中国人为救国救民,积极兴办近代交通业,促
进中国社会发展。
(2)列强侵华的需要。为扩大在华利益,加强控制、镇压
中国人民的反抗,控制和操纵中国交通建设。
(3)工业革命的成果传入中国,为近代交通业的发展提供 了物质条件。
2.特点 (1)近代中国交通业逐渐开始近代化的进程,铁路、水运和
23
1 5 9 13 2 6 10 14 x 的解。 例4.2 8求方程 3 7 11 15 4 8 12 16 如何确定解得性状(唯一与否,准确与否); 如何求特解和齐次解; 如何检查解得正确性。
24
(3) 求特解和通解,并对由它们 (1)创建待解方程的A和b (2)检查b是否在A的值空间中 构成的全解进行验算 (确定解:不唯一,准确解)
matlab第四章课件
4.1.1 M文件的分类
M文件是由若干 Matlab 命令组合在一起构成的,它可 以完成某些操作,也可以实现某种算法
事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言编写的 M文件 用户也可以结合自己的工作需要,开发自己的程序或工具箱
M文件根据调用方式的不同可以分为两类: Script file:命令文件/脚本文件 Function file:函数文件
例2 输入x,y的值,并将它们的值互换后输出(swap.m)。 x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y); 例3 求一元二次方程ax2 +bx+c=0的根(root.m)。 a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
例如:
s=0; a=[12 13 14;15 16 17;18 19 20;21 22 23] for k=a s=s+k; end disp(s); 该程序的功能是求矩阵各行元素之和,执行结果是: 39 48 57 66
while语句
while expr (条件) statement(循环体语句) end 若expr成立,则执行循环体的内容,执行后 再判断条件是否为真,如果不成立则跳出循环体。
[工学]第4章matlab
其中,参数x是输入信号向量,b和a差分方程的系数向量, 即 b [b0 , b1 , , bM ], a [a0 , a1 , , aN ] 要求 a0 1 ,xi是等效初始条件的输入向量,由函数 filtic产生,调用格式如下 xi=filtic(b,a,ys,xs); 其中,ys和xs是初始条件向量,即
MATLAB数字信号处理
离散时间系统
0.5n , n 0 h(n) 0.5n u(n) n0 0,
(b)将差分方程改为 y(n 1) 2 y(n) 2 x(n) 令输入 x(n) (n) ,则有
h(1) 2h(0) 2 (0) 2
h(2) 2h(1) 2 (1) 22
ay1 (n) by2 (n) T[ax1 (n) bx2 (n)]
2)时不变系统
离散时间时不变系统是指系统对输入信号的响应与信号 加于系统的时间无关,或者说输入序列的移位或延迟引起输 出序列相同的移位或延迟。假设系统对输入x(n)的响应为 y(n),即
MATLAB数字信号处理
离散时间系统
x ( n) h( n)
y ( n)
等价
h( n)
x ( n)
y ( n)
2)结合律
x(n) h1 (n) h2 (n) [ x(n) h1 (n)] h2 (n) x(n) [h1 (n) h2 (n)]
MATLAB数字信号处理
离散时间系统
即,一个序列先后通过两个单位冲激响应分别为h1(n) 和h2(n)的线性时不变系统,等效于通过一个线性时不变系 统,其单位冲激响应h(n)为h1(n)和h2(n)的线性卷积.示意 图如下.
第4章 离散时间系统和Z变换
MATLAB数字信号处理
离散时间系统
0.5n , n 0 h(n) 0.5n u(n) n0 0,
(b)将差分方程改为 y(n 1) 2 y(n) 2 x(n) 令输入 x(n) (n) ,则有
h(1) 2h(0) 2 (0) 2
h(2) 2h(1) 2 (1) 22
ay1 (n) by2 (n) T[ax1 (n) bx2 (n)]
2)时不变系统
离散时间时不变系统是指系统对输入信号的响应与信号 加于系统的时间无关,或者说输入序列的移位或延迟引起输 出序列相同的移位或延迟。假设系统对输入x(n)的响应为 y(n),即
MATLAB数字信号处理
离散时间系统
x ( n) h( n)
y ( n)
等价
h( n)
x ( n)
y ( n)
2)结合律
x(n) h1 (n) h2 (n) [ x(n) h1 (n)] h2 (n) x(n) [h1 (n) h2 (n)]
MATLAB数字信号处理
离散时间系统
即,一个序列先后通过两个单位冲激响应分别为h1(n) 和h2(n)的线性时不变系统,等效于通过一个线性时不变系 统,其单位冲激响应h(n)为h1(n)和h2(n)的线性卷积.示意 图如下.
第4章 离散时间系统和Z变换
matlab第四讲PPT课件
如需在同一窗口中布置独立的子图,则可在plot命令前加 上subplot命令将一个窗口划分为多个区域,每个区域一幅 子图。
语法:
subplot(m,n,k) 前图
%使m*n幅子图中的第k幅成为当
子图排列次序:先向右后向下
例:画4个子图
>>x=0:0.1:2*pi subplot(2,2,1) %分割为2*2个子图,左上方为当前图
(2)步骤2一般在图形较多的情况下,需要 指定图形窗口、子图时使用。
(3)除步骤1、2、3的其他步骤,可根据需 要改变前后次序。
4.1.3 多个图形绘制的方法
指定图形窗口
前面介绍的plot命令,绘制图形都是在默认 的Figure No.1窗口中,重复使用plot命令时, 后绘制的图形就将前面绘制的图形覆盖了。
plot(x,sin(x)) subplot(2,2,2) %右上方为当前图
plot(x,cos(x))
subplot(2,2,3) plot(x,sin(3*x))
subplot(224) 略逗号
plot(x,cos(3*x))
%左下方为当前图 %右下方为当前图,省
绘图后使用clf命令清除图形窗。 例:>>clf
(2)如果x是矩阵,而y是向量,则y的长度必须等于x的行 数或列数,绘制的方法与前述方法相似。
(3)如果x和y都是矩阵,则大小必须相同,将矩阵x的每列 和y的每列画一条曲线。
例:>>x1=[1 2 3]
y1=[1 2 3;4 5 6]
plot(x1,y1)
%每行1条曲线,第一条包含
(1,1)(2,2)(3,3),第二条包含(1,4)(2,5)(3,6)
用plot(x1,y1,x2,y2,…)命令绘制多条曲线
Matlab讲义-第四章Matlab语言程序设计基础2-10
函数m文件保存的文件名必须与其函数名相同;
输入参数用小括号括起来,输出参数则用方括号括 起来,如果参数多于1个,用逗号隔开;当函数无输 出参数时,输出参数项空缺或者用空的中括号表示。 必须由其它m文件来调用
4.3.2ቤተ መጻሕፍቲ ባይዱ数文件
function [area, volume]=area_volume(r)
if data(k)==0 BPSKCode(k)=1; else BPSKCode(k)=-1; end end
【练习】按要求绘制如下曲线并加标记。
data=[1 0 1];
二进制传输码元 1
横坐标:t
0.8
0.6
起始值:步长:终止值 0.4
0
dt length(data) 0.2
dt=0.01;
end
if 条件式1 语句组1;
else 语句组3;
end
% 注意:elseif中间无空格
if 条件式1 语句组1 ;
elseif 条件式2 语句组2
else 语句组3;
end
执行过程:条件式的结果为真执行相应的语句组
1或全1
注意: 条件式的结果为真执行相应的语句组
结果?
全1矩阵
非全1矩阵
clc,clear x=-3:0; if x>=-3 & x<=0
脚本是对工作空间中的现有数据进行操作,或 创建一个新数据,而且脚本所创建的任一变量在 脚本运行完都保留在工作空间中以便进一步使用。
clc,clear S=0; for x=2:2:100
S=S+x; end S
脚本文件举例
【例】:Lx1.m-键盘提示输入半径,计算一个球 的表面积和体积
MATLAB课件第四章
x(m)=[ ]; end
x
程序流控制命令
Input命令
input命令提示用户从键盘输入数值,字符串或表达 式,并接受其输入。
常用格式:a=input(‘please input a number:’)
disp命令
disp命令将表达式执行结果显示在屏幕上 常用格式: disp(x)
例:编写函数文件mmin,使该文件输出两个变量,第一 一个变量返回矩阵中的单个最小值。第二个输出参量, 返回单个最小值的行和列的下标。
function [m , i]=mmin(a) % MMIN Matrix minimum value. % MMIN(A) returns the minimum value in the matrix A % [M,I] = MMIN(A) in addition returns the indices of % the minimum value in I = [row col]. % Copyright (c) 1996 by Prentice Hall,Inc. if nargout==2, % return indices [m , i]=min(a) ; [m , ic]=min(m) ; i=[i(ic) ic] ; else m=min(min(a)); end
linspace函数
function y = linspace(d1, d2, n) %LINSPACE Linearly spaced vector. % LINSPACE(X1, X2) generates a row vector of
100 linearly % equally spaced points between X1 and X2. if nargin == 2 n = 100; end y = [d1+(0:n-2)*(d2-d1)/(floor(n)-1) d2];
x
程序流控制命令
Input命令
input命令提示用户从键盘输入数值,字符串或表达 式,并接受其输入。
常用格式:a=input(‘please input a number:’)
disp命令
disp命令将表达式执行结果显示在屏幕上 常用格式: disp(x)
例:编写函数文件mmin,使该文件输出两个变量,第一 一个变量返回矩阵中的单个最小值。第二个输出参量, 返回单个最小值的行和列的下标。
function [m , i]=mmin(a) % MMIN Matrix minimum value. % MMIN(A) returns the minimum value in the matrix A % [M,I] = MMIN(A) in addition returns the indices of % the minimum value in I = [row col]. % Copyright (c) 1996 by Prentice Hall,Inc. if nargout==2, % return indices [m , i]=min(a) ; [m , ic]=min(m) ; i=[i(ic) ic] ; else m=min(min(a)); end
linspace函数
function y = linspace(d1, d2, n) %LINSPACE Linearly spaced vector. % LINSPACE(X1, X2) generates a row vector of
100 linearly % equally spaced points between X1 and X2. if nargin == 2 n = 100; end y = [d1+(0:n-2)*(d2-d1)/(floor(n)-1) d2];
Matlab第四章详细讲解
v21 v2 = v22
v11 v21 V = v12 v22
λ 1 v11 A .v1 = λ 1 v1 = λ 1 v12
λ 2 v 21 A.v 2 = λ 2 v 2 = λ 2 v 22
A .v1
A .v 2
a11 a12 v11 v21 a11v11 + a12v12 a11v21 + a12v22 A*V = v v = a v + a v a v + a v a21 a22 12 22 21 11 22 12 21 21 22 22
2 − at
f ( t ) = (sin
t )e
−b=fzero(fun ,x0 ,option,p1,p2)
%(1)使用字符串表示被处理函数 P1=0.1;P2=0.5;
%按泛函指令要求,这里参数必须用P1,P2表示
y_C='sin(x).^2.*exp(-P1*x)-P2*abs(x)';
1、求函数的零点 (1)字符串表达式 q=quad(fun,a,b) 2、数值积分 (2)内联函数 3、解微分方程 q=quadl(fun,a,b) (3)“M函数文件”的函数句柄
[t,y]=ode45(fun ,tspan,y0)
4.3.1 求函数的零点
例:求以下函数的零点。
零点初始 猜测值
向函数fun传 递的参数
4.4 多项式和卷积
4、多项式的根
功能:计算多 项式P的根。
R=roots(P)
p1 x + p2 x
n
n −1
+ ... + pn x + p
-27 ];
v11 v21 V = v12 v22
λ 1 v11 A .v1 = λ 1 v1 = λ 1 v12
λ 2 v 21 A.v 2 = λ 2 v 2 = λ 2 v 22
A .v1
A .v 2
a11 a12 v11 v21 a11v11 + a12v12 a11v21 + a12v22 A*V = v v = a v + a v a v + a v a21 a22 12 22 21 11 22 12 21 21 22 22
2 − at
f ( t ) = (sin
t )e
−b=fzero(fun ,x0 ,option,p1,p2)
%(1)使用字符串表示被处理函数 P1=0.1;P2=0.5;
%按泛函指令要求,这里参数必须用P1,P2表示
y_C='sin(x).^2.*exp(-P1*x)-P2*abs(x)';
1、求函数的零点 (1)字符串表达式 q=quad(fun,a,b) 2、数值积分 (2)内联函数 3、解微分方程 q=quadl(fun,a,b) (3)“M函数文件”的函数句柄
[t,y]=ode45(fun ,tspan,y0)
4.3.1 求函数的零点
例:求以下函数的零点。
零点初始 猜测值
向函数fun传 递的参数
4.4 多项式和卷积
4、多项式的根
功能:计算多 项式P的根。
R=roots(P)
p1 x + p2 x
n
n −1
+ ... + pn x + p
-27 ];
MATLAB第四章(刘卫国编)
25
例4.9 求定积分。 以梯形法为例,程序如下: a=0;b=3*pi; n=1000; h=(b-a)/n; x=a; s=0; f0=exp(-0.5*x)*sin(x+pi/6); for i=1:n x=x+h; f1=exp(-0.5*x)*sin(x+pi/6); s=s+(f0+f1)*h/2; f0=f1; end s
例4.13 求[100,200]之间第一个能被21整除 的整数。 程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n
2
例4.1 建立一个命令文件将变量a,b的值互换,然后 运行该命令文件。 程序1: 首先建立命令文件并以文件名exch.m存盘: clear; a=1:10; b=[11,12,13,14;15,16,17,18]; c=a;a=b;b=c; a b 然后在MATLAB的命令窗口中输入exch,将会执行 该命令文件。
16
当表达式的值等于表达式1的值时,执行 语句组1, 当表达式的值等于表达式2的值时,执行 语句组2,…, 当表达式的值等于表达式m的值时,执 行语句组m, 当表达式的值不等于case所列的表达式 的值时,执行语句组n。 当任意一个分支的语句执行完后,直接 执行switch语句的下一句。
17
例4.5 某商场对顾客所购买的商品实行打折 销售,标准如下(商品价格用price来表示): price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price<2500 8%折扣 2500≤price<5000 10%折扣 5000≤price 14%折扣 输入所售商品的价格,求其实际销售价格。
MATLAB讲义第4讲
2013-9-17
Matlab Language
7
例3.3 绘制复杂曲线
用图形表示连续调制波形 及其包络线。 t=(0:pi/100:pi)’; %长度为101的时间采样列向量 y1=sin(t)*[1,-1]; %包络线函数值,是(101x2)的矩阵 y2=sin(t).*sin(9*t); %长度为101的调制波列向量 t3=pi*(0:9)/9;
t=(0:pi/100:pi)'; %长度为101的时间采样列向量 y1=sin(t)*[1,-1]; %包络线函数值,是(101x2)的矩阵 y2=sin(t).*sin(9*t); %长度为101的调制波列向量 t3=pi*(0:9)/9; y3=sin(t3).*sin(9*t3); plot(t,y1,'r:’) hold on plot(t,y2,'b‘) plot(t3,y3,'bo') axis([0,pi,-1,1]) %控制轴的范围 hold off
2013-9-17
(2)plot(x, y)
(3)plot(x1, y1, x2, y2, …)
Matlab Language
5
例3.1使用直角坐标系
0.5 x sin(2 x) 在[0,2π]区间内,绘制曲线 y 2e
x = 0:pi/100:2*pi; y = 2*exp(-0.5*x).*sin(2*pi*x); plot(x,y)
2013-9-17
Matlab Language
22
例3.11绘制y=1-exp(-0.3*t).*cos(0.7*t)
t=6*pi*(0:100)/100; y=1-exp(-0.3*t).*cos(0.7*t); tt=t(find(abs(y-1)>0.05)); ts=max(tt); plot(t,y,'r-'); grid on; axis([0,6*pi,0.6,max(y)]); title('y=1-exp(-\alpha*t)*cos(\omega*t)'); hold on; plot(ts,0.95,'bo'); hold off; set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)]); grid on;
Matlab基础第四章
注意:以每列向量为纵坐标画一条曲线,横坐标自动生成。
4.1二维曲线的绘制
4. plot(x,y)绘制混合式曲线
当plot(x,y)命令中的参数x和y是向量或矩阵时,分别有以下几 种情况:
(1)如果x是向量,而y是矩阵,则x的长度与矩阵y的
行数或列数必须相等,如果x的长度与y的行数相等,则向量x与 矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等 ,向量x与y的每行向量画一条曲线,如果y是方阵,则x和y的行 数和列数都相等,将向量x与矩阵y的每列向量画一条曲线;
【例】 x=0:0.1:20*pi; plot3(x,sin(x),cos(x)) %按系统默认设置绘图
4.3 对数坐标和极坐标图
1. 对数坐标图形 语法:semilogx(x,y,'参数') %绘制x为对数坐标的曲线 semilogy(x,y,‘参数’) %绘制y为对数坐标的曲线 loglog(x,y,'参数') %绘制x、y都为对数坐标的曲线
2 3 4
5
图形注释: 图名、坐标名、图例、文字说明
4.1.3 多个图形绘制的方法
1. 指定图形窗口 figure(n)
%产生新图形窗口 说明:如果该窗口不存在,则产生新图形窗口并设置为当前图 形窗口,该窗口名为“Figure No.n”,而不关闭其它窗口。
2. 同一窗口多个子图 subplot(m,n,k)
: -. --
语法: plot(x,y,’s’)
说明:s为类型说明字符串参数;s字符串可以是线段类型、颜色和数据点形 三种类型的符号之数据点形
【例】用不同线段类型、颜色和数据 点形画出sinx和cosx曲线,如图所示。 x=0:0.1:2*pi; plot(x,sin(x),'r-.') %用红色点划线画出曲线 hold on plot(x,cos(x),'b:o') %用蓝色圆圈画出曲线,用点线连接
4.1二维曲线的绘制
4. plot(x,y)绘制混合式曲线
当plot(x,y)命令中的参数x和y是向量或矩阵时,分别有以下几 种情况:
(1)如果x是向量,而y是矩阵,则x的长度与矩阵y的
行数或列数必须相等,如果x的长度与y的行数相等,则向量x与 矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等 ,向量x与y的每行向量画一条曲线,如果y是方阵,则x和y的行 数和列数都相等,将向量x与矩阵y的每列向量画一条曲线;
【例】 x=0:0.1:20*pi; plot3(x,sin(x),cos(x)) %按系统默认设置绘图
4.3 对数坐标和极坐标图
1. 对数坐标图形 语法:semilogx(x,y,'参数') %绘制x为对数坐标的曲线 semilogy(x,y,‘参数’) %绘制y为对数坐标的曲线 loglog(x,y,'参数') %绘制x、y都为对数坐标的曲线
2 3 4
5
图形注释: 图名、坐标名、图例、文字说明
4.1.3 多个图形绘制的方法
1. 指定图形窗口 figure(n)
%产生新图形窗口 说明:如果该窗口不存在,则产生新图形窗口并设置为当前图 形窗口,该窗口名为“Figure No.n”,而不关闭其它窗口。
2. 同一窗口多个子图 subplot(m,n,k)
: -. --
语法: plot(x,y,’s’)
说明:s为类型说明字符串参数;s字符串可以是线段类型、颜色和数据点形 三种类型的符号之数据点形
【例】用不同线段类型、颜色和数据 点形画出sinx和cosx曲线,如图所示。 x=0:0.1:2*pi; plot(x,sin(x),'r-.') %用红色点划线画出曲线 hold on plot(x,cos(x),'b:o') %用蓝色圆圈画出曲线,用点线连接
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二,系统稳定及最小相位系统的判别方法
1,间接判别(工程方法) 劳斯判据:劳斯表中第一列各值严格为正,则系统稳定, 如果劳斯表第一列中出现小于零的数值,系统不稳定. 胡尔维茨判据:当且仅当由系统分母多项式构成的胡尔 维茨矩阵为正定矩阵时,系统稳定. 2,直接判别 MATLAB提供了直接求取系统所有零极点的函数,因此 可以直接根据零极点的分布情况对系统的稳定性及是否 为最小相位系统进行判断.
二,常用时域分析函数
时间响应探究系统对输入和扰动在时域内的瞬态行为,系统 特征如:上升时间,调节时间,超调量和稳态误差都能从时间响应上 反映出来.MATLAB除了提供前面介绍的对系统阶跃响应,冲激响应 等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数, 如: covar:连续系统对白噪声的方差响应 initial:连续系统的零输入响应 lsim:连续系统对任意输入的响应 对于离散系统只需在连续系统对应函数前加d就可以,如dstep, dimpulse等. 它们的调用格式与step,impulse类似,可以通过help命令来察看自学.
ξπ 1ξ 2
由典型二阶系统特征参数计算公式 σ = e
× 100 , t p = π ( wn 1 ξ 2 ) 得:
ξ = ln
100
σ
/[π + (ln
2
100
σ
) ] , wn = π1 Leabharlann 2(t p 1 ξ 2 )
例 exp4_9.m 根据输入的典型二阶系统参数阻尼比 alph 及自然振荡频率 wn,求取系统的单 位阶跃响应参数:超调量 pos(100%) ;峰值时间 tp;上升时间 tr;调节时间 ts2( ± 2% )
20 例 exp4_4.m 已知系统的开环传递函数为:Go (s) = 4 s + 8s3 + 36s2 + 40s
求系统在单位负反馈下的脉冲激励响应曲线. 例exp4_5.m 已知某典型二阶系统的传递函数为:
wn G(s) = 2 ,ξ = 0.6, wn = 5 ,求系统的阶跃响应曲线. 2 s + 2ξwn s + wn 10s + 25 例 exp4_6.m 已知某闭环系统的传递函数为:G(s) = 0.16s3 + 1.96s2 + 10s + 25
1,step()函数的用法
exp4_3_.m y=step(num,den,t):其中num和den分别为系统传递函数描述中的分子和 分母多项式系数,t为选定的仿真时间向量,一般可以由t=0:step:end等步 长地产生出来.该函数返回值y为系统在仿真时刻各个输出所组成的矩阵.
[y,x,t]=step(num,den):此时时间向量t由系统模型的特性自动生成, 状 态变量x返回为空矩阵. [y,x,t]=step(A,B,C,D,iu):其中A,B,C,D为系统的状态空间描述矩阵,iu 用来指明输入变量的序号.x为系统返回的状态轨迹. 如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可 调用以下的格式: step(num,den);step(num,den,t);step(A,B,C,D,iu,t);step(A,B,C,D,iu); 线性系统的稳态值可以通过函数dcgain()来求取,其调用格式为: dc=dcgain(num,den)或dc=dcgain(a,b,c,d)
求其阶跃响应曲线.
2
仿真时间t的选择: 对于典型二阶系统根据其响应时间的估算公式
ts =
3~ 4 ξwn 可以确定.
对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把t选 大一些,看看响应曲线的结果,最后再确定其合适的仿真时间. 一般来说,先不指定仿真时间,由MATLAB自己确定,然后根据结果, 最后确定合适的仿真时间. 在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般 不易取太大. 例exp4_6_.m
例 exp4_8.m 某系统框图如下所示,求 d 和 e 的值,使系统的阶跃响应满足: (1)超调量不 大于 40%, (2)峰值时间为 0.8 秒. R(s) + _ 1+es
由图可得闭环传递函数为: Gc ( s ) =
d s(s + 1)
C(s)
d ,其为典型二阶系统. 2 s + ( d e + 1) s + d
第三节 控制系统的频域分析
一,频域分析的一般方法
频率响应是指系统对正弦输入信号的稳态响应,从频率响应中可以得出 带宽,增益,转折频率,闭环稳定性等系统特征. 频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关 系特性.频率特性函数与传递函数有直接的关系,记为: X ( jw ) G ( jw ) = o = A ( w ) e j ( w ) X i ( jw ) X (w) 其中 A ( w ) = o 为幅频特性 ( w ) = o ( w ) i ( w )为相频特性 X i (w) 频域分析法是应用频率特性研究控制系统的一种典型方法.采用这种方法 可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确, 对于诸如防止结构谐振,抑制噪声,改善系统稳定性和暂态性能等问题,都 可以从系统的频率特性上明确地看出其物理实质和解决途经.通常将频率特 性用曲线的形式进行表示,包括对数频率特性曲线和幅相频率特性曲线简称 幅相曲线,MATLAB提供了绘制这两种曲线的函数. 求取系统对数频率特性图(波特图):bode() 求取系统奈奎斯特图(幅相曲线图或极坐标图):nyquist()
1 例exp4_1.m 2 x= 已知某系统的模型如右所示: 4 7 y = [ 2
2 1 0 6 3 0 x + u 7 8 5 0 2 1 6 1 5 6 1]x + 7u
2 1
要求判断系统的稳定性及系统是否为最小相位系统. 例exp4_2.m 系统模型如下所示,判断系统的稳定性,以及系统 是否为最小相位系统.
第一节 控制系统的稳定性分析
一,系统稳定及最小相位系统判据
对于连续时间系统,如果闭环极点全部在S平面左半 平面,则系统是稳定的. 对于离散时间系统,如果系统全部极点都位于Z平面 的单位圆内,则系统是稳定的. 若连续时间系统的全部零极点都位于S左半平面;或 若离散时间系统的全部零极点都位于Z平面单位圆内, 则系统是最小相位系统.
1,对数频率特性图(波特图) exp4_10.m exp4_10_.m
对数频率特性图包括了对数幅频特性图和对数相频特性图.横坐标为 频率w,采用对数分度,单位为弧度/秒;纵坐标均匀分度,分别为幅值 函数20lgA(w),以dB表示;相角,以度表示. MATLAB提供了函数bode()来绘制系统的波特图,其用法如下: bode(a,b,c,d):自动绘制出系统的一组Bode图,它们是针对连续状态 空间系统[a,b,c,d]的每个输入的Bode图.其中频率范围由函数自动选取, 而且在响应快速变化的位置会自动采用更多取样点. bode(a,b,c,d,iu):可得到从系统第iu个输入到所有输出的波特图. bode(num,den):可绘制出以连续时间多项式传递函数表示的系统的 波特图. bode(a,b,c,d,iu,w)或bode(num,den,w):可利用指定的角频率矢量绘制 出系统的波特图. 当带输出变量[mag,pha,w]或[mag,pha]引用函数时,可得到系统波特 图相应的幅值mag,相角pha及角频率点w矢量或只是返回幅值与相角. 相角以度为单位,幅值可转换为分贝单位:magdb=20×log10(mag)
1 0 u1 0 u2 0
x1 y1 0 1 0 3 x2 0 2 u1 y = 0 0 0 1 x + 2 0 u ,求系统的单位阶跃响应和冲激响应. 3 2 2 x4
MATLAB的step()和impulse()函数本身可以处理多输入多输出 的情况,因此编写MATLAB程序并不因为系统输入输出的增 加而变得复杂.
CH4,控制系统的分析方法
早期的控制系统分析过程复杂而耗时,如想得到一个系统 的冲激响应曲线,首先需要编写一个求解微分方程的子程 序,然后将已经获得的系统模型输入计算机,通过计算机 的运算获得冲激响应的响应数据,然后再编写一个绘图程 序,将数据绘制成可供工程分析的响应曲线. MATLAB控制系统工具箱和SIMULINK辅助环境的出现, 给控制系统分析带来了福音. 控制系统的分析包括系统的稳定性分析,时域分析,频域 分析及根轨迹分析.
20 例 exp4_3.m 已知系统的开环传递函数为:Go (s) = 4 s + 8s3 + 36s2 + 40s
求系统在单位负反馈下的阶跃响应曲线.
2,impulse()函数的用法
求取脉冲激励响应的调用方法与step()函数基本一致.
y=impulse(num,den,t);[y,x,t]=impulse(num,den);[y,x,t]=impulse(A,B,C,D,iu,t) impulse(num,den);impulse(num,den,t) impulse(A,B,C,D,iu);impulse(A,B,C,D,iu,t)
3s 3 + 16s 2 + 41s + 28 G( s) = 6 s + 14 s 5 + 110s 4 + 528s 3 + 1494 s 2 + 2117 s + 112
ii=find(条件式) 用来求取满足条件的向量的下标向量,以列向量表示. 例如
exp4_1.m中的条件式为real(p>0),其含义就是找出极点 向量p中满足实部的值大于0的所有元素下标,并将结果返回到ii 向量中去.这样如果找到了实部大于0的极点,则会将该极点的 序号返回到ii下.如果最终的结果里ii的元素个数大于0,则认为 找到了不稳定极点,因而给出系统不稳定的提示,若产生的ii向 量的元素个数为0,则认为没有找到不稳定的极点,因而得出系 统稳定的结论.