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

旋转坐标系下的无传感器器控制方法:基于旋转高频注入和同轴系高通滤波器的误差提取与位置观测器

该模型在旋转坐标系下采样旋转高频注入的方法进行低速时的无传感器器控制,对静止坐标系下的电流进行同轴系高通滤波器提取负序分量,继而采用外差法进项误差提取,误差代入位置观测器得到PMSM的转子角度。

高频注入法在低速无传感器控制领域就像给电机装了个"声呐"。咱们在定子侧注入特定频率的电压信号,通过捕捉转子凸极效应产生的响应信号来定位转子位置。这种玩法在零速/低速场景下尤其好用,今天就跟大伙儿拆解下具体实现中的几个关键代码块。

先看高频信号注入的核心操作。这里用α-β坐标系下的电压方程打个样:

hf_freq = 2 * np.pi * 500 # 500Hz高频信号 hf_amp = 15 # 电压幅值(V) def inject_hf_voltage(theta_e): v_alpha = hf_amp * np.cos(hf_freq * time + theta_e) v_beta = hf_amp * np.sin(hf_freq * time + theta_e) return Clarke_transform(v_alpha, v_beta)

这个高频旋转电压就像在电机里扔了个"信号弹",当转子位置θ_e变化时,响应电流会产生特定的调制效应。注意这里用Clarke变换把信号映射到静止坐标系,为后续处理做准备。

电流信号处理环节有个重要技巧——同轴高通滤波器组。直接上实现:

// 双通道高通滤波器实现 typedef struct { float a[2]; float b[2]; float w[2]; } HPF; HPF hpf_alpha, hpf_beta; void init_hpf(HPF* h, float cutoff_freq, float Ts) { float rc = 1/(2*PI*cutoff_freq); h->a[0] = rc/(rc + Ts); h->a[1] = -h->a[0]; h->b[0] = 1.0; h->w[0] = h->w[1] = 0; } float run_hpf(HPF* h, float input) { h->w[0] = input - h->a[0]*h->w[1]; float output = h->b[0]*h->w[0] + h->a[1]*h->w[1]; h->w[1] = h->w[0]; return output; }

这组滤波器专门用来剥离基波分量,把高频响应信号单独拎出来。调试时发现截止频率设在高频信号频率的1/10左右效果最佳,既能滤除工频又不损失有用信息。

该模型在旋转坐标系下采样旋转高频注入的方法进行低速时的无传感器器控制,对静止坐标系下的电流进行同轴系高通滤波器提取负序分量,继而采用外差法进项误差提取,误差代入位置观测器得到PMSM的转子角度。

外差法解调是提取位置误差的关键步骤:

% 外差法处理负序分量 theta_hat = ...; % 估计的转子位置 demod_signal = i_alpha_hpf .* cos(hf_freq*t + theta_hat) + ... i_beta_hpf .* sin(hf_freq*t + theta_hat); % 低通滤波提取误差 [b,a] = butter(2, 100/(0.5*fs), 'low'); position_error = filtfilt(b, a, demod_signal);

这个操作相当于把高频响应信号搬移到基带,通过混频把位置误差信息解调出来。实际调试时要注意相位补偿,有一次忘记加θ_hat导致误差信号反相,系统直接崩了。

最后的位置观测器用锁相环结构实现:

// 二阶位置观测器 typedef struct { float Kp; float Ki; float angle; float speed; float integral; } PositionObserver; void update_observer(PositionObserver* obs, float error, float Ts) { obs->integral += error * Ts * obs->Ki; obs->speed = obs->Kp * error + obs->integral; obs->angle += obs->speed * Ts; // 角度限幅 if(obs->angle > PI) obs->angle -= 2*PI; else if(obs->angle < -PI) obs->angle += 2*PI; }

参数整定是个经验活,Kp主要影响动态响应,Ki决定稳态精度。实测发现当Kp=2π×50,Ki= (2π×10)^2时,系统在5rpm下角度跟踪误差能控制在0.2rad以内。

这套方案在风机水泵类负载上跑得挺稳,但遇到周期性脉动负载时还是得加个转速前馈。有个坑得提醒:高频注入会产生额外损耗,注入电压幅值别超过额定电压的15%,否则电机温升会教你做人。

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

相关文章:

  • C++ -移动语义
  • 算法人权评估:自动检测歧视性代码
  • 量子机器学习流水线的技术架构与测试痛点
  • 芯片制造企业如何选择PDF转Word粘贴方案?
  • allure系统环境变量配置了,cmd输入allure --version报错
  • 基于大数据的粮食产量预测及可视化平台
  • 2026年最新评测:济南联想服务器都有哪些型号?一文为你讲解清楚!
  • 基于VMD分解算法的信号处理与数据预测程序
  • OpenClaw 第三篇:环境准备 + 本地部署,5 分钟拉起来
  • 西陆房产管理系统xiluHouse 2.1正式版|FastAdmin+ThinkPHP+UniApp多端兼容房产SaaS平台
  • 医疗OA系统如何实现跨平台内容同步粘贴?
  • 工程建筑行业如何通过WebUploader实现BIM模型文件夹的目录结构续传?
  • hot100 5.最长回文子串
  • 全栈性能测试:构建数字化时代的质量护城河
  • OpenClaw vs GPT-5.4 Computer Use:实测对比,个人开发者该白嫖哪个?
  • 操作系统(3)
  • 题目1577:蓝桥杯算法提高VIP-铺地毯
  • 导师又让重写?AI论文软件 千笔 VS 文途AI,本科生写作神器!
  • 【网络安全】新手必看!2026年网络安全行业发展全景解析,零基础看这一篇就够了!
  • PSO算法在风光储微电网调度中的实践探索
  • 2026 项目管理软件选型指南:12 款工具优缺点与适用规模对照表
  • 高价回收京东e卡:快速到账的最佳选择 - 团团收购物卡回收
  • 在写文献综述时,你用过哪些效率极高的AI辅助工具?
  • 实战 RAG:基于 Redis或Chroma 构建本地知识库问答系统
  • 高性能ORAM—BULKOR 详解
  • IDA+ MCP
  • 详细介绍:【MySQL】SQL调优:数据库性能优化(一)
  • 基于大数据的可视化学生宿舍报修管理系统
  • OpenShift与Rancher容器管理实验作业指导书
  • 分析2026年郑州诚信的小区住宅物业渠道,推荐的公司 - myqiye