十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

数控直流稳压电源设计实战:方案选型、PI闭环控制与调试经验分享

数控直流稳压电源设计实战:方案选型、PI闭环控制与调试经验分享 简介这是一份面向电子设计竞赛与电源技术学习者的简易数控直流稳压电源完整设计方案文档涵盖参赛人员分工、项目背景、设计任务、总体思路与实施方案等内容细致说明了基于单片机、D/A转换、数模转换电路与显示电路的系统结构并给出输出电压09.9V、步进0.1V、纹波小于10mV等关键指标可帮助读者快速理解数控电源的设计流程与调测要点。资源为1个doc格式文档压缩包整体631KB内容完整、结构清晰适合准备电子设计大赛、课程设计或对数控电源感兴趣的师生参考借鉴。文档同时梳理了传统电源的不足与数字化智能电源的发展方向能够让读者在掌握电路实现的基础上进一步体会数控电源向高精度、智能化演进的工程思路。目前已有429人学习下载具有较高的实用价值。1. 从赛题要求倒推设计目标1.1 数控直流稳压电源到底考的是什么接触过电子设计竞赛的朋友应该都有体会电源类是每次大赛几乎都会出现的题目类型而“简易数控直流稳压电源”是其中非常有代表性的一道。说是“简易”实际要完整的做出来涉及的模块一点都不简单主功率电路、模拟反馈控制、数字控制算法、采压采流、过流保护、人机交互一个电类专业本科阶段的核心知识点基本都串起来了。先看赛题通常给出的指标这里以常见的版本为例输出电压范围 0~15V也有题目要求 0~20V电压步进 0.1V最大输出电流 2A电压调整率和负载调整率各自优于一定指标纹波 Vpp 在毫伏级显示输出电压和电流并具备过流保护。这些指标摊开来看每一项单独拿出来都不算难但要全部满足且稳定运行就需要在方案选型上动点脑筋。1.2 方案选型为什么竞赛首选线性调整结构数控稳压电源有三条技术路线线性串联调整、开关电源Buck/Boost、线性加开关混合。我见过一些队伍一开始就想上同步 Buck 拓扑理由是效率高、体积小。开关电源确实有优势但对竞赛这种需要在有限时间内稳定出指标的场景它有两个致命难点一是电感电容等磁性元件的设计调试周期长二是开关噪声对单片机 ADC 采样和运放调理电路的干扰很难干净地处理掉容易在纹波指标上翻车。因此我当时的选择很明确用线性串联调整结构配合合理的输入预稳压。线性结构纹波小、环路简单、调试确定性高竞赛中哪怕牺牲一些效率换来的是大概率拿分的稳定指标。至于效率问题可以通过后文讲的压差控制来缓解并不是没有优化空间。2. 硬件电路设计与关键器件选型2.1 整体框架与主功率回路设计整机的信号流向大致是这样的220V 工频输入经变压器降压、整流滤波后得到直流母线电压母线电压经过调整管串联调整元件后输出输出电压与设定值的差值通过运放误差放大器闭环控制调整管的导通状态同时电压电流采样信号送入 MCU 的 ADCMCU 根据设定值计算并输出控制量通过 DAC 或 PWM 加滤波的方式控制误差放大器的基准电压从而实现“数控”。主功率回路里首先要注意的是输入变压器的选型。输出电压最高 15V考虑到调整管的压降、整流桥压降和电网电压的波动裕量我选的是次级输出 18V 的工频变压器整流滤波后空载电压约 25V18V 乘以 1.414减去整流桥两个二极管约 1.2V 压降在 2A 满载时母线电压能维持在 20V 以上。这里有一个经验调整管压差控制在 3~6V 比较合适压差太小调整管会进入饱和区失去调整能力压差太大功耗全堆在调整管上散热器会烫得怀疑人生。调整管的选择上有两条路线。一条是达林顿三极管比如 TIP35C 或者 2N3055 加一个驱动三极管构成复合管结构另一条是我这次采用的 P 沟道 MOSFET比如 IRF9540栅极驱动简单不需要像 N 沟道那样额外折腾自举电路。用 MOS 管做线性调整要注意的是工作区在放大区也就是三极管区的可变电阻区栅源电压需要在线性范围内精细调节配合运放输出驱动即可。2.2 数控核心PWM 滤波方案还是 DAC 方案这是整个数控电源里最核心的方案取舍。要实现对输出电压的精确控制必须有一个“数字量到模拟量”的转换环节把这个模拟量作为误差放大器的参考基准。常用的做法有两种一是直接用单片机 DAC 输出二是用 PWM 加 RC 低通滤波生成直流电平。竞赛中我最推荐 PWM 加有源滤波方案。原因很直接很多竞赛常用的 STC 或 STM32 系列单片机并不都带 DAC 外设而 PWM 几乎每一颗 MCU 都有即使带 DAC它的输出驱动能力一般后面还需要接运放缓冲。PWM 方案则完全避开芯片选型的限制。我的实现方式是这样的定时器输出 16kHz 的 PWM分辨率 10 位经过两级 RC 低通滤波后接入运算放大器组成的电压跟随器隔离输出平滑的直流基准电压。RC 参数我用的 1kΩ 加 10μF理论截止频率约 16Hz实测波纹波动在毫伏级别完全满足作为基准源的要求。这里的 PWM 频率需要避开一个坑后面“常见问题”里详细说。如果比赛允许用 DAC 芯片也可以用 TLV5618 这类双通道串行 DAC精度和稳定性都比 PWM 滤波方案省心。但 PWM 方案最大的优势是“不需要额外花钱买芯片”这在竞赛环境下有时候就是决定性的。2.3 电压采样与电流采样电路输出电压采样我用了精密电阻分压加射极跟随器的方式。分压比例取 4:1也就是说输出电压最高 15V 时送入 ADC 的电压不超过 3.75V留有一定的裕量。分压电阻要选低温漂的金属膜电阻阻值精度用 1% 甚至 0.5% 的因为这款电源的显示精度和输出电压精度很大程度上就取决于分压电阻的精度。需要反复强调的是分压电阻一定要并一个高阻值电阻到 ADC 输入端做保护防止意外过压打坏单片机的 ADC 引脚这个小细节能救一命。电流采样我用的是 0.1Ω/2W 的采样电阻串在主回路中通过 INA282 差分运放放大 10 倍后送入 ADC。采样电阻阻值不能太大否则满载的时候本身压降就吃掉 0.2V 的输出电压也不能太小否则采到的信号太小容易受干扰。INA282 的好处是宽共模输入范围和不错的精度如果手头没有这颗芯片用普通运放搭差分放大电路也行但要注意电阻配对的精度这直接决定了电流显示的误差。2.4 显示、键盘与过流保护的硬件设计显示部分如果只要求输出电压和电流用 4 位数码管动态扫描就够了占用 6 个 I/O 口。我推荐用两块 74HC595 串转并来驱动数码管省 IO 且扫描逻辑简单。如果追求显示效果可以用 12864 液晶屏但比赛时间紧我通常先用数码管把核心功能调稳再考虑升级显示模块。键盘我用的 4x4 矩阵键盘定义了数字键、确认键、步进加减键。如果不做数字直接输入用两个独立按键做步进加减也完全足够根据赛题是否有“直接设定输出电压”的要求来定。但要考虑显示刷新与按键消抖之间的配合不能让按键调整时数码管闪得厉害。过流保护我做了硬件和软件双重保护。硬件上用采样放大后的电流信号送入比较器 LM393与一个基准电压比较对应 2.5A 阈值超限立即拉低调整管的驱动信号实现快速断电软件上 MCU 每个控制周期读取电流值超过设定值后不仅关断输出还通过数码管闪烁报警。双重保护的目的很实在——竞赛现场免不了手忙脚乱一次输出短路就可能烧掉调整管多一道保护就多一条活路。3. 软件设计闭环控制的完整实现3.1 单片机内部资源分配与主流程控制核心我用的是 STM32F103C8T6这款芯片在竞赛中出镜率极高价格便宜、资料多、外设齐全。软件整体框架是主循环加定时器中断定时器触发 ADC 对电压电流进行采样采样值经过软件滤波后与用户设定值比较经过 PI 调节器计算出新的 PWM 占空比并更新寄存器主循环负责扫描键盘、刷新显示和报警处理。定时中断1kHz 1. 启动 ADC 采样电压通道 2. 启动 ADC 采样电流通道 3. 数字滤波一阶低通或滑动平均 4. 计算误差 e U_set - U_fb 5. PI 运算得到占空比增量 6. 更新 PWM 寄存器 主循环 1. 键盘扫描与消抖 2. 更新设定值 3. 刷新数码管显示 4. 过流/过温标志处理这里将中断频率设置在 1kHz是因为整个系统的闭环响应不需要太快电源反馈控制是典型的低频控制1kHz 足够平滑同时也不给 MCU 造成太大负载还有大量时间片留给其他任务。3.2 PI 调节器的代码实现与参数整定PWM 占空比的调节我采用的是增量式 PI 算法相比位置式 PID增量式不需要累加所有历史误差不容易出现积分饱和的问题实现也简单。核心代码如下/* 增量式 PI 调节器 */ int32_t pid_incremental(float set_voltage, float feedback_voltage) { float error set_voltage - feedback_voltage; float proportional Kp * (error - last_error); float integral Ki * error; float output proportional integral last_output; /* 输出限幅避免 PWM 占空比溢出 */ if (output PWM_MAX) output PWM_MAX; if (output PWM_MIN) output PWM_MIN; last_error error; last_output output; return (int32_t)output; }PI 参数整定这块我采用工程上最实用的“临界比例度法”加现场微调。先把 Ki 设为 0逐步加大 Kp观察输出电压在设定值附近的振荡状态找到临界振荡的 Kp 值然后取它的一半作为实际 Kp接着添加 Ki 消除稳态误差从小到大缓慢增加直到输出电压稳定且没有明显超调。整套流程下来大约需要半小时。这里有个经验如果在调整 Kp 的过程中输出电压出现缓慢的低频周期振荡多半不是参数问题而是采样滤波的时间常数太大导致的相位滞后这时候优先减小滤波深度而不是继续调参。3.3 从设定值到占空比的量化计算很多新手最大的困惑是“我想输出 3.3VPWM 占空比到底该设多少”这里需要先把整个控制通路上的量化关系捋清楚。PWM 分辨率是 10 位即占空比数值范围 0~1023对应输出基准电压范围 0~V_REF。设 V_REF 为 3.3V我直接用 TL431 稳压给单片机供电电压稳定性比单片机的 AVCC 好很多那么 PWM 值增加 1基准电压增加大约 3.22mV。基准电压经误差放大器后理论上对应输出电压的增量取决于采样分压网络的反馈系数。但在实际系统中存在电阻容差、运放失调电压、PWM 滤波环节的插入损耗等问题理论计算出的电压往往与实际输出有几十毫伏甚至更大的偏差。所以我把标定做成了系统的一部分——在出厂或每次上电时让用户进入标定模式对每个目标电压进行一次实际测量将测量值与设定值之差存为“预设校准表”运行时用线性插值修正。这一招对提高输出电压精度效果显著。3.4 步进与数字量换算的细节处理赛题要求步进 0.1V处理器内部我用毫伏作为单位来管理所有电压量避免浮点数运算的精度丢失。设定 1520 就表示 1.520V显示的时候再通过取模运算拆分成“整数部分”和“小数部分”这样既保持了精度也让显示逻辑变得非常简单。这个细节在调试时帮我省了不少功夫。4. 实测调试与问题排查实录4.1 从空载到满载的动态表现整机调试的第一步先不接单片机用滑动变阻器模拟基准电压看模拟闭环是否正常工作确认模拟部分稳定后再接入数字控制部分。当时我在空载下把输出设置到 10.0V面板显示 10.0V用万用表实测 10.03V精度符合预期。接下来接上电子负载从 0 慢慢拉到 2A观测到的数据如下负载电流输出电压实测电压偏差输出纹波 Vpp0A10.03V0.03V约 3mV0.5A10.02V0.02V约 4mV1.0A10.00V0V约 5mV1.5A9.97V-0.03V约 6mV2.0A9.94V-0.06V约 8mV从数据可以看到满载时电压跌落了约 60mV主要原因是采样电阻两端压降被包含在反馈回路之外以及导线上的电阻损耗。解决思路是在反馈采样点选择上做文章把采样点从电源输出端直接引到负载端四线制开尔文接法或者在软件里加入电流补偿量。竞赛中如果对电压调整率有严格要求这四个采样点的小改动值得做。4.2 常见问题速查表调试过程中遇到的问题五花八门我整理了当时踩坑频率最高的一组问题以速查表形式分享现象可能原因排查与解决方向输出电压与设定值有固定偏差分压电阻精度不足或 TL431 基准电压偏差更换 0.5% 电阻重新标定校准表输出电压周期性波动PI 参数整定不当或采样滤波过深重调 Kp、Ki降低滤波系数大电流时电压跌落明显采样点位置不对或采样电阻阻值过大改用四线制采样减小采样电阻阻值空载或轻载时输出正常满载后数码管跳动单片机供电受主功率回路干扰数字地与模拟地单点连接给 MCU 供电加 LDO 和去耦电容输出纹波偏大整流滤波电容不足、调整管高频自激加大滤波电容或并联小电容调整管基极/栅极加防振电阻PWM 调节时听到变压器或电感啸叫PWM 频率落在音频范围将 PWM 频率调整到 16kHz 以上或 20kHz 以上4.3 关于地线布置的独门经验地线的处理是整个项目中最容易被忽视但影响最大的方面。我初期试板时发现 ADC 采样值波动特别大输出电压显示在小数点后第二位来回跳动。排查了整整一天最终发现问题出在单片机的地和主功率回路的“地”直接混在一起功率电流在地线上产生的噪声直接叠加到了模拟采样信号上。解决办法很简单也很经典把系统的地分割成数字地、模拟地、功率地三块最后在电源输入端的滤波电容负极处单点汇接。这个改动让 ADC 采样的码值跳动从十几个 LSB 降到了两三个 LSB纹波指标也明显改善。另一个容易忽略的隐患是 PWM 信号的滤波电容在输出端短路瞬间会通过地线向单片机灌入大量浪涌电流。虽然软件有保护硬件上也应该加一个二极管钳位电路把浪涌引到功率地回路而不是数字地回路。4.4 竞赛现场不能犯的“低级错误”比赛现场环境与实验室差别很大电源稳定性、电磁干扰、器件温度特性都会变样。出门前一定要把散热片固定牢靠我当时用的散热片上还单独加了一个小风扇用继电器控制当电流超过 1.5A 时自动开启。风扇转动带来的震动和噪声虽然不大但对示波器测量波形会产生影响所以测试时要分清“风扇开”和“风扇关”两种状态的纹波数据不要混在一起评估指标。操作顺序上也有讲究先开输入电源再设置输出电压关闭时反过来先把输出电压调到 0再关输入电源。这个习惯能有效避免上电瞬间输出端过冲损坏负载。我见过有队伍在接感性负载时没有注意这个细节关机的瞬间负载两端感应出很高的反向电压直接把调整管打穿教训相当深刻。5. 扩展空间与更深一步的思考5.1 从 0.1V 步进到更高精度的升级路径竞赛版本的 0.1V 步进对应 10 位 PWM 在 15V 满量程下约 14.6mV 的电压分辨率这在 0.1V 步进下完全够用。但如果想进一步做到 0.01V 步进PWM 方案的分辨率就捉襟见肘了此时有两条升级路径一是改用更高分辨率的 ADC 芯片加真正的 DAC比如用 16 位 DAC 芯片如 DAC8552配合高精度基准源比如 ADR421 或 REF5025从源头提升基准的精细度。二是升级 PWM 分辨率到 16 位比如用 STM32 的高级定时器将 PWM 时钟频率提高配合更高阶的有源滤波器如巴特沃斯二阶低通也能获得不错的效果。第一条路在长期稳定性和温度漂移等指标上更好第二条路成本更优。5.2 恒流模式与自动量程切换的可能性这个数控电源如果加上恒流控制逻辑就能升级成一台简易的可编程电源。思路是在模拟反馈环中增加一个电流环用二极管的“或”逻辑让电压环和电流环“低者生效”。当负载电流达到设定阈值时电流环自动接管控制输出电压开始下降实现恒流输出。这个改动对硬件来说只需要增加一个电流基准比较环节软件上增加一个电流设定值即可工作量不大但可以应对赛题中扩展功能的要求。后续还可以做自动量程切换比如输出 0~5V 时用高精度低量程 DAC 值5V 以上再用全量程 DAC 值通过继电器切换分压网络既保证低电压时分辨率高又保证高电压时够得着。这属于锦上添花的功能有余力再考虑。5.3 数控电源的通用系统设计思维把这个项目做完回头看数控直流稳压电源本质上就是一个“传感器 控制器 执行器”的典型控制系统。电压电流是反馈量MCU 是控制器PWM 到基准电压再到调整管是执行链路。搞懂这一条链路的信号流动和能量流动以后设计恒温控制器、电机调速器都跳不出这个框架。竞赛做完之后不要急着把板子拆掉用这个平台试试恒流充电、LED 驱动、电池放电测试这些应用场景会有另一层收获。最后说一个我至今印象很深的细节比赛当天实测环节评委拿了一个 12V 的直流电机做负载打开瞬间电机启动电流远超额定 2A如果保护电路响应速度不够快电源就直接过流保护了电机转不起来。我当时把过流保护比较器做成了一级迟滞比较器滞回量约 0.3A启动电流大的瞬间不触发保护持续过流才动作。这个细节在备赛时没太在意但在现场确实挽救了整个作品的演示效果。做电源设计很多时候拼的不是谁的上限高而是谁能在各种意外工况下不出错。本文还有配套的精品资源点击获取
返回列表