17、状态依赖切换控制的分布式综合

状态依赖切换控制的分布式综合

状态依赖切换控制的分布式综合

1. 引言

在控制合成领域,为了保证可达性和稳定性,采用了一种离线的形式化方法。控制合成方法在集中式和分布式场景下都已集成到用 Octave 编写的工具中,所有计算时间均在特定配置的计算机上进行。本文将探讨状态依赖切换控制的相关内容,包括控制模式、控制模式、基于平铺的控制合成、集中式控制和分布式控制等方面。

2. 状态依赖切换控制
2.1 控制模式

考虑具有有限控制的离散时间系统:
[
\begin{cases}
x_1(t + 1) = f_1(x_1(t), x_2(t), u_1) \
x_2(t + 1) = f_2(x_1(t), x_2(t), u_2)
\end{cases}
]
其中 (x_1) 和 (x_2) 是状态向量变量的第一和第二分量,取值分别在 (R^{n_1}) 和 (R^{n_2}) 中;(u_1) 和 (u_2) 是控制模式变量的第一和第二分量,取值分别在有限集 (U_1) 和 (U_2) 中。通常用 (x) 表示 ((x_1, x_2)),(u) 表示 ((u_1, u_2)),(n) 表示 (n_1 + n_2),(U) 表示 (U_1 \times U_2)。
在集中式控制合成问题中,在每个离散时间 (t),需要选择合适的模式 (u \in U) 以满足给定属性。这里关注状态依赖控制,即每次 (t) 时,仅根据 (x(t)) 的值来选择 (u) 的值。
在分布式控制合成问题中,需要同时根据 (x_1(t)) 的值选择 (U_1) 中的 (u_1),根据 (x_2(t)) 的值选择 (U_2) 中的 (u_2)。
考虑的属性包括可达性和稳定性。可达性是指给定集合 (S) 和 (R),寻找一种控制,能在有限步骤内将 (S) 中的任何元素引导到 (R);稳定性是指当系统状态 (x) 在时间 (t) 处于 (R) 中时,控制能使 (x) 在 (t + 1, t + 2, \cdots) 时刻无限期地保持在 (R) 中。这里假设 (R) 和 (S) 是状态空间中的“矩形”。
例如,对于一个两居室公寓的温度控制问题,系统的连续动力学方程为:
[
\begin{bmatrix}
\dot{T} 1 \
\dot{T}_2
\end{bmatrix}
=
\begin{bmatrix}
-\alpha
{21} - \alpha_{e1} - \alpha_f u_1 & \alpha_{21} \
\alpha_{12} & -\alpha_{12} - \alpha_{e2} - \alpha_f u_2
\end{bmatrix}
\begin{bmatrix}
T_1 \
T_2
\end{bmatrix}
+
\begin{bmatrix}
\alpha_{e1} T_e + \alpha_f T_f u_1 \
\alpha_{e2} T_e + \alpha_f T_f u_2
\end{bmatrix}
]
其中 (T_1) 和 (T_2) 是两个房间的温度,(u_1) 和 (u_2) 分别表示两个房间加热器的开关状态(0 或 1)。通过积分可将系统转换为离散时间形式:
[
\begin{cases}
T_1(t + 1) = f_1(T_1(t), T_2(t), u_1) \
T_2(t + 1) = f_2(T_1(t), T_2(t), u_2)
\end{cases}
]
给定目标矩形 (R = [18.5, 22] \times [18.5, 22]),控制合成问题是找到尽可能大的矩形捕获集 (S),使状态 (T) 能从 (S) 到达 (R) 并保持在 (R) 中。

2.2 控制模式

为了更方便地设计系统控制,引入了“宏步骤”和“控制模式”的概念。长度为 (k) 的控制模式 (\pi = (\pi_1, \pi_2)) 递归定义如下:
1. 当 (k = 1) 时,(\pi) 的形式为 ((u_1, u_2) \in U_1 \times U_2);
2. 当 (k \geq 2) 时,(\pi) 的形式为 ((u_1 \cdot \pi’_1, u_2 \cdot \pi’_2)),其中 (u_1 \in U_1),(u_2 \in U_2),((\pi’_1, \pi’_2)) 是长度为 (k - 1) 的控制模式。
长度为 (k) 的模式集合记为 (\Pi_k)(当 (k = 1) 时,(\Pi_1 = U))。对于系统 (x(t + 1) = f(x(t), (u_1, u_2))) 和长度为 (k) 的模式 (\pi = (\pi_1, \pi_2)),可递归定义 (x(t + k) = f(x(t), (\pi_1, \pi_2)))。
假设 (K \in N) 是模式长度的上界,用 (\Pi^{\leq K}_1)、(\Pi^{\leq K}_2) 和 (\Pi^{\leq K}) 分别表示相关的模式集合。

