您好, 登录| 注册|
论坛导航
您好, 登录| 注册|
子站:
论坛首页    高校联盟/电子设计大赛
  •  发帖
  • 收藏

【风采汇】+2017年电赛电源组微电网模拟系统&三相逆变资料资料大全(包括电路程序和并联运行)
阅读: 4500 |  回复: 52 楼层直达

2019/09/19 23:49:58
1
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

QQ截图20160321155901  【活动进行中……】礼遇感恩节!参与顶楼  免费送仪器

QQ截图20160321155901   【风采汇】参与有奖!获奖作品分享大赛



三相逆变并联供电系统的设计资料

这是2017年国赛的题目,获得过省一虽然不是很好的成绩但是电路的功能是很完善的,这次我和大家分享的是微电网模拟系统,这次资料全部开源,对,是全部开源。我会陆续更新把电路PCB、主要原理以及程序等全部开源。

还有需要PCB的小伙伴 可以在下面回复邮箱 我看到就会发送的

先上主要的系统图片

主电路如下图所示包括主电路和控制电路

采样电路包括精密整流电路和负电源点路

2019/09/26 23:37:56
2
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

2019/09/26 23:38:59
3
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

主要参数计算

线电压:三相电的AB,BC,AC任意之间的电压。三相电功率公式:P=√3*U*I*cosφ式中:P代表功率,U代表线电压,I代表电流,cosφ代表功率因素。√3=1.732功率因素cosφ对于阻性负载,取值1功率因素cosφ对于感性负载,比如电机,取值0.8线电压:24V,I=2A 需要的供电电压为:√3*24=41.568V输出:P=√3*24V*I*2A*1=83.1W逆变器 1 的效率 ? 不低于 87%。意味着驱动电路损耗的能量要<83.1/87%-83.1=12.4W。

2019/09/26 23:42:55
4
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

本次采用STC15F2K60S2单片机为核心的SPWM逆变电源,单片机通过自然数查表法控制内部的3路硬件PWM模块生成SPWM脉冲信号,采用双极性调制方案驱动三相全桥逆变电路,输出经LC低通滤波器滤波,最后在负载上得到稳定的正弦波交流电。其正弦波输出频率由单片机内部程序控制调节。另外本系统外接按键,按键能设定开始与停止。

 逆变电源的发展与和电力电子器件的发展息息相关,可以说电力电子器件器件的发展引导着逆变电源的发展。上世纪60年代正是电力电子技术飞速发展的时期,逆变电源就是在这个时期产生的,直到现在,逆变电源已经经过了三代的发展。

最初的逆变电源用的是晶闸管作为逆它的开关器件,称为可控硅逆变电源,但是因为早期晶闸管没有自关断的能力,即使增加了换流电路使其拥有了这种能力,但换流电路的复杂结构和极低的效率等原因却使逆变电源下一步的发展进退维谷。

从上世纪70年代末开始,许多自关断器件相继被发明出来,例如可关断晶闸管、电力晶体管等,这也促进了逆变电源的发展,于是使用自关断器件作为开关器件的逆变器产生了,这就是第二代逆变电源,使用了自关断器件的逆变器它逆变电源的性能获得了极大的提升,使用了自关断器件的逆变器与初代逆变器相比有了许多优点,首先因为有了自关断功能,所以不再需要换流电路,这样使主电路得到简化以至于降低了成本;其次由于逆变器使用了自关断器件,以至于其性能相比初代得到了极大的提升。这一代的逆变电源通常采用带输出电压有效值反馈的SPWM控制技术来控制。这一代的逆变器拥有简单的结构和容易实现的优点,但也并不意味这他没有缺点,由于它没有考虑信号传输过程中开关点的变化及负载的影响,所以还是有不少的缺点的,首先它如果负载是非线性的就没有良好的适应能力,非线性的负载会使输出电压的波形发生畸变;其次因为没有瞬时值的反馈所以它的动态特性也不好;最后因为有控制不到的时间域,同样会使输出的电压波形发生畸变。这些缺点使得第二代逆变电源依然不够完善。

    随着近十年来新型电源控制技术的蓬勃发展,针对第二点逆变电源的缺点发明了实时反馈控制技术这也使得第三代逆变电源应运而生,三代逆变电源使用了这种技术又一次使逆变电源的性能提高了,同时还弥补了第二代的缺点,这种技术到目前为止还在不断地被完善,实时反馈控制技术拥有许多种,基于对动态性能和适应性等方面的考虑目前被广泛采用的技术是带电流内环的电压瞬时值反馈控制。  

2019/09/26 23:45:03
5
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

正弦逆变电源作为一种可将直流电能有效地转换为交流电能的电能变换装置被广泛地应用于国民经济生产生活中,其中有:针对计算机等重要负载进行断电保护的交流不间断电源UPS(Uninterruptle Power Supply)针对交流异步电动机变频调速控制的变频调速器;针对智能楼宇消防与安防的应急电源EPS( Emergence Power Supply)针对船舶工业用电的岸电电源SPS(Shore Power Supply)还有针对风力发电、太阳能发电等而开发的特种逆变电源等等。随着控制理论的发展与电力电子器件的不断革新,特别是以绝缘栅极双极型晶体管IGBT(Insulated Gate Bipolar Transistor)为代表的自关断可控型功率半导体器件出现,大大简化了正弦逆变电源的换相问题,为各种PWM型逆变控制技术的实现提供了新的实现方法,从而进一步简化了正弦逆变系统的结构与控制.

正因为逆变电源技术的核心部分是逆变器和其控制部分,所以选择逆变器的设计作为研究课题可以慢慢跨入逆变电源的行业中去深入发展。众所周知,虽然自关断器件的产生简化了逆变主电路,但它的开关频率和功率仍受一定的限制, 于是逆变电源输出波形正弦度仍不是很理想。虽然在控制方法上已经趋于成熟,但有些控制方法实现起来仍很困难。随着开关频率的提高,会引起开关损耗的增加,逆变效率和直流利用率的降低,因此,对逆变电源技术进行深入地研究有很大的现实意义。

逆变电源的发展与和电力电子器件的发展息息相关,可以说电力电子器件器件的发展引导着逆变电源的发展。上世纪60年代正是电力电子技术飞速发展的时期,逆变电源就是在这个时期产生的,直到现在,逆变电源已经经过了三代的发展。

 

2019/09/26 23:47:08
6
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

掌握正弦波逆变器的电路的组成,需要重点明白其中中各元器件的原理及用处,对正弦波逆变电路在电阻负载、电阻电感负载是的工作情况及其波形作全面分析,并研究工作频率对电路工作波形的影响。采用SPWM控制方式对逆变桥进行调制,最后经电容、电感过滤实现正弦波逆变的目的。

