太阳能发电在世界能源危机的今天飞速发展,已成为新能源的主流之一。逆变器作为主要的能量变换装置器件,其性能的好坏直接影响着整个光伏系统的效率。本文采用电压外环、电流内环的双环控制策略,保证了系统的动态响应速度快,稳态误差小。为此,论文主要对系统的电路拓扑结构、数学模型、控制方法以及基于FPGA的软件实现方法等技术进行了分析研究。 本文首先通过对几种常见的数学模型分析方法的比较,选择适合本文的数学建模方法。文中给出了逆变器的拓扑结构,详细论述了其工作原理,对该逆变器不同工作状态下的等效电路进行分析,并利用状态空间平均法建立了逆变器数学模型,确定主要元件的参数。 随后对当前比较流行的几种逆变电路的控制方法进行了对比分析。本文采用的基于SPWM控制的电压电流双环控制的算法,具有开关频率固定、物理意义清晰、实现方便的优点,保证系统的稳态误差小,动态响应速度快。通过分析几种最大功率跟踪算法各自的优缺点,最后给出了改进的最大功率跟踪算法,保证系统输出最大功率。 最后用FPGA实现了系统控制方案的设计。整机测试结果表明:该逆变器的性能指标基本达到了设计要求,验证了数学模型和控制策略的有效性和理论分析的正确性和可行性。
上传时间: 2013-07-25
上传用户:时代将军
单片微型计算机(单片机)是将微处理器CPU、程序存储器、数据存储器、定时/计数器、输入/输出并行接口等集成在一起。由于单片机具有专门为嵌入式系统设计的体系结构与指令系统,所以它最能满足嵌入式系统的应用要求。Intel公司生产的MCS-51系列单片机是我国目前应用最广的单片机之一。 随着可编程逻辑器件设计技术的发展,每个逻辑器件中门电路的数量越来越多,一个逻辑器件就可以完成本来要由很多分立逻辑器件和存储芯片完成的功能。这样做减少了系统的功耗和成本,提高了性能和可靠性。FPGA就是目前最受欢迎的可编程逻辑器件之一。IP核是将一些在数字电路中常用但比较复杂的功能块,设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。 本课题结合FPGA与8051单片机的优点,主要针对以下三个方面研究: (1)FPGA开发平台的硬件实现选用Xilinx公司的XC3S500E-PQ208-4-C作为核心器件,采用Intel公司的EEPROM芯片2816A和SRAM芯片6116作为片内程序存储器,搭建FPGA的硬件开发平台。 (2)用VHDL语言实现8051IP核分析研究8051系列单片机内部各模块结构以及各部分的连接关系,实现了基于FPGA的8051IP核。主要包括如下几个模块:CPU模块、片内数据存储器模块、定时/计数器模块、并行端口模块、串行端口模块、中断处理模块、同步复位模块等。 (3)基于FPGA的8051IP核应用用所设计的8051IP核,实现了对一个4×4键盘的监测扫描、键盘确认、按键识别等应用。
上传时间: 2013-06-21
上传用户:stampede
对IGM焊接机械手常见的故障进行分析,对故障现象提出了经济有效的解决方法。关键词:IGM焊接机械手+传感器+译码器
上传时间: 2013-07-31
上传用户:KIM66
单片微型计算机(单片机)是将微处理器CPU、程序存储器、数据存储器、定时/计数器、输入/输出并行接口等集成在一起。由于单片机具有专门为嵌入式系统设计的体系结构与指令系统,所以它最能满足嵌入式系统的应用要求。Intel公司生产的MCS-51系列单片机是我国目前应用最广的单片机之一。 随着可编程逻辑器件设计技术的发展,每个逻辑器件中门电路的数量越来越多,一个逻辑器件就可以完成本来要由很多分立逻辑器件和存储芯片完成的功能。这样做减少了系统的功耗和成本,提高了性能和可靠性。FPGA就是目前最受欢迎的可编程逻辑器件之一。IP核是将一些在数字电路中常用但比较复杂的功能块,设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。 本课题结合FPGA与8051单片机的优点,主要针对以下三个方面研究: (1)FPGA开发平台的硬件实现选用Xilinx公司的XC3S500E-PQ208-4-C作为核心器件,采用Intel公司的EEPROM芯片2816A和SRAM芯片6116作为片内程序存储器,搭建FPGA的硬件开发平台。 (2)用VHDL语言实现8051IP核分析研究8051系列单片机内部各模块结构以及各部分的连接关系,实现了基于FPGA的8051IP核。主要包括如下几个模块:CPU模块、片内数据存储器模块、定时/计数器模块、并行端口模块、串行端口模块、中断处理模块、同步复位模块等。 (3)基于FPGA的8051IP核应用用所设计的8051IP核,实现了对一个4×4键盘的监测扫描、键盘确认、按键识别等应用。
上传时间: 2013-04-24
上传用户:1417818867
模电学习基础,放大器是所有应用中难以避免的,常见电路中的分析也需要
标签: 运算放大器
上传时间: 2013-06-26
上传用户:jacking
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
protel出错大全 一些常见的错误
上传时间: 2013-11-19
上传用户:xieguodong1234
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230