圆点博士小四轴算法快速入门--四元数和PID图解

姿态控制算法前期准备(四元数+PID算法理论+欧拉角理论) 姿态控制算法前期准备(四元数+PID算法理论+欧拉角理论) 一、需要的知识储备: 由于输入数据为四元组,因此需要对四元组有一些初步的了解: **什么是四元数?**形如: q=a+b∗i+c∗j+d∗k q=a+b*i+c*j+d*k q=a+b∗i+c∗j+d∗k ​ 它是复数的推广,因此亦称超复数。它除了乘法交换律不成立外,通常代数的其余运算律都成立。其满足一下等式: i2=j2=k2=ijk=−1ij=−ji=k,jk=−kj=i,ki=−ik=j i^2=j^2=k^2=ijk=-1 阅读详情

参考http://www.eeboard.com/bbs/thread-32321-1-1.html

飞控的算法代码一般包括下面三个部分:滤波,姿态,PID

1,滤波可以用互补滤波来实现,互补滤波的资料很多,大家随便就能找到。基本公式是:

互补滤波 


2,滤波完就是四元数拉。直接用老外Madgwick的IMU就可以。超级简单
unsigned char BS004_IMU_Update(float ax,float ay,float az,float gx,float gy,float gz) 
{
        float norm;
        float vx, vy, vz;
        float ex, ey, ez;  
  //        
        //圆点博士:四元数乘法运算
        float q0q0 = q0 * q0;                                                        
        float q0q1 = q0 * q1;
        float q0q2 = q0 * q2;
        float q1q1 = q1 * q1;
        float q1q3 = q1 * q3;
        float q2q2 = q2 * q2;
        float q2q3 = q2 * q3;
        float q3q3 = q3 * q3;
        //        
        //圆点博士:归一化处理
        norm = sqrt(ax*ax + ay*ay + az*az);     
        if(norm==0) return 0;        
        ax = ax / norm;
        ay = ay / norm;
        az = az / norm;   
  //        
        //圆点博士:建立小四轴坐标系        
        vx = 2*(q1q3 - q0q2);                                                                
        vy = 2*(q0q1 + q2q3);
        vz = q0q0 - q1q1 - q2q2 + q3q3;
        //
        //圆点博士:坐标系和重力叉积运算
        ex = (ay*vz - az*vy);                                                                
        ey = (az*vx - ax*vz);
        ez = (ax*vy - ay*vx);
        //
        //圆点博士:比例运算
        exInt = exInt + ex*bs004_quad_Ki;
        eyInt = eyInt + ey*bs004_quad_Ki;
        ezInt = ezInt + ez*bs004_quad_Ki;
        //
        //圆点博士:陀螺仪融合
        gx = gx + bs004_quad_Kp*ex + exInt;
        gy = gy + bs004_quad_Kp*ey + eyInt;
        gz = gz + bs004_quad_Kp*ez + ezInt;
        //
        //圆点博士:整合四元数率
        q0 = q0 + (-q1*gx - q2*gy - q3*gz)*bs004_quad_halfT;
        q1 = q1 + (q0*gx + q2*gz - q3*gy)*bs004_quad_halfT;
        q2 = q2 + (q0*gy - q1*gz + q3*gx)*bs004_quad_halfT;
        q3 = q3 + (q0*gz + q1*gy - q2*gx)*bs004_quad_halfT;  
        //
        //圆点博士:归一化处理
        norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);
        if(norm==0) return 0;        
        q0 = q0 / norm;
        q1 = q1 / norm;
        q2 = q2 / norm;
        q3 = q3 / norm;
        //
        //圆点博士:欧拉角转换
        bs004_imu_roll=asin(-2*q1q3 + 2*q0q2)*57.30f;
  bs004_imu_pitch=atan2(2*q2q3 + 2*q0q1, -2*q1q1-2*q2q2 + 1)*57.30f; 
  bs004_imu_yaw=bs004_imu_yaw-gz*bs004_mpu6050_gyro_scale;
        //
        return 1;        
}


