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

三STC,3H桥,三相SPWM小成,超8位载波分辨率,51也疯狂

用最便宜的STC11系列,三个STC共用一个35MZH有源

16位定时器,3个20PIN单片机,每个单片机管一个半桥,共3个半桥,120°相差

可用9-10位分辨率,最大占空比可以进一步提高,波形可以很美

上下管互补死区全部软件搞定,,死区任意调,一般选2-5微秒

当然为了绝对安全,可以加一个硬件互锁

双极性

算是水到渠成,单个半桥已经可以任意调节电压,还有V/F变频目前先调节到5-80HZ,调到1HZ也是可以的改数据就可以,变频斜率调节已经可调

剩下的工作是同步变频数据;虽然每个半桥的单片机可以独立调节电压,不过电压数据最好也能同步;最后是低扭提升。

原来想用并口同步数据,不过STC11系列20脚的资源不多,打算用串口加中断来同步数据,但这中间主要是怕串口的定时器和SPWM用的定时器的参数有冲突

关于稳定性经过几个月的使用,发现只要电源稳定STC是不会死机的。碰见的几次死机情况是同一USB供电线上有HUB还有USB台灯,当USB台灯启动的时候单片机容易不稳定,可能会出现外部晶振不起作用的情况。主要是5V的单片机供电电压过低引起的。

硬件上打算用4路独立电源做隔离悬浮驱动,感觉对用自举电源有心理障碍,也许是源于不成功的经历,伴随不断的冒烟和爆炸

而隔离驱动电源炸机的几率基本可以小到让人无压力

根据经验可以用三极管无稳态多谐振荡器做最便宜的推挽开环隔离4路电源,体积可以做到很小,除了2-3元的变压器成本差不多可以忽略

关于220V转380V,打算用双管推挽PFC,或者3管120°相差PFC,不知道可以达到多少功率,这个要查查,主要是igbt和电感的选取,不知道几KW十几KW的功率是不是随便就能做到的?难道这家伙也可以用51!!学习无极限!

U相和V相的TTL波形

 

U相和W相的TTL波形

 

业余设备

 

全部回复(31)
正序查看
倒序查看
plc_avr
LV.6
2
2012-10-25 08:32
STC---看来不是“死太惨”,呵呵。顶一下!楼主好样的。
0
回复
IGBT2010
LV.8
3
2012-10-25 09:04
为什么要用三个单片机呢?,用一个实现不了吗?
0
回复
2012-10-25 10:12
@IGBT2010
为什么要用三个单片机呢?,用一个实现不了吗?

超过8位的分辨率,三个定时器,1t的速度,3spwm,以我目前的能力单核的stc做不到。

最重要的是3核做3spwm的轻松程度,最小的代价,最少的脑力。懒是推动人类进步的一个因素。

0
回复
2012-10-25 10:21
@westkinger
超过8位的分辨率,三个定时器,1t的速度,3spwm,以我目前的能力单核的stc做不到。最重要的是3核做3spwm的轻松程度,最小的代价,最少的脑力。懒是推动人类进步的一个因素。
不知用3个8位的单片机相互“并联”行不行?
0
回复
2012-10-25 11:30
@宛东骄子
不知用3个8位的单片机相互“并联”行不行?

就是8位的单片机。

哦你的意思是并行处理,想法暴强

0
回复
Kira
LV.6
7
2012-10-25 12:02
@westkinger
就是8位的单片机。哦你的意思是并行处理,想法暴强[图片]
0
回复
IGBT2010
LV.8
8
2012-10-25 12:35
@westkinger
超过8位的分辨率,三个定时器,1t的速度,3spwm,以我目前的能力单核的stc做不到。最重要的是3核做3spwm的轻松程度,最小的代价,最少的脑力。懒是推动人类进步的一个因素。
dspic30f2010  呵呵,dsPIC单片机不是有三相的PWM吗,这不是省很多事情的吗?
0
回复
plc_avr
LV.6
9
2012-10-25 12:40
@宛东骄子
不知用3个8位的单片机相互“并联”行不行?
3*8=24,变成24位机了,
0
回复
westkinger
LV.4
10
2012-10-25 13:31
@IGBT2010
[图片]dspic30f2010 [图片] 呵呵,dsPIC单片机不是有三相的PWM吗,这不是省很多事情的吗?

呵呵,条条大路通罗马。