正弦波逆变器的电路构成如图

 如图所示,本电路由两部分组成,将交流转化为直流的这个部分属于整流,整流器的作用是把交流电转化为直流电,这个过程可以是不可控的,也可以是可控的,这部分采用不可控的二极管将交流变成直流。整流之后采用用电容进行滤波,滤波器的作用是将波动的直流量过滤成平展稳定的直流量,整个过程无论是从结构上还是性能上都能满足实验要要。最后直流变交流的部分为逆变部分,逆变器的作用是将直流电转化为交流电经过电感滤波后然后供给负载,这里的LC滤波是为了滤除高次谐波,得到到正弦波,而逆变器因为它输出的电压和频率与输入的交流电源无关所以为称为无源逆变器,它是正弦波逆变电路的核心,这里采用采用三相桥式逆变电路,用PWM控制调节输出电压及频率的大小。

2019/09/27 00:02:02
7
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

首先讲一下脉宽调制的大概理论

PWM控制技术就是脉冲宽度调制技术。他的原理是可以通过等效法对脉冲宽度进行改变来获得一系列的脉冲想要变成需要的波形。波形包含形状和幅值。

PWM控制技术核心就是面积等效法。即相同的冲量其实就是相同的面积。原理图如图。

在正弦波的负半周上使用等面积法依旧可得到PWM波形,所以在一个完的整周期内正弦波的等效PWM波如图所示。

 目前还有一种更普遍的等效方式,用的也是等面积。如图所示。

2019/09/27 00:03:32
8
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

采用一定方法对脉冲宽度进行改变。从而使得输出脉冲列在周期内的时间相对于均值按正弦的规律变化,这就是SPWM。传统的SPWM方法,是从电源角度出发,通过正弦波控制信号与三角载波的交点产生触发脉冲。从而产生开关动作,经过滤波生成可以调频调压的正弦波。在这里采用了双极性PWM调制技术的方法,它的原理如图 所示。

在采用双极性PWM调制技术时候,把信号波用这种方法得到的交流正弦输出波替代同时把载波用三角波替代,将这二者进行对比,各开关的通断在这两种波的交点时刻进行改变,由此可以看出在信号波的一个周期内,无论是载波还是调制来的输出波形都是正负皆有,所以它其输出波形具有±Ud两种电平,把信号波和载波分别用ur和uc来表示,当信号波大于载波的时刻,同时施加开通和关断信号,其中开通信号给V1和V4关断信号给V2和V3,此时如果io是大于零的那么V1和V4开通反之则是VD1和VD4开通,但是它们的电压输出都是uo等于Ud。同理当载波大于信号波的时候,那么用同样的方法可以得到V2和V3或着VD2和VD3开通的结果,不同的是它们的电压输出却是uo等于负的Ud。

SPWM逆变器的主题思路就是有一个逆变器,希望它输出的电压波形是正弦的,因为至今为止以现在的技术造出的可以改变频率和电压的逆变器无法像正弦波逆变器那样的小体积大功率且输出波形光滑。

现在的SPWM逆变器都采用的是等效原理实现的,即让逆变器输出的波形是一系列的和正弦波一样效果的虽不等宽但等幅的矩阵脉冲波形,它的主题思想方法就是等面积法。

2019/09/28 23:34:32
9
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

 如图所示,本电路由两部分组成,将交流转化为直流的这个部分属于整流,整流器的作用是把交流电转化为直流电,这个过程可以是不可控的,也可以是可控的,这部分采用不可控的二极管将交流变成直流。整流之后采用用电容进行滤波,滤波器的作用是将波动的直流量过滤成平展稳定的直流量,整个过程无论是从结构上还是性能上都能满足实验要要。最后直流变交流的部分为逆变部分,逆变器的作用是将直流电转化为交流电经过电感滤波后然后供给负载,这里的LC滤波是为了滤除高次谐波,得到到正弦波,而逆变器因为它输出的电压和频率与输入的交流电源无关所以为称为无源逆变器,它是正弦波逆变电路的核心,这里采用采用三相桥式逆变电路,用PWM控制调节输出电压及频率的大小。

2019/09/28 23:37:04
10
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

常用的逆变器调压方法:

可控整流器调压:通过负载对电压的要求,使用可控的整流器来完成对逆变器输出电压的调节。

直流斩波器调压:在确定逆变器的电源侧有较高功率的情况下,通过不可控整流器可以在直流环节中通过设置改变直流斩波器来进行对电压的调节。                                                                         

逆变器自身调压:在采用不可控整流器的前提下逆变器能用自身的电子开关进行斩波控制,这样就可以得到脉冲列,通过改变输出电压脉冲列的脉冲宽度,就可达对输出的电压进行调节,这种方法被称为脉宽调制(PWM)。

由于需要功率不大而且需要对电压进行斩波控制因此选用第三个方案。

2019/09/28 23:41:16
11
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

总体原理图

本系统主要采用的硬件滤波电路、三相全桥逆变电路、LC滤波器、单片机、按键设置电路、显示模块、电压检测电流,电流检测电路以及一些外围电路,具体系统框图如图所示。

2019/09/28 23:46:21
12
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

主回路原理说明

从图中可以看出,直流电输入后,先通过2个电容串联构成的滤波电路,得到输入电压的一半作为中点电位,作为三相输出的参考地。在逆变的部分采用了6个金属氧化物半导体管(即MOS管)组成了一个三相桥式逆变电路,最后使用用双极性的调制方式进行调制,输出的SPWM波形过经电感、电容组成的LC滤波器滤除高次谐波,最后在负载就能获得三相的纯正弦波交流电压输出。

2019/09/28 23:48:01
13
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长
负载是星型接线,需要有中性线回路
2019/10/03 22:50:39
14
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

本正弦波逆变器主要用的是SPWM控制技术,整体的电路具有简单的结构而且在机械特性方面也表现良好同时价格也比较低廉,这样的设计能完美达到题目的需求并且已经在各种相关的行业里被普遍采用。

如果是直流输入端滤波器,那么它可以分为两种,分别是电流型和电压型,其中电流型逆变器它的中间部分采用的是大电感进行滤波,这样的输入电流的特点是具有阻抗大电流平,就仿佛似电流源,而电压型逆变器的中间部分则采用大电容进行滤波,这样的逆变器的输入电压的特点是阻抗小且电压平直,就仿佛电压源。而如果按电子开关的频率进行区别则同样可分为两种分别是120°的导电型逆变器和180°的导电型逆变器。

本系统主要采用的硬件滤波电路、三相全桥逆变电路、LC滤波器、单片机、按键设置电路、显示模块、电压检测电流,电流检测电路以及一些外围电路,具体系统框图如图所示。

2019/10/03 22:52:28
15
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

滤波电路的简要说明

滤波电路的作用是把直流电压过滤,过滤掉其中不平整的脉动,这样的目的是确保之后的电路环节能得到优秀质量的电压或电流,本电路的滤波电路部分采用的是电容滤波电路。虽然从理论上来讲只要电容值越大那么过滤的效果就越好,但是出于对实际的考虑无论结构上还是价值上都不能这样,所以要计算电容的实际大小。

通过2个电容串联构成的滤波电路,得到输入电压的一半作为中点电位,作为三相输出的参考地。

2019/10/03 22:59:03
16
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长
单片机的选择

本设计所采用的单片机是STC12F2K60S2,它能使系统的到充分的实现,内部自带高精度(0.4%)内部振荡器,它还拥有38个I/O口,该单片机内置上电复位电路,有8路10位ADC模数转换、每个I/O能设置成输入输出模式,并且具有具有3路PWM输出,通过软硬件设计,实现多功能的电机控制。且性价比高,抗静电,抗干扰,低功耗,低成本。