3, PID的代码其实也很简单,主要是要了解其中的原理,才能更好地调整参数。为了方便新手们理解,楼主建立了一个数学模型来让大家了解。(只针对新手,老手就算了)

========圆点博士小四轴之PID控制模式分析=======
PID控制的P是Proportional的缩写, 是比例的意思,I是Integral的缩写,是积分的意思,D是Derivative的缩写,是微分的意思。所以,PID就是我们常说的比例,积分,微分控制。
我们首先来看一个PID控制模型曲线图:
该图包含了比例控制,比例+积分控制,比较+积分+微分控制的电机响应图的对比。

PID模型 
下面我们对曲线进行具体分析:
PID中的比例控制是最容易理解的,比例控制就是把角度的误差乘以一个常数作为输出驱动。假定我们有一个理想模型的电机,1V电压的变化会带来小四轴1度的角度改变。假定现在电机控制电压是5V,小四轴在某一轴上的偏角是5度,目标角度是100度。我们把当前的电压量定义为Vin,把输出控制量定义为Vout。假定P等于0.2,那么比例控制的结果就是:
第一次:Vout=Vin+(100-5)*P=5V+19V=24V,得到电机电压是24V,对应的小四轴角度是24度,距离目标角度的误差是100-24=76度。
第二次:Vout=Vin+(100-24)*P=24V+15V=39V, 从而引起的角度是39度。
我们看到,在这么的一个比例控制系统下,小四轴角度在慢慢地向目标角度靠近。

PID中的积分控制就是把把所有角度误差相加起来,然后乘上一个常数作为输出驱动。在上述例子中,假定I=0.2, 我们来看看比例和积分控制同时起作用下的系统反应。
第一次:Vout=Vin+(100-5)*P+(100-5)*I=5V+19V+19V=43V,这时候小四轴角度为43度。
由于第一次控制前的误差是100-5=95,第二次控制前的误差是100-43=57,所以积分结果是152。
第二次:Vout=Vin+(100-43)*P+((100-5)+(100-43))*I=43V+11V+30V=84V, 这时候小四轴角度变为84度。
第三次:Vout=Vin+(100-84)*P+((100-5)+(100-43)+(100-84))*I=84+3V+33V=120V。这时小四轴角度变为120度。
我们看到,在增加了积分控制后,小四轴角度在快速向目标角度靠近。

PID中的微分控制就是把角度的变化乘上一个常数来作为电机驱动输出。在上述例子中,假定D=0.2, 我们来看看比例,积分和微分共同控制下的系统反应。假定第一次前,电机转速保持5转,那么第一次前的角度变化为0。
第一次:Vout=Vin+(100-5)*P+(100-5)*I-(5-5)*D=5V+19V+19V-0V=43V,这时候小四轴角度为43度。
和上一次相比,角度从5度变化到了43度,所以小四周角度变化是43-5=38度。
第二次:Vout=Vin+(100-43)*P+((100-5)+(100-43))*I-(43-5)*D=43V+11V+30V-7V=77V, 这时候小四周角度77度。

把上述的计算结果列出来,我们看到:
PID计算 

从上面的数据,我们可以看到:
1,单独比例控制的时候,数据慢慢接近目标 (图表中的红色线)
2,加入积分控制之后,数据快速接近目标 (图表中的蓝色线)
3,微分控制起到抑制变化的作用。(图表中的绿色线)

有了这些理论基础,就可以写PID控制代码拉。

========圆点博士小四轴之PID控制代码分析=======
在圆点博士小四轴2014版代码里,我们只使用到PD参数。
首先我们来看PID中的比例控制。跟上一节模型提到的一样,比例是针对误差的控制。
首先我们获取小四轴当前角度。
bs004_angle_cur_pitch=bs004_imu_pitch;
bs004_angle_cur_roll =bs004_imu_roll;
把当前角度和目标角度相减,就可以得到角度偏差。
bs004_angle_err_pitch=bs004_angle_cur_pitch-bs004_angle_target_pitch;
bs004_angle_err_roll=bs004_angle_cur_roll-bs004_angle_target_roll;
然后进行比例控制:
bs004_fly_m1=bs004_fly_m1
+bs004_pitch_p*bs004_angle_err_pitch
-bs004_roll_p *bs004_angle_err_roll
-bs004_yaw_p*bs004_angle_err_yaw;
bs004_fly_m2=bs004_fly_m2
-bs004_pitch_p*bs004_angle_err_pitch
-bs004_roll_p *bs004_angle_err_roll
+bs004_yaw_p*bs004_angle_err_yaw;

