基于MATLAB的自控模拟|“朝闻道”知识分享大赛“

disa_gree 2023-12-31 16:21:14

这是我参加朝闻道知识分享大赛的第20篇文章

 

 

实验一  控制系统的建模和模型之间的转换

一、目的和要求

1.熟练掌握线性系统的各种模型描述。

2.熟练掌握模型之间的转换。

3.熟练掌握结构图传递函数的化简。

二、内容和步骤

1.传递函数模型表示

线性系统的传递函数模型可以更一般地表示成复数变量的有理函数形式如下:

由下列的命令格式就可以轻易地将函数模型输入到MATLAB环境中:

亦即,将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量。值得注意的是,用户可以用任意的变量名来输入系统的系数向量。

在控制系统工具箱中,函数由传递函数分子分母给出的变量构造出单个的传递函数对象。该函数的调用格式为:

其中,分别为系统的分子和分母多项式系数向量。返回的变量为系统的传递函数对象。

已知一个简单的传递函数模型:,试用MATLAB建立系统模型。

>> num=[1 5];

>> den=[1 2 3 4 5];

>> G=tf(num,den)

Transfer function:

s + 5

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

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

2.零极点模型表示

零极点模型是线性时不变系统的另外一种数学模型,是将传递函数的分子分母多项式进行因式分解。传递函数的零极点形式为:

其中,是系统增益,是系统零点,是系统极点。

MATLAB使用命令可以实现由零极点得到传递函数模型。

语法:

说明:为零点列向量;为极点列向量;为增益。

得出系统的零极点,并由零极点获得传递函数。

>> num=[1 5];

>> z=roots(num)

z =

-5

>> den=[1 2 3 4 5];

>> p=roots(den)

p =

0.2878 + 1.4161i

0.2878 - 1.4161i

-1.2878 + 0.8579i

-1.2878 - 0.8579i

>> zpk(z,p,1)

Zero/pole/gain:

(s+5)

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

(s^2 + 2.576s + 2.394) (s^2 - 0.5756s + 2.088)

控制系统的传递函数也可以用部分分式法表示,部分分式法可以归类于零极点增益描述法,部分分式法是将传递函数表示成部分分式或留数形式:

MATLAB中可以使用命令来实现由传递函数得出部分分式的极点和系数。

将传递函数转换成部分分式法,得出各系数。

>> num=[1 5];

>> den=[1 2 3 4 5];

>> [r p k]=residue(num,den)

r =

0.3612 - 0.3164i

0.3612 + 0.3164i

-0.3612 - 0.2103i

-0.3612 + 0.2103i

p =

-1.2878 + 0.8579i

-1.2878 - 0.8579i

0.2878 + 1.4161i

0.2878 - 1.4161i

k =

[]

3.连续系统系统模型之间的转换

线性系统模型的不同描述方法之间存在内在的等效关系,因此可以相互转换。MATLAB提供的相互转换命令如下:

函数:

调用格式:

功能:传递函数转换为零极点描述。

函数:

调用格式:

功能:零极点描述转换为传递函数。

试找出系统模型为:的零极点和增益。

>> num=[1 5];

>> den=[1 2 3 4 5];

>> G=tf(num,den)

Transfer function:

s + 5

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

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

>> num=[1 -0.5 2];

>> den=[1 0.4 1];

>> [z,p,k]=tf2zp(num,den)

z =

0.2500 + 1.3919i

0.2500 - 1.3919i

p =

-0.2000 + 0.9798i

-0.2000 - 0.9798i

k =

1

4.传递函数的特征根及零极点图

传递函数G(s)输入后,分别对分子和分母多项式做因式分解,则可以求出系统的零、极点,Matlab提供了多项式求根函数roots(),其调用格式为:

roots(p)

式中,p为多项式。(多项式的写法请参见Matlab教材)

例如:求多项式的根,可由下列语句完成:

>> p=[1,3,0,4];

>>r=roots(p)

r=-3.3533

0.177+1.0773i

0.177-1.0773i

反过来,若已知特征多项式的特征根,可调用Matlab中的poly()函数来求得多项式降幂排列时候各项的系数,如上例

>>poly(r)

 p=1.0000 3.0000 0.0000 4.0000

5.结构框图的模型表示

控制系统的模型通常是由相互连接的模块构成的,模块通过串联、并联和反馈构成结构框图。MATLAB提供了由复杂结构框图得出传递函数的方法。

(1)串联结构,SISO的串联结构是两个模块串联在一起,如图1.1所示。

 

图 1.1  串联结构                     图 1.2  并联结构

    

图 1.3  反馈结构图                   图 1.4  结构框图

实现串联结构传递函数的命令:

(2)并联结构,SISO的并联结构是两个模块并联在一起,如图1.2所示。

实现并联结构传递函数的命令:

(3)反馈结构是前向通道和反馈通道构成正反馈和负反馈,如图1.3所示。

实现反馈结构传递函数的命令:

说明:或省略,则表示为负反馈,否则为正反馈。

根据系统结构框图求出整个系统的传递函数,结构框图如图1.4所示,其中

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

Transfer function:

1

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

s^2 + 2 s + 1

>> G2=tf(1,[1 1]);

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

>> G4=tf(1,[1 0]);

>> G12=G1+G2

Transfer function:

s^2 + 3 s + 2

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

s^3 + 3 s^2 + 3 s + 1

>> G34=G3-G4

Transfer function:

-s - 1

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

2 s^2 + s

>> G=feedback(G12,G34,-1)

Transfer function:

2 s^4 + 7 s^3 + 7 s^2 + 2 s

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

2 s^5 + 7 s^4 + 8 s^3 + s^2 - 4 s - 2

实验一  控制系统的建模和模型之间的转换