2019/10/03 23:06:27
17
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长
场效应管的选择

如图所示的三相全桥电路,其电路中需要用到6个场效应管,电路的A端和B端都要与用电器连接。由于是市电接入所以要选用拥有足够大耐压值的场效应管,本设计选用540场效应管即33A 110V的场效应管,这种场效应管无论是从耐压方面考虑还是从通断时间方面考虑都能满足设计的要求。

2019/10/03 23:18:40
18
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

 场效应管的驱动电路有俩种思路

1.基于三极管等元件组成的驱动电路,这种驱动电路的好处是价格便宜且结构简单,但是本设计的要求的驱动电路必须高于电源电压的电路,所以如果选择这种驱动电路就需要再为它增加一个驱动电源,这无疑增加了设计的难度。

2.半桥式驱动电路,本全桥驱动电路采用IR2104作为它的驱动芯片,该芯片的优点是结构简单性能可靠并且能即大的提升电路的稳定性且降低了设计难度。该芯片采用被动式泵荷升压原理。上电时,电源流过快恢复二极管D向电容C充电,C上的端电压很快升至接近Vcc,这时如果下管导通,C负级被拉低,形成充电回路,会很快充电至接近Vcc,当PWM波形翻转时,芯片输出反向电平,下管截止,上管导通,C负极电位被抬高到接近电源电压,水涨船高,C正极电位这时已超过Vcc电源电压。因有D的存在,该电压不会向电源倒流,C此时开始向芯片内部的高压侧悬浮驱动电路供电,C上的端电压被充至高于电源高压的Vcc,只要上下管一直轮流导通和截止,C就会不断向高压侧悬浮驱动电路供电,使上管打开的时候,高压侧悬浮驱动电路电压一直大于上管的S极。采用该芯片降低了整体电路的设计难道,只要电容C选择恰当,该电路运行稳定。

2019/10/09 00:04:50
19
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

下面介绍一下传感采集电路

我们需要能把输出的交流电压的幅值给到单片机检测到(隐含的需求是需要电隔)。但是单片机只能直流电压,不能检测交流电压,所以我们还需要把交流转换成直流。

电压互感器是和变压器一样的东西。两边都是线圈,互相隔离的,变比是1000匝:1000匝,流入多大电流,流出也多大电流(额定电流2mA)。本文档的最后附上该器件的规格书。

输出的线电压是交流24V(有效值),这里用20K电阻,那么流入互感器的电流是24/20K=1.2mA,那么互感器另外一侧输出的电流也是1.2mA,在输出端并联一个1K电阻,可以得到1.2*1K=1.2V的交流电压(有效值)。

2019/10/09 00:09:46
20
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

PT107 2mA_2mA电压互感器

CT103C参数5A5mA

2019/10/09 10:56:24
21
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

单片机采样电路

精密整流电路

单片机不能检测交流电压,所以需要把这个交流的正弦波转换成直流的信号,

这里采用精密整流电路,一个运放只输出正弦的正向波形,另一个运放翻转正弦的反向波形,合在一起就把正弦波变成了馒头波(有效值1.2V)。

馒头波直接给单片机检测的话,软件的数值滤波搞不定,所以采用了硬件滤波+软件滤波。硬件上弄了个RC,47K电阻+22uf电容,RC输出的平稳的1.2V电压信号(有效值一直保持不变)。程序上采集50个数值求平均。

上面是-输入,肯定是反向的,把负周期的波整成正的,正周期的波不管

下面是+输入,肯定是正向的,把正周期的波整成正的,负周期的波不管

整个加起来就是馒头波了,馒头波经过RC电路,就得到平稳的电压,给单片机ADC采集。

这个ADC值直接反映了馒头波的有效值,也就是输出的线电压

2019/10/09 23:32:29
22
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

显示模块采用lcd1604,用法和1602类似,在通过lcd1604 显示屏驱动程序的简易编写后可以完成对系统参数的显示

但是比之前多了俩行

原理图如下

实物如下

2019/10/09 23:45:10
23
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

接下来介绍一下系统控制模块的供电系统也叫辅助电路的设计

单片机以及一些运算放大器利用7805作为辅助电源原理图如图

ir2104需要供电12v,因此采用7812作为辅助电源。因为7812和7805的电路一样就不再重复发,参考上面即可。

由于精密整流电路需要吧负信号整成正信号,需要-5V供电,这里采用电荷泵IC 7660.

2019/10/10 00:07:10
24
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

电压互感器采样电路

电流互感器采样电路

精密全波整流电路

2019/10/10 00:10:53
25
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

经过AD调试设计,完成了第一代的系统PCB

这次主回路的走线偏细,采用双层版。利用双层覆铜板蚀刻电路

2019/10/10 00:18:14
26
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。

于是做了基于proteus的主回路的仿真,如下所示。

2019/10/10 11:35:25
27
lxgmvp
电源币:392 | 积分:0 主题帖:6 | 回复帖:349
LV7
旅长
顶一下
2019/10/14 00:49:57
28
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

由于三相变频的数据量很大,所以导致运行的时候会卡机,导致LC出来的正弦波有些地方有断层,不过这个不重要,仿真只是为了验证电路和程序的可行性。

根据仿真结果,证明这个目前设个设计的电路和程序是可行的。于是根据仿真做出实物作进一步研究。

2019/10/14 00:55:58
29
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

利用做好的电路打出第一块三相逆变的覆铜板

2019/10/14 01:01:48
30
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

利用示波器测量spwm波形和正弦波,由于三相的板子有3个输出端,而我们实验室只有双通道的示波器,所以只能测试其中的2个通道,

第一步:将双通道示波器的两个探针接在单片机输出PWM的引脚;

第二步:记录波形数据;

第三步:改变单片机输出SPWM的频率,返回第一步操作,直到调出50HZ的SPWM波测试完。

得到的SPWM波形如图所示。

将该波形经过LC滤波后出来的波形如图所示。

通过示波器发现电路基本正常,由于没加保护功能因此,将保护做成一个单独的一块电路在进行连接使用

2019/10/14 01:08:37
31
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

主回路三相逆变桥原理图

2019/10/14 01:11:13
32
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

控制电路、辅助电路以及显示按键电路

2019/10/16 11:02:29
33
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

在经过一些列采样调试中终于做好了采集板

原理图如下

因为都是些信号电路,所以就把电路做的相对集中,利于后面的调试

2019/10/16 11:23:01
34
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

打出的第二代产品如下

2019/10/21 16:34:32
35
lcq1995
电源币:0 | 积分:3 主题帖:0 | 回复帖:2
LV1
士兵
好贴呀,顶一下。楼主你好,我现在也在做逆变这块,请求一份资料,就是把你做的可以发的资料都共享一下。感谢楼主,邮箱1508559822@qq.com。
2019/10/29 23:45:45
36
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

好的,没问题。

在第二代的基础上增设了保护功能并进行联网调试

2019/10/29 23:47:26
37
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

