找回密码
 立即注册
楼主: 梁工

数控电源-恒压/恒流,STC32G-HSPWM做BUCK降压式开关电源-PID控制

  [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-06-08 10:47:06
已绑定手机

0

主题

17

回帖

48

积分

新手上路

积分
48
发表于 2026-5-26 11:40:51 | 显示全部楼层
是我学习不认真,,现在好好学习代码。
截图202605261140119802.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-07-02 15:48:37

0

主题

2

回帖

8

积分

新手上路

积分
8
发表于 2026-5-26 13:53:50 | 显示全部楼层
楼主能不能出个套件?

点评

我只提供方案,有完整的源码、原理图、PCB,用户可以自己直接发PCB做板。  详情 回复 发表于 2026-5-26 15:02
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2026-5-26 15:02:32 | 显示全部楼层
短信*** 发表于 2026-5-26 13:53
楼主能不能出个套件?

我只提供方案,有完整的源码、原理图、PCB,用户可以自己直接发PCB做板。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-06-08 10:47:06
已绑定手机

0

主题

17

回帖

48

积分

新手上路

积分
48
发表于 2026-5-27 14:22:21 | 显示全部楼层
老师,pid计算函数里有3处疑问

pid 计算的疑问.png

点评

1、36就是36mA,当恒流值小于设定值36mA时,退出恒流模式,这样做是为了避免临界点振荡。 2、电流误差缩小为1/4,是为了跟电压误差进行匹配。电流误差比电压误差的值更大,则控制灵敏度就会更大,就要用两个PID计算  详情 回复 发表于 2026-5-27 15:21
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2026-5-27 15:21:34 | 显示全部楼层
yzz*** 发表于 2026-5-27 14:22
老师,pid计算函数里有3处疑问

1、36就是36mA,当恒流值小于设定值36mA时,退出恒流模式,这样做是为了避免临界点振荡。
2、电流误差缩小为1/4,是为了跟电压误差进行匹配。电流误差比电压误差的值更大,则控制灵敏度就会更大,就要用两个PID计算,一个电流PID,一个电压PID,恒压与恒流的临界点衔接将会变得复杂,所以我对电流误差进行衰减,用以匹配电压的误差,映射为相同的误差,这个靠测试和经验确定,逐渐加大电流衰减系数,直到输出振荡,则取一半值就差不多了。
3、电压单位是0.01V,所以5.0就是0.05V。使用定点数,处理输入、显示比较方便。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-06-08 10:47:06
已绑定手机

0

主题

17

回帖

48

积分

新手上路

积分
48
发表于 2026-5-27 18:40:39 | 显示全部楼层
电流ADC采样,一阶滤波后,用13bit,分辨率是  7.8125A/2^13 = 0.9536mA/bit ,pid计算函数里 将电流值/4 ,就相当于 4mA,这就是老师在多个注释里写的 pid计算分辨率是 4mA?
PID计算处理的分辨率是4mA.jpg

pid是4mA, 显示部分的电流仍然是 0.95mA, 这样理解对吗?

点评

电流current是校准过的,1对应1mA: current = adc * 0.9536; // current单位为mA 显示是1mA,计算PID时电流误差4mA对应电压误差0.01V,映射成统一的误差数值。  详情 回复 发表于 2026-5-27 22:57
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2026-5-27 22:57:23 | 显示全部楼层
yzz*** 发表于 2026-5-27 18:40
电流ADC采样,一阶滤波后,用13bit,分辨率是  7.8125A/2^13 = 0.9536mA/bit ,pid计算函数里 将电流值/4 , ...

电流current是校准过的,1对应1mA:
current = adc * 0.9536;  // current单位为mA
显示是1mA,计算PID时电流误差4mA对应电压误差0.01V,映射成统一的误差数值。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2026-07-04 15:07:07
已绑定手机

1

主题

7

回帖

25

积分

新手上路

积分
25
发表于 2026-5-30 10:47:14 | 显示全部楼层
梁工,我这个怎么ADC转换不准,比如输出电流在2A时屏上的输入电压显示是12V对的。当我把输出电源调为3A时。屏上的输入电压就显示10V多,这时用万用表量输入电源是12V没变。

点评

你用数字万用表测量ADC输入端对单片机GND的电压看是否有变化。  详情 回复 发表于 2026-5-30 12:44
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2026-5-30 12:44:36 | 显示全部楼层
qlm*** 发表于 2026-5-30 10:47
梁工,我这个怎么ADC转换不准,比如输出电流在2A时屏上的输入电压显示是12V对的。当我把输出电源调为3A时。 ...

你用数字万用表测量ADC输入端对单片机GND的电压看是否有变化。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2026-06-29 11:03:18

7

主题

17

回帖

429

积分

中级会员

积分
429
发表于 2026-5-30 18:03:13 | 显示全部楼层
没看懂是如何控制下管的导通和关闭的,高占空比时,电流连续,直接输出互补PWMN就行,低占空比时,下管的开通时间应该是小于或者等于上管,如果时间过长会使电感电流流向参考地,此时开通下管容易,关闭的时机是如实现的

点评

没有考虑关闭时机,那要做电流过0检测才行。不管占空比多少,都会是上管和下管轮流导通,类似于D类功放的输出+LC滤波,只是滤波电容很大而已。  详情 回复 发表于 2026-5-30 22:54
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-5 08:15 , Processed in 0.090058 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表