dcdc buck闭环数控型稳压电源仿真+单片机程序及实验报告

embedded/2024/12/24 9:40:43/

资料下载地址:dcdc buck闭环数控型稳压电源仿真+单片机程序及实验报告

一、实验目的

设计并制作一台数控型DCDC稳压电源。

二、实验要求

1、输出电压范围 :0.5v~4.5v。可以通过按键实现电压调整
2、必须使用PID闭环控制算法
3、发挥部分: PID控制的三个系数,可以通过遗传算法来确定。

三、实验内容

1、原理框图


     2、实验原理

PID( Proportional Integral Derivative)控制是 最早发展起来的控制策略之一,由于其算法 简单、鲁棒性好和可靠性高,被广泛应用于 工业过程控制,尤其适用于可建立精确数学 模型的确定性控制系统。
如图一,

图一
  该实验使用PID算法,通过按键控制单片机PWM波形的占空比。PWM波形通过74HC595驱动电路之后进入BOOST电路控制输出电压。
  即,通过改变占空比来改变输出电压。
  该实验实现的结果为,设计了五个按键,每个按键按下之后会输出不同的电压值,输出电压值在依次为1,、2、3、4、5V。
如图二为BOOST电路部分,实现升压功能。

图二
图三为驱动电路部分,有了驱动电路,才能让PWM波形在BOOST电路上工作。

图三
图四为单片机部分

图四
图五为AD转换部分

图五
图六为显示部分:

图六
总的原理框图如图七:

图七

3、程序如下

  • 实验结果

该实验最后基本实现了实验要求,图为按下输出电压为2V相应的按键后的示波器和数码管显示的状态。示波器黄线为PWM波形,蓝线为电压波形。数码管显示为1.9V,误差为0.1V。

http://www.ppmy.cn/embedded/148299.html

相关文章

刷题 两数之和

https://leetcode.cn/problems/two-sum/submissions/588870256/?envTypestudy-plan-v2&envIdtop-100-liked 参考快排算法 https://blog.csdn.net/oSKyTonight/article/details/129813861 /** Note: The returned array must be malloced, assume caller calls free(). */…

MapReduce的shuffle过程详解

文章目录 MapReduce的shuffle过程详解一、引言二、Shuffle过程详解1、Map端Shuffle1.1、分区(Partition)1.2、排序(Sort)1.3、分割(Spill) 2、Reduce端Shuffle 三、使用示例四、总结 MapReduce的shuffle过程…

stm32中有哪些库?其中标准库和HAL库有什么区别?

stm32中有哪些库? 1. STM32标准外设库(Standard Peripheral Library) 介绍:STM32 标准外设库是 STM32 官方提供的一个硬件抽象库,旨在简化对 STM32 各类外设(如 GPIO、UART、SPI、I2C、ADC、PWM 等&#x…

(补)算法刷题Day24: BM61 矩阵最长递增路径

题目链接 思路 方法一:dfs暴力回溯 使用原始used数组4个方向遍历框架 , 全局添加一个最大值判断最大的路径长度。 方法二:加上dp数组记忆的优雅回溯 抛弃掉used数组,使用dp数组来记忆遍历过的节点的最长递增路径长度。每遍历到已…

LeetCode 209. 长度最小的子数组 (C++实现)

1. 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输…

32岁前端干了8年,是继续做前端开发,还是转其它工作

前端发展有瓶颈,变来变去都是那一套,只是换了框架换了环境。换了框架后又得去学习,虽然很快上手,但是那些刚毕业的也很快上手了,入门门槛越来越低,想转行或继续卷,该如何破圈 这是一位网友的自述…

Docker部署GitLab服务器

一、GitLab介绍 1.1 GitLab简介 GitLab 是一款基于 Git 的开源代码托管平台,集成了版本控制、代码审查、问题跟踪、持续集成与持续交付(CI/CD)等多种功能,旨在为团队提供一站式的项目管理解决方案。借助 GitLab,开发…

uniapp .gitignore

打开HBuilderX,在项目根目录下新建文件 .gitignore复制下面内容 #忽略unpackge目录下除了res目录的所有目录 unpackage/* !unpackage/res/#忽略.hbuilderx目录 .hbuilderx# 忽略node_modules目录下的所有文件 node_modules/# 忽略锁文件 package-lock.json yarn.l…