-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy path06-比例微分控制.typ
326 lines (213 loc) · 8.01 KB
/
06-比例微分控制.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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
#import "@local/scibook:0.1.0": *
#show: doc => conf(
title: "比例微分控制",
author: "ivaquero",
header-cap: "现代控制理论",
footer-cap: "github@eqt:ivaquero",
outline-on: false,
doc,
)
= 根轨迹
<根轨迹>
== 图像绘制
<图像绘制>
对如下闭环系统
#figure(
image("images/block/closed-1.drawio.png", width: 40%),
caption: "闭环控制",
supplement: "图",
)
$ frac(Y(s), R(s)) = frac(K G(s), 1 + K G(s)) $
分子为$0$时得到的极点,即为根。
#tip[
对根的分析,就是对分子中变量函数的分析。
]
对传递函数
$ G(s) = frac(N(s), D(s)) = frac(∑_(i=1)^m (s - z_i), ∑_(j=1)^n (s - p_j)) $
- $N(s) = 0$时,$s_1 = z_1, z_2 = z_2, …$,称零点(zeros),$N(s)$为$m$阶
- $D(s) = 0$时,$s_1 = p_1, s_2 = p_2, …$,称极点(poles),$D(s)$为$n$阶
此时有如下规则
- 当$m ≠ n$,根轨迹(root locus)共有$max(m, n)$条
- 当$m = n$,随着$K → ∞$,根轨迹从$G(s)$的零点向极点移动
- 复平面实轴上的根轨迹存在于由右至左的第$2n + 1$个零点或极点左边
- 当$m < n$,则有$n - m$条根轨迹从极点指向$∞$
- 当$m > n$,则有$m - n$条根轨迹从$∞$指向零点
- 若存在复数根,其必共轭,其更轨迹关于复平面实轴对称
- 根轨迹沿渐近线移动
- 渐近线与实轴的交点为$δ = frac(∑ p - ∑ z, n - m)$
- 渐近线与实轴的夹角为$θ = frac(2 q + 1, n - m) π, q = 0, 1, …, |m - n| - 1$
- 根轨迹上的点满足$∠K G(s) = -π$
#pagebreak()
== 汇合点 & 分离点
<汇合点-分离点>
对弹簧阻尼系统
#figure(
image("images/model/vibration.drawio.png", width: 40%),
caption: "弹簧阻尼系统",
supplement: "图",
)
有
$ dot.double(x) + 2 ζ ω_n dot(x) + ω_n^2 x = u $
其中,$ζ$为阻尼比,$ω_n$为固有频率。
此时,传递函数为
$ G(s) = frac(1, s^2 + 2 ζ ω_n s + ω_n^2) $
令$ζ = K$,化为一般形式,得
$ frac(1, s^2 + ω_n^2) dot.double(x) + 2 K ω_n dot(x) + ω_n^2 x = 0 $
整理得
$ 1 + K frac(2 ω_n s, s^2 + ω_n^2) = 0 $
此时,新的传递函数为
$ G_("new")(s) = frac(2 ω_n s, s^2 + ω_n^2) $
- 该函数的极点:$p_1 = j ω_n$和$p_2 = -j ω_n$
- 该函数的零点:$z = 0$
由
$ K frac(2 ω_n s, s^2 + ω_n^2) = -1 $
得
$ K = -frac(s^2 + ω_n^2, 2 ω_n s) $
其中,$s = σ + j ω$,于是
$ K(σ) = -frac(σ^2 + ω_n^2, 2 ω_n σ) $
求导得$σ = ±ω_n$,由上$σ$只能在实轴的左边,故$σ = -ω_n$,此时
$ K(σ) = 1 = ζ $
== 几何性质
<几何性质>
对复数
- $z_1 = σ_1 + j ω_1 = r_1 e^(i θ_1)$
- $z_2 = σ_2 + j ω_2 = r_2 e^(i θ_2)$
有
- $z_1⋅z_2 = r_1 r_2 e^(i (θ_1 + θ_2))$
- $z_1 / z_2 = r_1 / r_2 e^(i (θ_1 - θ_2))$
对
$ G(s) = frac(N(s), D(s)) $
令$s = σ + j ω$,则
- $r = frac(∏|z_i - σ|, ∏|p_j - σ|)$
- $θ = ∑ θ_(z_i) - ∑ θ_(p_j)$
= 补偿器
<补偿器>
== 超前补偿器
<超前补偿器>
对如下系统
#figure(
image("images/block/closed-2.drawio.png", width: 40%),
caption: "闭环系统",
supplement: "图",
)
- 极点:$p_1 = 0$和$p_2 = -2$
- 零点:无
- 渐近线:$σ_a = (-2 + 0 - 0)/(2 - 0) = -1$
- 夹角:$θ_a = π/2$
绘制出图像,对$K$分析
- 当$K$较小时,$p_1, p_2 < 0$,函数收敛,收敛速度由$p_1$和$p_2$中较小者决定
$ X(t) = C_1 e^(p_1 t) + C_2 e^(p_2 t) $
- 当$K$增加,根移动至复平面,实部落在渐近线,收敛速度由$e^(-σ_a t)$决定
$ C(t) = C e^(-σ_a t) sin ω_n t $
此时,改变$K$并不能加快收敛速度。加速需使渐近线左移。
== PD 控制
<pd-控制>
根轨迹的性质,根轨迹上的点满足$∠K G(s) = -π$。所以,若想使渐近线左移,可以在极点左边补充零点和极点,使夹角和满足上述条件。
在增益前,加入新的控制模块$H = s + 8$,其中
- $s$为微分(derivative)
- $8$为比例(proportion)
#figure(
image("images/block/compens-lead.drawio.png", width: 40%),
caption: "PD 控制",
supplement: "图",
)
这就是比例微分控制(PD control),这种控制器有两个明显的缺点
- 需要外来能量源
- 对高频信号敏感
此时,需要引入超前补偿器(lead compensator)
$ H(s) = frac(s - z, s - p) $
其中,$|z| < |p|$。
#tip[
这里的“超前”指相位提前。
]
== 滞后补偿器
<滞后补偿器>
对闭环系统,其误差为
$ 𝔼[s] = R(s) - X(s) = R(s) - 𝔼[s] K G(s) $
整理得
$ 𝔼[s] = R(s) frac(1, 1 + K G(s)) = R(s) frac(N(s), 1 + K N(s)) / D(s) $
假设$R(s)$为单位阶跃函数$1/s$,此时的稳态误差为
$
e_(s s) &= lim_(t → ∞) e(t) = lim_(s → 0) s 𝔼[s]\
&= lim_(s → 0) s 1 / s frac(1, 1 + frac(N(s), D(s)))\
&= frac(1, 1 + K N(0)) / D(0)\
&= frac(D(0), D(0)) + K N(0)
$
#figure(
image("images/block/compens-lag.drawio.png", width: 40%),
caption: "closed-lag",
supplement: "图",
)
加入滞后补偿器(lag compensator)后,$𝔼[s]$变为
$ 𝔼[s] = R(s) - X(s) = R(s) - 𝔼[s] K G(s) frac(s + z, s + p) $
整理得
$
𝔼[s] = R(s) frac(1, 1 + K G(s)) = R(s) frac(N(s), 1 + K N(s)) / D(s) * (s + z) / (s + p)
$
稳态误差为
$ e_(s s) = frac(D(0), D(0)) + K N(0) * z / p $
若$z > p$,则可减小$e_(s s)$,即通过调整$z/p$可以减少$e_(s s)$。
#tip[
当$p = 0$,$e_(s s) → 0$,$H(s) = 1 + z/s$,此为比例积分控制。
]
= PID 控制器
<PID-控制器>
== 控制途径
<控制途径>
当$r(t) - x(t) ≠ 0$,有如下 3 种手段减小误差
- 比例控制:基于当前误差,调节$k_p⋅e$,其中,$k_p$为比例增益
- 积分控制:基于过去误差,调节$k_I ∫e dd(t)$,其中,$k_I$为积分增益
- 微分控制:基于误差变化,调节$k_D dv(e, t)$,其中,$k_D$为微分增益
将三者整合,得
$ u = k_p e(t) + k_I ∫(t) dd(t) + k_D dv(e, t) $ <pid>
两端同时 Laplace 变换,得
$ U(s) = (k_p + k_I 1 / s + k_D s) 𝔼[s] $
由此得到的 PID 控制兼具了以下两种控制的优点
- PD 控制:提高稳定性,改善瞬态响应
- PI 控制:降低稳态误差
== Cauchy 幅角原理
<Cauchy-幅角原理>
对复数$q = a + b j$,将其通过映射$F(s)$,可得新的复数$F(q) = a′ + b′ j$。
假设两个复数分别位于的平面称为平面$A$和平面$B$,则映射$F(s)$将平面$A$中的零点/极点平移至平面$B$的原点,此时
#figure(
table(
columns: 5,
align: center + horizon,
inset: 4pt,
stroke: frame(rgb("000")),
[], [幅角], [新幅角], [模], [新模],
[零点], [$ϕ_1$], [$ϕ_1$], [$v_1$], [$v_1$],
[极点], [$ϕ_2$], [$-ϕ_2$], [$v_2$], [$1 \/ v_2$],
[零点 + 极点], [$ϕ_1, ϕ_2$], [$ϕ_1 - ϕ_2$], [$v_1, v_2$], [$v_1 \/ v_2$],
),
caption: "幅角",
supplement: "表",
kind: table,
)
#tip[
幅角:零点/极点与平面内的任一点连线与横轴的夹角
]
#theorem("幅角原理(Argument Principle)")[
在$S$平面内画一条闭环曲线$A$,曲线$B$由曲线$A$通过映射$F(s)$得到,则
- 曲线$A$每包含1个$F(s)$的零点,曲线$B$就绕原点顺时针一圈
- 曲线$A$每包含1个$F(s)$的极点,曲线$B$就绕原点逆时针一圈
]
== 标准型
令$k_I/k_p = 1/τ_I$,$k_D/k_p = τ_D$,则@eqt:pid 变为
$ u(t) = k_p e(t) + 1 / τ_I ∫e(t) dd(t) + τ_D dot(e)(t) $ <pidstd>
其中
- $τ_I$为积分时间,表征积分项追上比例相的所需时间;
- $τ_D$为微分时间,表征比例项追上微分相的所需时间;
#tip[
积分项是历史误差的积累,比例相是对当前误差的响应,微分相是对未来误差的判断。
]
对@eqt:pidstd 两端进行 Laplace 变换,得
$ u(s) = k_p (E(s) + E(s) / τ_I + τ_D E(s)) = underbrace(k_p (1 + 1 / τ_I + τ_D), "C(s)") E(s) $
由于传感器的微分相往往不稳定,会放大高频噪声。引入一阶滤波器除数$N$,得
$ C(s) = k_p (1 + 1 / (τ_I s) + (τ_D s) / ((τ_D s) / N + 1)) $
其包含了1个极点和1个零点,分别为
$
s_p = - N / τ_D \
s_z = - N / (N+1) / τ_D
$
即得到一个超前补偿器,其不会无限放大高频噪声。