matlab自动控制仿真常见函数应用.docx

上传人:b****4 文档编号:3443451 上传时间:2022-11-23 格式:DOCX 页数:11 大小:157.74KB
下载 相关 举报
matlab自动控制仿真常见函数应用.docx_第1页
第1页 / 共11页
matlab自动控制仿真常见函数应用.docx_第2页
第2页 / 共11页
matlab自动控制仿真常见函数应用.docx_第3页
第3页 / 共11页
matlab自动控制仿真常见函数应用.docx_第4页
第4页 / 共11页
matlab自动控制仿真常见函数应用.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

matlab自动控制仿真常见函数应用.docx

《matlab自动控制仿真常见函数应用.docx》由会员分享,可在线阅读,更多相关《matlab自动控制仿真常见函数应用.docx(11页珍藏版)》请在冰豆网上搜索。

matlab自动控制仿真常见函数应用.docx

matlab自动控制仿真常见函数应用

自动控制常见MATLAB函数的应用

roots/conv/rlocus/zpk/tf/bode/step/impulse

1、在matlab中采用roots函数求解多项式的根,采用conv函数实现多项式的积,相互连接的模块的模型求解也相当简单

(1)、串联连接命令G=G1*G2

(2)、并联连接命令G=G1±G2(3)、反馈连接命令G=feedback(G1,G2,Sign)(sign用来表示系统是正反馈或负反馈,sign=-1为负反馈)

例如:

程序如下:

>>p=[1304];

>>roots(p)

ans=

-3.3553

0.1777+1.0773i

0.1777-1.0773i

②、用matlab实现:

程序如下:

>>p=[321];q=[14];

>>n=conv(p,q)

n=

31494

③、一个传递函数模型,

可以由下面的命令输入:

>>num=[15];den=[1345];

>>G=tf(num,den)

Transferfunction:

s+5

---------------------

s^3+3s^2+4s+5

④、如下图所示,前向传递函数为G(S),反馈回路传递函数为H(S),利用feedback计算系统的闭环传递函数

 

程序如下:

>>numg=[1];deng=[50000];

>>numh=[11];denh=[12];

>>[num,den]=feedback(numg,deng,numb,denh,-1);

>>[num,den]=feedback(numg,deng,numh,denh,-1);

>>G=tf(num,den)

Transferfunction:

s+2

--------------------------

500s^3+1000s^2+s+1

2、在matlab中,可以轻松的求解系统的所有极点,从而判断其稳定性

例子:

系统的传递函数为:

用matlab判断其稳定性,程序如下:

>>num=[1,7,24,24];

>>den=[1:

9];

>>roots(den)

ans=

-1.2888+0.4477i

-1.2888-0.4477i

-0.7244+1.1370i

-0.7244-1.1370i

0.1364+1.3050i

0.1364-1.3050i

0.8767+0.8814i

0.8767-0.8814i

可见4个极点带有正实部,所以系统不稳定

3、MATLAB中给出了一个函数step()直接求取线性系统的阶跃响应,该函数的调用方式如下:

y=step(G,t)(G为系统的传递函数,t为要计算的点到所在时刻的值组成的时间向量,t一般可以由t=0:

dt:

t_end等步长地产生,t-end为终值时间,而dt为步长;y为系统的输出量)

例子:

系统的传递函数为:

线性系统的稳态值可以通过dcgain()来求得,impulse()函数可以求出系统的脉冲响应

程序如下:

>>num=[1,7,24,24];den=[1,10,35,50,24];

>>G=tf(num,den);

>>t=0:

0.1:

10;

>>y=step(G,t);

>>plot(t,y)

>>Y=dcgain(G)

Y=

1

>>holdon

>>y1=impulse(G,t);

>>plot(t,y1)

 

 

例子:

控制精度变化时,系统的闭环传递函数为:

应用如下MATLAB语言,可得到=10、=40、=80时的系统响应。

可见,当时,系统响应速度明显加快,但出现振荡

程序如下:

>>ka=80;

>>nf=[5000];df=[11000];

>>ng=[1];dg=[1200];

>>[num,den]=series(ka*nf,df,ng,dg);

>>[n,d]=cloop(num,den);

>>t=[0:

0.01:

2];

>>y=step(n,d,t);

>>plot(t,y,'black'),gridon

 

4、用matlab绘制根轨迹

MTLAB中提供了rlocus()函数,用来绘制给定的根轨迹,该函数的调用方式为:

(G为系统的模型,输入变量k为用户自己选择的增益,返回的变量R为根轨迹各点构成的复数矩阵)如果k值不给定,则该函数自动选择k,在这种情况下,调用格式为

这样产生的k值可以用来确定闭环系统稳定的增益范围

如果在函数调用中不返回任何参数,则将在图形窗口中自动绘制系统根轨迹曲线

Rlocufind()函数允许用户求取根轨迹上指定点处的开环增益,并将该增益下的所有的闭环极点显示出来:

例子:

闭环系统的闭环传递函数为:

特征方程可以写为:

在解题前,必须将特征方程写成下面形式:

K为所关心的参数,变化范围从0到,绘制的根轨迹如下:

程序如下:

>>num=[11];

>>den=[1560];

>>G=tf(num,den);

>>holdon;rlocus(G);

>>[K,P]=rlocfind(G)

Selectapointinthegraphicswindow

selected_point=

-2.4621+0.0248i

K=

0.4196

P=

-2.4655+0.0246i

-2.4655-0.0246i

-0.0690

 

例子:

研究系统根轨迹曲线和阶跃响应曲线之间的关心,考虑系统输出:

输入为单位阶跃信号时:

程序如下:

>>t=0:

0.2:

15;

>>K=16.2859;

>>num=K*[143];

>>den=[156+KK];

>>G=tf(num,den);

>>y=step(G,t);

>>plot(t,y)

>>gridon

 

5、在MATLAB中,使用较多的频域稳定性函数有bode函数、nyquist函数、nichols函数、margin函数,pade函数,ngrid函数等。

MATLAB的控制系统工具箱中提供了bode()函数来求取、绘制给给定线性系统的伯德图,函数调用方式如下:

其中G为系统的对象模型,变量w为用户制定频率点构成的向量,该函数在这些频率点上对系统进行频率分析。

mag、pha对应系统的幅值和相位向量,相位的单位为角度。

同时经常要将幅值向量转换成分贝形式,MATLAB命令为:

该函数的另一种调用格式为:

这时w可以自动生成,如果在调用bode函数时不返回变量,则MATLAB自动生成系统的伯德图。

一般和计算增益裕度和相角裕度的函数margin结合使用

例子:

考虑系统传递函数:

则可以用下面的命令绘出系统的伯德图,计算出增益裕度和相角裕度,程序如下:

>>w=logspace(-1,1,200);

>>num=[13];

>>den=[conv([11],[12]),0];

>>G=tf(num,den);

>>[xyw]=bode(G,w);

>>margin(x,y,w)

 

例子:

考虑系统传递函数

则可用下面命令绘出系统的奈氏图

>>num=[0.5];

>>den=[1210.5];

>>[re,im]=nyquist(num,den);

>>plot(re,im),gridon

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

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1