三相电压型SPWM逆变器设计.docx
- 文档编号:23409534
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:22
- 大小:286.47KB
三相电压型SPWM逆变器设计.docx
《三相电压型SPWM逆变器设计.docx》由会员分享,可在线阅读,更多相关《三相电压型SPWM逆变器设计.docx(22页珍藏版)》请在冰豆网上搜索。
三相电压型SPWM逆变器设计
三相电压型SPWM逆变器设计
摘要:
本次设计采用EasyARM1138开发板,设计了一个基于新型32位微控制器LM3S1138的可调频率中频逆变电源,即克服了传统模拟逆变器电路复杂、灵活性差、系统不稳定等缺点,又兼具普通单片机控制系统的低成本和DSP控制系统的高性能等优点,有效解决了特种电源设计中存在的成本和性能矛盾问题,同时也可应用于对电源频率有不同要求的场合。
本设计进行了硬件电路的模块划分、微控制器引脚资源的分配、具体单元电路的设计等。
硬件电路由五大模块即控制器模块、功率器件驱动模块、逆变模块、保护模块和显示模块构成,其中控制器模块由EasyARM1138开发板构成,完成SPWM脉宽调制信号产生、LCD显示信号的输出及A/D转换等工作;驱动模块由两片IR2110及外围电路组成,完成SPWM信号的隔离放大并驱动功率开关管;逆变模块由四片绝缘栅双极晶体管组成的全桥电路和LC低通滤波器构成,在SPWM信号的控制下完成外部直流电压向纯正弦波电压的转换;保护模块由LM393及外围电路构成,实现正弦波输出信号的过压和过流保护;显示模块由LCD12864及辅助电路组成,实现相关数据的显示输出。
关键词:
LM3S1138SPWM逆变器matlab
1设计内容
1.1设计目的及意义
(1)训练学生正确地应用运动控制系统,培养解决工业控制、工业检测等领域具体问题的能力;
(2)通过课程设计,熟悉运动控制系统应用系统开发、研制的过程,软、硬件设计的工作方法、工作内容、工作步骤;
(3)对学生进行基本技能训练,例如组成系统、编程、调试、绘图等,使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。
1.2设计步骤
(1)设计方案的选择及论证;
(2)设计电路的整体框架;
(3)系统软件及硬件的设计;
(4)对系统进行仿真并分析;
1.3内容要求
(1)画出控制电路和主电路原理图;
(2)画出程序流程图;
(3)写课程设计论文,附有原理图、流程图、程序清单,内容要正确,概念要清楚,文字要通顺。
2设计方案
2.1方案选择
本设计选用EsayARM1138开发板,以LM3S1138为控制核心,辅以扩展的键盘及显示电路和SPWM逆变电路组成完整的系统。
根据采样控制理论,由LM3S1138输出一系列周期性变化的等幅不等宽脉冲,控制IGBT功率开关管的导通和截止,使逆变器输出端获得一系列宽度不等的矩形脉冲波。
输出的信号经低通滤波器滤波后,即可得到所需要的正弦波。
改变调制脉冲的宽度可以控制输出电压的幅值,改变调制周期可以控制输出电压的频率,从而达到使逆变器的输出电压和幅值同时可调的目的。
2.2方案论证
在逆变器电路的设计中,控制方法是核心技术。
早期的控制方法使得输出为矩形波,谐波含量较高,滤波困难,而SPWM技术较好地克服了这些缺点。
本设计室基于单片机来实现SPWM,此方法控制电路简单可靠,利用软件产生SPWM波,减轻了对硬件的要求,且成本低,受外界干扰小。
2.3设计重点难点
完成本方案设计的重点和难点有以下几点:
①LM3S1138的GPIO口分配和驱动函数的调用
②LCD显示模块的驱动和相关数据的显示
③不同幅值、不同频率信号的正弦脉宽数据表的设计
3系统的硬件设计
3.1整体方案设计
本系统由电源模块、控制模块、逆变模块、键盘和显示模块、输出及保护电路等5大部分组成,设计系统的总体结构框图如图3.1所示。
图3.1系统总体结构框图
电源模块:
根据实验室现有的条件,本系统的电源由两台稳压电源提供3路直流电压。
控制模块:
由EasyARM1138开发板构成,运行系统程序并通过扩展GPIO口控制自主设计的各子模块工作。
逆变模块:
由2片驱动芯片IR2110、4只IGBT管FGA25N120AN和LC低通滤波器及外围辅助电路构成,完成DC/AC的逆变、电压变换并得到需要的正弦波电压输出。
键盘和显示模块:
由3个按键开关和1个可显示4行、16列字符的LCD显示器12864构成。
输出和保护电路模块:
由1个2A保险丝、4个并在IGBT管集射极两端的反向偏置二极管和LM393及辅助电路组成的比较电路构成。
完成系统的过流、过压及IGBT管的瞬间过流保护工作。
3.2主电路
图3.2是SPWM逆变器的主电路,图中Vl—V6是逆变器的六个功率开关器件,各由一个续流二极管反并联,整个逆变器由恒值直流电压U供电。
一组三相对称的正弦参考电压信号
由参考信号发生器提供,其频率决定逆变器输出的基波频率,应在所要求的输出频率范围内可调。
参考信号的幅值也可在一定范围内变化,决定输出电压的大小。
三角载波信号Uc是共用的,分别与每相参考电压比较后,给出“正”或“零”的饱和输出,产生SPWM脉冲序列波Uda,Udb,Udc作为逆变器功率开关器件的驱动控制信号。
3.2电源电路
当Uru Ud和Uwn’的PWM波形只有±Ud/2两种电平。 当Uru>Uc时,给V1导通信号,给V4关断信号,Uun’=-Ud/2。 Uuv的波形可由Uun’-Uvn’得出,当1和6通时,Uuv=Ud,当3和4通时,Uuv=-Ud,当1和3或4和6通时,Uuv=0。 输出线电压PWM波由±Ud和0三种电平构成负载相电压PWM波由(±2/3)Ud,(±1/3)Ud和0共5种电平组成。 防直通的死区时间同一相上下两臂的驱动信号互补,为防止上下臂直通而造成短路,留一小段上下臂都施加关断信号的死区时间。 死区时间的长短主要由开关器件的关断时间决定。 死区时间会给输出的PWM波带来影响,使其稍稍偏离正弦波。 3.3抗干扰电路 本设计采用了光电隔离器,光电隔离器可以很简单将主回路的强电和控制回路的弱电相隔离,使主回路和控制回路更好的结合。 光电隔离器的电路示意图如图3.3所示。 3.4驱动电路 由于LM3S1138产生的SPWM信号不能直接驱动IGBT,故逆变桥的驱动采用专用芯片IR2110。 IR2110是一种双通道、栅极驱动、高压高速、单片式集成功率驱动模块,具有体积小(DIP14)、集成度高(可驱动同一桥臂两路)、响应快(典型ton/toff=120/94ns)、偏置电压高(<600V)、驱动能力强等特点,同时还具有外部保护封锁端口[12]。 IR2110采用CMOS工艺制作,逻辑电源电压范围为5V~20V,适应TTL或CMOS逻辑信号输入,具有独立的高端和低端2个输出通道。 由于逻辑信号均通过电平耦合电路连接到各自的通道上,容许逻辑电路参考地(VSS)与功率电路参考地(COM)之间有-5V~+5V的偏移量,并且能屏蔽小于50ns的脉冲,这些特点使得IR2110具有较理想的抗噪声效果。 采用CMOS施密特触发输入,可以进一步提高电路抗干扰能力[13]。 IR2110自身的保护功能非常完善: 对于低压侧通道,利用2片IR2110驱动全桥逆变电路的电路图如图3.4所示 图3.4全桥驱动电路 为改善PWM控制脉冲的前后沿陡度并防止振荡,减小IGBT集电极的电压尖脉冲,一般应在栅极串联十几欧到几百欧的限流电阻。 IR2110的最大不足是不能产生负偏压,由于密勒效应的作用,在开通与关断时,集电极与栅极间电容上的充放电电流很容易在栅极上产生干扰。 针对这一点,本文在驱动电路中的功率管栅极限流电阻R1、R2上反向并联了二极管D4、D5。 3.5逆变电路 逆变电路的作用是将直流电压转换成梯形脉冲波,经低通滤波器滤波后,从而使负载上得到的实际电压为正弦波,逆变电路是由4个IGBT管(VT1、VT2、VT3、VT4)组成的全桥式逆变电路组成,如图3.5所示。 图3.5逆变电路 4软件设计 软件设计是逆变控制电路设计的重要组成部分,它决定了逆变器输出的特性,如电压调节范围及稳定程度,理想的正弦波输出电压、保护功能的完善、可靠性等等。 逆变器程序主要分为SPWM脉宽调制部分,LCD12864显示部分,ADC转换部分,看门狗程序部分。 4.1 编程思路 本设计将一个周期T的信号分成720个点(按X轴等分),两点间的时间间隔由EasyRAM1138通过定时器中断产生。 因此,首先需建立正弦脉宽数据表,由EasyARM1138初始化时算好,将其按一定的格式(即考虑相序及同一相中的脉宽次序等)存入片内的FLASH中,建立好数据指针,以便按一定的寻址方式查询。 SPWM实际上就是用一组经过调制的幅值相等、宽度不等的脉冲信号代替调制信号,用开关量代替模拟量。 调制后的信号中除了含有调制信号外,还含有频率很高的载波频率及载波倍频附近的频率分量,但几乎不含其他谐波,特别是接近基波的低次谐波。 因此载波频率也即SPWM的开关频率越高,谐波含量越少。 这从SPWM的原理可以直观地看出。 当载波频率高时,半周期内开关次数越多,把期望的正弦波分段也越多,SPWM的基波就越接近期望的正弦波[14]。 但是,SPWM的载波频率除了受功率器件的允许开关频率制约外,SPWM的开关频率也不宜过高,这是因为开关器件工作频率提高,开关损耗和换流损耗会随之增加。 另外,开关瞬间电压或电流的急剧变化形成很大的du/dt或di/dt,会产生强的电磁干扰;高du/dt、di/dt还会在线路和器件的分布电容和电感上引起冲击电流和尖峰电压;这些也会因频率提高而变得严重。 综上所述,SPWM的开关频率的选择应综合考虑各个方面的因素,本设计实际采用的SPWM开关频率,也即IGBT的开关频率为18MHz,这是一个折中的选择。 设置EasyARM的频率为6MHz,分频后为20MHz。 0-180度由定时器TIMER0的TIMA(对应的为CPP1)输出0有效,180-360由TIMER1的TIMB(对应的为CPP3)输出0有效,两脚轮流输出脉宽调制的正弦半波。 图4.1正弦波脉冲宽度调制波形示意图 关于载波频率和调制波频率的计算: EasyARM的时钟频率20MHz,一个机器周期为0.5us,载波频率为8KHz~90KHz之间,将一个输出周期T的信号分成1440个点(按X轴等分),两点间的时间间隔由EasyARM的定时器通过计数中断实现,由于EasyARM的内部定时器有PWM的设置,通过在程序中设置定时器的计数值来控制频率,同过设置占空的的计数值来调整脉冲的占空比,这样就保证了输出方波的脉冲宽度按正弦规律变化。 逆变后的方波经滤波后可以得到纯正弦波脉冲,调制频率为14.4KHz~1440KHz,一个周期分为1440个调制脉宽,每个周期时间为: 1440*(1/14.4KHz~1/144KHz)=0.1s~0.01(s),使输出频率为10~100Hz。 表4-1正弦脉冲的度数与计数值之间的一个换算表(部分) 4.2流程图 首先对程序进行初始化,初始化之后程序就进入了中断,连续读取720个PWM的匹配值产生0-180度的SPWM。 之后关闭此定时器和中断,并打开TIMER0和它的定时中断,同样的连续读取720个PWM的匹配值产生180-360度的SPWM。 主程序中,在while (1)中不断的扫描按键。 通过判断是KEY1还是KEY2按下来提高和降低频率。 正弦波频率的改变范围是10~100Hz。 SPWM调制程序流程图如图4.3所示: 图4.3SPWM调制程序流程图 5仿真 SPWM控制方式下的三相逆变电路主电路如图5.1所示: 图5.1三相逆变电路主电路 设置参数,即将调制度m设置为0.9,调制波频率设为50Hz,载波频率设为基波的30倍(载波比N=30),即1500Hz,仿真时间设为0.04s,在powergui中设置为离散仿真模式,采样时间设为1e-006s,运行仿真图形,然后建立m文件,程序如下所示: subplot(3,1,1); plot(inv.time,inv.signals (1).values); title(Uab'线电压波形'); subplot(3,1,2); plot(inv.time,inv.signals (2).values); title('A相输出电压Ua波形'); subplot(3,1,3); plot(inv.time,inv.signals(3).values); axis([00.04-300300]); title('A相输出电流波形'); 运行此文件后,可得输出交流电压,交流电流和直流电流如图5.2所示: 图5.2SPWM方式下的三相逆变电路输出波形 分析上图可知,输出线电压PWM波由±Ud和0三种电平构成负载相电压PWM波由(±2/3)Ud、(±1/3)Ud和0共5种电平组成。 利用MATLAB提供的powergui模块,对上图中的输出相电压 和输出电流 进行FFT分析,得图5.3、图5.4所示结果: 图5.3SPWM控制方式三相逆变电路输出相电压 的FFT分析 图5.4SPWM控制方式三相逆变电路输出电流 的FFT分析 由图5.3可知: 在 =300V,m=0.9, =1500Hz, =50Hz,即N=30时,输出相电压的基波电压的基波幅值为 =134.7V,谐波分布中最高的为28和32次谐波,考虑最高频率为4500Hz时的THD达到79.74%。 由图5.4可知: 考虑最高频率为4500Hz时的THD=5.15%,输出电流近似为正弦波。 6心得体会 两个周的运动控制课程设计—三相电压型SPWM逆变器设计就要结束了,虽然课程设计的时间比较短,但我却收获了很多值得总结和值得我铭记于心的知识和认识。 开始课程设计的时候,由于我们学的都是一些嵌入式方面的理论知识,牵涉到实际的我们几乎一无所知,所以我们组的成员都不知道该怎么入手,我们通过请教老师,以及上网查询等通道,终于顺利的完成数据采样系统的各方面设计。 这样一个过程使我的理论知识得到了试验和应用,使我的理论知识得到了进一步的提高。 总之,这次课程设计不但让我学到了很多的东西,提高和巩固了单片机、matlab等方面的知识,同时也增强了我的动手能力,这些并不是在课堂上可以学到的,而且这也是难得的一次同学间长时间交流沟通的机会,在课程实际过程中发生许多欢乐的令人难忘的事,这无疑为以后的我留下了一个美好的回忆。 在完成运动控制课程设计后,我发现我还有许多不足,所学到的知识还远远不够,单片机的应用是如此的广泛,在以后的时间里我将继续对单片机方面的知识的学习。 最后,感谢老师在课程设计中给予的帮助,以及组员们的合作! 7参考文献 [1]刘凤君.正弦波逆变器[M].北京: 科学出版社,2002. [2]李爱文,张承慧.现代逆变技术及其应用[M].北京: 科学出版社,2000. [3]谢力华,苏彦民.正弦波逆变电源的数字控制技术.电力电子技术[J],2001[4]孟元东,娄承芝.基于dsPIC30F1010高频正弦波逆变器的研究,电力电子技术[J],2007 [5]罗泠,周永鹏等.DSP控制400Hz中频在线式不间断电源的研究,电力电子技术[J], [6]苏玉刚等.电力电子技术[M].重庆: 重庆大学出版社,2003. [7]张燕宾.SPWM变频调速应用技术.北京: 机械工业出版社,2005. [8]廖东初,聂汉平.电力电子技术.湖北: 华中科技大学出版社,2007 [9]王兆安,黄俊.电力电子技术.北京: 机械工业出版社,2005 [10]阮毅,陈维均.运动控制技术北京: 清华大学出版社,2006 附录 1程序清单 #include"Fre.H" #include"select.h" #include #include #include #include #include #include #include #include #include"watchdog.h" #include"hw_watchdog.h" #include"LED.H" #defineSysCtlPeriEnableSysCtlPeripheralEnable//外围设备的使能 #defineSysCtlPeriDisableSysCtlPeripheralDisable//外围设备的不使能#defineGPIOPinTypeInGPIOPinTypeGPIOInput//标准输入输出的针类型 #defineGPIOPinTypeOutGPIOPinTypeGPIOOutput #defineGPIOPinTypeODGPIOPinTypeGPIOOutputOD #defineWdogStallEnableWatchdogStallEnable #defineWdogReloadSetWatchdogReloadSet #defineWdogIntEnableWatchdogIntEnable #defineWdogIntClearWatchdogIntClear #defineucharunsignedchar unsignedlongTheSysClock=12000000UL; voidADC_Init() { SysCtlPeriEnable(SYSCTL_PERIPH_ADC);//使能ADC模块 SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS);//设置ADC采样率 ADCSequenceDisable(ADC_BASE,0);//禁止采样序列 ADCSequenceConfigure(ADC_BASE,//采样序列配置0,//采样序列编号 ADC_TRIGGER_PROCESSOR,//由处理器触发 0);//设置优先级 ADCSequenceStepConfigure(ADC_BASE,//采样步进设置 0,//采样序列编号 0,//设置步进 ADC_CTL_END|ADC_CTL_CH0);//通道设置从ADC0口读入数据 ADCSequenceEnable(ADC_BASE,0);//使能采样序列 } voidwdogInit(void) { SysCtlPeriEnable(SYSCTL_PERIPH_WDOG);//使能看门狗模块WdogStallEnable(WATCHDOG_BASE);//使能调试器暂停看门狗计数WdogReloadSet(WATCHDOG_BASE,3000000UL);//设置看门狗值WdogIntEnable(WATCHDOG_BASE);//使能看门狗中断IntEnable(INT_WATCHDOG);//使能看门狗模块中断IntMasterEnable();//使能处理器中断 } voidWatchdog_Timer_ISR(void) { WdogIntClear(WATCHDOG_BASE);//清除看门狗中断状态LED_Toggle(LED1);//反转LED } voidSystemInit(void) { SysCtlLDOSet(SYSCTL_LDO_2_75V);//配置PLL前须将LDO电压设置为2.75VAD转换必须的电压设置 SysCtlClockSet(SYSCTL_USE_PLL|//系统时钟设置,采用PLL SYSCTL_OSC_MAIN|//主振荡器 SYSCTL_XTAL_6MHZ|//外接6MHz晶振 SYSCTL_SYSDIV_10);//分频结果为20MHz TheSysClock=SysCtlClockGet();//获取系统时钟,单位: Hz GPIOD_Init();//通用输入输出端口D的初始化 GPIOG_Init();//通用输入输出端口G的初始化 FreInit(); ADC_Init();//数模转换模块的初始化 LED_Init(LED1);//初始化LED1灯 Lcminit();//液晶显示初始化 GPIOPinIntEnable(GPIO_PORTD_BASE,GPIO_PIN_1);//使能GPIOD的1号管脚中断 GPIOPinIntEnable(GPIO_PORTG_BASE,GPIO_PIN_5);//使能GPIOG的5号管脚中断 GPIOIntTypeSet(GPIO_PORTD_BASE,GPIO_PIN_1,GPIO_LOW_LEVEL);//GPIOD的1号管脚下降沿时产生中断信号 GPIOIntTypeSet(GPIO_PORTG_BASE,GPIO_PIN_5,GPIO_LOW_LEVEL);//GPIOG的5号管脚下降沿时产生中断信号 IntEnable(INT_GPIOD);//开GPIOD中断 IntEnable(INT_GPIOG);//开GPIOG中断 wdogInit();//看门狗初始化 IntMasterEnable();//开处理器中断 } intmain(void) { SystemInit();//系统初始化 select(); unsignedlongulVal=0x00;//用来保存转换后的数字量 ucharVal; while (1) { ADCProcessorTrigger(ADC_BASE,0);//触发样本序列 while(HWREG(ADC_BASE+ADC_O_X_SSFSTAT)&0x00000100);//等待样本序列采集完成 ADCSequenceDataGet(ADC_BASE,0,&ulVal);//获取采集的结果ulVal=((ulVal*3000)/1024)/1000;//将结果进行转换单位mVVal=(uchar)ulVal; vWrite8x16String("Thisisadis-",0,8,0);//写字符串 vWrite8x16String("playprogram.",2,8,0); vWrite8x16String("Thecurrentv-",4,8,0); //vWrite8x16String("oltageis: 4",6,8,0); if(ulVal<1&&ulVal>=0) { vWrite8x16String("ol
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三相 电压 SPWM 逆变器 设计