通过测试结果可以看出,该逆变器可以输出三相的50HZ的正弦波电流。另外地本系统外接LCD显示及按键,可手动设定电源输出电压频率,并实时显示输出电压、电流、功率和交流电压的效率。同时该系统具有过流保护功能,可以在输出大于2A电流的情况下切断交流输出,大大增加了系统的安全性和稳定性。

2019/10/29 23:48:19
38
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

测试保护功能如下

2019/10/29 23:55:15
39
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

简单叙述一下主要程序,

要完成本正弦波逆变器的设计除了硬件方面的设计还需要进行开软件的设计,为了实现单片机的各种功能,软件程序的编制是不可缺少的。对于本系统的软件编程主要有两种编程语言,分别是汇编和C语言。汇编语言的优点是运行速度快但它也存在但难编程和难调试的缺点,而作为准高级语言的C语言却具有良好的可读性,并且调制过程调试简单明了还有很好的移植性好,所以本系统采用C语言来编写程序,MPLAB IDE v8.83作为集成开发环境。

根据正弦波的一系列数据进行精确计算得出每个脉冲的宽度和他们之间的间隔,以此来操控开关器件的通断来得到PWM波形。

SPWM算法按照规律采用法需要按相同角度步进将正弦波分成等分,本设计将一个正弦波平均分成分成300等分,计算余弦数值得到一系列数据,并将数据做成程序列表,存储进单片机的ROM里面。

uchar code pwm[]={

127,124,122,119,116,114,111,108,106,103,100,98,95,93,90,87,85,82,80,77,75,73,70,68,65,63,61,58,56,54,52,50,47,45,43,41,39,37,36,34,32,30,28,27,25,23,22,20,19,18,16,15,14,12,11,10,9,8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,4,4,5,4,7,8,9,10,11,12,14,15,16,18,19,20,22,23,25,27,28,30,32,34,36,37,39,41,43,45,47,50,52,54,56,58,61,63,65,68,70,73,75,77,80,82,85,87,90,93,95,98,100,103,106,108,111,114,116,119,122,124,127,130,132,135,138,140,143,146,148,151,154,156,159,161,164,167,169,172,174,177,179,181,184,186,189,191,193,196,198,200,202,204,207,209,211,213,215,217,218,220,222,224,226,227,229,231,232,234,235,236,238,239,240,242,243,244,245,246,247,248,249,250,250,251,252,252,253,253,254,254,254,255,255,255,255,255,255,255,255,255,254,254,254,253,253,252,252,251,250,250,249,248,247,246,245,244,243,242,240,239,238,236,235,234,232,231,229,227,226,224,222,220,218,217,215,213,211,209,207,204,202,200,198,196,193,191,189,186,184,181,179,177,174,172,169,167,164,161,159,156,154,151,148,146,143,140,138,135,132,130,127}; //反正弦变化

要使得其输出三个相位,相移120°的正弦波形的话,那么三个波形的起始位就得相距离0,n/3*1,n/3*2,也就是0,100,200.

主程序定时器流程图如下

2019/10/29 23:58:30
40
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

按键子程序

按键程序中主要是控制机器的逆变H桥的工作的使能,按第一下,H桥工作,再按下后取反,H桥停止工作。

函数说明:按键延时防抖动**********************************************************/

void key_scan()

{

if(P00==0)

{

delay(100);

if(P00==0)

{

Program_step++;

if(Program_step>3)

Program_step=0;delay(250);

}

}

}