3. 基于平铺的控制合成
3.1 平铺

设 (R = R_1 \times R_2) 是一个矩形,如果 (R) 的形式为 ({r_{i_1, i_2}} {i_1 \in I_1, i_2 \in I_2}),其中 (I_1) 和 (I_2) 是给定的有限正整数集合,每个 (r {i_1, i_2}) 是 (R) 的子矩形,形式为 (r_{i_1} \times r_{i_2}),且 (r_{i_1}) 和 (r_{i_2}) 分别是 (R_1) 和 (R_2) 的闭子区间,并且 (\bigcup_{i_1 \in I_1} r_{i_1} = R_1),(\bigcup_{i_2 \in I_2} r_{i_2} = R_2),则称 (R) 是 (R) 的(有限矩形)平铺。
在集中式上下文中,给定矩形 (R),具有 horizon (K) 的宏步骤(反向可达性)控制合成问题是找到矩形 (S) 及其平铺 (S = {s_{i_1, i_2}} {i_1 \in I_1, i_2 \in I_2}),使得对于每个 ((i_1, i_2) \in I_1 \times I_2),存在 (\pi \in \Pi^{\leq K}) 满足 (f(s {i_1, i_2}, \pi) \subseteq R)。

3.2 平铺的参数扩展

假设 (S) 是 (R) 的参数扩展,记为 (R + (a, a))。给定 (R = R_1 \times R_2) 及其平铺 (R = R_1 \times R_2 = {r_{i_1} \times r_{i_2}} {i_1 \in I_1, i_2 \in I_2}),对于非负实参数 (a),定义 ((R_1 + a)) 为 (n_1) 个形式为 ([\ell - a, m + a]) 的区间的乘积,((R_2 + a)) 类似定义,(R + (a, a) = (R_1 + a) \times (R_2 + a))。
通过简单扩展从 (R) 的平铺得到 (S) 的平铺 (S = S_1 \times S_2 = {s
{i_1} \times s_{i_2}} {i_1 \in I_1, i_2 \in I_2}):与 (\partial R_1)(或 (\partial R_2))接触的 (R_1)(或 (R_2))的瓷砖 (r {i_1})(或 (r_{i_2}))延长为与 (\partial (R_1 + a))(或 (\partial (R_2 + a)))接触的瓷砖 (s_{i_1})(或 (s_{i_2}));内部瓷砖保持不变。
用 (R + (a, a)) 表示得到的平铺 (S),(s_{i_1})(或 (s_{i_2}))记为 (r_{i_1} + a)(或 (r_{i_2} + a)),(s_{i, j}) 记为 (r_{i, j} + (a, a))。

3.3 生成和测试平铺

将 (S) 替换为 (R + (a, a)) 后,宏步骤控制合成问题可重新表述为找到 (R) 的平铺 (R),使其能诱导 (R + (a, a)) 向 (R) 的宏步骤控制,并计算满足诱导控制存在的最大 (a) 值。
这个问题可以通过“生成和测试”过程解决:
1. 生成一个候选平铺;
2. 测试它是否满足控制属性(控制测试过程在 4.1 节解释);
3. 如果测试失败,生成另一个候选,迭代进行。
实际中,候选 (R) 的生成从平凡平铺(由一个等于 (R) 的瓷砖组成)开始,然后对 (R) 进行连续二分,直到控制测试成功或新候选的二分深度超过给定上限 (D)。

4. 集中式控制
4.1 平铺测试过程