bs004_fly_m3=bs004_fly_m3
-bs004_pitch_p*bs004_angle_err_pitch
+bs004_roll_p *bs004_angle_err_roll
-bs004_yaw_p*bs004_angle_err_yaw;
bs004_fly_m4=bs004_fly_m4
+bs004_pitch_p*bs004_angle_err_pitch
+bs004_roll_p *bs004_angle_err_roll
+bs004_yaw_p*bs004_angle_err_yaw;

在上一节模型中,我们提到PID中的微分控制针对的是角度变化而进行的控制。
所以我们首先要得到当前角度和上一次角度的差异。
bs004_angle_dif_pitch=bs004_angle_cur_pitch-bs004_angle_last_pitch;
bs004_angle_dif_roll =bs004_angle_cur_roll-bs004_angle_last_roll;
bs004_angle_dif_yaw  =bs004_angle_last_yaw-bs004_angle_cur_yaw;
然后进行微分控制:
bs004_fly_m1=bs004_fly_m1
+bs004_pitch_d*bs004_angle_dif_pitch
-bs004_roll_d *bs004_angle_dif_roll
-bs004_yaw_d*bs004_angle_dif_yaw;
bs004_fly_m2=bs004_fly_m2
-bs004_pitch_d*bs004_angle_dif_pitch
-bs004_roll_d *bs004_angle_dif_roll
+bs004_yaw_d*bs004_angle_dif_yaw;
bs004_fly_m3=bs004_fly_m3
-bs004_pitch_d*bs004_angle_dif_pitch
+bs004_roll_d *bs004_angle_dif_roll
-bs004_yaw_d*bs004_angle_dif_yaw;
bs004_fly_m4=bs004_fly_m4
+bs004_pitch_d*bs004_angle_dif_pitch
+bs004_roll_d *bs004_angle_dif_roll
+bs004_yaw_d*bs004_angle_dif_yaw;

从上面的描述我们可以看出,小四轴的PID控制还是比较简单的。
【无人机设计与开发】推荐几个无人机网址 官方名 网址 推荐理由 51IMX http://www.5imx.com/portal.php 遥控模型分享 ArduPilot http://ardupilot.com Openpilot http://www.openpilot.org Paparazzi http://paparazziuav.org Pixhawk https://pixhawk.ethz.ch/ Mikrokopter http://www.mikrokopter.de KKmu... 阅读详情

相关推荐

免费DDR4 DDR3圆点博士烧录王软件V41_中文版最新 无毒无捆绑插件.zip

最新版本,无毒无捆绑插件,360可能会误报错误,不要理会即可,本人是花钱买的版本,现免费分享给大家!

【亲测免费】 DDR4 DDR3圆点博士烧录王软件V41_中文版免费下载

DDR4 DDR3圆点博士烧录王软件V41_中文版获取指南 【下载地址】DDR4DDR3圆点博士烧录王软件V41_中文版免费下载 "DDR4 DDR3圆点博士烧录王软件V41_中文版"是一款专业且高效的烧录工具,专为DDR4和DDR3内存模块设计。最新版本V41在功能和操作上进行了全面优化,确保用户能够更加便捷地完成烧录...

gitblog_06781的博客 839

圆点博士的开源四轴带dmp

圆点博士的开源四轴带dmp

互补滤波

