遥控车模的电机控制器

简介: 该项目基于CH32V103单片机和RTT构建了一个无刷电机无感矢量控制器,利用无感矢量控制实现低噪音、高线性和效率的电机运行。硬件包括主控(CH32V103开发板)、驱动(IR2101S驱动芯片)、逆变(三相全桥逆变电路,IRF540N MOS)和采样(差分电路)模块。软件部分涉及TIM和ADC配置、矢量控制及中断处理。项目提供示例代码和附件下载。

一、项目简介

基于CH32V103单片机结合RTT开发一套无刷电机无感矢量控制器,使用无感矢量控制无刷电机具有噪音小、控制线性度好、电机效率高等优点。使用三相全桥电路将直流电转换为交流电驱动无刷电机,利用串联电阻和差分采样电路采集UV两相的电流信号。使用滑膜观测和矢量控制完成对电机的闭环控制。CH32V103为RISC-V内核,结合RTT可以更加便捷的开发应用层功能。系统预留了一路串口,便于调试和后期加装无线控制模块。

二、硬件说明

该作品的硬件主要分为四个模块:主控、驱动、逆变和采样。

主控使用的是CH32V103开发板,使用TIM1产生三路互补PWM控制三相逆变桥。

驱动电路使用了三片IR2101S驱动芯片,可以直接驱动下桥MOS,上桥MOS则以自举的方式驱动。

逆变电路使用的传统的三相全桥逆变电路,MOS采用了IRF540N。

采样电路使用了差分采样电路,采集串联在UV相的采样电阻两端的电压,通过ADC采集电压值再进一步计算出电流值。

三、软件说明

软件上需要对TIM和ADC进行一些配置、矢量控制的实现和一些个性化应用程序的实现。

对TIM1进行以下关键配置:三路互补PWM输出、中央对称模式、PWM更新中断。

对ADC进行以下关键配置:电流采样通道配置到注入组,其他采样配置到规则组,ADC转换完成中断。

矢量控制相关的内容网上较多,可以直接看代码(代码见附件)

RTT中利用main_task进行参数的修改和启停的控制。

在interrupt中执行高频的控制代码。

四、演示效果

五、附件

(1.49 MB)下载

相关文章
|
16天前
补码浮点数运算(设数的阶码为3位,尾数为6位(均不包括符号位)按机械补码浮点运算规则完成下列[x+y]补运算。)
补码浮点数运算(设数的阶码为3位,尾数为6位(均不包括符号位)按机械补码浮点运算规则完成下列[x+y]补运算。)
148 0
|
机器学习/深度学习 编解码 算法
RSA大作业 实现了 1.加、减、乘、除、移位、幂取模的高精度算法 2.利用快速幂和牛顿迭代法加速取模运算 3.中国剩余定理 4.Miller Rabin检测
RSA大作业 实现了 1.加、减、乘、除、移位、幂取模的高精度算法 2.利用快速幂和牛顿迭代法加速取模运算 3.中国剩余定理 4.Miller Rabin检测
167 0
RSA大作业 实现了 1.加、减、乘、除、移位、幂取模的高精度算法 2.利用快速幂和牛顿迭代法加速取模运算 3.中国剩余定理 4.Miller Rabin检测
|
存储 算法
经典算法之异或运算(无进位相加)
经典算法之异或运算(无进位相加)
248 0
经典算法之异或运算(无进位相加)
7-2 一元多项式的乘法与加法运算 (20 分)
7-2 一元多项式的乘法与加法运算 (20 分)
109 0
|
算法
多项式运算专题
多项式运算专题
112 0
多项式运算专题
7-41 大数的乘法 (10 分)
7-41 大数的乘法 (10 分)
55 0
FPGA-(任务01)设计一个三位二进制减法计数器
FPGA-(任务01)设计一个三位二进制减法计数器
114 0
FPGA-(任务01)设计一个三位二进制减法计数器
|
人工智能 BI
第三次笔记:算术逻辑单元 电路基本原理 加法器的设计 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 无符号整数加减法 标志位的生成
第三次笔记:算术逻辑单元 电路基本原理 加法器的设计 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 无符号整数加减法 标志位的生成
327 0
第三次笔记:算术逻辑单元 电路基本原理 加法器的设计 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 无符号整数加减法 标志位的生成
|
存储 算法
高精度加法,模拟大数的加法运算
在处理特别大的数相加特别大的数的时候,long long不能直接通过加法算出结果的时候,可以通过高精度算法处理这些数的相加具体·思路如下; 首先 1 . 这些数存到数组的时候该如何排列,是个位放在第一位还是最后一位放到第一位,由于数的相加的候常常出现进位,常在最后一位加上一个数,而加上数的话往往在数组最后一位加上数比较方便,所以我们把第个位放在数组第一位 2.其次在调用模拟大数相加的函数中,我们该如何处理同一位上数相加出现的进位呢,我们可以设置一个 t 存储数组上某位相加最后吧 t%10 ,就可以得到想要的数,同时在 t / 10 如果 t 会的得到 1 或者 0.
100 0
http://www.vxiaotou.com