具有 horizon (K) 的(宏步骤)控制合成问题是找到 (a \geq 0) 的最大值和 (R) 的平铺 (R = {r_{i_1, i_2}} {i_1 \in I_1, i_2 \in I_2}),使得对于每个 ((i_1, i_2) \in I_1 \times I_2),存在 (\pi \in \Pi^{\leq K}) 满足 (f(r {i_1, i_2} + (a, a), \pi) \subseteq R)。
为了测试候选平铺 (R) 是否满足所需属性,对于每个 ((i_1, i_2) \in I_1 \times I_2),定义 (\Pi^{\leq K} {i_1, i_2} = {\pi \in \Pi^{\leq K} | f(r {i_1, i_2}, \pi) \subseteq R})。
当 (\Pi^{\leq K} {i_1, i_2} \neq \varnothing) 时,定义 (A = \min {(i_1, i_2) \in I_1 \times I_2}{a_{i_1, i_2}}),其中:
[
a_{i_1, i_2} = \max_{\pi \in \Pi^{\leq K} {i_1, i_2}} \max{a \geq 0 | f(r {i_1, i_2} + (a, a), \pi) \subseteq R}
]
[
\pi_{i_1, i_2} = \arg\max_{\pi \in \Pi^{\leq K} {i_1, i_2}} \max{a \geq 0 | f(r {i_1, i_2} + (a, a), \pi) \subseteq R}
]
对于 (R) 的每个瓷砖 (r_{i_1, i_2}) 和每个 (\pi \in \Pi^{\leq K}),当 (f) 是仿射函数时,包含测试 (f(r_{i_1, i_2}, \pi) \subseteq R) 可以在 (n) 的多项式时间内完成。因此,测试 (\Pi^{\leq K} {i_1, i_2} \neq \varnothing) 可以在 (O(N^K \cdot n^{\alpha})) 内完成,计算 (\max{a \geq 0 | f(r {i_1, i_2} + (a, a), \pi) \subseteq R}) 可以通过线性规划在状态空间维度 (n) 的多项式时间内完成。
测试候选平铺 (R) 的复杂度为 (O(N^K \cdot 2^{nD})),通过“生成和测试”进行控制合成的复杂度也为 (O(N^K \cdot 2^{nD}))。
如果存在 (R) 的平铺 (R = {r_{i_1, i_2}} {i_1 \in I_1, i_2 \in I_2}) 使得对于任何 ((i_1, i_2) \in I_1 \times I_2) 都有 (\Pi^{\leq K} {i_1, i_2} \neq \varnothing),则 (R) 诱导了 (R + (A, A)) 向 (R) 的 horizon (K) 的宏步骤控制,满足 (\forall (i_1, i_2) \in I_1 \times I_2, f(r_{i_1, i_2} + (A, A), \pi_{i_1, i_2}) \subseteq R)。
例如,对于两居室公寓的问题,设置 (R = [18.5, 22] \times [18.5, 22]),(D = 1),(K = 4),寻找将矩形 (S = [18.5 - a, 22] \times [18.5 - a, 22]) 引导到 (R) 并保持在 (R) 中的集中式控制器。计算控制合成需要 4.14 秒 CPU 时间,成功迭代 15 次宏步骤控制合成过程,得到 (S = R + (a, a)),其中 (a = 53.5),即 (S = [-35, 22] \times [-35, 22])。任何从 (S) 开始的轨迹都能在 300 秒内到达 (R),进入 (R) 后每 20 秒返回 (R)。

4.2 稳定性作为可达性的特殊情况

考虑 (S = R)(即 (a = 0))的特殊情况,问题变为构建 (R) 的平铺 (R = {r_{i_1, i_2}} {i_1 \in I_1, i_2 \in I_2}),使得对于所有 ((i_1, i_2) \in I_1 \times I_2),存在模式 (\pi {i_1, i_2} \in \Pi^{\leq K}) 满足 (f(r_{i_1, i_2}, \pi_{i_1, i_2}) \subseteq R)。如果这样的平铺 (R) 存在,则 (x(t) \in R) 意味着 (x(t + k) \in R) 对于某些 (k \leq K)。通过稍微修改过程,可以额外要求 (\forall k \leq K, x(t + k) \in R + \varepsilon) 对于某些 (\varepsilon > 0),从而 (R + (\varepsilon, \varepsilon)) 在 (R) 诱导的控制下是稳定的。因此,(R) 的稳定性控制可以作为可达性控制的特殊情况处理。

5. 分布式控制
5.1 背景