2019/10/30 00:00:38
41
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长
程序如下
/****************晶振:内部设置12MHz****************/
#include <STC15F2K60S2.H>
#include <intrins.h>	      /*use _nop_() function*/
#define uchar unsigned char
#define uint unsigned int
#define ADC_FLAG      0X10
#define CCP_S0 0x10                 //P_SW1.4
#define CCP_S1 0x20                 //P_SW1.5
uchar code pwm[][301]={	
	{128,125,123,120,118,115,113,110,108,106,103,101,98,96,94,91,89,87,84,82,80,78,75,73,71,69,67,65,63,61,59,57,55,53,51,49,47,46,44,42,41,39,37,36,34,33,31,30,29,27,26,25,24,23,22,21,20,19,18,17,16,15,15,14,14,13,13,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,13,13,14,14,15,15,16,15,18,19,20,21,22,23,24,25,26,27,29,30,31,33,34,36,37,39,41,42,44,46,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,78,80,82,84,87,89,91,94,96,98,101,103,106,108,110,113,115,118,120,123,125,128,130,132,135,137,140,142,145,147,149,152,154,157,159,161,164,166,168,171,173,175,177,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,209,211,213,214,216,218,219,221,222,224,225,226,228,229,230,231,232,233,234,235,236,237,238,239,240,240,241,241,242,242,243,243,244,244,244,244,244,244,245,244,244,244,244,244,244,243,243,242,242,241,241,240,240,239,238,237,236,235,234,233,232,231,230,229,228,226,225,224,222,221,219,218,216,214,213,211,209,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180,177,175,173,171,168,166,164,161,159,157,154,152,149,147,145,142,140,137,135,132,130,128
	}, //117
	{128,125,123,120,118,115,113,110,108,105,103,101,98,96,93,91,89,86,84,82,80,77,75,73,71,69,66,64,62,60,58,56,54,52,50,49,47,45,43,41,40,38,37,35,34,32,31,29,28,27,25,24,23,22,21,20,19,18,17,16,15,15,14,13,13,12,12,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,12,12,13,13,14,15,15,15,17,18,19,20,21,22,23,24,25,27,28,29,31,32,34,35,37,38,40,41,43,45,47,49,50,52,54,56,58,60,62,64,66,69,71,73,75,77,80,82,84,86,89,91,93,96,98,101,103,105,108,110,113,115,118,120,123,125,128,130,132,135,137,140,142,145,147,150,152,154,157,159,162,164,166,169,171,173,175,178,180,182,184,187,189,191,193,195,197,199,201,203,205,206,208,210,212,214,215,217,218,220,221,223,224,226,227,228,230,231,232,233,234,235,236,237,238,239,240,240,241,242,242,243,243,244,244,245,245,245,245,245,245,246,245,245,245,245,245,245,244,244,243,243,242,242,241,240,240,239,238,237,236,235,234,233,232,231,230,228,227,226,224,223,221,220,218,217,215,214,212,210,208,206,205,203,201,199,197,195,193,191,189,187,184,182,180,178,175,173,171,169,166,164,162,159,157,154,152,150,147,145,142,140,137,135,132,130,128
	}, //118
	{128,125,123,120,118,115,113,110,108,105,103,100,98,95,93,91,88,86,84,81,79,77,75,72,70,68,66,64,62,60,58,56,54,52,50,48,46,44,42,41,39,37,36,34,33,31,30,28,27,26,24,23,22,21,20,19,18,17,16,15,14,14,13,12,12,11,11,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,11,11,12,12,13,14,14,14,16,17,18,19,20,21,22,23,24,26,27,28,30,31,33,34,36,37,39,41,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,75,77,79,81,84,86,88,91,93,95,98,100,103,105,108,110,113,115,118,120,123,125,128,130,132,135,137,140,142,145,147,150,152,155,157,160,162,164,167,169,171,174,176,178,180,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,214,216,218,219,221,222,224,225,227,228,229,231,232,233,234,235,236,237,238,239,240,241,241,242,243,243,244,244,245,245,246,246,246,246,246,246,247,246,246,246,246,246,246,245,245,244,244,243,243,242,241,241,240,239,238,237,236,235,234,233,232,231,229,228,227,225,224,222,221,219,218,216,214,213,211,209,207,205,203,201,199,197,195,193,191,189,187,185,183,180,178,176,174,171,169,167,164,162,160,157,155,152,150,147,145,142,140,137,135,132,130,128
	}, //119	
	{128,125,122,120,117,115,112,110,107,105,103,100,98,95,93,90,88,86,83,81,79,76,74,72,70,68,65,63,61,59,57,55,53,51,49,47,45,44,42,40,38,37,35,33,32,30,29,28,26,25,24,22,21,20,19,18,17,16,15,14,13,13,12,11,11,10,10,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,10,10,11,11,12,13,13,13,15,16,17,18,19,20,21,22,24,25,26,28,29,30,32,33,35,37,38,40,42,44,45,47,49,51,53,55,57,59,61,63,65,68,70,72,74,76,79,81,83,86,88,90,93,95,98,100,103,105,107,110,112,115,117,120,122,125,128,130,133,135,138,140,143,145,148,150,152,155,157,160,162,165,167,169,172,174,176,179,181,183,185,188,190,192,194,196,198,200,202,204,206,208,210,211,213,215,217,218,220,222,223,225,226,227,229,230,231,233,234,235,236,237,238,239,240,241,242,242,243,244,244,245,245,246,246,247,247,247,247,247,247,248,247,247,247,247,247,247,246,246,245,245,244,244,243,242,242,241,240,239,238,237,236,235,234,233,231,230,229,227,226,225,223,222,220,218,217,215,213,211,210,208,206,204,202,200,198,196,194,192,190,188,185,183,181,179,176,174,172,169,167,165,162,160,157,155,152,150,148,145,143,140,138,135,133,130,128
	}, //120
	{	128,125,122,120,117,115,112,110,107,105,102,100,97,95,93,90,88,85,83,81,78,76,74,71,69,67,65,63,61,58,56,54,52,50,48,47,45,43,41,39,38,36,34,33,31,30,28,27,25,24,23,21,20,19,18,17,16,15,14,13,12,12,11,10,10,9,9,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,9,9,10,10,11,12,12,12,14,15,16,17,18,19,20,21,23,24,25,27,28,30,31,33,34,36,38,39,41,43,45,47,48,50,52,54,56,58,61,63,65,67,69,71,74,76,78,81,83,85,88,90,93,95,97,100,102,105,107,110,112,115,117,120,122,125,128,130,133,135,138,140,143,145,148,150,153,155,158,160,162,165,167,170,172,174,177,179,181,184,186,188,190,192,194,197,199,201,203,205,207,208,210,212,214,216,217,219,221,222,224,225,227,228,230,231,232,234,235,236,237,238,239,240,241,242,243,243,244,245,245,246,246,247,247,248,248,248,248,248,248,249,248,248,248,248,248,248,247,247,246,246,245,245,244,243,243,242,241,240,239,238,237,236,235,234,232,231,230,228,227,225,224,222,221,219,217,216,214,212,210,208,207,205,203,201,199,197,194,192,190,188,186,184,181,179,177,174,172,170,167,165,162,160,158,155,153,150,148,145,143,140,138,135,133,130,128
	}, //121
	{128,125,122,120,117,115,112,110,107,105,102,100,97,95,92,90,87,85,83,80,78,76,73,71,69,67,64,62,60,58,56,54,52,50,48,46,44,42,40,39,37,35,33,32,30,29,27,26,24,23,22,21,19,18,17,16,15,14,13,12,11,11,10,9,9,8,8,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,8,8,9,9,10,11,11,11,13,14,15,16,17,18,19,21,22,23,24,26,27,29,30,32,33,35,37,39,40,42,44,46,48,50,52,54,56,58,60,62,64,67,69,71,73,76,78,80,83,85,87,90,92,95,97,100,102,105,107,110,112,115,117,120,122,125,128,130,133,135,138,140,143,145,148,150,153,155,158,160,163,165,168,170,172,175,177,179,182,184,186,189,191,193,195,197,199,201,203,205,207,209,211,213,215,216,218,220,222,223,225,226,228,229,231,232,233,234,236,237,238,239,240,241,242,243,244,244,245,246,246,247,247,248,248,249,249,249,249,249,249,250,249,249,249,249,249,249,248,248,247,247,246,246,245,244,244,243,242,241,240,239,238,237,236,234,233,232,231,229,228,226,225,223,222,220,218,216,215,213,211,209,207,205,203,201,199,197,195,193,191,189,186,184,182,179,177,175,172,170,168,165,163,160,158,155,153,150,148,145,143,140,138,135,133,130,128
	}, //122
	{128,125,122,120,117,115,112,110,107,104,102,99,97,94,92,89,87,85,82,80,77,75,73,71,68,66,64,62,59,57,55,53,51,49,47,45,43,41,40,38,36,34,33,31,30,28,26,25,24,22,21,20,18,17,16,15,14,13,12,11,11,10,9,8,8,7,7,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,7,7,8,8,9,10,11,10,12,13,14,15,16,17,18,20,21,22,24,25,26,28,30,31,33,34,36,38,40,41,43,45,47,49,51,53,55,57,59,62,64,66,68,71,73,75,77,80,82,85,87,89,92,94,97,99,102,104,107,110,112,115,117,120,122,125,128,130,133,135,138,140,143,145,148,151,153,156,158,161,163,166,168,170,173,175,178,180,182,184,187,189,191,193,196,198,200,202,204,206,208,210,212,214,215,217,219,221,222,224,225,227,229,230,231,233,234,235,237,238,239,240,241,242,243,244,244,245,246,247,247,248,248,249,249,250,250,250,250,250,250,251,250,250,250,250,250,250,249,249,248,248,247,247,246,245,244,244,243,242,241,240,239,238,237,235,234,233,231,230,229,227,225,224,222,221,219,217,215,214,212,210,208,206,204,202,200,198,196,193,191,189,187,184,182,180,178,175,173,170,168,166,163,161,158,156,153,151,148,145,143,140,138,135,133,130,128
	}, //123
	{128,125,122,120,117,115,112,109,107,104,102,99,97,94,92,89,87,84,82,79,77,75,72,70,68,66,63,61,59,57,55,53,50,48,46,45,43,41,39,37,35,34,32,30,29,27,26,24,23,21,20,19,18,16,15,14,13,12,11,10,10,9,8,7,7,6,6,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,6,6,7,7,8,9,10,9,11,12,13,14,15,16,18,19,20,21,23,24,26,27,29,30,32,34,35,37,39,41,43,45,46,48,50,53,55,57,59,61,63,66,68,70,72,75,77,79,82,84,87,89,92,94,97,99,102,104,107,109,112,115,117,120,122,125,128,130,133,135,138,140,143,146,148,151,153,156,158,161,163,166,168,171,173,176,178,180,183,185,187,190,192,194,196,198,200,202,205,207,209,210,212,214,216,218,220,221,223,225,226,228,229,231,232,234,235,236,237,239,240,241,242,243,244,245,245,246,247,248,248,249,249,250,250,251,251,251,251,251,251,252,251,251,251,251,251,251,250,250,249,249,248,248,247,246,245,245,244,243,242,241,240,239,237,236,235,234,232,231,229,228,226,225,223,221,220,218,216,214,212,210,209,207,205,202,200,198,196,194,192,190,187,185,183,180,178,176,173,171,168,166,163,161,158,156,153,151,148,146,143,140,138,135,133,130,128
	}, //124
	{128,125,122,120,117,114,112,109,107,104,102,99,96,94,91,89,86,84,81,79,77,74,72,70,67,65,63,61,58,56,54,52,50,48,46,44,42,40,38,36,35,33,31,30,28,26,25,23,22,21,19,18,17,16,14,13,12,11,10,9,9,8,7,6,6,5,5,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,6,6,7,8,9,8,10,11,12,13,14,16,17,18,19,21,22,23,25,26,28,30,31,33,35,36,38,40,42,44,46,48,50,52,54,56,58,61,63,65,67,70,72,74,77,79,81,84,86,89,91,94,96,99,102,104,107,109,112,114,117,120,122,125,128,130,133,135,138,141,143,146,148,151,153,156,159,161,164,166,169,171,174,176,178,181,183,185,188,190,192,194,197,199,201,203,205,207,209,211,213,215,217,219,220,222,224,225,227,229,230,232,233,234,236,237,238,239,241,242,243,244,245,246,246,247,248,249,249,250,250,251,251,252,252,252,252,252,252,253,252,252,252,252,252,252,251,251,250,250,249,249,248,247,246,246,245,244,243,242,241,239,238,237,236,234,233,232,230,229,227,225,224,222,220,219,217,215,213,211,209,207,205,203,201,199,197,194,192,190,188,185,183,181,178,176,174,171,169,166,164,161,159,156,153,151,148,146,143,141,138,135,133,130,128
	}, //125
	{128,125,122,120,117,114,112,109,106,104,101,99,96,94,91,89,86,84,81,79,76,74,71,69,67,65,62,60,58,56,53,51,49,47,45,43,41,39,37,36,34,32,30,29,27,26,24,23,21,20,18,17,16,15,13,12,11,10,9,9,8,7,6,5,5,4,4,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,4,4,5,5,6,7,8,7,9,10,11,12,13,15,16,17,18,20,21,23,24,26,27,29,30,32,34,36,37,39,41,43,45,47,49,51,53,56,58,60,62,65,67,69,71,74,76,79,81,84,86,89,91,94,96,99,101,104,106,109,112,114,117,120,122,125,128,130,133,135,138,141,143,146,149,151,154,156,159,161,164,166,169,171,174,176,179,181,184,186,188,191,193,195,197,199,202,204,206,208,210,212,214,216,218,219,221,223,225,226,228,229,231,232,234,235,237,238,239,240,242,243,244,245,246,246,247,248,249,250,250,251,251,252,252,253,253,253,253,253,253,254,253,253,253,253,253,253,252,252,251,251,250,250,249,248,247,246,246,245,244,243,242,240,239,238,237,235,234,232,231,229,228,226,225,223,221,219,218,216,214,212,210,208,206,204,202,199,197,195,193,191,188,186,184,181,179,176,174,171,169,166,164,161,159,156,154,151,149,146,143,141,138,135,133,130,128
	}, //126
	{128,125,122,120,117,114,112,109,106,104,101,98,96,93,91,88,86,83,81,78,76,73,71,69,66,64,62,59,57,55,53,51,49,47,45,43,41,39,37,35,33,31,30,28,26,25,23,22,20,19,18,16,15,14,13,11,10,9,8,8,7,6,5,4,4,3,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,3,3,4,4,5,6,7,6,8,9,10,11,13,14,15,16,18,19,20,22,23,25,26,28,30,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,62,64,66,69,71,73,76,78,81,83,86,88,91,93,96,98,101,104,106,109,112,114,117,120,122,125,128,130,133,135,138,141,143,146,149,151,154,157,159,162,164,167,169,172,174,177,179,182,184,186,189,191,193,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,225,227,229,230,232,233,235,236,237,239,240,241,242,244,245,246,247,247,248,249,250,251,251,252,252,253,253,253,254,254,254,254,254,255,254,254,254,254,254,253,253,253,252,252,251,251,250,249,248,247,247,246,245,244,242,241,240,239,237,236,235,233,232,230,229,227,225,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,193,191,189,186,184,182,179,177,174,172,169,167,164,162,159,157,154,151,149,146,143,141,138,135,133,130,128
	}, //127
	{128,125,122,119,117,114,112,109,106,104,101,98,96,93,91,88,86,83,81,78,76,73,71,68,66,64,61,59,57,55,53,50,48,46,44,42,40,38,36,35,33,31,29,28,26,24,23,21,20,18,17,16,15,13,12,11,10,9,8,7,6,5,5,4,3,3,2,2,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,2,3,3,4,5,5,6,5,8,9,10,11,12,13,15,16,17,18,20,21,23,24,26,28,29,31,33,35,36,38,40,42,44,46,48,50,53,55,57,59,61,64,66,68,71,73,76,78,81,83,86,88,91,93,96,98,101,104,106,109,112,114,117,119,122,125,128,130,133,136,138,141,143,146,149,151,154,157,159,162,164,167,169,172,174,177,179,182,184,187,189,191,194,196,198,200,202,205,207,209,211,213,215,217,219,220,222,224,226,227,229,231,232,234,235,237,238,239,240,242,243,244,245,246,247,248,249,250,250,251,252,252,253,253,254,254,254,255,255,255,255,255,255,255,255,255,254,254,254,253,253,252,252,251,250,250,249,248,247,246,245,244,243,242,240,239,238,237,235,234,232,231,229,227,226,224,222,220,219,217,215,213,211,209,207,205,202,200,198,196,194,191,189,187,184,182,179,177,174,172,169,167,164,162,159,157,154,151,149,146,143,141,138,136,133,130,128
	}, //128
};

