当前位置: 首页 > news >正文

电机控制工程师的日常调试中,最头疼的就是手里没示波器还要调过零点。今天咱们撸起袖子聊聊无位置BLDC的反电势检测,手把手造个能跑的模型出来

BLDC无位置反电势过零点检测模型

先得明白反电势过零点的本质——当某相绕组反电势穿过零电位时,就是换相的最佳时机。但没位置传感器的情况下,咱得从悬空相端电压里扒拉出这个信号。

硬件部分得保证电机中性点电压能被准确测量。这里有个取巧的方法:直接拿Y型接法的三相绕组中点电压作为参考(Vn)。代码里咱们先配置ADC通道:

void ADC_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_239Cycles5); // 采样PA0 ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1)); }

这段配置里的坑点在于采样时机必须避开PWM开关噪声。实战中发现把采样点放在PWM周期中间最稳当,这时候MOS管都处于稳定状态。

接下来是信号处理的灵魂——移动窗口滤波。直接上硬核代码:

#define FILTER_LEN 5 uint16_t emf_filter(uint16_t new_sample) { static uint16_t buffer[FILTER_LEN] = {0}; static uint8_t index = 0; uint32_t sum = 0; buffer[index++] = new_sample; if(index >= FILTER_LEN) index = 0; for(uint8_t i=0; i<FILTER_LEN; i++){ sum += buffer[i]; } return sum / FILTER_LEN; }

这个滤波器专治各种不服,实测能干掉90%的PWM毛刺。但要注意窗口长度别超过电周期的1/6,否则会拖慢响应速度。

真正的过零点检测其实是个找拐点的游戏。看这段判断逻辑:

if((prev_emf < threshold) && (current_emf >= threshold)){ // 正穿越发生! zcd_flag = 1; } else if((prev_emf > -threshold) && (current_emf <= -threshold)){ // 负穿越捕获 zcd_flag = 1; }

这里的threshold建议设为电源电压的2%-5%,用来对抗零漂。但别死板照搬,电机转速不同时这个值得动态调整,转速高时适当增大阈值。

最后来个实战技巧:用定时器捕获两次过零点的时间间隔,倒推电周期。这样连转速测量都省了:

void TIM2_IRQHandler(void){ if(TIM_GetITStatus(TIM2, TIM_IT_CC1)){ static uint32_t last_capture = 0; uint32_t current_capture = TIM_GetCapture1(TIM2); if(last_capture != 0){ period = current_capture - last_capture; } last_capture = current_capture; TIM_ClearITPendingBit(TIM2, TIM_IT_CC1); } }

调试时发现个反直觉的现象:低速时反电势幅值太小容易误触发,这时候得切到高频注入法。不过那是另一个战场的坑了,先把反电势法玩溜再说。

http://www.jsqmd.com/news/234596/

相关文章:

  • vLLM加速HY-MT1.5-7B实战|实现低延迟高精度翻译服务
  • AI分类器商业应用:快速验证创意,成本可控1小时1块
  • AMAT 0100-01588 板
  • 科研党必备PDF提取神器|PDF-Extract-Kit一键实现文档结构化处理
  • PDF智能提取全攻略|基于PDF-Extract-Kit镜像高效解析文档
  • 基于HY-MT1.5的高效翻译实践|边缘部署与实时推理
  • 三菱Q系列PLC控制下的复杂设备自动化系统:精准调控伺服与通讯测试方案
  • 布局检测+OCR识别一体化|PDF-Extract-Kit镜像实践指南
  • 报错FAILED: ninja: ‘out_sys/target/common/obj/JAVA_LIBRARIES/==platform-lib-local_intermediates/
  • Qwen3-VL-WEBUI镜像使用指南|实现图文视频多模态理解
  • STM32驱动无刷直流电机:原理图与驱动程序实现
  • 西门子S7-1200 PLC编程实战详解:TP900触摸屏与多轴伺服控制、结构化编程实现设备与...
  • 一键部署腾讯混元翻译模型|HY-MT1.5镜像使用笔记
  • 西门子PLC1500与Fanuc机器人焊装系统集成方案
  • 构建企业级翻译中台|HY-MT1.5-7B与1.8B双模部署实践
  • 附合导线及四等水准平差表格程序:①附合导线输入坐标即可自动生成导线观测记录和计算表,复测报表...
  • 腾讯开源HY-MT1.5翻译模型实战|快速部署与API调用详解
  • 同规模领先水平:HY-MT1.8B翻译模型性能实测揭秘
  • 西门子PID程序详解:PLC 1200与多台变频器通讯,触摸屏操作,Modbus通讯报文指南...
  • BP神经网络交叉验证算法及Matlab程序实现:精准确定最佳隐含层节点数
  • 从Colab到生产环境:分类模型云端部署完整路径
  • 搞懂微任务与宏任务:Vue3高级用法与面试实战
  • 基于PDF-Extract-Kit镜像的智能提取方案|轻松搞定学术论文数据抽取
  • HY-MT1.5双模型对比评测|1.8B轻量级为何媲美7B大模型?
  • AI分类模型效果对比:万能分类器领跑,云端3小时出结果
  • 行业AI大模型开发:技术落地的三重核心
  • 是德科技DAQ973A DAQ970A DAQM901A数据采集仪
  • HY-MT1.5-7B升级版详解|WMT25夺冠模型的翻译优化之道
  • 安捷伦4294A 4287A E4982A 4395A阻抗分析仪
  • 避坑!分类模型环境配置的5个常见错误