matlaB中的一些函数.docx

上传人:b****1 文档编号:269163 上传时间:2023-04-28 格式:DOCX 页数:15 大小:284.81KB
下载 相关 举报
matlaB中的一些函数.docx_第1页
第1页 / 共15页
matlaB中的一些函数.docx_第2页
第2页 / 共15页
matlaB中的一些函数.docx_第3页
第3页 / 共15页
matlaB中的一些函数.docx_第4页
第4页 / 共15页
matlaB中的一些函数.docx_第5页
第5页 / 共15页
matlaB中的一些函数.docx_第6页
第6页 / 共15页
matlaB中的一些函数.docx_第7页
第7页 / 共15页
matlaB中的一些函数.docx_第8页
第8页 / 共15页
matlaB中的一些函数.docx_第9页
第9页 / 共15页
matlaB中的一些函数.docx_第10页
第10页 / 共15页
matlaB中的一些函数.docx_第11页
第11页 / 共15页
matlaB中的一些函数.docx_第12页
第12页 / 共15页
matlaB中的一些函数.docx_第13页
第13页 / 共15页
matlaB中的一些函数.docx_第14页
第14页 / 共15页
matlaB中的一些函数.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

matlaB中的一些函数.docx

《matlaB中的一些函数.docx》由会员分享,可在线阅读,更多相关《matlaB中的一些函数.docx(15页珍藏版)》请在冰点文库上搜索。

matlaB中的一些函数.docx

matlaB中的一些函数

函数

1.step阶跃响应指令(连续函数)

dstep阶跃响应指令(离散函数)

clear

clc

num=[2-3.41.5];

den=[1-1.60.8];

dstep(num,den)

gridon

title('离散系统阶跃响应')

xlabel('时间')

ylabel('振幅')

clear

clc

num=[2-3.41.5];

den=[1-1.60.8]

step(num,den)

gridon

title('离散系统阶跃响应')

xlabel('时间')

ylabel('振幅')

2.c2dm()函数

连续系统的离散化

在MATLAB软件中对连续系统的离散化是使用c2dm()函数实现的,c2dm()函数的一般格式为

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函数先求得系统函数的零点和极点,然后绘出零极点图。

例子

clear

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)

gridon

title('离散阶跃响应')

xlabel('时间')

ylabel('振幅')

subplot(2,2,2)

dimpulse(A,B,C,D)

gridon

title('离散冲激响应')

ylabel('振幅')

xlabel('时间')

subplot(2,2,3)

x0=[1,1,1,1];

dinitial(A,B,C,D,x0)

gridon

ylabel('振幅')

xlabel('时间')

title('离散零输入响应')

axis([06-0.52.5])

subplot(2,2,4)

[z,p,k]=ss2zp(A,B,C,D,1)

zplane(z,p)

gridon

title('离散零极点图')

xlabel('实部')

ylabel('虚部')

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)用于创建一个传递函数的表达。

例子

clear

[u,t]=gensig('squre',4,10,0.1);

H=[tf([2,5,1],[1,2,3]);tf([1,-1],[1,1,5])];

lsim(H,u,t)

gridon

title('周期为4秒的方波输出响应')

xlabel('时间')

ylabel('振幅')

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):

产生m×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的随机数方法

例子

clear

num=[2-6.83.6];den=[3-4.31.75];

u=rand(100,1);

dlsim(num,den,u);

gridon

clear

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)

gridon

title('离散系统仿真')

xlabel('时间')

ylabel('振幅')

16.pzmap()

MATLAB提供了函数pzmap()来绘制系统的零极点图,其用法如下

调用格式为

pzmap(p,z);

P—零点向量z—极点向量

•[p,z]=pzmap(a,b,c,d):

返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。

(不绘图,只求p,z)

•[p,z]=pzmap(num,den):

返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。

(不绘图,只求p,z)

•pzmap(a,b,c,d)或pzmap(num,den):

不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o表示。

(绘图,不求p,z)

•pzmap(p,z):

根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×表示,零点用o表示。

例子

clear

num=[0.00010.02181.04369.3599];

den=[0.00060.02680.063656.2711];

[p,z]=pzmap(num,den)%求p,z值

pzmap(num,den)%绘图,绘出图纸

gridon

title('零极点图')

xlabel('实轴')

ylabel('虚轴')

clear

num=[0.00010.02181.04369.3599];

den=[0.00060.02680.063656.2711];

sys=tf(num,den);

pzmap(sys)

[p,z]=pzmap(sys)

title('零极点图')

xlabel('实轴')

ylabel('虚轴')

图和上面相同

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,den):

不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量k,返回闭环系统特征方程1+k*num(s)/den(s)=0的根r,它有length(k)行,length(den)-1列,每行对应某个k值时的所有闭环极点。

或者同时返回k和r。

•若给出传递函数描述系统的分子项num为负,则利用rlocus函数绘制的是系统的零度根轨迹。

(正反馈系统或非最小相位系统)

例子

clear

num=[0.00010.02181.04369.3599];

den=[0.00060.02680.063656.2711];

sys=tf(num,den);

rlocus(sys)

title('根轨迹图')

xlabel('实轴')

ylabel('虚轴')

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2