5KW家用并网光伏发电系统设计-毕业论文-毕业论文.docx
文档均为word文档,下载后可直接编辑使用亦可打印一摘要我国是发展中大国,工业发展与国民用电对能源的依赖性非常大,太阳能不仅清洁无污染而且是可无限再生的一种能源,对太阳能的利用推动了光伏发电产业的发展,小型的家用光伏发电能直接惠利于民在今年来受到广泛关注。本文设计了装机容量为5KW的光伏并网发电系统,足以满足一般家庭的生活用电。针对光伏发电产业的现状和前景进行了简单介绍,对光伏并网发电系统的各个模块进行了设计。包括光伏电池的原理与电池组件的设计、主电路设计、控制系统设计,主电路是由DC/DC变换部分和DC/AC变换部分组成,DC/DC包括电源电路、稳压电路,用于提升光伏电池的输出电压并使之稳定不变;DC/AC包括逆变电路及其驱动信号发生电路;控制系统包含主控芯片、控制电路,控制策略包含最大功率点跟踪算法、SPWm驱动信号产生等。该设计简单可靠,经济实惠,清洁无污染。关键词:光伏并网,最大功率点跟踪控制,单相全桥逆变电路5KWhomephotovoltaicgrid-connectedpowergenerationsystemdesignabstractChinaisalargedevelopingcountry.Industrialdevelopmentandnationalelectricityareverydependentonenergy.Solarenergyisacleanandrenewableenergysource.Theuseofsolarenergyhaspromotedthedevelopmentofthephotovoltaicpowergenerationindustry.SmalldomesticphotovoltaicpowergenerationcandirectlybenefitBeneficialtothepeoplethisyearhasreceivedwidespreadattention.Thisarticledesignedaphotovoltaicgrid-connectedpowergenerationsystemwithaninstalledcapacityof5KV½whichisenoughtomeetthedailyelectricityconsumptionofordinaryfamilies.Thecurrentsituationandprospectofthephotovoltaicpowergenerationindustryarebrieflyintroduced,andthemodulesofthephotovoltaicgrid-connectedpowergenerationsystemaredesigned.Includingtheprinciplesofphotovoltaiccellsandbatterymoduledesign,maincircuitdesign,andcontrolsystemdesign,themaincircuitiscomposedoftwoparts:DC/DCconversionandDC/ACconversion.DC/DCincludespowersupplycircuit,voltagestabilizationcircuit,DC/ACIncludingtheinvertercircuitanditsdrivingsignalgeneratingcircuit,thecontrolsystemincludesthemaincontrolchip,controlcircuit,maximumpowerpointtrackingalgorithm,spwmdrivingsignalgeneration,etc.Thedesignissimple,reliableandeconomical.Keywords:grid-connectedphotovoltaic;maximumpowerpointtrackingcontrol;single-phasefull-bridgeinvertercircuit1绪论1.1 课题研究背景随着社会发展,对能源的需求越来越大,化石能源在可预见的将来中会枯竭,因此研究新能源对人类社会的发展具有重要意义,太阳能是i种清洁而且可再生的新型能源,而光伏发电不仅能合理利用太阳能,也能带动相关产业的发展,对我国新能源战略具有重要意义。5kw家用并网光伏发电系统,装机容量小,占地面积少,能合理利用照射到住所的太阳能,一定程度上缓解电网压力并能补贴用电支出。设计这样一个小型的并网发电系统,需要准确计算太阳高度角、方位角、倾角,合理设计逆变电路,输出满足要求的稳定的电压。1.2 光伏发电的发展情况从19世纪末,科学家贝克勒尔发现了光伏效应,到1954年第一块光伏电池的出现,光伏发电才真正得到应用。光伏发电技术的发展是非常缓慢的,对太阳电池的实际应用起到决定性作用的是美国贝尔实验室三位科学家关于单晶硅太阳电池的研制成功,这在太阳能电池发展史上起到里程碑的作用。直至今日,太阳电池的基本结构和机理没有发生改变。在我国,1958年制造出第一篇单晶硅,而后人造卫星的研究推动了太阳电池的研发。直到九十年代才开始应用于光伏发电,二十一世纪以来,我国光伏发电得到飞速发展。迄今为止,我国的光伏发电技术处于世界前列,并且利用现有的建筑物屋顶安装的分布式光伏发电就达到了3亿多kw,目前由于电池组件制造工艺提升,使得光伏发电的成本不断下降,效率不断提升,发展前景一片明朗。我国的工业发展对能源的需求极大,环境污染和能源短缺已经直接威胁我国的可持续发展。并且,我国许多偏远贫困地区的人们还无法用上电。这些客观条件迫使我们更加努力的寻找和开发新能源,而太阳能光伏发电就是其中之一。1.3 光伏发电的优点与存在的问题太阳能是一种可再生的清洁能源,合理利用太阳能可使环境压力、温室效应得到改善。光伏发电系统结构简单易于维护、使用寿命长。我国的光伏发电产业发展迅速,用几年时间走完了其他国家十几年的路,虽然发展迅速,但也因此出现了产能过剩的问题,并且整个行业缺乏协调性。光伏器件和稀有金属成本很高,高精度硅的生产技术仍为西方国家所掌握,我国每年需进口大量高纯度硅。污染严重,虽然太阳能是清洁无污染的,但硅的生产过程却会产生H2、HCl等有害气体,中间过程转换效率低、能耗大。光伏发电受天气和地理位置影响较大,并且发电效率远低于火电、水电和核电等传统发电技术。1.4本文研究内容1.4.1 主电路设计光伏并网发电系统从并网形式上可分为有逆流和无逆流,有逆流的并网在光强充裕、电能过剩时可将多余的电能馈入电网,电能不足时可通过电网向负载供电。从电路结构上来看可分为单级式与双级式,较之单级式系统,双级式系统多出DC/DC变换电路,对光伏电池输出的直流电压进行控制,在光照强度较低时可用来升压变换。本系统采用有逆流的双级式电路,包含电源电路、稳压电路、逆变电路,同时还应有滤波电容和控制电路。电流从光伏电池流出,经过电源电路调节其电压达到最大功率点,又经稳压电路使之等效为直流电流源,再经逆变电路进行逆变、滤波,得到工频交流电并入电网。控制系统光伏电池(-Cl 电源电路稳压电路Spwm发生电路图Ll系统流程图1.4.2 控制系统设计电源电路、稳压电路和逆变电路的运行都需要需要脉冲驱动,系统输出稳定可靠的波形也需要精准的控制。包括控制芯片的选用、控制电路的设计以及控制程序的编写。控制系统应当包含最大功率点跟踪控制、并网控制、稳压控制。最大功率点跟踪控制使得光伏电池始终工作于当前环境的最大功率点;并网控制的目的是逆变电路输出的波形达到并网要求;稳压控制的目的是使得直流母线上的电压稳定于逆变电路所需的工作电压,防止输出波形发生畸变。对于控制系统的设计,采用stm32单片机作为主控芯片,通过AD转换器对电压、电流进行采样,输出PWM信号控制开关管,以达到调节输出电压、波形的目的。图1.2控制系统2系统设计方案2.1 系统总体模型由光伏电池的原理可知,在恒定光照和温度下,光伏电池可视为电流源和二极管的并联,光伏电池的效率于负载电压有关,并且在光照温度变化的情况下,电池的输出电流不是恒定值。因此为满足最大效率需要对电池外接电路进行变换,以达到最大功率点。因此电源电路中的DC/DC模块的设计是必不可少的。稳压电路的作用是用于将电源电路输出电压提升或降低至逆变所需的电压,同时还应使输出电压稳定在额定值,因为电源电路输出的电压随光照温度的变化而变化,因此需要升压电路进行升压或降压以达到稳压。对于逆变电路的设计,本系统采用了PWM式单相全桥逆变电路,通过调制波形,得到与工频正弦波相等效的脉冲,再经滤波可得标准正弦波。调制方法与控制方法都更为简单。对于控制电路,包含主控芯片、时钟电路、复位电路、三角波发生电路、正弦波发生电路、PWM放大输出电路以及信号采样器,主控芯片实时监测母线电压和电流,调节电源电路和升压电路中的开关管,控制负载功率和输出电压。三角波作为PWM的载波和正弦信号共同产生逆变电路开关管的驱动信号。2.2 光伏电池组件设计2.2.1 光伏电池的原理光伏电池能够将光能转换为电能的原理是光生伏打效应,光伏电池可以看作一大块p-n结,当有光照时,p-n结吸收光能后内部的载流子分布状态和浓度发生变化产生一定电位差,多块电池相连接时可产生较强的稳定的电位差,当电池两端接上负载,即可产生电动势。2.2.2 光伏电池的电气特性太阳电池的电性能与温度和光照有关,表面温度上升,输出功率降低,而当温度保持不变时,输出电流与光强辐照近似成正比输出电压受负载影响,最大输出功率也近似成正比,若保持光照与温度不变,则输出电流也近似不变,因此此时可视其为电流源。光伏电池的技术参数:(1)短路电流(ISC)给定光照强度下和温度下的最大输出电流(2)开路电压(VOC)给定光照强度下和温度下的最大输出电牙(3)最大功率点电流(Im)给定光照强度下和温度下对应于最大功率点的电流(4)最大功率点电压(Vm)给定光照强度下和温度下对应于最大功率点的电压(5)最大功率点功率(Pm)给定光照强度下和温度下对应于最大功率点的最大功率本系统选用电池型号为SE-250M,主要参数:输出功率250W最佳工作电压36V最佳工作电流7.0A短路电流7.3A开路电压48V2.2.3 组件设计本系统装机容量5KW,故需要5K250=20片电池板。当行列数相等时系统功率达到最大,故而采用5快串联4快并联的设计方案,光伏组件额定输出电压为180V,输出电流为28A。同时还应对每一块光伏电池设计防反冲二极管和旁路二极管,以防止电流逆流损坏电池板。对整个系统还需采取一定的避雷措施,以免被雷击损坏造成安全威胁。2.3 电源电路设计电源电路作用是控制光伏电池的输出电压,完成最大功率点跟踪控制。通过对光伏电池的原理分析可知光伏电池工作于任一环境下均可视为电流源,输出电流几乎不受外界影响,所以随着输出电压的升高,输出功率也会提升,则此时必然存在一个最大功率点。同时光伏电池的输出阻抗随负载变化而变化,当电池组的输出阻抗等于负载阻抗时,输出功率最大。因此可以用升压斩波电路对输出端进行控制,使其成为一个电压可控的开关电源,修改占空比达到改变输出电压从而使得电池工作于最大功率点的目的。如图2.1、2.2是接在电池阵列后的斩波电路,以及开关管导通和关断使得等效电路。前半部分为二极管和电感组成的特使电路,输入端直接与太阳电池相连,因为电感充放电以及维持电流的特性,在充电时LI尾端电位低于L2,故两个电感为并联,而放电时Ll尾端电位高于L2首端故两电感为串联,后半部分由开关管、二极管和电容构成,电容与电感的值极大。图2.1电源电路L2(a)导通关断图2.2导通和管段等效电路这种电路比于一般的升压斩波电路,积蓄和释放的能量更多,能带来更大幅度的变压。假设开关管导通的时间为ton,关断时间为toff,整个周期为T,占空比为d。导通时电感被充电由于Ll末端电位低于L2,两电感并联,由于Ll和L2的值相等,所以流经两电感的电流相等,l=2il°关断时,两电感串联并且电感和电源一起向负载和电容供电,电流无法瞬变仍为io电感和电容的值极大,并且导通关断的时间极小,故而电容的电压和流过电感的电流可认为是无变化的。因为电感在一个周期内积蓄和释放的能量必然是相等的。故有2UiTd=(Ui-Uo)(1-d)T(2-1)(2-2)U。=也罟2.4 稳压电路设计因光伏电池的性质可知,在环境温度和光照辐射不变的情况下,光伏电池可视为电流源,其电压随负载变化,但现实中光照条件环境温度是不断变化的,此时光伏电池既非电流源也非电压源,因此稳压电路的目的是将电源电路输出的电压进行升压或降压,使得直流母线上的电压稳定在额定值上,否则逆变器所输出的波形会发生畸变。实现电压补偿有多种方式,本系统采用在直流母线上串联一个开关电源的方式,通过控制系统检测电源电路的输出电压,计算需要提升的电压值,调节占空比改变蓄电池的输出电压达到调节目的。图2.3为稳压电路,其输入端与蓄电源电路的输出端连接,输出端与逆变电路相连接,经过稳压电路后的输出电压可认为时不变的且符合逆变输入的标准。如图2-3可见其前半部分为电感,后半部分为开关管、二极管和电容,电感和电容的值极大,开关周期极短,因此开关瞬间电感上的电流和电容两端的电压无变化,电感积蓄的能量等于其放出的能量,故有U。=?(2-3)2.5 逆变电路设计图2-4逆变电路逆变电路的作用是将直流电变为交流电,本系统采用spwm驱动的电压型单相全桥逆变电路如图2.4。电路由四个开关管、二极管和电容、电感构成。输入端的电容值极大,用于稳定输入电压,四个开关管被分为两组,Ql和Q4为一组,Q2和Q3为一组,每组由同一个驱动信号控制,两组互补,二极管与开关管并联防止电路逆流,输出端的电感和电容构成LC低通滤波器。图2.5SPWm发生电路开关管1和4为一组,2、3为一组,其通断由SPWm信号所控制。SPWM信号为与正弦信号等价的宽度不同的脉冲信号,其调制的基本原理为冲量定理:冲量相等而形状不同的窄脉冲加在惯性环节上时,其作用基本相同。SPWm信号的产生是将正弦信号进行N等分,计算每一等分与的积分,使用与此积分相等的脉冲信号代替每一等分,并使脉冲中点与正弦信号每一等分的中点重合即可得到SPWm信号。通常可采用三角波与正弦波比较相叠加所截取的脉冲信号得到SPWm信号,三角波作为载波,与正弦信号通过电压比较器进行比较所得的波形。图2.5为SPWM发生电路,该电路由三角波发生电路、正弦波发生电路和电压比较器构成。三角波作为载波信号其发生电路由滞回比较器和积分器构成,正弦波为与电网同频同相的信号,正弦波与三角波经过比较器比较得到双极性的SPWm波,在经过两个过零比较器,分别接在同相端和反相端,得到一组互补的SPWm信号,用于驱动逆变电路的两组开关管。采用此方法截取SPWm信号时,载波信号的频率、峰值与正弦波的频率、峰值之比会影响PWM信号的质量,频率之比越高,采样点越多,波形越均匀,峰值之比越高则波形失真越小。本系统中其频率之比设为8:1,峰值之比设为1.3:1。根据图2.5可见,设积分器输入电压为U,则输出电压U。为(2-3)同相输入端电流近似为零因此的输入电压为UpiRlUoxl R2UoRl+R2 T R1+R2(2-4)当同相输入端电位高于反向端时比较器输出反向,故而载波频率为(2-4)Rl4R2R4C3控制策略3.1 基于STM32的控制系统主控芯片采用STM32F103RCo包含时钟电路、复位电路等。用于产生电源电路和稳压电路的驱动信号,并判断主系统当前状态,完成最大功率点跟踪控制、稳压补偿控制。采用PBO和PCO引脚分别读取光伏电池的输出电压和电流,PB4和PB5分别输出控制电源电路和稳压电路的pwm信号。图3.1是用于对光伏电池输出电压和输出电流进行采样的分压设计,因为串联的缘故,电阻的压降与阻值成正比,通过ADC读入R12和R16上的压降可计算出电池的输出电压和流过直流母线的电流,再将采集的信号送入mppt中计算占空比用以控制系统的稳定输出。3.2 最大功率点跟踪控制为了充分利用太用能源,必须使得电池阵列工作时产生最大的有功功率,由于系统的输出直接接入电网故而其有功功率不受负载限制,可以通过调节光伏电池的输出电流和输出电压达到此目的。由光伏电池伏安特性可知,光伏电池输出功率受温度和光强影响较大。当光强不变而温度增加时,开路电压下降,电流微略增加,功率减小。而当温度恒定光强变化时开路电压近似不变短路电流与光强成正比,功率增加。当光照与温度都保持稳定时,输出电流在一定范围内保持不变,电压随负载变化而变化。但无论光强和温度如何变化,光伏电池的输出功率始终是呈现单峰特性。因此,在任意时刻,光伏电池可以等效为电流源,若调节其输出电压,就能很容易控制输出功率,并且此时输出功率与输出电压在一定范围内,寻找到此范围的电压极值,并将电压保持在这一点,就成为最大功率点跟踪控制。而其根本原因是因为当光伏电池的输出阻抗与负载阻抗不匹配时,输出功率无法达到最大化的利用。较好的解决方法是在电池输出端与负载之间增加开关变换电路,通过开关阻抗的变换达到最佳利用效果。目前常用的最大功率点跟踪控制策略有以下几种(1)电导增量法:通过比较光伏电池的电导增量与瞬间电导来改变控制信号,因光伏电池的伏安特性可知,在未达到最大功率点时,输出功率与输出电压成正比,其斜率为常数k=<3-1>当达到最大功率点时,斜率瞬间为0。实际运行中不需要直接检测斜率为0的点,只需要发现斜率出现较大变化即可确定最大功率点。(2)扰动观测法:实时采样光伏电池的输出电流和电压,计算功率,并于上次功率进行比较,若小于上次的值则控制光伏电池输出电压按原来的相反的方向变化,若大于则维持原来的方向。反复扰动,确定最大功率点的位置,实现最大功率输出。电导增量法比于扰动观测法更为直观易懂,但其需要更短的采样周期与更大的计算量,因此本系统采用扰动观测法。图3.2扰动观测3.3 开关管控制3.3.1 电源电路和稳压电路的控制对电路进行分析可知开关管的占空比影响输出电压,本系统通过主控芯片发出PWm信号控制开关管。绝大多数单片机都可以通过GPIO和定时器进行PWM的输出,而在stm32单片机中输出pwm信号更为简单。捕获/比较寄存器TIMx.CCRx可被用来比较,自动重装载寄存器TIMx_ARR用来决定pwm信号的周期,计数器TIMx_CNT用来随时钟信号而计数,可配置向上计数。当TIMx_CCRx中的数值大于计数器TIMX_CNT时,将发出高电平,当TlMX_CNT大于TlMX_ARR时计数器中的数字将被复位,因此TlMX_CCRx与TIMX_ARR之比即为占空比。同时还需要配置时钟和GPIO的工作模式。3.3.2 逆变电路的控制根据冲量定理,对正弦信号进行等分,使用与每一等分面积相等的脉冲信号代替,并且每个脉冲中点与正弦波的每一等分中点相同,即可得到spwm信号。本系统采用硬件生成的三角波和与电网同频同相的正弦信号经过比较器所得SPWm信号驱动1、4开关管导通,负半周期2、3开关管的导通,使得最终产生的输出波形达到接近电网波形的水平。spwm控制信号可通过主控芯片产生,也可由硬件电路产生,spwm若由软件产生将会消耗主控芯片很大一部分性能,加重控制系统的负担,通过软件产生算法较为复杂并且没有硬件精确。本系统通过硬件电路产生的三角波和正弦波通过比较器进行比较产生的spwm信号驱动逆变电路。3.4 软件设计3.4.1 主程序主程序将系统分为运行模式和休眠模式,光照强度过低输出功率不足时,系统处于休眠模式,关闭系统总开关,以较低频率检测系统状态,不产生任何输出。当光照增强输出功率高于IooW时,系统进入运行模式,以较高的频率检测系统状态,同时完成初始化,进入MPPT(最大功率点跟踪控制)主循环。3.4.2 系统初始化检测光伏电池的功率,当功率超过起始工作点时,打开系统总开关,系统开始工作,初始化PWm模块、监测模块、最大功率点跟踪控制模块,加载光伏电池的电压、电流到系统状态机。3.4.3 系统监测当光伏电池的输出电压出现巨大波动或电流超过预计值即出现短路现象时,立即切断系统开关,系统监测通过中断控制。3.4.4 运行模式流程图开始结束图3.3控制系统流程图程序源码见附录4仿真和调试图4.1逆变电路及其控制电路图4.2spwm仿真图图4.3逆变电路仿真图图4.1为spwm发生器和逆变电路。图4.2为spwm信号的仿真A相为滞回比较器产生的脉冲信号,B、C相为三角波和正弦波,D相为最终得到的SPWm信号。图4.3为逆变电路的仿真波形,通过调整LC滤波电路中电容和电感的值过滤高次谐波,得到的接近正弦波的波形。本文探讨并设计了一个5kw家用并网光伏发电系统。对光伏发电原理和光伏电池的等效电路做了简单阐述,分析了家用并网光伏发电的现状和前景,设计出一个简单可靠、经济实惠、易于维修的系统。通过查阅资料了解和分析了光伏电池的工作原理和等效电路,建立数学模型。系统主采用双级式电路,分为前级DC/DC变换电路和后级DC/AC变换电路,DC/DC变换部分又分为电源电路和稳压电路。电源电路的作用是配合最大功率点跟踪控制算法调整光伏电池阵列的输出电压,使得光伏电池处于当前环境下的最大功率点,以充分利用太阳能资源。稳压电路的目的是为系统提供稳定的直流母线电压,实现方式是在主电路上串联一个较大的蓄电池,同时调整蓄电池的输出电压用以补偿电源电路的电压。DC/DC电路的控制方式是通过调整开关管的占空比来达到的。后级DC/AC电路采用spwm式单相全桥逆变电路,控制驱动开关管的spwm信号由滞回比较器、积分器电压比较器和过零比较器组成。控制系统采用stm32flO3R6作为主控芯片,利用电阻分压和ADC变换器读入光伏电池阵列所产生电流和电压,判断系统状态并采取相应措施保护系统的运行,驱动开关管的导通和关断。在最大功率点跟踪控制中运用的主要算法为扰动观测法,即不断调整占空比改变输出电压的大小,在检测输出功率并于此前功率进行对比,反复如此寻找最佳位置。采用protues8.0对电路各个组成部分进行了仿真。证明设计设可行的。由于时间问题,本次设计依然存在许多不足之处,例如SPWm信号发生电路的死去控制不够完美、孤岛效应的检测与控制未能考虑进去、MPPT控制策略还不够完善等。致谢之所以能顺利完成家用并网光伏发电系统设计的设计与实现,是和指导老师辛苦指导、同学们的相互帮助分不开的。首先感谢指导教师的指导,作为一个老师是认真负责的。感谢同学们的鼓励和支持。也感谢学院所提供的支持,不管是从老师还是其它的辅助设施上,我深表感谢,给我们带来了极大的方便。参考文献1王睿.光伏发电的微电网系统研究UL居业,2019(8):183-183.韩学栋,王海华,李剑锋.小型分布式光伏发电系统设计J.电力建设,2014(01):112-116.3刘东冉,陈树勇,马敏,etal.光伏发电系统模型综述J.电网技术,2011,35(8).4刘澄,王辉,李天慧,金雪,李哲.分布式新能源发电对配电网电压影响研究J.可再生能源,2019,37(10):1465-1471.5彭健.太阳能光伏发电并网技术应用分析J.科技经济导刊,2019,27(28):84+138.6苏萌.分布式发电技术在电力系统中的应用综述J.价值工程,2019,38(27):227-228.7周龙,韩钦,扎西顿珠,商永尚.电力电子技术在电力系统中的新型应用研究J.内江科技,2019,40(09):29+35.8白鹏,马平原.室分站点光伏发电系统应用J.通信电源技术,2019,36(Sl):264-266.9王思钦.分布式光伏发电系统电能计量方案J.农村电工,2019,27(09):37.10郭嘉荣,胡振球,梁广文.小型分布式光伏发电系统设计J.电子技术与软件工程,2019(17):228-229.11房丽硕,吕建,霍雨霞.屋顶分布式光伏并网发电系统的运行特性研究J.天津城建大学学报,2019,25(04):284-289.12王永强,卢旭锦,陈国雄.离网型光伏逆变器的分析设计和思考J.南方职业教育学刊,2014,4(05):100-104.口3方繁,周浩,文必洋.光伏逆变效率与开关控制脉冲的关系J.武汉大学学报(工学版),2014,47(05):630-635.14张贵涛,龚芬,王丽晔,夏向阳,熊强.光伏并网逆变器电能质量控制策略J.电力科学与技术学报,2017,32(04):50-56.口5李成升,张华赢,李艳.分布式光伏接入对配电网电能质量影响的研究J.电工技术,2019(18):135-136+155.附录main,cttinclude"stm32f10x.h”#include"mppt.h"voidDelay(u32count)u32i=0;for(;i<count;i+);intmain(void)(pwm_init();adc_initO;while(l)Delay(IOOOO);mppt();)mppt.cinclude”slm32f10x.h”#include,mppt.h"defineADDO#defineBACK1staticu32prevpow=0;staticu32rated_vol=0;staticdoublecycle=0.5;voidprminit(void)RCC_APB2PeriphClockCmd(RCC_APBlPeriph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPlOpinRCnIaPCOnfig(GPIopartiaIRCnIaPTlM3,ENABLE);GPlOJnitTypeDefGPTO_Ini!Structure;TINLOCInitTypeDefTIM_OCTnitStrue;TTM_TimeBaselnitTypeDefTIM_TimeBaseInitStrue;GPIO_InitStructure.GPIO_Pin=GPI0_Pin_5;GPlOInitStructure.GPlOMode=GPloMOde_AF_PP;GPlOInitStructure.GPlOSpeed=GPlOSpeed50MHz;GPlOInit(GPIOB,&GP10_lnitStructure);GPIOInitStructure.GP10Pin=GPI(LPin_4;GPlOInit(GPIOB,&GPIOnitStructure);TIMTimeBaseInitStrue.TIMPeriod=ARR;TIMTimeBaseInitStrue.TIMPrescaler=O;TIMTimeBaseInitStrue.TIMCounterMode=TlMCounterModeUp;TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CKD_DIV1;TIMTimeBaseInit(TIM3,&TIMTimeBaseInitStrue);TIMOClnitStrue.TlMOCMode=TlMOCModePWM2;TBLOCInitStrue.TBLOCPolarity=TIMOCPolarity_High;TlMOCInitStrue.TlMOutputState=TlMOutputStateEnable;TL0C21nit(TIM3,&T1MOClnitStrue);TIM_0C2PreloadConfig(TIM3,TIMj)CPreIOaeLEnable);TIM_Cmd(TIM3,ENABLE);)voidadcinit()ADCInitTypeDefADCInitStructure;GPIOInitTypeDefGPIOInitStructure;RCC_APB2PeriphC1ockCmd(RCC_APB2Periph_GPI0ARCC_APB2Periph_ADClENABLE);RCC_ADCCLKConfig(RCC_PCLK2_Div6);GPIO_Ini!Structure.GPTO_Pin=GPTO_Pin_O;GPlO_InitStructure.GPI(LMode=GPlO_Mode_AIN;GPIO_Tnit(GPTOB,&GPTO_Ini!Structure);GPTO_Tnit(GPTOC,&GPTO_Ini!Structure);ADC_DeInit(ADCl);DCInitStructure.DCMode=DCMode_Independent;ADCInitStructure.ADC_ScanConvMode=DISABLE;ADCInitStrueture.ADCContiFiuousConvMode=DISABLE;ADCInitStructure.DCExternalTrigConv=ADCExternalTrigConv_None;DCInitStructure.DCDataAlign=DCDataAlign_Right;ADCInitStructure.ADCNbrOfChannel=1;ADCInit(ADC1,ADCInitStructure);ADC_Cmd(ADC1,ENABLE);ADCResetCalibration(ADCl);whiIe(ADCGetResetCalibratIonStatus(ADCl);ADCStartCalibration(ADCl);whiIe(ADCGetcalibrationStatus(ADCl);voidPWnl_oUt(UI6port,doublecycle)if(cycle>=0.8cycle<=0)return;switch(port)case0:TIMSetComparel(TIM3,cycle*RR);case1:TIMSetCompare2(TIM3,cycle*ARR);default:return;)u32voltage()ADCRcgularChannelConfig(ADCl,ADC_Channel_8,1,ADCSamp1eTimc_239Cyc1es5);ADCSoftwareStartConvCmd(ADC1,ENABLE);whiIe(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);returnADC_GetConversionValue(ADC1)*3.3*11*IOO*4096;u32current()ADCRegularChannelConfig(ADCl,ADC_Channel_10,1,ADC_Samp1eTime_239Cyc1es5);ADC_SoftwareStartConvCmd(DC1,ENABLE);While(!ADC_GetFlagStatUS(ADC1,ADC_FLAG_EOC);returnADC_GetConversionValue(ADCl)*3.3*99*IOO*4096;)staticvoidCtrl(ul6u)switch(u)caseADD:cycle+=0.1;caseBACK:cycle-=0.1;default:return;voidmpptOu32vol=voltage();u32cur=currentO;if(prev_pow>=vol*cur)Ctrl(BACK);elseCtrl(ADD);)pwmout(POWER,cycle);prevpow=vol*cr;u32voli=voltage()*(1+cycle)/(1-cycle);doublecycle_rear=1-(ratedvol/voli);pwmout(STABLE,cycle_rear);)