在分布式上下文中,给定集合 (R = R_1 \times R_2),具有 horizon (K) 的(宏步骤)分布式控制合成问题是找到 (a \geq 0) 的最大值,以及 (R_1) 的平铺 (R_1 = {r_{i_1}} {i_1 \in I_1}) 和 (R_2) 的平铺 (R_2 = {r {i_2}} {i_2 \in I_2}),分别诱导 (R_1 + a) 和 (R_2 + a) 的(宏步骤)控制。
更精确地说,寻找平铺 (R_1) 和 (R_2) 使得存在 (\ell \in N),对于每个 (i_1 \in I_1) 存在 (U_1) 中的 (\ell) 个模式的序列 (\pi_1),对于每个 (i_2 \in I_2) 存在 (U_2) 中的 (\ell) 个模式的序列 (\pi_2),满足 (f((r
{i_1} + a) \times (R_2 + a), (\pi_1, \pi_2))| 1 \subseteq R_1 \land f((R_1 + a) \times (r {i_2} + a), (\pi_1, \pi_2))| 2 \subseteq R_2)。
为了合成分布式策略,定义 (f((r
{i_1} + a) \times (R_2 + a), (\pi_1, \pi_2))| 1) 的过近似 (X {i_1}(a, \pi_1)) 和 (f((R_1 + a) \times (r_{i_2} + a), (\pi_1, \pi_2))| 2) 的过近似 (X {i_2}(a, \pi_2))。这些过近似的正确性依赖于参数 (\varepsilon) 的固定正值,(\varepsilon) 表示应用宏步骤时所有中间状态所在的额外边距宽度。

5.2 平铺测试过程

设 (\pi^k_1)(或 (\pi^k_2))表示 (\pi_1)(或 (\pi_2))的长度为 (k) 的前缀,(\pi_1(k))(或 (\pi_2(k)))表示序列 (\pi_1)(或 (\pi_2))的第 (k) 个元素。
对于 (R_1)(或 (R_2))的平铺 (R_1 = {r_{i_1}} {i_1 \in I_1})(或 (R_2 = {r {i_2}} {i_2 \in I_2}))中的元素 (r {i_1})(或 (r_{i_2}))和长度为 (\ell_1)(或 (\ell_2))的序列 (\pi_1 \in \Pi^{\leq K} 1)(或 (\pi_2 \in \Pi^{\leq K}_2)),定义近似第一(或第二)分量序列 ({X^k {i_1}(a, \pi_1)} {0 \leq k \leq \ell_1})(或 ({X^k {i_2}(a, \pi_2)} {0 \leq k \leq \ell_2}))如下:
- (X^0
{i_1}(a, \pi_1) = r_{i_1} + a)(或 (X^0_{i_2}(a, \pi_2) = r_{i_2} + a));
- (X^k_{i_1}(a, \pi_1) = f_1(X^{k - 1} {i_1}(a, \pi_1), R_2 + a + \varepsilon, \pi_1(k))) 对于 (1 \leq k \leq \ell_1)(或 (X^k {i_2}(a, \pi_2) = f_2(R_1 + a + \varepsilon, X^{k - 1} {i_2}(a, \pi_2), \pi_2(k))) 对于 (1 \leq k \leq \ell_2))。
定义 ({X^k
{i_1}(a, \pi_1)} {0 \leq k \leq \ell_1}) 的属性 (Prop(a, i_1, \pi_1)) 为:(X^k {i_1}(a, \pi_1) \subseteq R_1 + a + \varepsilon) 对于 (1 \leq k \leq \ell_1 - 1),且 (X^{\ell_1} {i_1}(a, \pi_1) \subseteq R_1)。类似地定义 ({X^k {i_2}(a, \pi_2)} {0 \leq k \leq \ell_2}) 的属性 (Prop(a, i_2, \pi_2))。
给定 (R_1) 的平铺 (R_1 = {r
{i_1}} {i_1 \in I_1}),对于每个 (i_1 \in I_1) 和每个 (k \in {1, \cdots, K}),定义 (\Pi^k {i_1} = {\pi_1 \in \Pi^k_1 | Prop(0, i_1, \pi_1)})。当 (\Pi^k_{i_1} \neq \varnothing) 时,定义 (a^k_{i_1} = \max_{\pi_1 \in \Pi^k_{i_1}} \max{a \geq 0 | Prop(a, i_1, \pi_1)}) 和 (\pi^k_{i_1} = \arg\max_{\pi_1 \in \Pi^k_{i_1}} \max{a \geq 0 | Prop(a, i_1, \pi_1)})。类似地定义 (R_2) 的相关量。
假设:
- (H1) 存在 (k_1 \in {1, \cdots, K}) 使得 (\forall i_1 \in I_1, \Pi^{k_1} {i_1} \neq \varnothing);
- (H2) 存在 (k_2 \in {1, \cdots, K}) 使得 (\forall i_2 \in I_2, \Pi^{k_2}
{i_2} \neq \varnothing)。
则定义 (a^{k_1} 1 = \min {i_1 \in I_1}{a^{k_1} {i_1}}),(a^{k_2}_2 = \min {i_2 \in I_2}{a^{k_2}_{i_2}}),(A = \min{a^{k_1}_1, a^{k_2}_2})。
如果 (H1) 和 (H2) 成立,存在一种控制能在 (\ell = lcm(k_1, k_2)) 步内将 (R + (A, A)) 引导到 (R)。可以迭代这个过程生成嵌套的控制矩形序列。
例如,对于两居室公寓的分布式控制合成问题,设置 (R = R_1 \times R_2 = [18.5, 22] \times [18.5, 22]),(D = 3),(K = 10),可以按照上述方法进行控制合成。