/*****************************************
端口功能设定
*****************************************/

sbit LED2			=	P0^2;       //LED指示模块2工作

uchar PWM_temp_A=254;
uchar PWM_temp_B=254;
						//输出电压

bit lock=1;           		//PWM输出锁定
bit ADC_ready=0;           	//ADC完毕
bit K;
void delay();
void Key_1_();
void Key_2_();
void Key_3_();

/**********************************************************
函数说明: 延时程序
**********************************************************/
void delay(uchar t)
{
	uint j;
	uchar i;
	for(i=0;i<t;i++)
		for(j=0;j<1000;j++);
}
/**********************************************************
函数说明: PWM初始化
**********************************************************/
void init_pwm()
{
		ACC = P_SW1;
		ACC &= ~(CCP_S0 | CCP_S1);      //CCP_S0=1 CCP_S1=0
		ACC |= CCP_S0;                  //(P3.4/ECI_2, P3.5/CCP0_2, P3.6/CCP1_2, P3.7/CCP2_2)
		P_SW1 = ACC;  

    CCON = 0;                       //初始化PCA控制寄存器//PCA定时器停止//清除CF标志//清除模块中断标志
    CL = 0;                         //复位PCA寄存器
    CH = 0;
		CMOD=0x08;											//计数器0的溢出为PCA计数器的时钟源,允许pca中断使能.
    PCA_PWM0 = 0x00;                //PCA模块0工作于8位PWM
    CCAP0H = CCAP0L = 128;         //PWM0占空比初始化,((255-CCAP0L)/255)
    CCAPM0 = 0x42;                  //PCA模块0为8位PWM模式
    PCA_PWM1 = 0x00;                //PCA模块1工作于8位PWM
    CCAP1H = CCAP1L = 128;         //PWM1占空比初始化,((255-CCAP1L)/255)
    CCAPM1 = 0x42;                  //PCA模块1为8位PWM模式
    PCA_PWM2 = 0x00;                //PCA模块2工作于8位PWM
    CCAP2H = CCAP2L = 128;         //PWM2占空比初始化,((255-CCAP2L)/255)
    CCAPM2 = 0x42;                  //PCA模块2为8位PWM模式

    CR = 1;                         //PCA定时器开始工作
}

