实例2-直流电机状态空间控制(Matlab仿真)

Matlab 仿真——直流电机速度控制(1)直流电机建模 Matlab 仿真——直流电机速度控制(1)直流电机建模 (搬运自:https://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed&section=SystemModeling) 该系列我们学习如何对直流电机进行速度控制 物理模型 一个直流电机模型如下所示: 为了简化讨论,假设转子和转轴都是刚体,转子受到的磁场恒定,转子受到的摩擦为粘性摩擦,即受到的摩擦力与速度成正比。 假设该电机的物理参数为: (J) 转子的转动惯量 阅读详情

1. 直流电机状态空间控制基础

直流电机控制是自动化领域的基础课题,状态空间法作为现代控制理论的核心方法,能够有效处理多变量系统的控制问题。与传统的传递函数方法相比,状态空间法不仅能描述系统输入输出关系,还能揭示系统内部状态的变化规律,为控制器设计提供更全面的信息。

在实际工程中,直流电机的状态空间控制通常选择电枢电流和转子角速度作为状态变量。这种选择基于物理意义明确且便于测量的考虑:电流直接反映电磁转矩的产生,而转速则是我们需要控制的最终目标。通过建立这两个状态变量之间的关系,我们可以构建出一个二阶系统,为后续的控制器设计奠定基础。

我记得第一次接触状态空间控制时,最大的困惑是如何将物理系统转化为数学表达式。后来发现,只要抓住能量转换这个核心,问题就变得清晰了。直流电机本质上是个电能-机械能转换装置,电压输入产生电流,电流产生转矩,转矩驱动负载旋转。这个过程中,电感的储能特性、转子的惯性特性以及系统的摩擦损耗,共同决定了电机的动态响应特性。

2. 建立直流电机状态空间模型

2.1 物理模型到数学模型的转换

建立准确的数学模型是控制器设计的第一步。对于直流电机,我们需要从电路和机械两个角度进行分析。在电路方面,根据基尔霍夫电压定律,电枢回路的电压平衡方程可以表示为:V = R*i + L*di/dt + K*ω,其中V是输入电压,i是电枢电流,ω是转子角速度,R和L分别是电枢电阻和电感,K是反电动势系数。

在机械方面,根据牛顿第二定律,转矩平衡方程可以写为:K*i = J*dω/dt + b*ω,这里J是转动惯量,b是粘性摩擦系数。这个方程表明电磁转矩克服惯性力和摩擦力后,驱动转子加速旋转。将这两个方程整理后,我们得到系统的状态方程:

dω/dt = -(b/J)*ω + (K/J)*i
di/dt = -(K/L)*ω - (R/L)*i + (1/L)*V

输出方程通常选择转速作为观测变量:y = ω。这样就完成了从物理系统到状态空间模型的转化。在实际建模时,参数准确性至关重要。我曾经因为低估了摩擦系数b的影响,导致仿真结果与实际测试偏差很大。后来通过实验测量修正了参数值,才获得准确的模型。

2.2 Matlab中的模型实现

在Matlab中实现状态空间模型非常简单。首先定义系统参数:

J = 0.01;    % 转动惯量 (kg.m^2)
b = 0.1;     % 粘性摩擦系数 (N.m.s)
K = 0.01;    % 反电动势系数 (V/rad/s)
R = 1;       % 电枢电阻 (Ω)
L = 0.5;     % 电枢电感 (H)

然后构建状态矩阵:

A = [-b/J   K/J
     -K/L  -R/L];
B = [0
     1/L];
C = [1 0];    % 输出为转速
D = 0;
sys = ss(A, B, C, D);  % 创建状态空间模型

使用step命令可以查看开环系统的阶跃响应:step(sys)。从响应曲线可以看出,开环系统存在稳态误差大、响应速度慢等问题,这就需要我们设计合适的控制器来改善系统性能。

3. 系统可控性分析与极点配置

3.1 可控性判断与意义

在设计控制器之前,必须确认系统是否可控。可控性意味着我们能否通过适当的输入控制,使系统状态在有限时间内从任意初始状态转移到期望状态。在Matlab中,我们可以使用ctrb函数计算可控性矩阵,并通过检查其秩来判断系统可控性:

co_matrix = ctrb(A, B);       % 计算可控性矩阵
controllable = rank(co_matrix) == length(A);  % 判断是否满秩

对于二阶系统,如果可控性矩阵的秩为2,说明系统完全可控。这是一个重要的前提条件,因为只有可控的系统才能通过状态反馈任意配置极点。我曾经遇到过因传感器故障导致某些状态不可观测的情况,这时系统虽然可控但无法实现全状态反馈,不得不改用输出反馈方案。

3.2 极点配置策略

极点配置是状态空间控制的核心思想。通过选择合适的状态反馈增益矩阵K,可以将闭环系统的极点配置到期望位置,从而获得理想的动态响应特性。期望极点的选择需要综合考虑响应速度、超调量和抗干扰能力等因素。

一般来说,极点离虚轴越远,系统响应越快,但对噪声越敏感。我通常先根据时域指标(如调节时间、超调量)确定主导极点的位置,再选择另一个极点使其远离主导极点(3-5倍以上),这样系统的动态特性主要由主导极点决定。

在Matlab中,使用place或acker函数可以方便地计算反馈增益:

desired_poles = [-10+5i, -10-5i];  % 期望极点位置
Kc = place(A, B, desired_poles);    % 计算反馈增益

选择期望极点时需要注意,过于激进的极点配置(极点离虚轴太远)会导致控制量过大,在实际系统中可能无法实现,甚至损坏执行机构。我的经验是先在仿真中尝试不同的极点配置,观察控制量的变化,找到性能与控制代价的最佳平衡点。

4. 全状态反馈控制器设计

4.1 反馈增益计算与实现

全状态反馈控制律可以表示为:u = -Kc*x,其中Kc是反馈增益矩阵,x是状态向量。这个控制律的物理意义很直观:根据系统当前状态与期望状态的偏差,产生相应的控制作用。对于直流电机系统,就是根据转速和电流的偏差调整输入电压。

在Matlab中实现全状态反馈控制系统:

sys_cl = ss(A-B*Kc, B, C, D);  % 闭环系统
t = 0:0.01:5;
step(sys_cl, t);               % 阶跃响应

从阶跃响应曲线可以看到,系统的动态性能得到了显著改善,响应速度加快,但通常会出现稳态误差。这是因为状态反馈改变了系统矩阵,影响了系统的稳态增益。为了解决这个问题,我们需要引入前置补偿器。

我第一次实现全状态反馈时,没有注意到稳态误差问题,结果系统虽然响应很快,但始终无法准确跟踪设定值。后来通过添加前置补偿器,才解决了这个问题。

4.2 控制性能分析

全状态反馈控制器的性能主要体现在三个方面:快速性、稳定性和鲁棒性。快速性由极点的位置决定,稳定性由极点是否全部位于左半平面保证,而鲁棒性则体现在系统对参数变化的敏感程度上。

通过仿真可以分析不同工况下的控制性能:

% 分析不同负载条件下的性能
load_torques = [0, 0.5, 1.0];  % 不同负载转矩
for i = 1:length(load_torques)
    % 调整系统参数模拟负载变化
    A_loaded = A;
    A_loaded(1,1) = - (b + load_torques(i))/J;
    sys_loaded = ss(A_loaded-B*Kc, B, C, D);
    subplot(length(load_torques),1,i);
    step(sys_loaded, t);
    title(['负载转矩 = ', num2str(load_torques(i)), ' N.m']);
end

这种分析帮助我们了解控制器在不同工作条件下的表现,为实际应用提供参考。在我的项目中,通过这种分析发现重载时系统响应变慢,于是增加了负载观测器来补偿负载变化的影响。

5. 前置补偿器设计与系统优化

5.1 稳态误差分析与补偿原理

全状态反馈虽然改善了动态性能,但往往引入了稳态误差。这是因为状态反馈改变了系统的直流增益。前置补偿器的作用就是补偿这种增益变化,使系统在稳态时能够准确跟踪输入指令。

前置补偿器系数Nbar的计算原理是基于零稳态误差的要求。对于单位阶跃输入,我们希望稳态输出为1,即:lim_{t→∞} y(t) = 1。通过求解这个条件,可以得到Nbar的表达式:

function Nbar = rscale(A,B,C,D,K)
    s = size(A,1);
    Z = [zeros(1,s) 1];
    N = inv([A B; C D]) * Z';
    Nx = N(1:s);
    Nu = N(s+1);
    Nbar = Nu + K*Nx;
end

这个函数计算出的Nbar值能够正好补偿状态反馈带来的增益变化。在实际应用中,我通常会将Nbar作为可调参数,根据实际测试结果进行微调,因为数学模型总是存在一定误差。

5.2 完整控制系统实现

将前置补偿器与状态反馈结合,形成完整的控制系统:u = Nbar*r - Kc*x,其中r是参考输入。在Matlab中实现:

Nbar = rscale(A,B,C,D,Kc);  % 计算补偿系数
sys_final = ss(A-B*Kc, B*Nbar, C, D);  % 完整系统
step(sys_final, t);

现在观察阶跃响应,应该可以看到系统既具有良好的动态性能,又能够实现零稳态误差。为了进一步优化系统性能,可以调整期望极点的位置,或者在性能指标与控制代价之间寻找更好的平衡点。

在实际项目中,我经常使用参数扫描来寻找最优的极点配置:

% 参数扫描寻找最优极点配置
pole_positions = [-5+2i, -5-2i; -8+3i, -8-3i; -12+4i, -12-4i];
for i = 1:size(pole_positions,1)
    Kc_temp = place(A, B, pole_positions(i,:));
    Nbar_temp = rscale(A,B,C,D,Kc_temp);
    sys_temp = ss(A-B*Kc_temp, B*Nbar_temp, C, D);
    % 计算性能指标
    step_info = stepinfo(sys_temp);
    fprintf('极点位置: %s, 调节时间: %.3f s, 超调量: %.1f%%\n', ...
        mat2str(pole_positions(i,:)), step_info.SettlingTime, step_info.Overshoot);
end

这种方法帮助我快速评估不同设计方案的优劣,选择最适合具体应用的控制器参数。

6. 仿真验证与性能评估

6.1 时域性能分析

完整的控制系统设计完成后,需要进行全面的仿真验证。时域分析主要关注阶跃响应特性,包括上升时间、调节时间、超调量和稳态误差等指标。在Matlab中可以使用stepinfo函数自动提取这些指标:

info = stepinfo(sys_final);
disp('系统性能指标:');
disp(['上升时间: ', num2str(info.RiseTime), ' s']);
disp(['调节时间: ', num2str(info.SettlingTime), ' s']);
disp(['超调量: ', num2str(info.Overshoot), '%']);
disp(['峰值时间: ', num2str(info.PeakTime), ' s']);

为了验证系统在不同输入条件下的性能,我还经常测试斜坡响应和正弦跟踪能力:

% 斜坡响应测试
t = 0:0.01:10;
u = t;  % 斜坡输入
lsim(sys_final, u, t);  % 模拟响应
title('斜坡响应');

6.2 频域分析与鲁棒性测试

频域分析能够揭示系统的频率响应特性,包括带宽、相位裕度和增益裕度等指标。这些指标反映了系统的快速性和鲁棒性:

margin(sys_final);  % 伯德图分析
grid on;

鲁棒性测试是评估控制器在实际应用中可靠性的重要环节。我通常通过改变系统参数(如转动惯量J、电阻R等),观察控制系统性能的变化:

% 参数敏感性分析
J_variations = [0.005, 0.01, 0.02];  % ±50%变化
figure;
for i = 1:length(J_variations)
    A_mod = [-b/J_variations(i) K/J_variations(i)
             -K/L         -R/L];
    sys_mod = ss(A_mod-B*Kc, B*Nbar, C, D);
    subplot(length(J_variations),1,i);
    step(sys_mod, t);
    title(['转动惯量 J = ', num2str(J_variations(i)), ' kg.m^2']);
end

这种分析帮助我们了解控制系统对参数变化的敏感程度,为实际调试提供指导。在我的经验中,状态空间控制器通常对参数变化不太敏感,这体现了其良好的鲁棒性。

7. 实际应用中的注意事项

7.1 状态观测器的应用

在实际系统中,并不是所有状态变量都能直接测量。对于直流电机系统,转速通常可以通过编码器测量,但电流测量需要额外的传感器,增加了系统成本和复杂性。这时候就需要使用状态观测器来估计不可测量的状态。

龙伯格观测器是最常用的全阶状态观测器:

% 设计龙伯格观测器
obsv_matrix = obsv(A, C);  % 可观测性矩阵
if rank(obsv_matrix) == length(A)
    % 系统可观测,设计观测器
    observer_poles = 2 * real(desired_poles(1)) * [1, 1.2];  % 观测器极点比控制器极点快2-3倍
    L = place(A', C', observer_poles)';  % 观测器增益
    % 构建含观测器的控制系统
    A_obs = [A-B*Kc    B*Kc
             zeros(size(A)) A-L*C];
    B_obs = [B*Nbar; zeros(size(B))];
    C_obs = [C zeros(size(C))];
    D_obs = 0;
    sys_with_observer = ss(A_obs, B_obs, C_obs, D_obs);
end

在实际项目中,我发现观测器极点的选择很重要。如果极点过于激进,观测器会对噪声敏感;如果过于保守,估计精度又不够。通常需要根据具体应用场景折中考虑。

7.2 抗饱和处理与实际限制

在实际系统中,控制量(电压)总是受到限制的。直接应用状态反馈可能导致控制量饱和,引起系统性能下降甚至不稳定。为了避免这个问题,需要加入抗饱和措施:

% 带饱和限制的控制实现
function u = motor_controller(x, r, Kc, Nbar, V_max)
    u_unlimited = Nbar*r - Kc*x;  % 无限制控制量
    u = max(min(u_unlimited, V_max), -V_max);  % 饱和限制
end

在仿真中,我可以模拟这种饱和效应:

% 模拟控制量饱和
V_max = 12;  % 最大电压12V
[t,x] = ode45(@(t,x) motor_dynamics(t,x,@(x) motor_controller(x,1,Kc,Nbar,V_max)), [0 5], [0;0]);
plot(t, x(:,1));  % 绘制转速响应

这种仿真更接近实际情况,帮助我评估在实际硬件限制下控制系统的性能。在我的项目中,通过这种方式发现了在大的设定值变化时会出现饱和问题,于是增加了设定值滤波和速率限制,避免了饱和带来的不良影响。

状态空间控制器的参数整定也需要考虑实际系统的特性。我通常采用先仿真后实测的方法:先在Matlab中完成初步设计,然后在实际系统上进行细调。这种方法既保证了设计效率,又确保了最终性能。

汇编语言开发必备工具:masm.exe, debug.exe, link.exe深入解析 汇编语言是一种低级编程语言,它与机器语言紧密相关,因为汇编语言使用的指令与机器能够理解的二进制代码是一一对应的。尽管汇编语言是由符号指令构成的,比机器语言更易于阅读和编写,但与高级编程语言相比,它仍提供了对硬件的直接控制能力。汇编语言的特点包括高度优化的性能、对系统资源的精细控制以及对特定硬件平台的依赖。汇编语言是一种低级编程语言,它与机器语言紧密相关,但提供了可读性更强的符号和缩写代替直接的二进制指令。汇编语言直接与计算机的硬件结构相关,能够提供对硬件寄存器、内存和外围设备的精细控制。 阅读详情

相关推荐

基于LQR的直流电机控制MATLAB仿真项目实战

回顾整个流程,我们不仅掌握了一个控制器的设计方法,更重要的是建立起一种系统级工程思维从物理本质出发建模 🧱用实验数据校准模型 🔍通过优化准则综合控制器 ⚖️在仿真中充分验证 🧪最终无缝部署到硬件 💻这才是现代控制工程的完整闭环!而且,LQR只是起点。有了这个基础,你可以轻松扩展到:- 带积分项的LQI(消除稳态误差)- 卡尔曼滤波器 + LQR = LQG(处理噪声和未观测状态)- 模型预测控制(MPC)——LQR的时变兄弟。

weixin_31749299的博客 1120

编写汇编语言的工具

<br />  (1).编辑器:用于编辑源代码的ASCII文本,Windows下可供使用的主要编辑器有记事本,EditPlus,UlterEdit等.在Linux下可用的编辑器有Vi和Emacs等,DOS下可用Edit.<br />  (2).汇编编译器:把汇编语言源程序转换为机器语言的程序,汇编编译器也可以生成源代码列表文件,其中包括行号,内存地址,源代码语句,程序中使用的符号及变量,交叉引用列表.<br />在Windows/Dos 下可用的汇编编译器有Microsoft宏汇编编译器MASM,Borla

m1j2t3的专栏 5913

MATLAB电机控制系统仿真与分析

本文还有配套的精品资源,点击获取 简介:MATLAB环境下的电机控制仿真结合了电气工程、自动化技术和计算机科学的知识,利用其强大的数学计算能力及工具箱进行电机控制系统的设计、分析和优化。本资料详细介绍了电机建模、状态控制策略、机器人控制动力学以及特定应用如电动汽车和步进电机的控制仿真。用户可以通过这些资料深入理解电机控制理论,并在MATLAB中实现实际仿真,以验证和优化控制...

weixin_34945060的博客 4304

编写汇编语言的工具----轻松汇编.EXE

windows的非官方汇编工具,asm语言编辑工具

直流电机滑模控制器设计与MATLAB仿真

在自动化控制系统中,直流电机由于其良好的调速性能和启动特性,成为了重要的控制对象。随着控制理论的发展,直流电机的控制方法日益增多,其中滑模控制因其独特的鲁棒性和适应性,在高精度电机控制领域得到广泛应用。本章将带您进入直流电机控制的世界,探讨滑模控制的基本概念、数学模型以及设计与实现的策略。滑模控制是一种变结构控制方法,其基本思想是在系统的动态过程中,使系统状态按照预定的”滑模面”进行运动。与传统控制方法相比,滑模控制不仅能在一定范围内抵抗外部扰动和内部参数变化,还能在有限的时间内达到期望的控制性能。

weixin_33431149的博客 1072

基于MATLAB的直流电机建模与仿真完整项目实战

直流电机虽老,但它的建模思想至今仍深刻影响着现代运动控制领域。通过本次深度拆解,你应该已经明白:电机不是一个黑盒子,它的行为完全由物理定律支配;数学模型不是公式堆砌,而是对现实世界的抽象刻画;仿真不是花架子,它是降低试错成本、加速产品迭代的核心工具。下次当你看到一台电机嗡嗡转动时,脑海里浮现的不应只是“它在转”,而是那一串串跳动的微分方程、一个个闪烁的Scope波形,以及背后无数工程师打磨过的控制逻辑。这才是工程师眼中的世界——理性、有序、充满美感 🎨。

weixin_42153793的博客 1195

基于现代控制理论的直流电机调速系统设计与仿真

基于现代控制理论设计直流电机调速系统,能够充分发挥现代控制方法的优势,实现更加精确和高效的调速控制。通过系统建模、控制器设计以及仿真验证,我们可以不断优化系统性能。无论是在工业生产还是科研领域,这种设计方法都具有重要的应用价值。后续还可以进一步研究如何将现代控制理论与实际工程应用更好地结合,解决更多复杂的控制问题。

2503_94165661的博客 1435

MATLAB Simulink直流电机双闭环控制仿真项目

在直流电机的控制中,双闭环控制结构是一种广泛采用的控制策略,主要包括外环(速度环)和内环(电流环)。这种结构的出现,源于对电机响应速度、精度和稳定性提出的更高要求。速度环:外环的主要任务是根据设定的速度指令(Reference Speed)与实际反馈速度(Measured Speed)之间的误差,计算出所需的电流参考值(Reference Current)。速度环的控制通常采用PI控制器(Proportional-Integral Controller),以确保系统具有良好的稳态精度和动态响应。

weixin_42594419的博客 1330

汇编语言编写工具

汇编语言编写,有对应的中文翻译,win7下稳定运行,个人找到的最好的汇编工具,内嵌魔板,很方便的

MATLAB仿真:无刷直流电机双闭环控制与数学模型实现

MATLAB,作为MathWorks公司推出的一款高性能数值计算和可视化软件,自1984年面市以来,已经成为工程师和科研人员不可或缺的工具之一。它不仅提供了丰富的数学函数库,还具备强大的矩阵运算能力,可以轻松处理线性代数、统计分析、信号处理等复杂问题。Simulink是MATLAB的一个附加产品,它提供了一个可视化的多域仿真和基于模型的设计环境,用于模拟动态系统,包括控制、通信、信号处理、和视频处理等系统。

weixin_36431145的博客 1172

基于MATLAB的直流电机弱磁控制仿真系统(2017及以上版本)

弱磁控制并非无限制地降低励磁电流,必须在机械、电气和热力学约束下合理设定调控边界。对于高级用户,也可通过模块手动构建模型。根据第二章推导的电压方程与运动方程:其中 $\Phi = f(I_f)$ 表示磁通与励磁电流的非线性关系,可用查表法近似。对应的Simulink实现如下代码片段(用于MATLAB Function模块):% 自定义弱磁控制主函数% 输入:电流参考、实测转速与电流% 输出:电枢与励磁电压指令end。

weixin_35906794的博客 876

基于Simulink的直流电机(DC Motor)的速度和位置控制的状态反馈控制器仿真

基于Simulink的直流电机(DC Motor)的速度和位置控制的状态反馈控制器仿真实例,我们将从系统建模、控制器设计、Simulink实现等方面进行详细说明。假设我们要设计一个用于直流电机的速度和位置控制的状态反馈控制器,并使用Simulink进行仿真验证。

MHD0815的博客 1648

直流电机PID控制器设计与MATLAB开发实战

比例-积分-微分(Proportional-Integral-Derivative,简称PID)控制器是一种广泛应用于工业控制领域的反馈控制器。它结合了比例、积分和微分三种控制策略,以期达到快速响应和减少系统误差的目的。PID控制器的原理是将系统的设定值(setpoint)与实际输出值(process variable)相比较,产生的偏差(error)用来经过PID三个控制环节的运算后产生控制量,驱动执行机构,使得过程变量能够跟随设定值变化。

weixin_42511832的博客 1257

【控制】基于matlab H无穷大控制的直流电机鲁棒控制【含Matlab源码 12085期】

H无穷大控制的直流电机鲁棒控制 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1168

直流电机LQR控制:从状态空间建模到MATLAB/Simulink仿真实现

状态空间模型是现代控制理论描述动态系统的核心框架,它将系统内部状态、输入与输出之间的关系用矩阵方程清晰表达。其原理基于线性系统理论,通过状态反馈可实现极点的任意配置,从而优化系统动态性能。这一方法的技术价值在于为多变量系统提供了一种结构化、可分析的设计途径,尤其适用于像直流电机这类具有明确物理模型的对象。在工程实践中,状态空间模型常与最优控制理论结合,例如线性二次型调节器(LQR),通过在状态误差与控制能量消耗之间寻求最优折衷,实现高性能控制。LQR控制器设计的关键在于权重矩阵Q和R的选取,这直接决定了系统

weixin_29175469的博客 356

一整套的汇编开发工具

包含一整套的汇编开发工具内含DOSbox,masm.exe,link.exe,debug.exe,debug32.exe

【直流电机鲁棒控制】matlab实现H无穷大控制的直流电机鲁棒控制研究

摘要 本文研究了基于H无穷大控制的直流电机鲁棒控制方法。针对直流电机系统运行中存在的参数不确定性和外部扰动问题,提出了一种采用H无穷大控制理论的鲁棒控制器设计方案。通过建立直流电机的状态空间模型,考虑参数不确定性,设计了包含性能指标和权函数的广义被控对象。利用MATLAB的Robust Control Toolbox实现了控制器求解和仿真验证,结果表明所设计的H无穷大控制器在阶跃响应、正弦跟踪和抗扰能力等方面均表现出良好的控制性能。该研究为直流电机在工业自动化等领域的鲁棒控制提供了有效的解决方案。

m0_53407570的博客 974

汇编语言编写工具(个人收集的四个工具)

里面含有四个软件工具,个人收集的,应该有一个适合你的!!

上一篇: GD32 Embedded Builder:基于Eclipse的图形化IDE开发实战
下一篇: 零基础实战:Ollama+VS Code本地部署DeepSeek,打造专属AI编程助手
lambda
博客等级 码龄23年 49粉丝 1303原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值