• 2
    回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

正弦波逆变器之{源代码参考}

发帖的目的是为了给正弦波逆变器编程者正确的引导思路,分享干货,避免误区。

本人一开始学习SPWM编程时网罗了很多资料,甚至充钱冲会员去各个技术平台下载参考代码,无一例外都是徒劳,资料基本写的很科班,想我这种文化水平低的根本理解不了,参考代码也是牛头不对马嘴,基本的法波程序错误,好一点的代码发波没问题,但是程序编写的复杂,变量算法都刚好在单片机的警戒线附近,不能加闭环稳压,或者除此之外的运算和辅助程序,增加一点就溢出,单片机直接就跑不动,最后我花了1.8W买了一台成熟的逆变器方案一直研究至今,买的是16位单片机,花了好多时间在8位机上实现正常运行,三年前的第一款SPWM程序是在PICF716的单片机上实现的,听大佬们说这款单片机是一个经典,所以就把这款分享给大家,因为在我学习的时候,也有很多同行的老师们指点过我,程序里可能也有前辈们的身影,不足之处还望海涵,程序编写用的是无规律手法,但是中文注释还是比较详细,希望对大家有帮助!

全部回复(180)
正序查看
倒序查看
Q_TO_Q
LV.2
2
2021-03-09 13:38
软件学习中
0
回复
2021-03-09 16:25
@Q_TO_Q
软件学习中

好好学习,天天向上

0
回复
2021-03-09 17:22
顶顶
0
回复
徐天廷
LV.1
5
2021-03-09 18:25
软件学习中,感谢分享 
0
回复
ruohan
LV.9
6
2021-03-12 08:00
@徐天廷
软件学习中,感谢分享 
谢谢分享
0
回复
2021-03-12 10:15
@Q_TO_Q
软件学习中
成功了记得来反馈,避免帖子沉底,让更多的人受益。
0
回复
2021-03-12 10:15
@ruohan
谢谢分享
成功了记得来反馈,避免帖子沉底,让更多的人受益。
0
回复
2021-03-12 10:16
@Q_TO_Q
软件学习中
成功了记得来反馈,避免帖子沉底,让更多的人受益。
0
回复
可乐猫
LV.1
10
2021-03-12 20:33
谢谢,学习中
0
回复
先洵
LV.4
11
2021-03-14 13:51
谢谢分享
1
回复
2021-03-14 20:03
感谢楼主分享,到处找相关的帖子
0
回复
2021-03-16 21:57
好贴顶起,感谢无私奉献
0
回复
2021-03-21 20:06
谢谢分享,软件正是我的薄弱环节。
0
回复
先洵
LV.4
15
2021-03-28 09:44
@空军通信兵
谢谢分享,软件正是我的薄弱环节。
谢谢分享,好贴顶起,感谢无私奉献。
0
回复
zcllom
LV.2
16
2021-04-04 13:13
请问有原理图吗?没有原理图,怎么调试程序?验证功能?
0
回复
jsapin
LV.5
17
2021-04-05 11:43
@zcllom
请问有原理图吗?没有原理图,怎么调试程序?验证功能?
感谢分享,学习
0
回复
ruohan
LV.9
18
2021-04-09 17:01
@jsapin
感谢分享,学习
能讲一下PID 是怎么调节电压的不
0
回复
ruohan
LV.9
19
2021-04-10 11:33

看看这个,这个占空比真么用VSPWM,,不是除以255吗,

你PID调剂的时候设定值是150,后边又用130限制,最大幅度,这个130是为什么

,

0
回复
2021-04-10 16:49
@ruohan
[图片]看看这个,这个占空比真么用VSPWM,,不是除以255吗,你PID调剂的时候设定值是150,后边又用130限制,最大幅度,这个130是为什么,
因为占空比你可以把它分成任何单片机可接受范围,VSPWM=130,代表130分,代表PWM精度;PID设定值是参考实际硬件采样电路对应的反馈值,和幅值没有直接关系,请仔细审阅AD和PID之间的衔接关系。
0
回复
ruohan
LV.9
21
2021-04-30 07:57
@偶德枫
因为占空比你可以把它分成任何单片机可接受范围,VSPWM=130,代表130分,代表PWM精度;PID设定值是参考实际硬件采样电路对应的反馈值,和幅值没有直接关系,请仔细审阅AD和PID之间的衔接关系。

确实没有看明白AD和PID的关系,

0
回复
ruohan
LV.9
22
2021-04-30 10:00
@偶德枫
因为占空比你可以把它分成任何单片机可接受范围,VSPWM=130,代表130分,代表PWM精度;PID设定值是参考实际硬件采样电路对应的反馈值,和幅值没有直接关系,请仔细审阅AD和PID之间的衔接关系。

你好,AD读取的输出电压的反馈量VFB1,作为incPIDCalc函数的实参输入,经过PID计算后把输出量inc的值赋予那个幅值变量,来调节占空比,达到调节电压稳定的目的,‘

现在有个问题,这个函数如何实现这种调节的,例如输出电压高了,VFB1的读取值就大,经过incPIDCalc这个函数后inc的值是不是最终结果的值要减小,这样幅值变量的值也变小,占空比就减小,达到输出电压降低的目的,

就是不明白这个函数如何实现这个调节的,,

1
回复
tianyao9393
LV.5
23
2021-04-30 10:01

采样放错位置了,执行很慢,还有限幅的写法也错了。也有可能是为了“仅供参考”

1
回复
ruohan
LV.9
24
2021-04-30 13:52
@tianyao9393
采样放错位置了,执行很慢,还有限幅的写法也错了。也有可能是为了“仅供参考”

请指点指点,

0
回复
dy-vCvYwrY3
LV.1
25
2021-05-06 16:16

H4桥单相逆变电路学习

0
回复
ruohan
LV.9
26
2021-05-06 19:50
@偶德枫
因为占空比你可以把它分成任何单片机可接受范围,VSPWM=130,代表130分,代表PWM精度;PID设定值是参考实际硬件采样电路对应的反馈值,和幅值没有直接关系,请仔细审阅AD和PID之间的衔接关系。

这个单片机是8位AD,如果5V基准,130应该对应的是2.54V吧,

假如读的VFB值是130,经过PID的运算后输出值就是那个pai 值是12,这里没有假如积分和微分量,只加入了比例0.625的比例量,这样经过查表后的,在原来表的值乘以12再除以130.就是现在的占空比,这样理解对吗,

0
回复
2021-05-20 07:38
@tianyao9393
采样放错位置了,执行很慢,还有限幅的写法也错了。也有可能是为了“仅供参考”

采样应该放哪合适,还望赐教

0
回复
2021-05-20 07:41
@ruohan
这个单片机是8位AD,如果5V基准,130应该对应的是2.54V吧,假如读的VFB值是130,经过PID的运算后输出值就是那个pai值是12,这里没有假如积分和微分量,只加入了比例0.625的比例量,这样经过查表后的,在原来表的值乘以12再除以130.就是现在的占空比,这样理解对吗,

真确

0
回复
ruohan
LV.9
29
2021-06-03 16:15
@偶德枫
真确

如果用STM32,不知道好不好做,

0
回复
2021-06-30 17:24

楼主,想问问AD采集的电压是瞬时值吗

0
回复
2021-09-12 12:36
@逆变傻子
楼主,想问问AD采集的电压是瞬时值吗

是的

0
回复