void key_scan()
{
	if(P00==0)
	{
		delay(100);
		if(P00==0)	
		{
			Program_step++;
			if(Program_step>3)
				Program_step=0;
			delay(250);		
		}
	}
}
/******************* 转换ADC值 ****************/
uint GetADC(uchar ch)
{
	uint result=0;
	ADC_CONTR=0x88|ch;	  		  		//选择通道	开始AD转换e8 ADC最快,88,ADC最慢
	_nop_();  _nop_();  
	_nop_();  _nop_(); 
	while(!(ADC_CONTR&ADC_FLAG)); 	//查询ADC_FLOG是否置位1  转换结束
  ADC_CONTR&=!ADC_FLAG; 		  		//Clear ADC interrupt flag
	result=(ADC_RES<<2)+ADC_RESL;;	//(ADC_RES<<2)+ADC_RESL
	return(result);
}
/******************* ADC平均滤波 ****************/
#define N 50
uint filter(uchar ch)
{
	uint sum=0;
	uchar count;
	for(count=0;count<N;count++)
	{
		sum+=GetADC(ch);
	}
	return(sum);
}
/******************* ADC初始化 ****************/
void InitADC(void) 
{
	uchar a;
	P1M1=0x07;					//1^012开启高阻态
	P1M0=0x00;					//其余端口当普通端口使用
	P1ASF=0X01;					//P^1 DC_V
	ADC_RES=0;
	ADC_CONTR=0X80;	   	//1000 0000	  开电源,最低速
	delay(50);
	for(a=0;a<5;a++)
	{
		filter(0);	
	}
}
/**********************************************************
函数说明: 主函数
sbit SD_A		  =	P3^2;       //A相位的使能端口
sbit SD_B		  =	P3^3;       //B相位的使能端口
sbit SD_C		  =	P3^4;       //C相位的使能端口
sbit SD_2A		=	P2^3;       //模块2的A相位的使能端口
sbit SD_2B		=	P2^5;       //模块2的B相位的使能端口
sbit SD_2C		=	P2^7;       //模块2的C相位的使能端口
**********************************************************/
void main(void)
{
	SD_A 	= SD_B 	= SD_C 	= 0;
	SD_2A	=	SD_2B	=	SD_2C	=	0;
	P3M0=0xFC;
	P3M1=0x00;
	P2M0=0x01;//设置端口强推挽,P20口驱动继电器,有下拉电阻,需要IO设置强推挽模式。
	P2M1=0x00;	
	InitADC();				//ADC初始化
	init_pwm();
	InitTimer0();
	EA=1;//开总中断
	while(1)//主循环
	{		
		switch(Program_step)
		{
			case 0:		
							SD_A 	= SD_B 	= SD_C 	= 0;	//模块1的2104使能关闭
							SD_2A	=	SD_2B	=	SD_2C	=	0;	//模块2的2104使能关闭
							LED1=LED2=0; 								//LED1灭,指示模块1关闭
																					//LED2灭,指示模块2关闭
							JDQ=0;											//继电器关闭,并网关闭
							break;
			case 1:
							SD_A 	= SD_B 	= SD_C 	= 1;	//模块1的2104使能打开,模块1工作
							SD_2A	=	SD_2B	=	SD_2C	=	0;	//模块1的2104使能关闭
							LED1=1; 										//LED1亮,指示模块1打开
							LED2=0; 										//LED2灭,指示模块2关闭
							break;	
			case 2:
							SD_A 	= SD_B 	= SD_C 	= 0;	//模块1的2104使能关闭
							SD_2A	=	SD_2B	=	SD_2C	=	0;	//模块2的2104使能关闭
							LED1=LED2=0; 								//LED1灭,指示模块1关闭
																					//LED2灭,指示模块2关闭
							break;
			case 3:
							SD_A 	= SD_B 	= SD_C 	= 1;	//模块1的2104使能打开,模块1工作
							SD_2A	=	SD_2B	=	SD_2C	=	1;	//模块2的2104使能打开,模块2工作
							LED1=LED2=1; 								//LED1亮,指示模块1打开
																					//LED2亮,指示模块2打开	
							JDQ=1;											//继电器打开,开始并网。
							break;				
			default:	break;	
		}
		Vout=filter(1)/20;
		if(Vout<495)		//输出电压小于24V
		{
			if(block==11) 
				block=11;
			else
				block++;
		}
		else						//输出电压大于24V
		{
			if(block==0) 
				block=0;
			else
				block--;	
		}
		key_scan();
	}
}
/**********************************************************
函数说明: 定时器0中断
**********************************************************/
void Timer0Interrupt(void) interrupt 1
{
    TH0 = 0xFF;					//重装定时器初始值高8位  66.66us
    TL0 = 0xBF;					//重装定时器初始值低8位
		index_1++;						//A相位查表数值
		index_2++;						//B相位查表数值
		index_3++;					//C相位查表数值
    CCAP0H = CCAP0L =	pwm[block][index_1];	
    CCAP1H = CCAP1L = pwm[block][index_2];	
    CCAP2H = CCAP2L = pwm[block][index_3];		
		if(index_1>299)  index_1=0;
		if(index_2>299)  index_2=0;
		if(index_3>299)  index_3=0;
}
2019/11/02 23:16:31
43
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长
  主程序里面是状态位,4个状态。
状态1:模块1关,模块2关
状态2:模块1开,模块2关
状态3:模块1关,模块2关
状态4:模块1开,模块2开
调回状态1
2019/10/31 09:34:13
42
Elec_1234_oop
电源币:0 | 积分:3 主题帖:0 | 回复帖:2
LV1
士兵
顶楼主,对电路方面很感兴趣,求发资料,非常感谢。330146246@qq.com
2019/11/02 23:19:58
44
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

在定时器中断程序中,通过查表的方式,得到一个单极性SPWM波形。

