反馈控制系统的数学模型及设计工具.docx

上传人:b****1 文档编号:686089 上传时间:2022-10-12 格式:DOCX 页数:24 大小:928.20KB
下载 相关 举报
反馈控制系统的数学模型及设计工具.docx_第1页
第1页 / 共24页
反馈控制系统的数学模型及设计工具.docx_第2页
第2页 / 共24页
反馈控制系统的数学模型及设计工具.docx_第3页
第3页 / 共24页
反馈控制系统的数学模型及设计工具.docx_第4页
第4页 / 共24页
反馈控制系统的数学模型及设计工具.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

反馈控制系统的数学模型及设计工具.docx

《反馈控制系统的数学模型及设计工具.docx》由会员分享,可在线阅读,更多相关《反馈控制系统的数学模型及设计工具.docx(24页珍藏版)》请在冰豆网上搜索。

反馈控制系统的数学模型及设计工具.docx

反馈控制系统的数学模型及设计工具

反馈控制系统的数学模型及设计工具

反馈系统的数学模型在系统分析和设计中起着很重要的作用,基于系统的数学模型,就可以用比较系统的方法对之进行分析,同时,一些系统的方法也是基于数学模型的,这就使得控制系统的模型问题显得十分重要。

1数学模型的表示方法

线性时不变(LTI)系统模型包括传递函数模型(tf),零极点增益模型(zpk),状态空间模型(ss)和频率响应数据模型(frd)

1.1传递函数模型

线性系统的传递函数模型可以表示成复数变量s的有理函数式:

调用格式:

G=tf(num,den)

其中

分别是传递函数分子和分母多项式的系数向量,按照s的降幂排列.返回值G是一个tf对象,该对象包含了传递函数的分子和分母信息。

例1一个传递函数模型

可以由下面命令输入到MATLAB工作空间去.

>>num=[123];den=[12345];G=tf(num,den)

Transferfunction:

s^2+2s+3

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

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

对于传递函数的分母或分子有多项式相乘的情况,MATLAB提供了求两个向量的卷积函数—conv()函数求多项式相乘来解决分母或分子多项式的输入。

conv()函数允许任意地多层嵌套,从而表示复杂的计算.应该注意括号要匹配,否则会得出错误的信息与结果。

例2一个较复杂传递函数模型

该传递函数模型可以通过下面的语句输入到MATLAB工作空间去。

>>num=2*conv([12],[13]);

den=conv(conv(conv([11],[11]),[16]),[1234]);

G=tf(num,den)

Transferfunction:

2s^2+10s+12

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

s^6+10s^5+32s^4+60s^3+83s^2+70s+24

对于一个tf对象,它有自己的属性(域元素),属性值既可以直接获取也可以通过函数get来获取。

另外可以用函数set设置属性值。

tf对象的属性有:

>>set(tf)

num:

Ny-by-Nucellofrowvectors(Nu=no.ofinputs)

den:

Ny-by-Nucellofrowvectors(Ny=no.ofoutputs)

Variable:

['s'|'p'|'z'|'z^-1'|'q']

Ts:

Scalar(sampletimeinseconds)

ioDelay:

Ny-by-Nuarray(I/Odelays)

InputDelay:

Nu-by-1vector

OutputDelay:

Ny-by-1vector

InputName:

Nu-by-1cellarrayofstrings

OutputName:

Ny-by-1cellarrayofstrings

InputGroup:

M-by-2cellarrayforMinputgroups

OutputGroup:

P-by-2cellarrayforPoutputgroups

Notes:

Arrayorcellarrayofstrings

UserData:

Arbitrary

将例2传递函数算子符号变为p,延迟时间设为0.5,可以使用两种MATLAB语句来实现:

G.Variable='P';G.Td=0.5;或

set(G,'Variable','p','Td',0.5);

这时再显示G时,将得到:

>>G

Transferfunction:

2p^2+10p+12

exp(-0.5*p)*---------------------------------------------------------------------

p^6+10p^5+32p^4+60p^3+83p^2+70p+24

也可用get()语句来获取属性:

>>get(G)

num:

{[000021012]}

den:

{[1103260837024]}

Variable:

'p'

Ts:

0

ioDelay:

0

InputDelay:

0.5

OutputDelay:

0

InputName:

{''}

OutputName:

{''}

InputGroup:

{0x2cell}

OutputGroup:

{0x2cell}

Notes:

{}

UserData:

[]

1.2零极点模型

零极点模型是描述单变量线性时不变系统传递函数的另一种常用方法,一个给定传递函数的零极点模型一般可以表示为

其中

k分别是系统的零点、极点和根轨迹增益。

