开关稳压电源


文章目录

  • 开关稳压电源
  • 一、题目要求
    • 1.题目
    • 2.系统总体框图
  • 二、控制核心及环境配置
  • 三、系统核心功能实现
    • 1.基本电路及理论
    • 2.电路的改进
    • 3.用PID算法实现稳压
  • 四、代码设计
  • 总结及注意事项

一、题目要求

1.题目


制作如图所示开关稳压电源。

2.系统总体框图

二、控制核心及环境配置

MSP430系列单片机:MSP430F6638
IDE:Code Composer Studio

三、系统核心功能实现

1.基本电路及理论


采用Boost电路实现升压,上图是一个典型的正输入正输出的Boost电路结构。
分析电感电压和电感电流得到:

开关导通时有:I(t)dt=VinL\frac{I(t)}{dt} = \frac{V_{in}}{L}dtI(t)​=LVin​​ Pin=Uin⋅IL⋅TonP_{in} = U_{in}\cdot I_L\cdot T_{on}Pin​=Uin​⋅IL​⋅Ton​
开关关断时有:I(t)dt=Vin−VoL\frac{I(t)}{dt} = \frac{V_{in}-V_o}{L}dtI(t)​=LVin​−Vo​​ Pout=(Uo−Uin)⋅IL⋅ToffP_{out} = (U_o-U_{in})\cdot I_L\cdot T_{off}Pout​=(Uo​−Uin​)⋅IL​⋅Toff​
由此可以推出:Vo=Vin1−DV_o =\frac{V_{in}}{1-D}Vo​=1−DVin​​

其中D=TonToffD=\frac{T_{on}}{T_{off}}D=Toff​Ton​​,即通过控制开关S的占空比可以控制输出电压的大小。这是软件控制实现稳压的理论基础。

2.电路的改进

将电路的开关换成mos管,二极管也换成mos管,通过生成两个互补的PWM波可以实现"开关"的导通和关断,注意设置死区! 否则可能造成电路短路!

3.用PID算法实现稳压

本系统使用ADS1118芯片进行电压电流采样,通过采样得到的电压进行负反馈实时调节给mos管的PWM波占空比。在本题中,由于系统对输出电压的损耗很小,几乎没有稳态误差,故用PI调节即可。

PI调节代码如下

float PID(void)
{float deltD;deltV[1] = Vin - Vout;  //当前deltD = Kp * (deltV[1] - deltV[0]) + Ki * deltV[1];deltV[0] = deltV[1];    //当前值赋先前值return deltD;
}

值得注意的是,有的AD芯片单次采样值可能会产生较大误差,可以取多次采样的值作平均以得到较为准确的采样值,这样可以使PI调节更准确稳定。

同时,由于PI调节的范围可能较大,调节的占空比范围最好取一个限定范围,防止烧毁mos管。

四、代码设计

主函数main.c中的顶层代码如下

#include <msp430.h>
#include "lib/oled/oled.h"
#include "lib/oled/key_button.h"
#include "lib/ADS1118.h"
#include "lib/setclock.h"
#include "lib/PWM.h"
/*** main.c*/
void Vinctrl(void);
float PID(void);
void PWMctrl(float deltD);
void getAD(void);
void overCurrent(void);
void showStatus(void);
int dataLen(int data);const unsigned int adsConfig0 = 0xc38b;
const unsigned int adsConfig1 = 0xd38b;
const double FS = 4.096;
const float R = 0.04955;int a = -1;
float Ki = 0.020;   //0.020
float Kp = -0.0010; //-0.0010
float Vin = 33;
float Vout = 0;
float Iout = 0;
float deltV[2] = {0}; //deltV[1]为当前值,deltV[0]为先前值
int duty = 218;
int main(void)
{WDTCTL = WDTPW | WDTHOLD;SetClock_MCLK12MHZ_SMCLK12MHZ_ACLK32_768K();ADS1118_GPIO_Init();init_PWM();init_key();OLED_Init();OLED_Clear();//过流保护管脚的初始化P8DIR |= BIT4;  //输出
//    P8REN &=~ BIT4; //拉低使能P8OUT &=~ BIT4; //拉低while(1){a = key();Vinctrl();PWMctrl(PID());
//      PWMctrl(0);getAD();showStatus();}
}

完整代码见程序压缩包

总结及注意事项

升压和稳压的关键在于PI算法合理地调节两互补PWM波的占空比,PWM波可以用硬件产生或者软件中断产生。
在写AD采样函数的时候要注意看AD芯片的datasheet,关注其时序要求、采样量程以及采样模式。