具体而言,是设定好50HZ输出正弦波输出频率,一个正弦波分辨率为300,这300个数据对应的是一个正弦波中的SPWM的占空比。那么每个占空比保持的时间是(1/50/300)66.666us。

那么定时器我们设置为每66.666us进入一次中断,每进来一次就将此时对应的数组里面的数据赋给硬件PWM,给半桥输入SPWM控制信号,当次数超过299次后,数组又回到最开始,三个半桥都如此执行(只是起始数不一样,也就是0,100,200.)。这样循环往复,就得到一个3个完整,相移120°的SPWM波形。经过LC滤波器后,就得到3个完美的正弦波。

 

关键程序:

/**********************************************************

函数说明:定时器0中断

**********************************************************/

void Timer0Interrupt(void) interrupt 1

{

    TH0 = 0xFF; //重装定时器初始值高8位

    TL0 = 0xBF; //重装定时器初始值低8位

index_1++; //A相位查表数值

index_2++; //B相位查表数值

index_3++; //C相位查表数值

    CCAP0H = CCAP0L = pwm[index_1];

    CCAP1H = CCAP1L = pwm[index_2];

    CCAP2H = CCAP2L = pwm[index_3];

if(index_1>299)  index_1=0;

if(index_2>299)  index_2=0;

if(index_3>299)  index_3=0;

}

2019/11/18 22:26:45
45
twh888
电源币:0 | 积分:0 主题帖:14 | 回复帖:48
LV4
连长
关注此贴很久了  也很想跟着老师做一个这样的三相电源玩下  能发份次料给我吗 (568931108@qq.com) 也期待你的再次讲解
2019/11/23 23:42:55
46
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长
没问题
2019/11/27 00:28:57
47
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

参加比赛的确需要很大的付出。四天三夜,在我们的眼中有的只是努力,拼搏,不服输。在比赛中,我主要负责的是电路的硬件部分设计和协助另一名队员完成软件程序的设计。2015年9月12日上午8:00,赛题在网站上发出,经过短暂的讨论,我们选择了三相逆变。

在比赛过程中让我印象比较深刻队员的是熊,他为了完成最小系统板的制作和软件调试部分连续3个晚上都没怎么睡觉,尤其是最后一个晚上连续通宵到凌晨6点半才微微休息了2个小时,在这点我很佩服他。

在比赛过程中,我应为仿真软件经常卡断和电脑卡机的原因,显得有点急躁和不安,还是另外一名队员蔡及时安慰和帮助了我,我才微微安下心来再度投入到作品的制作中去,最后我们相互配合,我在网上查阅资料确定好所选芯片然后

设计出电路方案后由他负责在Proteus中仿真,然后我负责动手焊接调试。

尽管中途困难重重,但我们还是把作品实现了三相逆变的输出。

虽然说最后测频的时候出了点意外,导致比赛中途夭折,很遗憾,但是我们真的努力了、和拼了,所以我们不后悔。虽然比赛已经完全过去了,但我们仍然将这个作品完善,争取把题目所有的要求全部做出来。这一刻我们不为荣誉,只为青春和梦想而拼!

2019/11/27 23:42:08
48
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

补发一下最终电路原理图

控制电路

主回路

测控回路

2019/11/28 23:33:53
49
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

下面简单讲述一下关于我对逆变电路的调试步骤吧

调试方法及其步骤如下:

1.按照PCB做好板子。一个主板一个副板,一个一个来。

2.过孔在哪里什么的这些问题看PCB图。最后用万用表测试下所有地线有没有连通,电源线有没有联通。

3.用下载器供电,给板子下载程序,然后继续5V供电,按下按键,上示波器,示波器地接7805的散热片(地),测试主板的3个2104的2,3端口,分别有没有SPWM波形和高电平。如果没有就检查之间连接线。

4.如果上个步骤正常,那么接下来断开给MOS主回路供电电压(排除因为驱动电路原因造成MOS烧坏),给12V的电源到7812的输出端给主板供电,用示波器测试2104的输出端波形,5,7应该有峰值12V的SPWM波形,如果没有检查2104的电路然后2104的IC质量,用替换法去测试。

5.如果上述步骤都正确,那么接下来把4断开的地方,用焊锡补回去,刚才的12V供电也去掉。25V给板子输入端供电,最好搞个限流1A。然后按按键,直接看3个输出端波形是不是正弦波,如果不是返回去看电感前面的SPWM波形,然后再不行再返回去看SPWM的波形。

6.再最后以上都正确的话,断开电源,电源调到41V,限流还是1A,给板子供电,按按键,测试输出端的正弦波,正确的话,断开41V,板子接Y型负载6欧,电源41V限流到3A去,然后接41V给板子供电,按按键,看是否输出波形,如果波形畸变,检查地线是否够粗,检查示波器是否限了带宽,检查MOS的器件是否完好等。

2019/11/29 23:48:05
50
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

LC滤波电路计算

2019/11/29 23:49:52
51
GJGJ
电源币:68 | 积分:8 主题帖:3 | 回复帖:27
LV4
连长
顶顶顶
2019/11/30 23:47:12
52
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长

电赛已经过去一短时间了,现在回想起来,感觉有挺多想法的!对于刚接触到电赛的我,我一点经验也没有,因此在暑期准备期间大多是在李文桐学长布置的任务下进行学习和思考。现在想想,有李文桐我的学习还是挺快的!

有的人会感觉这是老生常谈,可是我要说的是每个组员在软件、硬件、文档中至少擅长一样。再就是赛前两个月的准备,那当然是相当重要的,因为这段时间是各组准备模块和组员之间进行磨合的时期。模块准备得好,大多数情况下电赛期间就能用到,那是最好不过了;而且组员之间的磨合也是相当重要,因为电赛的时间太紧,没时间去顾及细节,磨合会是组员知道自己在该组中扮演什么角色最好,这可以为电赛的顺利进行打下坚实基础!再就是,要有一个好的身体。因为四天三夜是不容易度过的,要做好熬夜的准备!时间太紧,几乎没时间睡觉!最后,就是比赛了!首先肯定是选题了,这是很重要的,因为选题最好是自己所熟悉的方面,我想我们这次电赛没做好的主要原因是选错了题目,使我们平时准备的模块电赛都没用到却它们都给了别的组用了;再就是调试,比赛期间电路板是很好做的,但是调试才是关键!调试可能会花费你几天时间还有可能用几天时间都调试不出来,这时就需要你的耐心和平时的准备了!总的来说,电赛真的挺苦的,平时一定要做好心理准备!

2019/12/05 23:51:26
53
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:52
LV5
营长
实验室 PFC 测试结果和波形
以下图表显示了包括电感电流、直流母线电压、输入电
流的各实验波形,以及 PF 改善和电流谐波减少的测试
结果。除提供使用和未使用 PFC 系统的性能比较之外,

这些信息还有助于验证 PFC 实现的有效性。

客服热线
服务时间:周一至周五9:00-18:00
微信关注
免费技术研讨会
获取一手干货分享

互联网违法不良信息举报

Reporting Internet Illegal and Bad Information
editor@netbroad.com
400-003-2006