Simulink与控制系统仿真笔记04
时间:2023-04-09 20:37:00
文章目录
- Simulink模拟控制系统的笔记04
-
- 4.1引言
- 4.2动态过程微分方程
- 4.3拉氏变换和控制系统模型
- 4.4动态过程的传输函数描述
-
- 4.4.1传递函数的定义和性质
- 4.4.传递函数的零极点表示
- 4.4.3传递函数的部分表示
- 4.动态过程状态空间描述
- 4.6系统模型转换与连接
-
- 4.6.2模型链接
-
- 4.6.2.1串联连接
- 4.6.2.2并联连接
- 4.6.2.3反馈连接
- 4.6.2.4闭环连接
- 4.7非线性数学模型的线性化
- 4.7非线性数学模型的线性化
Simulink模拟控制系统的笔记04
4.1引言
要模拟系统,首先要知道系统的数学模型
常见的数学模型形式:
- 传递函数模型(系统外部模型)
- 状态方程模型(系统内部模型)
- 零极点增益模型
- 部分模型
上述模型之间有内在联系,可以相互转换
4.2动态过程微分方程
两个条件:
- 在定量变化或干扰之前,控制量的每个阶段的导数为零,即系统处于平衡状态
- 在建立动态微分方程的基础时,增量
动态微分方程描述了控制量与给定量或扰动量之间的函数关系。给定量和扰动量可视为系统的输入和输出
4.3拉氏变换和控制系统模型
拉松转换的作用:将时域转换为复频域,将微分方程转换为代数方程。在反拉斯变化后,获得代数方程的解。
时域变化的拉斯变化定义如下:
F ( s ) = ∫ 0 ∞ f ( t ) e ? u d t F(s) = \int\limits_0^\infty {f(t)} {e^{ - u}}dt F(s)=0∫∞f(t)e?udt
s:由于s是复数,拉斯算子单位也可以表示复频域的变量。
4.4动态过程的传输函数描述
4.4.1传递函数的定义和性质
拉普拉斯输入的变化与拉普拉斯输入的变化相比
相关函数:
G(s)=tf(num,den)
[tt,ff]=tfdata(F(s)) 获得传递函数
GG = zpk(G)传函转换为零极点模型
[z,p,k]=zpkdata(G) 提取零极点模型对象的零极点和增益项
pzmap(G) :绘制零极点图
4.4.传递函数的零极点表示
零极模型实际上是传递函数的另一种表示形式。其原理是分解原系统床底函数分子分母,以获得系统零极表示形式
绘制零极点图:
>> pzmap(G) >> num=[1 4 8]; >> den =[1 11 11 10]; >> G=tf(num,den); >> pzmap(G)
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-ggsUhMKO-1658733066507)(https://raw.githubusercontent.co/yumo2021/PicGo1/main/20220530124850.png)]
4.4.3传递函数的部分分数表示
并联系统里面要用对系统分解,基本形式如下:
[[r,p,k]=residue(num,den)
>> num=[2,0,9,1];
>> den=[1,1,4,4];
>> [r,p,k]=residue(num,den)
r =
0.0000 - 0.2500i
0.0000 + 0.2500i
-2.0000
p =
-0.0000 + 2.0000i
-0.0000 - 2.0000i
-1.0000
k =
2
4.5动态过程状态空间描述
不懂
4.6系统模型转换及连接
线性时不变系统(LTI)的模型包括传递函数模型、零极点(ZPK)模型和状态空间(state space)模型
三种模型之间转换示意图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6L8nXQF-1658733066509)(https://raw.githubusercontent.com/yumo2021/PicGo1/main/20220530124858.png)]
函数名 | 功能 |
---|---|
residue | 传递函数转换部分分式 |
ss2tf | 状态空间转换传递函数 |
ss2zp | 状态空间转换零极点 |
tf2zp | 传递函数转换零极点 |
tf2ss | 传递函数转换状态空间 |
zp2ss | 零极点转换状态空间 |
zp2tf | 零极点转换传递函数 |
eg:已知传函是G(s)
G ( s ) = 2 s 2 + 9 s + 1 s 3 + s 2 + 4 s + 4 {G_{(s)}} = {
{2{s^2} + 9s + 1} \over {
{s^3} + {s^2} + 4s + 4}} G(s)=s3+s2+4s+42s2+9s+1
求零极点模型和状态空间模型
>> num=[2,9,1];
>> den=[1,1,4,4];
>> G=tf(num,den);
>> gzpk=zpk(G);
>> [z,p,k]=zpkdata(G)
z =
[2x1 double]
p =
[3x1 double]
k =
2
>> gs=ss(G)
a =
x1 x2 x3
x1 -1 -2 -2
x2 2 0 0
x3 0 1 0
b =
u1
x1 2
x2 0
x3 0
c =
x1 x2 x3
y1 1 2.25 0.25
d =
u1
y1 0
Continuous-time model.
>>
eg:已知零极点模型
G ( s ) = 6 ( s + 2 ) ( s + 1 ) ( s + 3 ) ( s + 5 ) {G_{(s)}} = {
{6(s + 2)} \over {(s + 1)(s + 3)(s + 5)}} G(s)=(s+1)(s+3)(s+5)6(s+2)
求传递函数和状态方程
>> z=[-2];
>> p=[-1,-3,-5];
>> k=[6];
>> G=zp2tf(z,p,k);
>> [num,den]=zp2tf(z,p,k)
Transfer function:
6 s + 12
-----------------------
s^3 + 9 s^2 + 23 s + 15
>> [A,B,C,D]=zp2ss(z,p,k)
A =
-1.0000 0 0
1.0000 -8.0000 -3.8730
0 3.8730 0
B =
1
1
0
C =
0 0 1.5492
D =
0
4.6.2模型链接
基本的连接方式有并联,串联,反馈和闭环连接
4.6.2.1串联连接
G ( s ) = G 1 ( s ) G 2 ( s ) {G_{(s)}} = {G_{1(s)}}{G_{2(s)}} G(s)=G1(s)G2(s)
eg:
>> z1=[-2];
>> p1=[-1,-3,-5];
>> k1=6;
>> [num1,den1]=zp2tf(z1,p1,k1);
>> z2=[-2.5];
>> p2=[-1,-4];
>> k2=1;
>> [num2,den2]=zp2tf(z2,p2,k2);
>> [num,den]=series(num1,den1,num2,den2)
num =
0 0 0 6 27 30
den =
1 14 72 166 167 60
>> G_series=tf(num,den)
Transfer function:
6 s^2 + 27 s + 30
--------------------------------------------
s^5 + 14 s^4 + 72 s^3 + 166 s^2 + 167 s + 60
4.6.2.2并联连接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18vq3LqM-1658733066510)(https://raw.githubusercontent.com/yumo2021/PicGo1/main/20220530124905.png)]
G ( s ) = G 1 ( s ) + G 2 ( s ) {G_{(s)}} = {G_{1(s)}} + {G_{2(s)}} G(s)=G1(s)+G2(s)
eg:
>> z1=[-2];
p1=[-1,-3,-5];
k1=6;
[num1,den1]=zp2tf(z1,p1,k1);
z2=[-2.5];
p2=[-1,-4];
k2=1;
[num2,den2]=zp2tf(z2,p2,k2);
>> [num,den]=parallel(num1,den1,num2,den2)
num =
0 1.0000 17.5000 87.5000 156.5000 85.5000
den =
1 14 72 166 167 60
>> G_p=tf(num,den)
Transfer function:
s^4 + 17.5 s^3 + 87.5 s^2 + 156.5 s + 85.5
--------------------------------------------
s^5 + 14 s^4 + 72 s^3 + 166 s^2 + 167 s + 60
4.6.2.3反馈连接
根据反馈的正负号分为正反馈和负反馈
负反馈传递函数:
G H ( s ) = G ( s ) H ( s ) 1 + G ( s ) H ( s ) G{H_{(s)}} = {
{
{G_{(s)}} {H_{(s)}}} \over {1 + {G_{(s)}}{H_{(s)}}}} GH(s)=1+G(s)H(s)G(s)H(s)
正反馈传递函数:
G H ( s ) = G ( s ) H ( s ) 1 − G ( s ) H ( s ) G{H_{(s)}} = {
{
{G_{(s)}} {H_{(s)}}} \over {1 -{G_{(s)}}{H_{(s)}}}} GH(s)=1−G(s)H(s)G(s)H(s)
eg
>> num1=[1,-1];
den1=[1,-5,-2];
num2=[1,1];
den2=[1,3,2];
[num,den]=feedback(num1,den1,num2,den2,1)
num =
0 1 2 -1 -2
den =
1 -2 -16 -16 -3
>> G=tf(num,den)
Transfer function:
s^3 + 2 s^2 - s - 2
-------------------------------
s^4 - 2 s^3 - 16 s^2 - 16 s - 3
4.6.2.4闭环连接
也叫单位负反馈连接:
传递函数:
G H ( s ) = G ( s ) 1 + G ( s ) G{H_{(s)}} = {
{
{G_{(s)}}} \over {1 + {G_{(s)}}}} GH(s)=1+G(s)G(s)
eg:
>> num1=[1,-1];
den1=[1,-5,-2];
[num,den]=cloop(num1,den1) %这是负反馈cloop(num1,den1)=cloop(num1,den1,-1),正反馈是cloop(num1,den1,1)
num =
0 1 -1
den =
1 -4 -3
>> G=tf(num,den)
Transfer function:
s - 1
-------------
s^2 - 4 s - 3
4.7非线性数学模型的线性化
暂时不研究
{H_{(s)}} = {
{
{G_{(s)}}} \over {1 + {G_{(s)}}}}
$$
eg:
>> num1=[1,-1];
den1=[1,-5,-2];
[num,den]=cloop(num1,den1) %这是负反馈cloop(num1,den1)=cloop(num1,den1,-1),正反馈是cloop(num1,den1,1)
num =
0 1 -1
den =
1 -4 -3
>> G=tf(num,den)
Transfer function:
s - 1
-------------
s^2 - 4 s - 3
4.7非线性数学模型的线性化
暂时不研究