最近在研究小四轴的飞行,姿态检测主要用到的传感器是MPU6050。从MPU6050读出来的加速度和角速度数据最后要转成姿态,可以转换成欧拉角(偏航角、俯仰角和滚转角)或四元数表示,为了减少计算量(欧拉角涉及正弦运算,运算量相对较大),方便在STM32主控上实现,可以转换成四元数表示。那么问题来了,四元数姿态融合算法哪家强?这里介绍圆点博士小四轴飞控开源代码关于四元数姿态融合的算法以及代码实现,不能...

qq_20314133的博客 1699

ubuntu20.04配置UR机械臂的仿真环境

gazebo和rviz中的机械臂的位姿是一样的,要实现同步控制,可以拖动rviz中的球移动到指定位置,点击plan观察路径规划,点击execute执行该路径规划,可以在gazebo和rviz中同步看到刚刚的路径规划运动,实现了简单的机械臂仿真环境搭建。这是因为catkin找的python版本为anaconda下面的版本,所以需要改为指定采用下面的命令,参考之前的。之后要source一下,才能读取到工作空间里的文件,以后每次打开终端进入工作空间都要执行该命令。时,一直不成功,解决办法可以看我之前写的。

weixin_48319333的博客 3494

Cadence Allegro 17.2 PCB设计避坑指南:从焊盘制作到封装绘制的完整流程

本文详细解析了Cadence Allegro 17.2在PCB设计中的关键操作技巧,从焊盘制作到封装绘制的完整流程。通过0402电阻和2.54mm排针的实例,揭示新手常见错误及解决方案,包括焊盘参数设置、层类型区分和坐标输入规范,帮助工程师避免设计返工和生产事故。

weixin_28683391的博客 409

DDR4DDR3圆点博士烧录王软件V41_中文版获取指南:轻松实现数据烧录

DDR4DDR3圆点博士烧录王软件V41_中文版获取指南:轻松实现数据烧录 【下载地址】DDR4DDR3圆点博士烧录王软件V41_中文版免费下载 "DDR4 DDR3圆点博士烧录王软件V41_中文版"是一款专业且高效的烧录工具,专为DDR4和DDR3内存模块设计。最新版本V41在功能和操作上进行了全面优化,确保用户能够更...

gitblog_06708的博客 818

OpenBmc开发2:构建开发环境

编译环境VMware + ubuntu 18.04 编译环境构建:参考OpenBmc开发1:构建开发环境 1、打开一个Ternimal,进入openbmc目录下 2、查看有哪些不同的编译配置 find meta-* -name local.conf.sample 可以看到如下编译配置 3、生成编译配置 插入TEMPLATECONF,上边查询到的配置有很多,但是有一些...

master 2万+

四元数_2019. 8.24

这几天, 开始四轴算法学习, 发现有好几个吓人的拦路虎蹲在前路: 四元数 姿态解算 二级互补滤波 卡尔曼滤波 串级PID 一个个名字写下来, 一天打一个, 不成就两天, 三天.... 啥挡死啥! 四元数(第2天): 问题1: 四元数与矩阵\欧拉角的区别? 问题2: 什么时候用四元数, 矩阵, 欧拉角? 虚数: 不存在的数,; 虚数: i 就是逆时针旋转90度...

zhouml_msn的博客 232

国产PHY芯片YT8512H替代LAN8742A的实战指南(STM32F407平台)

本文详细介绍了在STM32F407平台上,使用国产PHY芯片YT8512H替代LAN8742A的完整实战过程。文章深入剖析了硬件设计中的关键信号连接差异(如CRS_DV与RXDV复用)、时钟布线要点,并提供了软件驱动修改、PHY配置及调试排错的系统指南,旨在帮助工程师高效完成国产化替代,规避常见陷阱。

defi6farmer的博客 858

SOLIDWORKS转CAD字体终极选择:TrueType vs SHX,哪个才是你图纸协作的“安全牌”?

本文深入探讨SOLIDWORKS转CAD工程图中的字体选择问题,对比TrueType与SHX字体在DWG文件协作中的表现。通过真实案例揭示字体映射的兼容性陷阱,提供企业级字体管理方案,帮助工程师规避版本差异、系统依赖和法律风险,确保图纸协作的稳定性。

