matlaB中的一些函数Word文档格式.docx
《matlaB中的一些函数Word文档格式.docx》由会员分享,可在线阅读,更多相关《matlaB中的一些函数Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
3.函数initial(),dinitial()
对于连续系统由初始状态所引起的响应,零输入响应,可由函数initial()来求得,其调用格式为
[y,x,t]=initial(A,B,C,D,x0)
[y,x,t]=initial(A,B,C,D,x0,t)
其中x0为初始状态.
同理,对于离散系统的零输入响应函数调用格式为:
[y,x,t]=dinitial(A,B,C,D,x0)
[y,x,t]=dinitial(A,B,C,D,x0,n)
4.axis
axis一般用来设置axes的样式,包括坐标轴范围,可读比例等
axis([xminxmaxyminymax])
axis([xminxmaxyminymaxzminzmaxcmincmax])坐标轴设置
5.函数ss2zp()(与zplane()连用)
MATLAB还提供了一个类似的函数ss2zp()。
该函数的功能是直接根据系统的状态方程描述求取系统的零点、极点和增益,不必先化成传递函数描述形式。
其基本调用格式与tf2zp()函数类似,只是多了一个输入量选择的参数:
[Z,P,K]=ss2zp(A,B,C,D,iu)
其中(A,B,C,D)是系统的状态方程描述的系数矩阵,iu表示对系统的第iu个输入量求零点、极点和增益;
Z是求得的零点矩阵;
P是求得的极点矩阵,Z的列数与输出量y的个数一样多,行数视零点个数的多少而定;
K是求得的增益列向量,其维数等于输出量y的个数。
6.zplane()
zplane函数用于画出线性系统在Z平面上的零极点。
有两种使用方法:
1、在已知零极点时,例如某滤波器的零点为-1/2,一对共轭极点为
和时,只要输入命令
zer=-0.5;
pol=0.9*exp(j*2*pi*[-0.30.3]'
);
zplane(zer,pol)
即可画出零极点。
另一种情况:
已知系统的系统函数系数向量b和a,则可通过调用
zplane(b,a)
绘出零极点。
这种情形下,zplane函数先求得系统函数的零点和极点,然后绘出零极点图。
例子
A1=[-1.5,-0.8,0,0;
0.8,0,0,0;
0.3,0.4,-4.0,-1.25;
0,0,-1.25,0];
B1=[1;
0;
1;
0];
C1=[1,2,1,2];
D1=0;
t=0.5;
[A,B,C,D]=c2dm(A1,B1,C1,D1,t,'
m'
subplot(2,2,1)
dstep(A,B,C,D)
离散阶跃响应'
subplot(2,2,2)
dimpulse(A,B,C,D)
离散冲激响应'
subplot(2,2,3)
x0=[1,1,1,1];
dinitial(A,B,C,D,x0)
离散零输入响应'
axis([06-0.52.5])
subplot(2,2,4)
[z,p,k]=ss2zp(A,B,C,D,1)
zplane(z,p)
离散零极点图'
实部'
虚部'
7.lsim()和dlsim()
任意输入函数的响应
连续系统对任意输入函数的响应可利用MATLAB的函数lsim()求取,其调用格式为
[y,x]=lsim(num,den,u,t)
[y,x]=lsim(A,B,C,D,iu,u,t)
其中,u为由给定输入序列构成的矩阵,它的每列对应一个输入,每行对应一个新的时间点,其行数与时间t的长度相等.其他用法同step()函数.
8.gensig()
特定输入时间响应函数
[u,t]=gensig(type,Ta)
type类型:
sin、square(方波)、pulse
Ta-周期
如生成一个周期为5s,持续时间为30s,采样时间为0.1s的方波。
[u,t]=gensig('
square'
5,30,0.1)
plot(t,u)
axis([0,30,-0.5,1.5])
9.tf()
Sys=tf(NUM,DEN)用于创建一个传递函数的表达。
例子
squre'
4,10,0.1);
H=[tf([2,5,1],[1,2,3]);
tf([1,-1],[1,1,5])];
lsim(H,u,t)
周期为4秒的方波输出响应'
gridoff
10.sym()、syms
定义符号变量
sym(‘x’,’y’)%定义符号变量x,y
symsxy%定义符号变量x,y
11.limit():
求极限函数(P140)
符号极限,
(1)limit(F,v,a):
计算符号对象F,当指定变量V到a时的极限。
(2)limit(F,a):
计算符号对象F,当默认的独立变量趋近于a的极限。
(3)limit(F):
计算符号对象F,当默认的独立变量趋近于0的极限。
(4)limit(F,v,a,’right’)或limit(F,v,a,’left’):
计算符号函数F的单侧极限:
右极限v到a的极限,或左极限v到a的极限。
12.diff():
求微分函数(P141)
(1)diff(S,’v’):
对符号对象S中指定的符号变量v求其1阶导数。
(2)diff(S):
对符号对象S中默认的独立变量求其1阶导数。
(3)diff(S,n):
对符号对象S中默认的独立变量求其n阶导数。
(4)diff(S,’v’,n):
对符号对象S中指定的符号变量v求其n阶导数。
13.int():
求积分函数(P141)
(1)R=int(S,v):
对符号对象S中指定的符号变量v求不定积分,结果没有带任意常数C。
(2)R=int(S):
对符号对象S中默认的独立变量求不定积分。
(3)R=int(S,v,a,b):
对符号对象S中指定的符号变量v求从a到b的定积分。
(4)R=int(S,a,b):
对符号对象S中默认的独立变量求从a到b的定积分。
14.符号inf无穷大
MATLAB中无穷大用Inf表示,这个符号是MATLAB已经定义好的特殊变量。
负无穷大用-inf表示,正无穷大用+inf或inf表示。
15.rand()
‹常用的产生通用特殊矩阵的函数
–zeros:
产生全0矩阵(零矩阵)
–ones:
产生全1矩阵(幺矩阵)
–eye:
产生单位矩阵
–rand:
产生0~1间均匀分布的随机矩阵
–randn:
产生均值为0,方差为1的标准正态分布随机矩阵
‹以zeros函数为例
–zeros(m):
产生m×
m零矩阵
–zeros(m,n):
n零矩阵
–zeros(size(A)):
产生一个与矩阵A同样大小的零矩阵
Rand:
生成均匀分布的伪随机数,分布在(0~1)之间,
主要语法:
rand(m,n)生成m行n列的均匀分布的伪随机数
产生在[a,b]区间服从均匀分布的随机数方法
a+(b-a)*rand(m,n)
Randn:
生成标准正态分布的伪随机数(均值为0,方差为1)
»
和上面一样
产生均值为μ,方差为σ2的随机数方法
num=[2-6.83.6];
den=[3-4.31.75];
u=rand(100,1);
dlsim(num,den,u);
num=1.064;
den=[2,-3.685,1.791];
u1=[ones(1,50),-1*ones(1,50)];
u=[u1,u1,u1];
dlsim(num,den,u)
离散系统仿真'
16.pzmap()
MATLAB提供了函数pzmap()来绘制系统的零极点图,其用法如下
调用格式为
pzmap(p,z);
P—零点向量z—极点向量
•[p,z]=pzmap(a,b,c,d):
返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
(不绘图,只求p,z)
•[p,z]=pzmap(num,den):
返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
•pzmap(a,b,c,d)或pzmap(num,den):
不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×
表示,零点用o表示。
(绘图,不求p,z)
•pzmap(p,z):
根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×
num=[0.00010.02181.04369.3599];
den=[0.00060.02680.063656.2711];
[p,z]=pzmap(num,den)%求p,z值
pzmap(num,den)%绘图,绘出图纸
零极点图'
实轴'
虚轴'
sys=tf(num,den);
pzmap(sys)
[p,z]=pzmap(sys)
图与上面相同
17.rlocus()
MATLAB提供了函数rlocus()来绘制系统的根轨迹图,其用法如下:
•rlocus(a,b,c,d)或者rlocus(num,den):
根据SISO开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。
开环增益的值从零到无穷大变化。
•rlocus(a,b,c,d,k)或rlocus(num,den,k):
通过指定开环增益k的变化范围来绘制系统的根轨迹图。
•r=rlocus(num,den,k)或者[r,k]=rlocus(num,d