mermaid 流程图

graph TD;
    A[开始] --> B[定义系统参数];
    B --> C[选择控制模式];
    C --> D[生成候选平铺];
    D --> E{测试是否满足控制属性};
    E -- 是 --> F[找到合适平铺];
    E -- 否 --> D;
    F --> G[计算相关参数];
    G --> H[应用控制];
    H --> I[结束];

表格

参数 含义
(x_1, x_2) 状态向量变量的第一和第二分量
(u_1, u_2) 控制模式变量的第一和第二分量
(R_1, R_2) 矩形 (R) 的两个部分
(S_1, S_2) 矩形 (S) 的两个部分
(U_1, U_2) 控制模式变量的取值集合
(\Pi_k) 长度为 (k) 的模式集合
(\Pi^{\leq K}) 长度不超过 (K) 的模式集合
(D) 二分深度上限
(K) 模式长度上界
(A) 满足诱导控制存在的最大 (a) 值
(\varepsilon) 额外边距宽度
6. 案例研究:十一房间房屋的温度控制

为了进一步验证上述控制合成方法的有效性,我们以一个由地热能加热的十一房间房屋的温度控制问题为例进行研究。该问题的目标是将房屋各房间的温度控制在一个特定的范围内,即寻找一个合适的控制策略,使得房屋的温度状态能够从某个初始区域最终稳定在目标区域内。

6.1 问题建模

我们将每个房间的温度作为系统的一个状态变量,因此系统的状态向量 (x) 包含了十一个分量,每个分量对应一个房间的温度。每个房间的加热器有不同的控制模式,这些控制模式构成了控制向量 (u)。系统的动态方程可以表示为离散时间形式:
[
x(t + 1) = f(x(t), u)
]
其中 (x(t)) 是 (t) 时刻的状态向量,(u) 是控制向量。

目标区域 (R) 是一个十一维的矩形,每个维度对应一个房间的温度范围。我们的任务是找到一个尽可能大的矩形捕获集 (S),使得从 (S) 中的任何状态出发,系统都能在有限步骤内到达 (R),并且在到达 (R) 后保持稳定。

6.2 集中式控制合成

在集中式控制合成中,我们使用“生成和测试”的方法来寻找合适的平铺。具体步骤如下:
1. 初始化 :从平凡平铺开始,即整个目标区域 (R) 作为一个单一的瓷砖。
2. 生成候选平铺 :对当前的平铺进行二分操作,生成新的候选平铺。
3. 测试控制属性 :对于每个候选平铺中的瓷砖,检查是否存在一个模式 (\pi \in \Pi^{\leq K}),使得该瓷砖在应用该模式后能够进入目标区域 (R)。
4. 计算最大扩展值 :如果某个候选平铺通过了测试,计算该平铺能够扩展的最大 (a) 值,使得扩展后的区域仍然能够被控制到目标区域 (R)。
5. 迭代 :如果测试失败,继续生成新的候选平铺,直到达到二分深度上限 (D) 或者找到一个合适的平铺。