weixin_34233974的博客 265

四轴之互补滤波与四元数算法简单分析

有人问我关于四元数姿态解算算法的分析,每次都解释好久,今日空闲,特发一帖,供大家参考。本分析将结合程序,分析姿态解算思路,由于能力有限,难免有错误之处请谅解,同时希望能够抛砖引玉,得到大神指点。感谢圆点博士提供资料参考。为尊重原创,转载请注明原出处,谢谢。http://blog.youkuaiyun.com/u013608300/article/details/52459515四轴之互补滤波与四元数算法最详...

《运放秘籍》系列视频原创作者、畅销书《硬件设计指南 从器件认知到手机基带设计》原创作者 1万+

基于改进YOLO11的天际线检测算法:复杂光照与恶劣天气适配实战

针对特定任务的YOLO改进,不应追求通用SOTA,而应深入理解任务的物理退化机理。Retinex对应光照模型、FAD对应散射模型、Wise-IoU对应边界不确定性——每个改进都有明确的物理解释,而非盲目的模块堆叠。时序一致性:引入轻量级RNN/Transformer模块利用视频帧间信息补偿单帧退化;多模态融合:结合红外/NIR波段穿透雾霾,与可见光特征在FAD-Neck中交叉注意力融合;自监督预训练:在海量无标注天际线视频上用MAE预训练Backbone,缓解恶劣天气标注稀缺问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 95

圆点博士小四轴主程序状态机结构

圆点博士小四轴主程序状态机结构转载▼圆点博士小四轴主程序采用状态机结构的方式编写。状态机的基本结构是:1。有一个驱动时钟2。在各个状态中设置下一个需要运行的状态。下面我们结合源代码进行分析:system_timer_1ms_event是一个每1ms触发一次的事件。在定时器的控制下,每1ms,事件标志system_timer_1ms_event北置位到1。while(1)是一个死循环,代码不断检...

weixin_30690833的博客 174

Python 爬虫实战:爬取哔哩哔哩知识区,抓取高赞课程信息

哔哩哔哩(Bilibili)是一个广受欢迎的综合性视频社区,其中的知识区汇聚了大量优质的教育、科普、技术等课程内容。本文将指导读者如何使用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息,并进行数据分析。本文深入探究了利用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息的全流程。从前期的环境搭建、模拟登录,到核心的课程数据抓取、存储,再到后续的数据分析与可视化,都详细展开讲解并提供代码支持。通过此方法所获取的数据,能够助力创作者优化内容、用户发现优质课程、平台洞察用户需求。

u014481728的博客 1137

Allegro基本规则设置指导书之Spacing Region

当网络需要在Region中需要按照自身的规则匹配时,可以创建Region Class来匹配。Region也支持Class to Class规则,点击ok即可。Allegro基本规则设置指导书之Spacing Region。下面介绍基本规则设置指导书之Spacing Region。给创建好的Region 匹配一个规则。空白的地方创建一个Region。

weixin_54787054的博客 564

Ardupilot姿态控制进阶:从PID到四元数的实战解析

本文深入解析了Ardupilot飞控从传统PID控制向四元数姿态控制的进阶之路。通过剖析姿态控制的双环结构(外环姿态角控制与内环角速率控制),并结合实战调参案例,帮助飞手理解如何利用四元数数学工具克服欧拉角控制的固有缺陷(如万向节死锁),从而在高速机动或复杂环境下实现更稳定、更精准的飞行控制。

weixin_29063035的博客 226

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

浅谈欧拉角,四元数

首先明确欧拉角和四元数都是用来表示旋转的,看了很多资料感觉很不直观,这篇文章就从最简单的角度对这个两个有个初步认识,到后序再慢慢深入会很好。

gls_nuaa的博客 1459

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

对四元数解算姿态的理解