调用格式:

G=zpk(z,p,k)

注意:

对单变量系统来说,系统的零极点应该用列向量来表示。

同样,zpk对象有自己的属性值,该属性值可以用get()函数来获取,用set()来设置。

具体操作同tf对象属性的操作。

zpk对象的属性有:

>>set(zpk)

z:

Ny-by-Nucellofvectors(Nu=no.ofinputs)

p:

Ny-by-Nucellofvectors(Ny=no.ofoutputs)

k:

Ny-by-Nuarrayofdouble

Variable:

['s'|'p'|'z'|'z^-1'|'q']

DisplayFormat:

['roots'|'time-constant'|'frequency']

Ts:

Scalar(sampletimeinseconds)

ioDelay:

Ny-by-Nuarray(I/Odelays)

InputDelay:

Nu-by-1vector

OutputDelay:

Ny-by-1vector

InputName:

Nu-by-1cellarrayofstrings

OutputName:

Ny-by-1cellarrayofstrings

InputGroup:

M-by-2cellarrayforMinputgroups

OutputGroup:

P-by-2cellarrayforPoutputgroups

Notes:

Arrayorcellarrayofstrings

UserData:

Arbitrary

例3假设系统的零极点模型为

则该模型可以由下面语句输入到MATLAB工作空间去。

>>k=2;

z=[-2;-1+j;-1-j];

p=[-1.4142+1.4142*j;-1.4142-1.4142*j;

3.9765+0.0432*j;3.9765-0.0432*j];

G=zpk(z,p,k)

Zero/pole/gain:

2(s+2)(s^2+2s+2)

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

(s^2-7.953s+15.81)(s^2+2.828s+4)

1.3状态方程模型

状态方程式描述系统动态模型的另外一种方法,它不但适合于线性模型,也适于描述非线性模型。

由一个例子引出状态方程模型:

其微分方程为:

若令

,则有

对于线性时不变系统来说,其状态方程为

在Matlab下只需将各系数矩阵输到工作空间即可。

调用格式:

G=ss(A,B,C,D)

同样可以用set(ss)得到状态方程的所有域元素细节,get(G)得到模型的域值。

例4双输入双输出系统的状态方程表示为

该状态方程可以由下面语句输入到MATLAB工作空间去。

>>A=[1,2,0,4;3,-1,6,2;5,3,2,1;4,0,-2,7];

B=[2,3;1,0;5,2;1,1];

C=[0,0,2,1;2,2,0,1];

D=zeros(2,2);

G=ss(A,B,C,D)

a=

x1x2x3x4

x11204

x23-162

x35321

x440-27

b=

u1u2

x123

x210

x352

x411

c=

x1x2x3x4

y10021

y22201

d=

u1u2

y100

y200

Continuous-timemodel.

2模型的基本结构

在实际应用中,系统的模型通常是由相互连接的模块构成的,本节将介绍相互连接的系统结构的总模型求取方法。

2.1串联连接结构

在串联连接下(如图1(a)所示),整个系统的传递函数为

对单变量系统来说,这两个模块是可以互换的,对多变量系统来说,一般不具备这样的关系。

假设在MATLAB下第一个模块

的LTI对象为G1(它可以由tf,ss和zpk中任意的形式给出),而第二个模块

的LTI对象为G2,则整个串联系统的LTI模型可以由下列MATLAB命令得出

G=G1*G2;

2.2并联连接结构

在并联连接下(如图1(b)所示),整个系统的传递函数为

假设在MATLAB下第一个模块

的LTI对象为G1(它可以由tf,ss和zpk中任意的形式给出),而第二个模块

的LTI对象为G2,则整个串联系统的LTI模型可以由下列MATLAB命令得出

G=G1+G2;

2.3反馈连接结构

两个模块

正、负反馈连接后(如图2所示),系统总的模型分别为:

控制系统工具箱提供了feedback()函数,用来求取反馈连接下总的系统模型。

调用格式:

G=feedback(G1,G2,sign)

其中变量sign为-1(或+1)表示负反馈(或正反馈),缺省为负反馈结构。

G1、G2分别为前向、反向模型的LTI对象,G为总系统模型。

例5有两个模型

,如果采用负反馈结构可以用下面的MATLAB语句得到整个系统的传递函数模型。

>>G1=tf(1,[1,2,1]);

G2=tf([1,2],[1,7,12]);

G=feedback(G1,G2)

Transferfunction:

s^2+7s+12

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

s^4+9s^3+27s^2+32s+14

若采用正反馈连接结构,则得出下面结果

>>G=feedback(G1,G2,+1)

Transferfunction:

s^2+7s+12

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

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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