在论坛上看到越来越多的地方在讨论用单片机直接输出SPWM波形的话题,但大多数都是在争论单片机能否实现的问题,就我最近在网上查找的一些单片机的资料,有一些增强型的单片机应该是可以的,如:
菲利浦的p89lpc938,输出PWM最高32M,晶振最高18M,指令执行时间2至4个时钟周期.我目前所用
c80051F系列,单周期指令执行,最高可达100MIPS(据宣传).输出I/O可编程.功能强大.
还有在论坛上常看见的Si8250好像也不错.
虽然在这里列出了几款单片机,我希望在下面的帖子就不要再讨论有关单片机硬件的问题.
希望大家多多讨论SPWM的算法,以及用单片机实现的控制过程
讨论单片机实现SPWM的算法及实现过程
全部回复(10)
正序查看
倒序查看
现在还没有回复呢,说说你的想法
@rrrrr1234
我现在仅对规则采样法了解一点,公式如下: 脉宽=aTcsin(wTd)Tc为载波频率,a为调制度,w为正弦波角频率, Td为脉冲所在的时间.这个公式算出的结果用两个IO输出,当一个IO输出一个半波的PWM时,此时另一个输出为无效电平.我用单片机实现这个公式的想法: 用查表的方法.把0.5Tcsin(wTd)算出做一个表格,用一个八位的A/D来采样输出电压的变化,计算后得到a值,再根据下面的式子算出实际的脉宽:0.5aTcsin(wTd)/128,这仅是我一点单纯的思路,希望大家积极发表意见,特别是如果我的想法有不对的地方,请不要保留.谢谢
没人回,提一个问题,资料上说规则采样法的直流电压利用率较代,仅
0.866,这个直流电压利用率是什么意思,是指比如直流电压为400V,那么输出正弦波最大幅值为400*0.866v吗?还是指效率?
已经知道直流电压利用率的意思是指400*0.866,但又有一个问题,这个0.866是指三相的时候给出的,现在我的是单相,那么这个值是1吗?
0.866,这个直流电压利用率是什么意思,是指比如直流电压为400V,那么输出正弦波最大幅值为400*0.866v吗?还是指效率?
已经知道直流电压利用率的意思是指400*0.866,但又有一个问题,这个0.866是指三相的时候给出的,现在我的是单相,那么这个值是1吗?
0
回复
提示
@rrrrr1234
我现在仅对规则采样法了解一点,公式如下: 脉宽=aTcsin(wTd)Tc为载波频率,a为调制度,w为正弦波角频率, Td为脉冲所在的时间.这个公式算出的结果用两个IO输出,当一个IO输出一个半波的PWM时,此时另一个输出为无效电平.我用单片机实现这个公式的想法: 用查表的方法.把0.5Tcsin(wTd)算出做一个表格,用一个八位的A/D来采样输出电压的变化,计算后得到a值,再根据下面的式子算出实际的脉宽:0.5aTcsin(wTd)/128,这仅是我一点单纯的思路,希望大家积极发表意见,特别是如果我的想法有不对的地方,请不要保留.谢谢
我开环控制,波形好,但闭环加入了调节的脉冲就不好了,不知如何将加入了调节的脉冲也变好.我是在每个脉冲上都加一个数值.这样我想就不是正弦了.
0
回复
提示
@rrrrr1234
我现在仅对规则采样法了解一点,公式如下: 脉宽=aTcsin(wTd)Tc为载波频率,a为调制度,w为正弦波角频率, Td为脉冲所在的时间.这个公式算出的结果用两个IO输出,当一个IO输出一个半波的PWM时,此时另一个输出为无效电平.我用单片机实现这个公式的想法: 用查表的方法.把0.5Tcsin(wTd)算出做一个表格,用一个八位的A/D来采样输出电压的变化,计算后得到a值,再根据下面的式子算出实际的脉宽:0.5aTcsin(wTd)/128,这仅是我一点单纯的思路,希望大家积极发表意见,特别是如果我的想法有不对的地方,请不要保留.谢谢
RRRRR1234,我还不清楚你的计算是怎么算的,如我的载频是25K,PWM-》TOP=200,半波125个数据,请计算出正弦表一看.
0
回复
提示
@rrrrr1234
我现在仅对规则采样法了解一点,公式如下: 脉宽=aTcsin(wTd)Tc为载波频率,a为调制度,w为正弦波角频率, Td为脉冲所在的时间.这个公式算出的结果用两个IO输出,当一个IO输出一个半波的PWM时,此时另一个输出为无效电平.我用单片机实现这个公式的想法: 用查表的方法.把0.5Tcsin(wTd)算出做一个表格,用一个八位的A/D来采样输出电压的变化,计算后得到a值,再根据下面的式子算出实际的脉宽:0.5aTcsin(wTd)/128,这仅是我一点单纯的思路,希望大家积极发表意见,特别是如果我的想法有不对的地方,请不要保留.谢谢
我认为用P89LPC938单片机不用计算宽度,将Tcsin(wTd)(16位)算出做一个表格,利用采样电压计算一个系数K,算出KTcsin(wTd)的值,由CCU单元进行对称PWM比较,定时器中断更改一次定时值即可.
0
回复
提示