开关稳压电源软件设计相关推荐

  1. 本科毕业论文-软件开发类-《基于Android端开关控制系统的设计与实现》-论文模板

    目  录 前言 一.任务书 二.目录 三.论文正文 摘要 ABSTRACT 1.引言 2.系统开发环境 2.1可行性分析 2.2 开发工具介绍 3.需求分析 3.1 功能需求分析 3.2 数据流程图 ...

  2. 基于stm32单片机的Grayhill编码器/开关软件设计

    1.初识编码器,像示波器的旋转按钮,可左旋右旋,还可以按下,我们使用的是Grayhill编码器,如下图所示: 从图中可以看出,该编码器一共有6个IO,从1-6分别为GND,GND,C,B,A,VCC, ...

  3. 软件设计中的一些原则

    本文为大家介绍软件设计中的一些原则,都是经过长期经验总结出来的知识,每一个程序员都应该了解,相信对大家在进行软件设计的过程中会有很大帮助. Don't Repeat Yourself (DRY) DR ...

  4. 一些软件设计的原则【转】——本来想自己总结,结果发现个更全的,

    本文为大家介绍软件设计中的一些原则,都是经过长期经验总结出来的知识,每一个程序员都应该了解,相信对大家在进行软件设计的过程中会有很大帮助. Don't Repeat Yourself (DRY)  D ...

  5. visual studio 设计器不显示_面向国际市场的装置开发运维软件设计与实现

    南京南瑞继保电气有限公司的研究人员陈宏君.张磊.徐睿.曾凯.刘坤,在2019年第3期<电气技术>上撰文,分析了面向国际市场的用户软件现状与问题,介绍了新一代控制保护平台PCS-S系列装置配 ...

  6. 第九十期:哪种人是软件设计中的稀缺型人才?

    好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才. 作者:从码农到工匠 好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才 ...

  7. 哪种人是软件设计中的稀缺型人才?

    阿里妹导读:好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才. 为什么在接口制定标准中说:一流的企业做标准,二流的企业做品牌,三流的企业做产品?依赖倒置到底是什 ...

  8. 常见软件设计原则总结

    ​1 Dont' repeate yourself(DRY) DRY是一个最简单的法则,也是最容易被理解的,但有可能是最难被应用的(这需要我们在泛型设计上做相当大的努力,这不是一件容易的事).它意味着 ...

  9. 米家Zigbee系列传感器软件设计总结

    一.添加设备交互设计 1.添加人体传感器/门窗传感器/无线开关到网关,都是用针戳重置孔3秒以上,蓝灯闪烁3次后松开,超时时间为30秒 2.添加烟雾/天然气报警器到网关,都是快速按3下按键, 听到设备响 ...

最新文章

  1. 【SpringCloud】Eureka-实例
  2. postgresql批量插入数据脚本_每日踩坑 2020-11-04 PostgreSQL 批量插入数据
  3. html编辑器kindeditor我的使用方法 (转载)
  4. python 点_Python中的方括号和点符号有什么区别?
  5. k2p 官方固件_继斐讯K2P之后,红米AC2100也将成一代路由器神机?
  6. Python统计共同参演电影最多的演员组合
  7. UNIX系统操作入门
  8. 湖北生物科技职业学院计算机专业分数线,湖北生物科技职业学院录取分数线2021是多少分(附历年录取分数线)...
  9. Win7如何修复开机画面
  10. 我们聊聊快排吧...
  11. mysql 授予用户权限_mysql授权用户权限
  12. 暗色科幻风格HTML登录页面模板-效果及源码
  13. JSP教程 JSP教程 JSP教程 JSP教程 JSP教程 JSP教程
  14. 如何正确跟踪广告转化数据,优化广告投放效果?
  15. 炸!亚马逊将解散与印度亿万富翁的合资企业;eBay推迟公布2021年Q2财报;TikTok在英国进行测试电商功能…|洞悉跨境
  16. Halcon复习专题-镜头/匹配/标定/边缘/拟合/缺陷检测/
  17. UWB室内定位系统的优势与好处
  18. Amazon 4.7 星评,领域新经典,了解服务设计就读它
  19. 仙童半导体拒绝华润等收购 担忧难获监管批准
  20. Linux工具篇 | Ubuntu利用deepin-wine安装企业微信

热门文章

  1. 计算机如何修改用户名和密码忘了怎么办,电脑用户名密码忘记怎么办
  2. Canopen对象字典学习
  3. 非接触式通信技术之RFID
  4. [ERROR][logstash.agent] Failed to execute action {:action=>LogStash
  5. 【新技术】:移动支付过程中的NFC技术
  6. 让你最快速地改善代码质量的 20 条编程规范
  7. html2canvas苹果不显示图片,解决html2canvas在苹果手机上不调用问题
  8. Python Scrapy 爬虫 - 爬取多级别的页面
  9. 7 线性布局——LinearLayout
  10. 红米Android降级,红米Note 5(安卓9.0 不要降级刷低版本)纯净ROOT线刷包分享,一键救砖教程,轻松刷回官方系统,流畅如初!...