不过pic我只买了一本书,编程没有51顺手。

0
回复
liudali
LV.2
11
2012-10-25 21:02

楼主可以请教下你用的是那个算法实现的么?

我也是用的单片机实现的三相的spwm,可是算法出点问题,相位不对,可以指教下么

0
回复
westkinger
LV.4
12
2012-10-26 11:55
@liudali
楼主可以请教下你用的是那个算法实现的么?我也是用的单片机实现的三相的spwm,可是算法出点问题,相位不对,可以指教下么

指针++的时候,在每120度顺序启动另外2个波形,

三核在生成spwm上不需要引入中断,也就是无干扰的。

0
回复
zhouboak
LV.8
13
2012-10-26 13:14
@westkinger
指针++的时候,在每120度顺序启动另外2个波形,三核在生成spwm上不需要引入中断,也就是无干扰的。
0
回复
liudali
LV.2
14
2012-10-26 15:18
@westkinger
指针++的时候,在每120度顺序启动另外2个波形,三核在生成spwm上不需要引入中断,也就是无干扰的。
谢谢楼主,可以问下就是数组序列是那个算法算出来的么,我的用规则采样算出来的数单相没问题,三相匹配的话就出现三相波形不一样的问题
0
回复
westkinger
LV.4
15
2012-10-26 15:41
@liudali
谢谢楼主,可以问下就是数组序列是那个算法算出来的么,我的用规则采样算出来的数单相没问题,三相匹配的话就出现三相波形不一样的问题

这个我也在研究当中,驱动部分的电路还没有搭起来,估计的做pcb,打算每个半桥做一块独立的驱动板,做成通用模块,先上低压看看实际波形。

这样理解的三个半桥都在做减法,或者是与运算。

也在考虑这个问题呢,想想普通三相电源的线电压和相电压,有时候似乎想通了有时候又很矛盾,等电路搭起来先,在实验中慢慢调整。

个人认为三相正弦波和单相正弦波双极性的表是不能通用的。

你的单一引脚的rc积分波形有吗看看什么样的?

下图是的单一引脚的RC积分。 

个人认为,只要相电压的波形没问题,三相之间的相差又怎么会不是120度呢?

0
回复
westkinger
LV.4
16
2012-10-28 15:44
@westkinger
这个我也在研究当中,驱动部分的电路还没有搭起来,估计的做pcb,打算每个半桥做一块独立的驱动板,做成通用模块,先上低压看看实际波形。这样理解的三个半桥都在做减法,或者是与运算。也在考虑这个问题呢,想想普通三相电源的线电压和相电压,有时候似乎想通了有时候又很矛盾,等电路搭起来先,在实验中慢慢调整。个人认为三相正弦波和单相正弦波双极性的表是不能通用的。你的单一引脚的rc积分波形有吗看看什么样的?下图是的单一引脚的RC积分。[图片] 个人认为,只要相电压的波形没问题,三相之间的相差又怎么会不是120度呢?

今天看了一篇文章,单相双极性的表应该是和三相双极性的表是一样的。

看来原来我那个表估计是有错误的,我把单极性的表在负半周的时候强行做减法与正半周并成双极性的表。

试试用规则采样法计算一下表。

公式中T2=TC*(1+M*SIN(K*PI/N))/2,其中PI是不是就是赋180,既然PI=180为什么写PI不写180呢?容易歧义理解成π(圆周率)=3.14

还有excel里面的角度和弧度差点把我搞熄火了,幸好有WPS的联网帮助,基础知识都忘记光了。

0
回复
westkinger
LV.4
17
2012-10-28 18:20
@westkinger
今天看了一篇文章,单相双极性的表应该是和三相双极性的表是一样的。看来原来我那个表估计是有错误的,我把单极性的表在负半周的时候强行做减法与正半周并成双极性的表。试试用规则采样法计算一下表。公式中T2=TC*(1+M*SIN(K*PI/N))/2,其中PI是不是就是赋180,既然PI=180为什么写PI不写180呢?容易歧义理解成π(圆周率)=3.14还有excel里面的角度和弧度差点把我搞熄火了,幸好有WPS的联网帮助,基础知识都忘记光了。
靠,原来网上的公式也是有不可靠的成分在里面的,还得自己多试验多修改,如果按照原公式算就算不出来,要自己改公式才能算出整个周期的双极性值。
0
回复
liudali
LV.2
18
2012-10-28 19:51
@westkinger
靠,原来网上的公式也是有不可靠的成分在里面的,还得自己多试验多修改,如果按照原公式算就算不出来,要自己改公式才能算出整个周期的双极性值。

