电压环电流环双闭环程序
更多
好的,我们来详细解释一下开关电源(如DC-DC变换器)中常用的“电压环-电流环双闭环”控制程序(用中文描述)。这种结构是解决负载跳变响应、提高稳定性(特别是对输出电容ESR不敏感)和实现电流限制的关键方法。
核心思想:
- 外环 - 电压环: 负责维持输出电压稳定在期望值。它比较实际输出电压 (Vo_adc) 和参考电压 (Vref),产生一个误差信号。
- 内环 - 电流环: 负责精确快速地控制电感电流(或开关电流)。它的参考信号就是电压环的输出。它比较实际电感电流采样 (Iind_adc) 和电压环给出的电流参考指令 (Iref),产生另一个误差信号。
- 级联控制: 内环(电流环)的响应速度必须远快于外环(电压环)。电压环产生一个“目标电流”值 (Iref),而电流环则快速跟踪这个目标电流值。
- 目的:
- 快速跟踪负载电流变化: 负载突变时,需要电感电流快速变化来补偿。电流环能迅速响应电压环给出的电流调整指令。
- 稳定性: 电流内环可以“解耦”输出电压和电感电流,使得环路设计更容易,系统对输出电容的等效串联电阻 (ESR) 变化不敏感。
- 固有电流限制: Iref 直接控制了最大允许的电感电流,实现有效的硬件保护。
双闭环程序流程(常用数字实现 - 伪代码/流程描述):
以下是基于数字控制器(如DSP, MCU)实现的典型流程。假设使用的是PID(通常是PI)控制器,并且控制周期由定时器中断(如PWM周期中心或终点触发ADC采样)决定。
// ===================== 预定义和全局变量 =====================
float Vref; // 输出电压参考值 (目标电压)
float Vo_adc; // ADC采样到的实际输出电压 (标么化或校准后的实际值)
float Iind_adc; // ADC采样到的实际电感电流 (标么化或校准后的实际值)
float Kp_v, Ki_v; // 电压环 PI 控制器的比例和积分系数
float Kp_i, Ki_i; // 电流环 PI 控制器的比例和积分系数
float Vo_error_prev = 0, Vo_integral = 0; // 电压环状态(误差和积分)
float Iref; // 电流环的参考指令 (由电压环计算得出)
float Iind_error_prev = 0, Iind_integral = 0; // 电流环状态(误差和积分)
float DutyCmd; // 最终输出的占空比控制命令
float DutyMax, DutyMin; // 占空比限幅值 (通常 0 <= DutyCmd <= 1, 或根据硬件限制调整)
float Iref_max, Iref_min; // 电流环指令限幅 (实现过流保护/限制)
// ... (其他必要变量:ADC校准参数、标么化因子、保护标志等)
// ===================== 中断服务程序 (控制循环入口点) =====================
void ControlLoop_ISR(void) {
// 步骤 1: 读取ADC采样值
Vo_adc = Read_ADC(ADC_CH_VOUT); // 读取输出电压采样值
Iind_adc = Read_ADC(ADC_CH_IIND); // 读取电感电流采样值
// 步骤 2: **电压环 (外环) 计算**
// 2.1 计算当前输出电压误差
float Vo_error = Vref - Vo_adc;
// 2.2 更新电压环 PI 积分项 (可选抗饱和处理 - anti-windup)
Vo_integral += Ki_v * Vo_error; // 基本积分
// === 可选:积分抗饱和限幅 (非常重要!!!) ===
// if (Vo_integral > Iref_max) Vo_integral = Iref_max;
// else if (Vo_integral < Iref_min) Vo_integral = Iref_min;
// =========================================
// 2.3 计算电压环输出 - 电流参考指令 (Iref)
float Iref_calc = Kp_v * Vo_error + Vo_integral; // PI输出 = Kp*Err + Ki*Integral
// 2.4 对电流参考指令进行限幅 (硬件保护)
Iref = Iref_calc; // 先赋值
if (Iref > Iref_max) Iref = Iref_max; // 上限幅 (过流保护值)
else if (Iref < Iref_min) Iref = Iref_min; // 下限幅 (Boost拓扑可能需要负电流或零)
// 步骤 3: **电流环 (内环) 计算**
// 3.1 计算当前电感电流误差
float Iind_error = Iref - Iind_adc;
// 3.2 更新电流环 PI 积分项 (可选抗饱和处理)
Iind_integral += Ki_i * Iind_error; // 基本积分
// === 可选:积分抗饱和限幅 ===
// if (Iind_integral > DutyMax) Iind_integral = DutyMax;
// else if (Iind_integral < DutyMin) Iind_integral = DutyMin;
// ==========================
// 3.3 计算电流环输出 - 原始占空比命令
float DutyRaw = Kp_i * Iind_error + Iind_integral; // PI输出 = Kp*Err + Ki*Integral
// 步骤 4: **生成最终占空比控制信号**
DutyCmd = DutyRaw; // 先赋值
// 4.1 对占空比进行硬件限幅 (0%~接近100%)
if (DutyCmd > DutyMax) DutyCmd = DutyMax;
else if (DutyCmd < DutyMin) DutyCmd = DutyMin;
// 步骤 5: 更新PWM输出寄存器
Set_PWM_DutyCycle(DutyCmd); // 将DutyCmd写入PWM比较寄存器
// (可选) 步骤 6: 更新状态用于下次计算
Vo_error_prev = Vo_error;
Iind_error_prev = Iind_error;
// (可选) 步骤 7: 清除中断标志等
}
关键点解释:
- 中断触发: 控制循环通常由硬件定时器中断触发。这个定时器通常与PWM同步,例如在PWM周期的中心或结束时触发ADC采样,确保采样点和控制计算点的时序一致性至关重要。
- ADC采样: 精确测量输出电压
Vo_adc和电感电流Iind_adc是基础。需要注意ADC通道、采样保持时间、精度、校准(Offset/Gain)和标么化处理(将ADC原始值转换为实际电压/电流值)。 - PI控制器:
- 控制器通常是PI(比例-积分)。比例系数
Kp提供快速响应,积分系数Ki消除稳态误差。 - 积分抗饱和: 当系统饱和时(例如,输出电压远低于目标值,导致
Iref一直最大;或占空比已达极限),积分项会持续累积(称为积分饱和)。这会导致系统退出饱和状态时响应变慢甚至引起过冲振荡。Iref限幅后的Vo_integral抗饱和(步骤2.4)和占空比限幅后的Iind_integral抗饱和(步骤4.1)极其重要。
- 控制器通常是PI(比例-积分)。比例系数
- 限幅:
Iref限幅:保护硬件(开关管、电感等)不过流。Iref_max设置最大允许平均电流。DutyCmd限幅:确保PWM占空比在硬件允许范围内(0%~接近100%,避免PWM寄存器设置错误导致全开或全关)。
- 数字实现:
- 示例中是简单的欧拉积分(
Integral += Ki * Error)。实际中可能有更复杂的离散化方法(如梯形法)。 - 状态变量 (
Vo_integral,Iind_integral,*_error_prev) 需要保存为全局或静态变量。
- 示例中是简单的欧拉积分(
- 时序:
- 从ADC采样到更新PWM占空比的整个计算过程必须在下一个PWM周期开始之前完成,否则会引起延迟甚至不稳定。这限制了可用的计算时间(决定了MCU/DSP的最小主频需求)。
- 拓扑差异: 基本的控制结构(电压外环+电流内环)适用于Buck, Boost, Buck-Boost等多种DC-DC拓扑。但在细节上有差异:
- Buck (降压):
Iref_min通常设为零或负一个小值(取决于是否允许负电流工作模式)。DutyCmd直接控制高边开关(或同步Buck的低边开关时序)。 - Boost (升压):
Iref_min通常设为零。需要特别注意电流环在Duty > 0.5时的稳定性,有时需要斜率补偿。 - 反激 (Flyback): 电流环控制的是变压器原边或副边的电流(取决于采样位置)。
- 三相逆变器/永磁同步电机 (FOC): 原理类似,但有
dq坐标系下的电压环和多个(通常是两个)电流环(Id和Iq)。
- Buck (降压):
调试双闭环系统:
- 先调内环(电流环):
- 暂时断开电压环。用固定或缓慢变化的
Iref测试电流环。 - 调节
Kp_i和Ki_i,使电感电流能快速、无超调/小超调地跟踪阶跃变化的Iref。电流环带宽应远高于电压环预期带宽(5-10倍)。 - 使用示波器观察阶跃响应:上升时间、超调量、稳定时间、是否有振荡。
- 暂时断开电压环。用固定或缓慢变化的
- 再调外环(电压环):
- 接上电压环。
- 在设定值
Vref或负载电流上加一个小的阶跃变化。 - 调节
Kp_v和Ki_v,目标是在保证稳定性(无振荡)的前提下,使输出电压恢复速度快且过冲小。通常电压环比电流环慢得多。
- 观测波形: 关键波形包括输出电压、电感电流波形、电压环输出的
Iref、电流环输出的DutyRaw、最终的DutyCmd。
注意事项:
- 采样噪声和处理: 电流采样通常包含高频开关噪声,可能需要硬件RC滤波(降低带宽会增加相位延迟)或数字滤波(移动平均、低通滤波器)。滤波引入的延迟会影响环路稳定性设计。
- 控制频率: 控制频率(由PWM频率和中断触发点决定)越高,理论上动态性能越好,但对MCU/DSP计算能力和ADC速度要求越高。通常远高于环路穿越频率(10倍以上)。
- 参数整定: PI系数需要仔细调整。方法包括经验法则、基于模型的计算(bode图、根轨迹)、自动调谐方法(Ziegler-Nichols等)。
- 非线性效应: 实际系统存在死区、驱动延迟、元器件饱和等非线性效应,在设计和调试时需要考虑。
- 前馈控制: 对于输入电压或负载电流扰动的快速补偿,有时会加入前馈路径(如输入电压前馈)。
- 保护功能: 实现完善的保护功能(过压、欠压、过流、过温等)至关重要。
通过理解上述原理、流程和关键点,你应该能够实现并调试一个基本的电压-电流双闭环控制程序。记住,电流内环的快速响应和电压外环的稳定性以及积分抗饱和是成功的关键。
两种双环控制策略的对比研究资料详细说明
由于单相逆变器开环系统无法保证电压的稳定输出和较高的波形质量,通常会采用双环控制策略来改善系统性能。目前
资料下载
whtianqi
2020-05-06 08:00:00
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机