一、目的和要求

1.熟练掌握线性系统的各种模型描述。

2.熟练掌握模型之间的转换。

3.熟练掌握结构图传递函数的化简。

二、内容和步骤

1.传递函数模型表示

线性系统的传递函数模型可以更一般地表示成复数变量的有理函数形式如下:

由下列的命令格式就可以轻易地将函数模型输入到MATLAB环境中:

亦即,将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量。值得注意的是,用户可以用任意的变量名来输入系统的系数向量。

在控制系统工具箱中,函数由传递函数分子分母给出的变量构造出单个的传递函数对象。该函数的调用格式为:

其中,分别为系统的分子和分母多项式系数向量。返回的变量为系统的传递函数对象。

已知一个简单的传递函数模型:,试用MATLAB建立系统模型。

>> num=[1 5];

>> den=[1 2 3 4 5];

>> G=tf(num,den)

Transfer function:

s + 5

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

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

2.零极点模型表示

零极点模型是线性时不变系统的另外一种数学模型,是将传递函数的分子分母多项式进行因式分解。传递函数的零极点形式为:

其中,是系统增益,是系统零点,是系统极点。

MATLAB使用命令可以实现由零极点得到传递函数模型。

语法:

说明:为零点列向量;为极点列向量;为增益。

得出系统的零极点,并由零极点获得传递函数。

>> num=[1 5];

>> z=roots(num)

z =

-5

>> den=[1 2 3 4 5];

>> p=roots(den)

p =

0.2878 + 1.4161i

0.2878 - 1.4161i

-1.2878 + 0.8579i

-1.2878 - 0.8579i

>> zpk(z,p,1)

Zero/pole/gain:

(s+5)

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

(s^2 + 2.576s + 2.394) (s^2 - 0.5756s + 2.088)

控制系统的传递函数也可以用部分分式法表示,部分分式法可以归类于零极点增益描述法,部分分式法是将传递函数表示成部分分式或留数形式:

MATLAB中可以使用命令来实现由传递函数得出部分分式的极点和系数。

将传递函数转换成部分分式法,得出各系数。

>> num=[1 5];

>> den=[1 2 3 4 5];

>> [r p k]=residue(num,den)

r =

0.3612 - 0.3164i

0.3612 + 0.3164i

-0.3612 - 0.2103i

-0.3612 + 0.2103i

p =

-1.2878 + 0.8579i

-1.2878 - 0.8579i

0.2878 + 1.4161i

0.2878 - 1.4161i

k =

[]

3.连续系统系统模型之间的转换

线性系统模型的不同描述方法之间存在内在的等效关系,因此可以相互转换。MATLAB提供的相互转换命令如下:

函数:

调用格式:

功能:传递函数转换为零极点描述。

函数:

调用格式:

功能:零极点描述转换为传递函数。

试找出系统模型为:的零极点和增益。

>> num=[1 5];

>> den=[1 2 3 4 5];

>> G=tf(num,den)

Transfer function:

s + 5

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

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

>> num=[1 -0.5 2];

>> den=[1 0.4 1];

>> [z,p,k]=tf2zp(num,den)

z =

0.2500 + 1.3919i

0.2500 - 1.3919i

p =

-0.2000 + 0.9798i

-0.2000 - 0.9798i

k =

1

4.传递函数的特征根及零极点图

传递函数G(s)输入后,分别对分子和分母多项式做因式分解,则可以求出系统的零、极点,Matlab提供了多项式求根函数roots(),其调用格式为:

roots(p)

式中,p为多项式。(多项式的写法请参见Matlab教材)

例如:求多项式的根,可由下列语句完成:

>> p=[1,3,0,4];

>>r=roots(p)

r=-3.3533

0.177+1.0773i

0.177-1.0773i

反过来,若已知特征多项式的特征根,可调用Matlab中的poly()函数来求得多项式降幂排列时候各项的系数,如上例

>>poly(r)

 p=1.0000 3.0000 0.0000 4.0000

5.结构框图的模型表示

控制系统的模型通常是由相互连接的模块构成的,模块通过串联、并联和反馈构成结构框图。MATLAB提供了由复杂结构框图得出传递函数的方法。

(1)串联结构,SISO的串联结构是两个模块串联在一起,如图1.1所示。

 

图 1.1  串联结构                     图 1.2  并联结构

    

图 1.3  反馈结构图                   图 1.4  结构框图

实现串联结构传递函数的命令:

(2)并联结构,SISO的并联结构是两个模块并联在一起,如图1.2所示。

实现并联结构传递函数的命令:

(3)反馈结构是前向通道和反馈通道构成正反馈和负反馈,如图1.3所示。

实现反馈结构传递函数的命令:

说明:或省略,则表示为负反馈,否则为正反馈。

根据系统结构框图求出整个系统的传递函数,结构框图如图1.4所示,其中

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

Transfer function:

1

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

s^2 + 2 s + 1

>> G2=tf(1,[1 1]);

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

>> G4=tf(1,[1 0]);

>> G12=G1+G2

Transfer function:

s^2 + 3 s + 2

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

s^3 + 3 s^2 + 3 s + 1

>> G34=G3-G4

Transfer function:

-s - 1

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

2 s^2 + s

>> G=feedback(G12,G34,-1)

Transfer function:

2 s^4 + 7 s^3 + 7 s^2 + 2 s

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

2 s^5 + 7 s^4 + 8 s^3 + s^2 - 4 s - 2

...全文
75 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

857

社区成员

发帖
与我相关
我的任务
社区描述
中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
经验分享 高校 湖北省·武汉市
社区管理员
  • c_university_1575
  • WhiteGlint666
  • wzh_scuec
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

注意:

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

试试用AI创作助手写篇文章吧