-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy path05-比例积分控制.typ
227 lines (136 loc) · 4.67 KB
/
05-比例积分控制.typ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
#import "@local/scibook:0.1.0": *
#show: doc => conf(
title: "比例积分控制",
author: "ivaquero",
header-cap: "现代控制理论",
footer-cap: "github@ivaquero",
outline-on: false,
doc,
)
= 比例控制
<比例控制>
== 体重变化
<体重变化>
已知,7000 kcal ∼ 1 kg
于是,有
$ dv(m, t) = frac(E_i - E_e, 7000) $
其中,$m$为体重,$E_i$为饮食摄入热量,$E_e$为消耗(expenditure)热量,$E_e$的计算方法为
$ E_e = E_a + α P $
其中,$E_a$为客观运动消耗热量,$α$为正常消耗系数,$P$为基础代谢率(base metabolic rate,BMR)。
对$α$有
- 轻体力劳动:$α = 1.3$
- 中体力劳动:$α = 1.5$
- 重体力劳动:$α = 1.9$
对 BMR,有 Mifflin Jeor 公式
$ P = 10 m + 6.25 h - 5 a + s $
其中,$h$为身高,$a$为年龄,s 为代谢常数(男:5,女:-161)。
== 控制器与稳定性
<控制器与稳定性>
上,不难得出
$
dot(m) &= frac(E_i - E_a - α (10 m + 6.25 h - 5 a + s), 7000)\
&= frac(E_i - E_a - 10 α m - α C, 7000)
$
其中,$C = 6.25 h - 5 a + s$
令
- 输入:$u = E_i - E_a$
- 扰动:$d = -α C$
- 输出:$m$
于是,有
$ 7000 dot(m) + 10 m = u + d $
等号两边同时进行 Laplace 变换,得
$ frac(M(s), U(s) + D(s)) = frac(1, 7000s + 100) $
#figure(
image("images/block/prop.drawio.png", width: 40%),
caption: "比例控制",
supplement: "图",
)
对控制器
$ u = k_p e $
其中,$e = r - m$,即参考值与实际体重的误差。
== 引入比例
<引入比例>
这里,有
$ [k_p(R - M) + D] frac(1, 7000s + 10 α) = M $
整理,得
$ M = frac(k_p R + D, 7000s + 10 α + k_p) $
当$M$的极点小于$0$,系统稳定。一种常见情况是,$R$和$D$是稳定的,即
- $R = ℒ[r] = r / s$
- $D = ℒ[d] = d / s$
此时
$ M = frac(k_p r/s + d/s, 7000s + 10 α + k_p) $
令分子为$0$,求出$P_1$和$P_2$
$ m(t) = C_1 e^(0 t) + C_2 e^(frac(-10 α - k_p, 1000)t) $
由于第一项为常数,系统稳定性由$k_p + 10 α$确定。
= 稳态误差
<稳态误差>
== 终值定理
<终值定理>
稳态误差,指系统稳定时的输出值和参考值之间的差值,即
$ e_(s s) = r - lim_(t → ∞) x(t) $
要对稳态误差实现有效控制,需要终值定理(final value theorem,FVT),即
当$∃ lim_(t → ∞) x(t)$ 时
$ lim_(t → ∞) x(t) = lim_(s → 0) s X(s) $
#tip[
终值定理可以省去 逆 Laplace 变换,得到时域上的最终结果,常用于系统稳态判断。
]
== 弹簧阻尼系统
<弹簧阻尼系统>
#figure(
image("images/model/vibration.drawio.png", width: 40%),
caption: "弹簧阻尼系统",
supplement: "图",
)
对弹簧阻尼系统
$ m dot.double(x) + k x + B dot(x) = F $
使输出$u = F$,两边同时进行 Laplace 变换,整理得
$ frac(X(s), U(s)) = frac(1, m s^2 + B s + k) $
这里仅讨论欠阻尼状态,考虑
- 对冲击响应$δ(t)$
$u(s) = ℒ[δ(t)] = 1$,于是
$ X(s) = frac(1, m s^2 + B s + k) $
使用 FVT,有
$ lim_(t → ∞) x(t) = lim_(s → 0) frac(s, m s^2 + B s + k) = 0 $
- 对阶跃响应$c$
$u(s) = ℒ[c] = c/s$,于是
$ X(s) = c / s frac(1, m s^2 + B s + k) $
使用 FVT,有
$ lim_(t → ∞) x(t) = lim_(s → 0) c / s frac(s, m s^2 + B s + k) = c / k $
#tip[
无阻尼状态,即$B = 0$时,$lim_(t → ∞) x(t)$ 不存在,无法使用 FVT。
]
= 积分控制
<积分控制>
== 比例控制器
<比例控制器>
#figure(
image("images/block/prop-simple.drawio.png", width: 40%),
caption: "弹簧阻尼系统框图",
supplement: "图",
)
对上图系统,有
$ k_p(R(s) - X(s)) frac(1, "as" + 1) = X(s) $
整理得
$ X(s) = frac(k_p R(s), "as" + 1 + k_p) $
为使$X(s)$稳定,则其极点$s$需要小于$0$,即
$ s = frac(-1 - k_p, a) < 0 $
可知$k_p$应大于$-1$。此时,可使用 FVT。
当$r(t) = r$,有
$ X(s) = frac(k_p r/s, "as" + 1 + k_p) $
使用 FVT,有
$
lim_(t → ∞) x(t) = lim_(s → 0) s frac(k_p r/s, "as" + 1 + k_p) = frac(k_p, 1 + k_p) r
$
此时
$ e_(s s) = r - frac(k_p, 1 + k_p) r = frac(1, 1 + k_p) r $
由上,要消除稳态误差,需要$k_p → ∞$,这显然不可能,所以比例控制的效果有限。
== 比例积分控制
<比例积分控制>
将上述系统中的$k_p$替换为$c(s)$,使
$ lim_(s → 0) c(s) → ∞ $
则可消除$e_(s s)$。由 Laplace 变换,只需要因子$1/s$即可达到目的,显然此处需要引入积分运算。
令$c(s) = k_I/s$,有
$ X(s) = frac(r/s⋅k_I/s, "as" + 1 + k_I/s) = r / s frac(k_I, a s^2 + s + k_I) $
整理并进行 逆 Laplace 变换,得
$ a x ̈(t) + x ̇(t) + k_I = r k_I $
这即是二阶系统的阶跃响应。即,通过引入积分,系统被升阶为了一个二阶系统。