是啊

我吧网上的几种算法都做过了,产生的数据表有问题,三相不对称

 

0
回复
liudali
LV.2
19
2012-10-28 19:53
@westkinger
这个我也在研究当中,驱动部分的电路还没有搭起来,估计的做pcb,打算每个半桥做一块独立的驱动板,做成通用模块,先上低压看看实际波形。这样理解的三个半桥都在做减法,或者是与运算。也在考虑这个问题呢,想想普通三相电源的线电压和相电压,有时候似乎想通了有时候又很矛盾,等电路搭起来先,在实验中慢慢调整。个人认为三相正弦波和单相正弦波双极性的表是不能通用的。你的单一引脚的rc积分波形有吗看看什么样的?下图是的单一引脚的RC积分。[图片] 个人认为,只要相电压的波形没问题,三相之间的相差又怎么会不是120度呢?
请问楼主的数据表是怎么产生的啊
0
回复
westkinger
LV.4
20
2012-10-28 21:05
@westkinger
今天看了一篇文章,单相双极性的表应该是和三相双极性的表是一样的。看来原来我那个表估计是有错误的,我把单极性的表在负半周的时候强行做减法与正半周并成双极性的表。试试用规则采样法计算一下表。公式中T2=TC*(1+M*SIN(K*PI/N))/2,其中PI是不是就是赋180,既然PI=180为什么写PI不写180呢?容易歧义理解成π(圆周率)=3.14还有excel里面的角度和弧度差点把我搞熄火了,幸好有WPS的联网帮助,基础知识都忘记光了。

多谢高人提点!我最早那个表是错的!

现在使用了新的公式计算已经基本正确了。

双极性规则采样已经初现雏形,

如图:单一管脚TTL电平的RC积分已经是正弦波了,三相120°相差基本没有误差,但是两个从机有点点失真,这个可能是主机和从机运行有个时间差,因为主机要多几段代码,所以从机可能要做些时间补偿。

图一:U相的波形,有点点毛刺,可能是表头尾的衔接有程序,这个也许是软件生成成SPWM的主要弱点。不过有些程序可通过中断随机插入尽量减少固定区域的失真积累。

 

U相的TTL信号和TTL RC积分的波形

 

图三:U相(蓝)和V相120°的RC积分波形,好像这一相差偏小,可以向后调一个脉冲,要实验一下

 

图四:V(蓝)和W的120°差

 

图五:W(红)和U的120°差

 

图六:V和W相的TTL与RC积分的波形,可以看到,有个缺口,这个是V/W相从机运行一个周期的波形要比主机短引起的,这个缺口是在等待主机的启动信号。

 

图七:U相和W相之间的TTL差动波形

 

图八:U相和W相TTL电平差动+RC积分波形,其他两相一样,

这个是两个单片机上管输出引脚通过一个悬浮的RC积分后电容两端的电压波形,跟H桥LC滤波太相似了

双极性原来就是这个含义

  

 

一点小意外,没断电的情况下,取下主单片机,剩下的两个单片机就熄火了,重刷程序后ok,可能是三个单片机共用一个晶振,以后多注意不要带电操作。

0
回复
westkinger
LV.4
21
2012-10-28 21:19
@liudali
请问楼主的数据表是怎么产生的啊

我这些试验成果都是在网络收集的知识,综合后一点点的糅合,这中间少不了电源网的功劳,我还只是单片机的初学者,现在串口还没学完。

上面帖子提供的公式已经非常接近了,数据表就是这个公式算的,

这是一个很神奇的公式,偶也,那感觉就像乡巴佬看见飞机一样。

这个需要积累,还是积累。

有心人一定行。