通过这种方法,我们成功地找到了一个合适的捕获集 (S),使得从 (S) 出发的系统状态能够在有限时间内到达目标区域 (R),并且在到达 (R) 后保持稳定。

6.3 分布式控制合成

在分布式控制合成中,我们需要分别对每个房间的状态和控制进行处理。具体步骤如下:
1. 定义平铺 :分别对目标区域 (R) 的每个维度(即每个房间的温度范围)进行平铺。
2. 计算过近似 :为了避免子系统控制器使用非局部信息,我们定义了过近似 (X_{i_1}(a, \pi_1)) 和 (X_{i_2}(a, \pi_2)) 来估计系统的状态。
3. 检查控制属性 :对于每个平铺中的瓷砖,检查是否存在一个模式序列,使得该瓷砖在应用该模式序列后能够进入目标区域 (R)。
4. 计算相关参数 :如果某个平铺通过了测试,计算该平铺能够扩展的最大 (a) 值,以及模式序列的长度 (k_1) 和 (k_2)。
5. 应用控制 :根据计算得到的参数,应用分布式控制策略,使得系统状态能够在有限时间内到达目标区域 (R)。

通过分布式控制合成,我们同样成功地实现了对十一房间房屋温度的有效控制,并且证明了该方法在处理大规模系统时的可行性和有效性。

7. 总结与展望

7.1 总结

本文主要研究了状态依赖切换控制的集中式和分布式合成方法。通过引入“宏步骤”和“控制模式”的概念,我们提出了一种基于平铺的控制合成方法,该方法能够保证系统的可达性和稳定性。具体内容总结如下:
- 控制模式 :定义了离散时间系统的控制模式,包括集中式和分布式控制模式,并考虑了可达性和稳定性属性。
- 基于平铺的控制合成 :介绍了平铺的概念,包括平铺的参数扩展和生成测试方法,通过“生成和测试”过程找到合适的平铺,实现控制合成。
- 集中式控制 :详细阐述了集中式控制的平铺测试过程,计算了控制合成的复杂度,并通过两居室公寓的例子验证了方法的有效性。
- 分布式控制 :在分布式控制中,引入了过近似的概念,避免了子系统控制器使用非局部信息,通过计算相关参数和模式序列,实现了分布式控制合成。
- 案例研究 :通过十一房间房屋的温度控制案例,进一步验证了方法在实际应用中的可行性和有效性。

表格

方法 优点 缺点 适用场景
集中式控制 能够全局优化控制策略,保证系统的整体性能 计算复杂度高,对通信和计算资源要求较高 小规模系统,对控制精度要求较高的场景
分布式控制 计算和通信负担分散,可扩展性强 难以保证全局最优解,可能存在局部最优问题 大规模系统,对实时性和灵活性要求较高的场景

mermaid 流程图

graph TD;
    A[开始案例研究] --> B[问题建模];
    B --> C{选择控制方式};
    C -- 集中式 --> D[集中式控制合成];
    C -- 分布式 --> E[分布式控制合成];
    D --> F[计算相关参数];
    E --> F;
    F --> G[应用控制策略];
    G --> H[验证控制效果];
    H --> I{是否满足要求};
    I -- 是 --> J[结束];
    I -- 否 --> C;
7.2 展望

虽然本文提出的方法在理论和实践上都取得了较好的效果,但仍然存在一些可以改进和扩展的地方:
- 优化算法 :目前的“生成和测试”方法在处理大规模系统时计算复杂度较高,可以研究更高效的优化算法,如启发式算法、遗传算法等,以降低计算成本。
- 不确定性处理 :实际系统中往往存在各种不确定性,如传感器误差、环境干扰等。未来的研究可以考虑如何在控制合成中处理这些不确定性,提高系统的鲁棒性。
- 多目标优化 :除了可达性和稳定性,实际应用中还可能存在其他目标,如能耗最小化、舒适度最大化等。可以将多目标优化的思想引入到控制合成中,实现多个目标的综合优化。
- 实时控制 :本文的方法主要是离线计算控制策略,对于一些实时性要求较高的应用场景,可以研究如何实现实时控制合成,以满足系统的实时需求。

通过进一步的研究和改进,我们相信状态依赖切换控制的分布式合成方法将在更多的实际应用中发挥重要作用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值