概述
第四讲 Matlab/Simulink入门——连续系统仿真实例
- 1、连续系统基本概念
- 1.1 连续系统
- 1.2 线性连续系统
- 1.3 Laplace变换
- 2、蹦极模型(例1)仿真
- 2.1 蹦极模型
- 2.2 建模
- 2.3 模型参数设置
- 2.4 系统仿真
- 3、比例微分控制器(例2)仿真
- 3.1 比例微分控制器模型
- 3.2 建模
- 3.3 模型仿真
1、连续系统基本概念
1.1 连续系统
连续系统: 是指系统输出时间上连续变化,而不是仅在离散时刻采样取值。对于满足以下条件的系统,我们称之为连续系统:
(1)系统输出连续变化,变化的时间间隔为无穷小量。
(2)存在系统输入或输出的微分项。
(3) 系统具有连续状态。
设连续系统的输入变化量为
u
(
t
)
u(t)
u(t),其中
t
t
t为连续取值的时间变量,系统的输出为
y
(
t
)
y(t)
y(t),连续系统的一般数学描述为:
y
(
t
)
=
f
(
u
(
t
)
,
t
)
y(t)=f(u(t),t)
y(t)=f(u(t),t)
微分方程形式为:
∂
x
∂
t
=
f
(
x
(
t
)
,
u
(
t
)
,
t
)
frac{partial x}{partial t}=f(x(t),u(t),t)
∂t∂x=f(x(t),u(t),t)
y
(
t
)
=
g
(
x
(
t
)
,
u
(
t
)
,
t
)
y(t)=g(x(t),u(t),t)
y(t)=g(x(t),u(t),t)
1.2 线性连续系统
线性连续系统: 对满足以下两个条件的连续系统,我们称为线性连续系统。
(1)、齐次性: 对于连续系统
y
(
t
)
=
T
{
u
(
t
)
}
,
t
=
0
,
1
,
2...
y(t)=Tlbrace u(t) rbrace, t=0,1,2...
y(t)=T{u(t)},t=0,1,2...,如果对任意的输入
u
(
t
)
u(t)
u(t)与给定的常数
α
alpha
α,下面的式子总成立:
T
{
α
u
(
t
)
}
=
α
T
{
u
(
t
)
}
Tlbrace alpha u(t) rbrace = alpha Tlbrace u(t) rbrace
T{αu(t)}=αT{u(t)}
则称系统满足齐次性。
(2)、叠加性: 对于系统对于输出
u
1
(
t
)
u_1(t)
u1(t)和
u
2
(
t
)
u_2(t)
u2(t),输出分别为
y
1
(
t
)
y_1(t)
y1(t) 和
y
2
(
t
)
y_2(t)
y2(t),总有下面的式子成立:
T
{
u
1
(
t
)
+
u
2
(
t
)
}
=
T
{
u
1
(
t
)
}
+
T
{
u
2
(
t
)
}
Tlbrace u_1(t)+u_2(t) rbrace = Tlbrace u_1(t) rbrace + Tlbrace u_2(t) rbrace
T{u1(t)+u2(t)}=T{u1(t)}+T{u2(t)}
则称系统满足叠加性。
1.3 Laplace变换
L
a
p
l
a
c
e
变
换
Laplace变换
Laplace变换: 对于连续信号
u
(
t
)
u(t)
u(t),其
L
a
p
l
a
c
e
Laplace
Laplace变换定义为
U
(
s
)
=
∫
−
∞
∞
u
(
t
)
e
−
s
t
d
t
U(s)=displaystyle int ^infty_{-infty} u(t)e^{-st} {rm d}t
U(s)=∫−∞∞u(t)e−stdt。一般而言,系统的输入时间
t
≥
0
t geq 0
t≥0,这时
U
(
s
)
=
∫
0
∞
u
(
t
)
e
−
s
t
d
t
U(s)=displaystyle int ^infty_0 u(t)e^{-st} {rm d}t
U(s)=∫0∞u(t)e−stdt。一般简记为
U
(
s
)
=
L
(
u
(
t
)
)
U(s)=L(u(t))
U(s)=L(u(t))。
L
a
p
l
a
c
e
变
换
Laplace变换
Laplace变换具有如下两个重要性质:
(1)、线性关系:
L
a
p
l
a
c
e
Laplace
Laplace变换同时满足齐次性和叠加性,即:
U
{
α
u
1
(
t
)
+
β
u
2
(
t
)
}
=
α
U
{
u
1
(
t
)
}
+
β
U
{
u
2
(
t
)
}
Ulbrace alpha u_1(t)+beta u_2(t) rbrace = alpha Ulbrace u_1(t) rbrace + beta Ulbrace u_2(t) rbrace
U{αu1(t)+βu2(t)}=αU{u1(t)}+βU{u2(t)}
(2)、设连续信号
u
(
t
)
u(t)
u(t)的
L
a
p
l
a
c
e
Laplace
Laplace变换为
U
(
s
)
U(s)
U(s),则
∂
u
∂
t
displaystyle frac{partial u}{partial t}
∂t∂u的
L
a
p
l
a
c
e
Laplace
Laplace变换为
s
U
(
t
)
sU(t)
sU(t)。
线性连续系统的另一个模型为状态空间模型:
{
∂
u
∂
t
=
A
x
(
t
)
+
B
u
(
t
)
y
(
t
)
=
C
x
(
t
)
+
D
u
(
t
)
begin{cases} displaystyle frac {partial u} {partial t} = Ax(t)+Bu(t)\ y(t)=Cx(t)+Du(t)\ end{cases}
⎩⎨⎧∂t∂u=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)
2、蹦极模型(例1)仿真
2.1 蹦极模型
【例1】蹦极跳是一种挑战身体极限的运动,蹦极者系着一根弹力绳从高处的桥梁(或山崖等)向下跳。在下落的过程中,蹦极者几乎处于失重状态。按照牛顿运动定律,自由下落的物体的位置由下面的式子确定:
m
∂
2
x
∂
t
2
=
m
g
−
a
1
∂
x
∂
t
−
a
2
∣
∂
x
∂
t
∣
∂
x
∂
t
m frac{partial^2x}{partial t^2} = mg-a_1 frac{partial x}{partial t}-a_2 left| frac{partial x}{partial t} right|frac{partial x}{partial t}
m∂t2∂2x=mg−a1∂t∂x−a2∣∣∣∣∂t∂x∣∣∣∣∂t∂x
其中m为物体质量,g为重力加速度,x为物体的位置,
a
1
a_1
a1 、
a
2
a_2
a2表示空气阻力的系数。
现选择蹦极者起跳位置为起点(即x=0处),低于起点位置为正,高于起点为负。如果物体系在一个弹性系数为
k
k
k的弹力绳索上,绳索的原始长度为
x
0
x_0
x0,则其对下落物体位置的作用力为:
b
(
x
)
=
{
−
k
(
x
−
x
0
)
,
x
>
x
0
0
,
x
≤
x
0
b(x)=begin{cases} -k(x-x_0), x>x_0 \ 0 , x leq x_0 \ end{cases}
b(x)={−k(x−x0),x>x00,x≤x0
设蹦极者起跳位置距离地面
80
m
80m
80m,绳索原始长度
x
0
=
30
m
x0=30m
x0=30m,蹦极者起始速度为 0,即。其余参数分别为
k
=
18.45
,
a
1
=
1.3
,
a
2
=
1.1
,
m
=
70
k
g
,
=
9.8
m
/
s
2
k=18.45, a_1=1.3, a_2=1.1, m=70 kg ,=9.8 m/s^2
k=18.45,a1=1.3,a2=1.1,m=70kg,=9.8m/s2。试建立蹦极跳系统的Simulink仿真模型,并对系统进行仿真,分析此蹦极跳系统是否安全。
2.2 建模
建立蹦极跳系统的Simulink仿真模型。根据系统的数学描述选择合适的Simulink系统模块,建立此蹦极跳系统的Simulink模型,如上图所示。
Constant模块:用于表示蹦极者重力
m
g
mg
mg。
Constant1模块:用于表示绳索原始长度
x
0
x_0
x0。
Constant2模块:用于表示当
x
≤
x
0
x ≤ x_0
x≤x0时函数
b
(
x
)
b(x)
b(x)的取值,即
0
0
0。
Constant3模块:用于表示蹦极者起始位置相对地面的距离。
Gain模块:用于表示弹性系数的负数,即
−
k
-k
−k。
Gain1模块:用于表示参数
a
1
a_1
a1。
Gain2模块:用于表示参数
a
2
a_2
a2。
Gain3模块:用于表示蹦极者质量的倒数,即
1
m
frac{1}{m}
m1。
Abs 模块:来自Math Operations子库,用于对信号取绝对值。
Integrator模块和Integrator1模块:来自Continuous子库,用于对信号进行积分。Integrator模块的输入信号为,输出为;Integrator1模块的输入信号为,输出为
x
x
x。
Switch 模块:来自Signal Routing 子库,用于构建分段函数
b
(
x
)
b(x)
b(x)。
2.3 模型参数设置
mg模块:常值设为70*9.8。
0模块:常值设为0。
x0模块:常值设为30。
distance模块:常值设为80。
-k模块:增益设为-18.45。
a1模块:增益设为1.3。
a2模块:增益设为1.1。
1/m模块:增益设为1/70。
Switch模块:Threshold设为默认值,判断准则设为u2>Threshold,如图4-19所示。
Integrator模块和Integrator1模块:由于设初始位置和初始速度均为0,故这两个模块的初始值设为默认值(零)即可。
2.4 系统仿真
仿真时间设置为50s,然后运行,结果如图所示。
从图中可以看到,蹦极者相对地面的距离存在小于零的情况,也就是说此蹦极跳系统对于70kg的蹦极者来说不安全的,蹦极者会触碰到地面。
3、比例微分控制器(例2)仿真
3.1 比例微分控制器模型
【例2】比例微分控制器系统,其数学描述为:
u
(
t
)
=
K
p
e
(
t
)
+
K
d
∂
e
∂
t
u(t)=K_p e(t) + K_d frac{partial e}{partial t}
u(t)=Kpe(t)+Kd∂t∂e
现有一个执行机构,其传递函数为:
1
(
s
−
1.1
)
(
s
+
1.1
)
frac{1}{(s-1.1)(s+1.1)}
(s−1.1)(s+1.1)1
显然,它是发散的,不稳定的,其开环阶跃响应曲线如图所示。
3.2 建模
Derivative模块:来自Continuous子库,微分器,其输入为
e
(
t
)
e(t)
e(t),输出为。
Gain模块:控制器比例项系数,即
K
p
=
15
K_p=15
Kp=15。
Gain1模块:控制器微分项系数,即
K
d
=
2
K_d=2
Kd=2。
Zero-Pole 模块:设置Zeros 零点为[],Poles 极点为[1.1 -1.1],Gain 增益为1,其余默认,如图所示。
3.3 模型仿真
仿真时间设置为20s。
最大仿真步长设置为0.01。
绝对误差设置为1e-6。
仿真结果如图所示,在阶跃信号的作用下,系统不断地对位置误差进行控制修正,最终系统达到了稳定状态,可以通过调整 K p K_p Kp、 K d K_d Kd以获得更好的性能。
最后
以上就是尊敬电灯胆为你收集整理的第四讲 Matlab/Simulink入门——连续系统仿真实例1、连续系统基本概念2、蹦极模型(例1)仿真3、比例微分控制器(例2)仿真的全部内容,希望文章能够帮你解决第四讲 Matlab/Simulink入门——连续系统仿真实例1、连续系统基本概念2、蹦极模型(例1)仿真3、比例微分控制器(例2)仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复