电机三环控制

一、基础概念先搞懂

1. 什么是 "三环"?

电机控制系统里,从外到内一共 3 层闭环,层层嵌套:

  1. 位置环(最外层)
  2. 速度环(中间层)
  3. 电流环(最内层)

2. 为什么要分三环?

  • 电流响应最快,直接控制转矩
  • 速度次之,控制转速平稳
  • 位置最慢,控制精准到位内层响应速度必须远快于外层,系统才稳定。

3. 三环通用结构

所有电机控制(直流无刷、伺服、FOC)基本都长这样:

位置指令 → 位置环 → 速度指令 → 速度环 → 电流指令 → 电流环 → PWM → 电机


二、三环核心信息总表

环名称 英文 层级 控制目标 输入量 输出量 响应速度 核心作用
位置环 Position Loop 外层 转到指定角度 目标位置、实际位置 目标速度 最慢 精准定位、轨迹控制
速度环 Speed Loop 中层 转速稳定 目标速度、实际速度 目标电流 / 转矩 中速 稳速、抗负载扰动
电流环 Current Loop 内层 电流精准 目标电流、实际电流 PWM 占空比 最快 控制转矩、快速响应

三、逐个环精讲

1. 电流环(最内层,基石)

一句话:控制电机电流 = 控制电机转矩

  • 控制对象:电机相电流 、(FOC)
  • 运行频率:最高 ,一般和 PWM 同频你代码里:20kHz,每 50us 一次
  • 输入:电流指令(来自速度环)
  • 输出:PWM 占空比
  • 意义:
    • 转矩线性控制
    • 限流保护
    • 快速响应负载变化

2. 速度环(中间层,稳定器)

一句话:让电机转速稳在设定值,负载变了也不飘

  • 控制对象:电机转速
  • 运行频率:低于电流环,常见 1kHz / 2kHz
  • 输入:速度指令(来自位置环)
  • 输出:电流指令(送给电流环)
  • 意义:
    • 匀速运行
    • 抗干扰、抗抖动
    • 限制加减速,防止冲击

3. 位置环(最外层,指挥者)

一句话:让电机转到指定角度,不多不少

  • 控制对象:转子角度 / 编码器位置
  • 运行频率:最低,常见 200Hz ~ 1kHz
  • 输入:上位机 / 指令给定位置
  • 输出:速度指令(送给速度环)
  • 意义:
    • 定位控制
    • 轨迹跟踪(插补、点位)

四、三环执行顺序与频率(重点)

标准工业伺服固定规则:

电流环 > 速度环 > 位置环频率从高到低

以你代码为例:

  • 电流环:20kHz(PWM 中断里)
  • 速度环:2kHz(每 10 次电流环跑一次)
  • 位置环:500Hz(每 4 次速度环跑一次)

为什么?

  • 内层必须先稳定,外层再慢慢调整
  • 防止系统震荡、超调、失控

五、三环与你代码的对应关系

中断:

  1. 电流采样
  2. Clark / Park 变换
  3. 电流环 PID
  4. 反 Park / SVPWM

然后在定时中断里低速跑:

  • 速度环 PID
  • 位置环 PID

六、三环控制最简流程图

  1. 上位机发:目标位置
  2. 位置环计算 → 输出目标速度
  3. 速度环计算 → 输出目标电流
  4. 电流环计算 → 输出 PWM
  5. PWM 驱动电机
  6. 编码器 / 霍尔反馈位置、速度
  7. ADC 反馈电流
  8. 回到步骤 1,循环

七、必记 4 句口诀

  1. 位置环管转到哪
  2. 速度环管转多快
  3. 电流环管力气多大
  4. 从外到内层层控,内层频率必须高
相关推荐
雅斯驰10 小时前
AES-128加密+滚动码认证:ATA5702W如何防御中继攻击与信号重放
运维·单片机·嵌入式硬件·物联网·自动化
iCxhust11 小时前
微机原理课程设计大综合---计数器
汇编·单片机·嵌入式硬件·课程设计·微机原理
搁浅小泽12 小时前
PCBA焊点的检测方法
单片机·嵌入式硬件·可靠性工程师
Deitymoon14 小时前
STM32——PWM控制舵机
stm32·单片机·嵌入式硬件
菜鸟的日志15 小时前
【嵌入系统】嵌入式学习笔记(一)
windows·笔记·嵌入式硬件·学习·ubuntu·操作系统
电子科技圈15 小时前
四大“门派”围攻边缘及端侧AI SoC市场“光明顶”
人工智能·嵌入式硬件·mcu·物联网·网络安全·音视频·语音识别
CHINA红旗下16 小时前
串口的使用
stm32·单片机·嵌入式硬件
踏着七彩祥云的小丑16 小时前
嵌入式测试学习第2天:欧姆定律 + 功率计算 + 电路单位换算
单片机·嵌入式硬件
BT-BOX16 小时前
Multisim 14.3 安装与汉化指南(附下载链接)
嵌入式硬件·物联网
不断提高17 小时前
别再写 while(1) 死循环了,嵌入式开发该换个活法
c语言·嵌入式硬件·嵌入式·状态模式