0
回复
dulai1985
LV.10
22
2012-10-29 15:50
@westkinger
我这些试验成果都是在网络收集的知识,综合后一点点的糅合,这中间少不了电源网的功劳,我还只是单片机的初学者,现在串口还没学完。上面帖子提供的公式已经非常接近了,数据表就是这个公式算的,这是一个很神奇的公式,偶也,那感觉就像乡巴佬看见飞机一样。这个需要积累,还是积累。有心人一定行。
你这是仿真出来的吗??
0
回复
dulai1985
LV.10
23
2012-10-29 15:53
@westkinger
超过8位的分辨率,三个定时器,1t的速度,3spwm,以我目前的能力单核的stc做不到。最重要的是3核做3spwm的轻松程度,最小的代价,最少的脑力。懒是推动人类进步的一个因素。
嘿嘿,确实够懒的~~哈哈~
0
回复
dulai1985
LV.10
24
2012-10-29 15:54
@westkinger
呵呵,条条大路通罗马。不过pic我只买了一本书,编程没有51顺手。

其实都一样,把他们的编译器吃透就OK啦~~

0
回复
westkinger
LV.4
25
2012-10-29 18:57
@dulai1985
你这是仿真出来的吗??
实物实测的波形,USB示波器。欢迎找茬!共同进步。
0
回复
westkinger
LV.4
26
2012-10-30 09:31
@westkinger
多谢高人提点!我最早那个表是错的!现在使用了新的公式计算已经基本正确了。双极性规则采样已经初现雏形,如图:单一管脚TTL电平的RC积分已经是正弦波了,三相120°相差基本没有误差,但是两个从机有点点失真,这个可能是主机和从机运行有个时间差,因为主机要多几段代码,所以从机可能要做些时间补偿。图一:U相的波形,有点点毛刺,可能是表头尾的衔接有程序,这个也许是软件生成成SPWM的主要弱点。不过有些程序可通过中断随机插入尽量减少固定区域的失真积累。[图片] U相的TTL信号和TTLRC积分的波形[图片] 图三:U相(蓝)和V相120°的RC积分波形,好像这一相差偏小,可以向后调一个脉冲,要实验一下[图片] 图四:V(蓝)和W的120°差[图片] 图五:W(红)和U的120°差[图片] 图六:V和W相的TTL与RC积分的波形,可以看到,有个缺口,这个是V/W相从机运行一个周期的波形要比主机短引起的,这个缺口是在等待主机的启动信号。[图片] 图七:U相和W相之间的TTL差动波形[图片] 图八:U相和W相TTL电平差动+RC积分波形,其他两相一样,这个是两个单片机上管输出引脚通过一个悬浮的RC积分后电容两端的电压波形,跟H桥LC滤波太相似了双极性原来就是这个含义[图片]   一点小意外,没断电的情况下,取下主单片机,剩下的两个单片机就熄火了,重刷程序后ok,可能是三个单片机共用一个晶振,以后多注意不要带电操作。

看来正弦波上的那个缺口不是什么调压变频程序引起的,我把这些程序隐藏在最大脉宽里面但是缺口并没有消失,调了一下缺口附近表的数值也不对,正弦波上的那个缺口似乎是固定的,应该是程序头尾那个while语句占用的,但这是个死循环无法取消。

想想,看看能不能把这个缺口隐藏在最大的脉宽里面,调一下表的相位。

更新:缺口已经搞掉了,现在波形很平滑了,相位差也基本调好现在只差1°

 

单片机上管差动双极性波形也比较平滑了

 

0
回复
westkinger
LV.4
27
2012-10-30 09:54
@dulai1985
其实都一样,把他们的编译器吃透就OK啦~~

俺原来搞硬件的,现在玩软件,天份呀!真没有!
51的书都买了m本了,现在串口还没学完。

0
回复
liudali
LV.2
28
2012-11-01 10:15
@westkinger
实物实测的波形,USB示波器。欢迎找茬!共同进步。

请教一下,我的三相波形出来了,但是当电压高的时候,变压器啸叫,还影响输出波形,电流也骤然加大,是怎么回事啊

 

0
回复
IGBT2010
LV.8
29
2012-11-01 10:51
@liudali
请教一下,我的三相波形出来了,但是当电压高的时候,变压器啸叫,还影响输出波形,电流也骤然加大,是怎么回事啊 
会不会是你的前级的频率和变压器不匹配啊?
0
回复
westkinger
LV.4
30
2012-11-01 12:23
@liudali
请教一下,我的三相波形出来了,但是当电压高的时候,变压器啸叫,还影响输出波形,电流也骤然加大,是怎么回事啊 
工频吗,上个图看看。
0
回复
liudali
LV.2
31
2012-11-02 11:01
@westkinger
工频吗,上个图看看。
变压器要匹配的么?
0
回复