问题:为什么不用欧拉角来表示旋转而要引入四元数呢? 前面介绍了什么是欧拉角,而且欧拉角微分方程解算姿态关系简单明了, 概念直观容易理解,那么我们为什么不用欧拉角来表示旋转而要引入四元数呢? 一方面是因为欧拉角微分方程中包含了大量的三角运算,这给实时解算带 来了一定的困难。而且当俯仰角为90度时方程式会出现神奇的“GimbalLock”。 所以欧拉角方法只适用于水平姿态变化不大的情况,而不

壹休哥的博客 7204

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

四旋翼飞行器Quadrotor飞控之 PID调节(参考APM程序)

做四轴也有一段时间了,最近一直在做PID方面的工作。现在四轴基本可以实现室内比较稳定的飞行,操控手感也可以接受。稍后上试飞视频。在此把一些PID方面的经验总结总结和大家分享一下。 首先介绍一下大概的硬件组成: MCU:Freescale MK60D 传感器(IMU):GY-86模块(MPU6050 + HMC5883L + MS5611) 433MHz数据传输模块 D

蓝精灵的专栏 7329

最好玩的四轴飞行器,开源了!(友情支持)

圆点博士微型四轴飞行器方案是一种全开源的技术方案,通过该技术方案,电子爱好者能够一步步地从零开始,制作出自己的飞行器,实现飞行梦想。本方案主要面向对象为在校大学生,旨在帮助在校大学生一步步地掌握电子技术的开发过程,包括原理图,PCB开发,和对微处理器的编程。圆点博士微型四轴飞行器采用 STM32F103系列ARM处理器,能够实现各种复杂的飞行控制算法。这里支持投票: 点击打开链接这里了解更多技术:

大坡3D软件开发 1万+

ABB机器人四元素处理

q=w+xi+yj+zk 中 w x y z 也对应有些文档里写的q0 q1 q2 q3。然后,选择几个需求实现一下,这基本上就把互转实现差不多了。在用到ABB机器人时,姿态使用的是四元素的方式,如下。和这个也一样,所以公式应该没啥问题,直接套就行了。

hpu_lx 636

彻底搞懂四元数

提要旋转的表达方式有很多种,有欧拉角,旋转矩阵,轴角,四元素等等,今天要学习的就是游戏开发中最常用的四元素。从欧拉角和轴向角到四元数在讲四元素之前,我们先来看下简单的欧拉角和轴向角。欧拉角使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为0-360(或者0-2pi),一般使用roll,pitch,yaw来表示这些分量的旋转值。需要注意的是,这里的旋转是针对世界坐标系说的,这意味

爱冒险的技术宅 11万+

四轴飞行器姿态控制

四轴飞行器姿态控制一、姿态角 Z轴正方向为前进方向 pitch : 俯仰,将物体绕X轴旋转(localRotationX) yaw : 航向,将物体绕Y轴旋转(localRotationY) roll: 横滚,将物体Z轴旋转(localRotationZ) 二、运动状态**四旋翼飞行器 结构形式为,电机1和电机3逆时针旋转的同时,电机2 和电机4顺时针旋转,这样陀螺效应和空气动力扭矩效应均被抵消

专注技术分享 1万+

我的四轴专用PID参数整定方法及原理---超长文慎入

给四轴调了好久的PID,总算是调好了,现分享PID参数整定的心得给大家,还请大家喷的时候手下留情。       首先说明一下,这篇文章的主旨并不是直接教你怎么调,而是告诉你这么调有什么道理,还要告诉大家为什么‘只’使用PID的四轴会在飞行中震荡,告诉大家为什么光使用PID并不能实现对四轴姿态‘足够好’的控制。文章中还是涉及了不少自控原理和其他控制相关的姿势,没有一点底子的话确实会看着很困惑(不然

逐梦的花猫 3万+

【姿态估计】四元素法卫星姿态误差估计(航向角 俯仰角 横滚角)【含Matlab源码 4354期】

四元素法卫星姿态误差估计(航向角 俯仰角 横滚角) 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版)或下载付费资源,可赠送奶茶价版付费专栏指定代码1份; 2018
上一篇: 飞控锂电池知识
下一篇: PID 整定方法与原理-说明了“I”的用法
技术在路上
博客等级 码龄16年 644粉丝 160原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值