基于BUCK电路的电源设计【实用文档】doc_第1页
基于BUCK电路的电源设计【实用文档】doc_第2页
基于BUCK电路的电源设计【实用文档】doc_第3页
基于BUCK电路的电源设计【实用文档】doc_第4页
基于BUCK电路的电源设计【实用文档】doc_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于BUCK电路的电源设计【实用文档】doc文档可直接使用可编辑,欢迎下载

基于BUCK电路的电源设计【实用文档】doc文档可直接使用可编辑,欢迎下载现代电源技术基于BUCK电路的电源设计学院:专业:姓名:班级:学号:指导教师:日期:目录TOC\o"1—3"\h\z\uHYPERLINK\l"_Toc408155071"摘要PAGEREF_Toc408155071\h2一、设计意义及目的PAGEREF_Toc408155072\h3HYPERLINK\l”_Toc408155073"二、Buck电路基本原理和设计指标PAGEREF_Toc408155073\h3HYPERLINK#defineucharunsignedchar#defineuintunsignedintcodeuchard[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};uintsecond=0,minter=50,hour=11;uintsshi,sge,mge,mshi,hshi,hge;staticcharcourt=0;sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP24=P2^4;sbitP25=P2^5;sbitP26=P2^6;sbitP27=P2^7;sbitP20=P2^0;voiddelay(){ //单个LED延时函数uchari; for(i=0;i〈15;i++);}voidint1()interrupt1using2{ //定时中断相应定50msTH0=0x4c; TL0=0x00; court++;}voidmain(){ //主函数TMOD=0x01; TH0=0x00; TL0=0x00; EA=1; ET0=1; TR0=1; P1=0XFF; for(;;){ sshi=second/10; //求分秒的个位; sge=second%10; mshi=minter/10; mge=minter%10; hshi=hour/10; hge=hour%10; P0=d[sge]; //时分秒在LED的显示 P27=1;//P0口数据输出,P2口选通信号 delay(); P27=0; P0=d[sshi]; P26=1; delay(); P26=0; P0=0xbf; P25=1; delay(); P25=0; P0=d[mge]; P24=1; delay(); P24=0; P0=d[mshi]; P23=1; delay(); P23=0; P0=0xbf; P22=1; delay(); P22=0; P0=d[hge]; P21=1; delay(); P21=0; P0=d[hshi]; P20=1; delay(); P20=0; if(court==20){ //定时1s的时间是否到?若到,则执行IF后面的程序;court=0; //执行LED显示程序second++;if(second==60){second=0;minter++;if(minter==60){minter=0;hour++;if(hour==24)hour=0; }} } }}第五章电子时钟调试与仿真5。1HEX文件的生成1)打开单片机软件开发系统KeilVision,单击“Vision"菜单中的“Project”,在此下拉菜单中单击“NewProject”选项后,弹出“CreateNewProject”对话框,键入新建项目名称.2)键入新建项目名并单击“确定”按钮后,在弹出的“SlectDevic”对话框中选择合适的单片机型,如AT89C51。3)单击“Vision”菜单中的“File",在此下拉菜单下,选择“New”后,打开一个空的文本编辑窗口,在此窗口中输入程序,创建新的源程序“dzz.C”文件。4)在左边的“Project”窗口的“File"页中单击文件组,再单击鼠标右键后,在弹出的窗口中选中“AddFiletoGroup‘SourceGroup1’"选项,将“dzz.C”程序导入到“SourceGroup1”中。5)在“Project"下拉菜单中,选中“OptionsforTarget”,将会弹出“OptionforTarget"对话框,在此对话框中选中“Output”选项卡中的“CreatHEXFile”选项。6)在“Project”下拉菜单中,选择“RebuildallTargetfiles"项。若程序编译成功,将生成“dzz.HEX”文件。5.2原理图的绘制1)在ProteusISIS编辑窗口中,单击元件列表之上的“P”按钮,添加所需要的元件.2)在ProteusISIS编辑窗口中,绘制电路图。如图5.1所示。图5.1电子钟电路图5.3调试与仿真1)在ProteusISIS编辑窗口中,单击鼠标右键将AT89C51单片机选中并单击鼠标左键,弹出“EditComponent”对话框,在此对话框的“ClockFrequency"栏中设置单片机晶振频率为12MHz,在“ProgramFile”栏中单击文件,选择先前用KeilVision2s生成的“dzz.HEX"文件。2)在ProteusISIS编辑窗口中“File”下拉菜单“SaveDesign”选型,保存设计,生成“dzz.DSN”文件。3)在ProteusISIS编辑窗口中单击“Debug”菜单中选择“Execute”,可看见在首次运行时,LED显示的初始值为11—50—00,然后每隔1s进行累计显示,运行结果如图5。2所示。图5。2电子钟设计的运行结果第六章结束语本单片机数字电子钟系统的功能基本符合显示格式为:XX:XX:XX,即时:分:秒。时间可采用24小时制。系统上电后从上电时初始化显示:11-50-00开始计时,能进行时间的调整,可按自己的要求设置扩展的小键盘个数设计任务的要求,经过测试数据显示,系统的可靠性已经基本能够达到实际电子钟的设计要求,同时本单片机数字电子钟系统具有扩展性.课程设计是培养学生综合运用所学知识,发现实际问题、提出实际问题、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际学习能力、动手能力的具体训练和考察过程.在此次数字钟设计过程中,在学习新知识的同时,把在课程中学到的理论知识运用到实际作品设计、操作中,更进一步地熟悉了单片机芯片的结构及掌握了其工作原理和具体的使用方法与相关元器件的参数计算方法、使用方法,了解了电路的开发和制作及课程设计报告的编写.加深了对相关理论知识及专业知识的掌握度,增强自身的动手能力,锻炼及提高了理解问题、分析问题、解决问题的能力,更深刻的体会到了理论联系实际的重要性,进一步掌握画图软件的使用和提高相应的画图操作水平及技巧.参考文献[1]李广弟,朱月秀,冷祖祁.单片机硬件结构[J].页码148。[2]李叶紫,王喜斌,胡辉.MCS_51单片机应用教程[M].清华大学出版社,2004,3[3]李叶紫等.MCS-51单片机应用教程[M].清华大学出版社,2004,3[4]王福瑞等.单片机微机测控系统设计大全[M].北京航空航天大学出版社,1999.3[5]李伯成.基于MCS-51单片机的嵌入式系统设计[M].电子工业出版社,2004.7单片机及模数综合系统设计课题名称:基于STC12系列单片机的串联型开关电源设计与实现—-单片机控制部分一、实验目的:本模拟电路课程设计要求制作开关电源的模拟电路部分,在掌握原理的基础上将其与单片机相结合,完成开关电源的设计。本报告旨在详述开关电源的原理分析、计算、仿真波形、相关控制方法以及程序展示.二、总体设计思路本设计由开关电源的主电路和控制电路两部分组成,主电路主要处理电能,控制电路主要处理电信号,采用负反馈构成一个自动控制系统。开关电源采用PWM控制方式,通过给定量与反馈量的比较得到偏差,通过调节器控制PWM输出,从而控制开关电源的输出。当键盘输入预置电压后,单片机通过PWM输出一个固定频率的脉冲信号,作用于串联开关电源的二极管和三极管,使三极管以一定的频率导通与断开,然后输出进行AD转化,转化后的结果再给单片机进行输出,进行数码管显示.系统的基本框图及控制部分如下:控制过程原理分析:单片机所采用的芯片为STC12C5A60S2,该芯片在拥有8051内核的基础上加入了10为AD和PWM发生器。通过程序,即可控制单片机产生一定占空比的PWM脉冲,将此脉冲输入到模拟电路部分,在模拟电路的输出端即可产生一定的输出电压,可比较容易的通过程序来实现对输出电压的控制。但上述的开环控制是无法达到精确的调节电压,因此需要采用闭环控制来精确调制。即,对输出电压进行AD采样,将其输入回单片机中进行数据处理。单片机根据处理的结果来对输出电压做出修正,经过这样的逐步调节即可达到闭环的精密输出。由此原理,可以将整个过程分成一下模块:PWM波形输出模块,模拟电路模块,AD转换模块,数码管显示模块,键盘输入模块。控制过程基本思路为:首先从键盘输入一个电压值,并把该电压值在数码管上面显示出来,再由A/D转换模块对串联开关电源电路的输出端进行电压采集,将采集到的电压值与键盘输入的电压值进行比较,通过闭环算法,控制PWM的脉宽输出,由此控制串联开关电压电源电路,改变输出的电压值,使得输出值与设定的电压值相等。系统各单元模块电路设计键盘输入数据部分分别接到单片机的P2.4,P2.5,P2.6,P2.7。每路通过电阻进行上拉,可以编程实现控制单片机运行不同程序。为了判断键盘上面的按键是否有按下的,可以事先对P2.4,P2。5,P2。6,P2。7端口赋值,便可以知道具体是哪个按键被按下了。例如:P2。4=0,便可知道P2.4对应的按键已经按下了。键盘输入模块程序如下:voidkey()//键盘扫描函数{if(P2_6==0){delay(10);//延时去抖动if(P2_6==0){while(P2_6==0)if(a<9){a++;}elsea=0;}}if(P2_5==0){delay(10);//延时去抖动if(P2_5==0){while(P2_5==0);if(b<9){b++;}else(b=0);}if(P2_4==0){delay(10);//延时去抖动if(P2_4==0){while(P2_4==0);if(c<5){c++;}elsec=0;}}if(P2_7==0){delay(10);if(P2_7==0){while(P2_7==0);P1_5=!P1_5;}}}2、数码管数据显示部分知道了上面在键盘输入的数值后,便要在数码管上面显示出来。该实验板的8位数码管是共阴极的数码管,使用端口为P0和P2.0—P2.4口,且为动态数码管,因此在同一时间,只有一个数码管是亮着,但由于人眼的视觉残留,使得看上去是全部一起亮着的.8位分别有段选和位选,段选就是要一个数码管显示的字型,而位选则是由低电平选中所要那一个数码管,该数码管才能亮.因此要使得数码管亮并显示数字,则必须在位选时该数码管的位选管脚出于低电平,然后再通过段选显示字型。如下图所示的数码管:数码管显示模块程序为:voiddisplay(floatx){uintM,N,I;I=100*x/100;N=(100*x-100*I)/10;M=100*x—100*I-10*N;P2_0=0;P0=table[0];delay(10);P2_0=1;P2_1=0;P0=gao_table[I];delay(10);P2_1=1;P2_2=0;P0=table[N];delay(10);P2_2=1;P2_3=0;P0=table[M];delay(10);P2_3=1;}3、控制PWM输出部分STC12C5A60S2系列单片机集成了两路可编程计数器阵列(PCA)模块,可用于软件定时器,外部脉冲的捕捉,高速输出以及脉宽调制(PWM)输出.在该实验中主要用到PWM脉宽调制输出,通过对特殊功能寄存器初始化,就可以在P1.3(选择模式0时)或P1。4(选择模式1时)端口输出可调占空比的高速脉冲。PWM模块程序如下:voidPWM_Drv_Init(void){CCON=0;//初始化PCA控制寄存器CL=0;//初始化PCA计数器CH=0;CMOD=0x08;CR=1;}voidPWM0_Drv_SetDuty(unsignedcharDutyValue){CCAP0H=CCAP0L=DutyValue;//设置看空比CCAPM0=0x42;CR=1;}PWM仿真图为:4、AD转换模块(完成万用表功能,即测量开关电源输出电压)STC12C5A60S2系列单片机自带有8路10位高速A/D转换器,在本实验中只用到其中的一路,故可以通过软件设计选择其中的一路用来测量电压。在不需作为A/D转换的端口可以继续作为I/O口使用。AD转换对特殊功能寄存器的初始化主要有ADC_CONTR和A/D转换结果寄存器ADC_RES(用来存放高八位)﹑ADC_RESL(用来存放低两位);在ADC_CONTR中包含有ADC电源控制位ADC_POWER,模数转换器转换速度控制位SPEED1﹑SPEED0,模数转换器转换结束标志位ADC_FLAG,模数转换器(ADC)转换启动控制位ADC_START,模拟输入通道选择CHS1/CHS2/CHS3。由于是2套时钟,在设置ADC_CONTR控制寄存器的语句执行之后,要经过4个CPU时钟的延时,其值才能够保证被这只进ADC_CONTR控制寄存器,所以设置ADC_CONTR控制寄存器后,要加4个空操作延时才能正确读到ADC_CONTR寄存器的值.ADC的结构如下图所示:AD转化模块的程序为:voidADC_Drv_Demo(void){if(ADC_Finish_Flag==TRUE){ADC_Finish_Flag=FALSE;ADC_Drv_StartCh(ADC_channel);m=ADC_Result[ADC_channel]*5。0/1024;}}5、闭环控制算法这部分是整个实验中最重要的部分,该部分主要是通过A/D采集数据控制PWM输出,PWM控制开关电源输出,以达到稳定,即让开关电源输出电压稳定在键盘输入的电压值。针对前面的要求,则需要用单片机来完成所有的控制与计算。在该实验中,作为AD采集的端口为P1.7,PWM输出端口为P1。3,在采集完电压数据的时候把数据存放在ADC之中,而从键盘输入数值时,键盘上显示的是一个小数,但在单片机中存在中间变量temp的是一个整数,为小数的1000倍,因此在引用数码管显示的数值时要将temp除以1000才能得到实际的设置电压数值Vs;另一方面,采集回来的电压ADC要转换成实际的电压数值,则由下面的算法得出:真实值Vr=ADV*5。0/1024.0在得到这两个数值之后对他们进行比较,要是Vr<Vs,说明采集回来的电压偏低,此时则要降低PWM输出脉冲的占空比;同理,当Vr〉Vs时,则要增大PWM输出脉冲的占空比,由此而使得串联开关电路的输出电压与事先所设置的电压值相同。实际测得的电压与设置的电压对比表格如下:Vs<0.80。80。91。01.11.21。31。41.51.61.7Vr—0.790.890.981.081.181.281。391。491.591.71.81。92。02。12.22。32.42。52.62。72.82。91。781.882。022。082。172.282.382。512.582。682。782.913.03.13。23.33.43。53.63。73.83.94.0>4.02.983。123。193.283.393。483.593。683。793。963.98-通过上面的表格可以看出来,虽然实际测出来的电压Vr和设置的电压Vs有一定的误差,但是总体还是在设置的电压附近波动,所能输出地电压范围为0.8v~4.0v。误差原因分析:(1)单片机电源不够稳定,在接入电脑后给单片机提供的电压小于5V(2)提供给AD转换的参考电压不够精确,使转化存在误差。心得体会通过这次实验让我知道理论需要联合实际,只有将自己所掌握的知识真正应用于实际才算真正的掌握了知识。在刚开始做的时候我对于单片机的知识理论只是有一些模糊的印象,不能真正掌握单片机的知识,比如用AD采样需要用单片机的哪些管脚,还有数码管需要用哪些管脚控制,并且哪些管脚控制段选,哪些控制位选。这些我都不太清楚,但通过请教才会用程序写出来。虽然这次实验做出来了,但是我还是有些知识无法真正掌握,比如定时器中断或定时,所以这次实验我只能用delay延时来写.通过这次实验我还注意到细节决定一个程序是否能成功运行,比如我在写程序是应用了if……else格式,可是因为在写的过程中括号没对齐,使程序没能成功运行,经过同学帮忙才成功运行.还有的细节就是关于键盘的防抖动问题。总体来说,我通过这次课程设计不单单学到了很多单片机和C51编程的的知识,更多的是学会了学习的方法,能够将所学到的知识用到实验上面,可以把知识记得更清楚。这还更多地提高了在遇到实际问题时该怎样解决实际问题的能力.更深入地学习C语言,又可以更多地提高自己的逻辑,思考能力,使思维结构更严谨。希望在以后的学习之中可以更多地接触到这样的实验,那样就可以更好地提高自己的动手能力与对所学知识的运用能力本实验C程序源代码:/******************************************************************************//***文件名:开关稳压电源.c*****************************************************//***功能:设定电压初始值,使得输出电压值与数码管显示值相同*********************//***单片机型号:STC12C5A60S2(带AD转换与PWM脉宽调制输出功能)**************//******************************************************************************//******************************************************************************/#include”stc12c5a60s2。h"#include〈intrins。h〉#defineuintunsignedint#defineucharunsignedchar#defineTRUE1#defineFALSE0voiddelay(uintz);//延时函数声明voiddisplay(floatm);//显示函数声明voidkey();//键盘扫描函数voidADC_Drv_InitCh(unsignedcharChNo);voidADC_Drv_StartCh(unsignedcharChNo);voidADC_Drv_Service(void);voidADC_Drv_Demo(void);voidPWM_Drv_Init(void);voidPWM0_Drv_SetDuty(unsignedcharDutyValue);ucharADC_channel=7;//选中哪一个通道的变量(范围0--7)uintADC_Result[8]=0;//保存ADC转换结果floatm,n;ucharD;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcodegao_table[]={0x40,0x79,0x24,0x30,0x19,0x12};sbitP2_0=P2^0;sbitP2_1=P2^1;sbitP2_2=P2^2;sbitP2_3=P2^3;sbitP2_4=P2^4;sbitP2_5=P2^5;sbitP2_6=P2^6;sbitP2_7=P2^7;sbitPWM0=P1^3;//定义PWM0的输出端sbitP1_5=P1^5;bitADC_Finish_Flag=FALSE;//ADC完成标志uinta,b,c;voidmain(){a=0,b=0,c=0,D=100;P1_5=0;ADC_Drv_InitCh(7);ADC_Drv_StartCh(7);PWM_Drv_Init();while(1){key();n=c+0。1*b+0.01*a;ADC_Drv_Service();ADC_Drv_Demo();PWM0_Drv_SetDuty(D);if(m<n){if((m+0。05)>n);else{if(D<=0)D=0;elseD——;}}if(m>n){if((m—0。05)〈n);else{if(D〉=255)D=255;elseD++;}}if(P1_5)display(m);elsedisplay(n);}}voiddelay(uintz)//延时函数{uintx,y;for(x=z;x〉0;x—-)for(y=110;y>0;y--);}voidkey()//键盘扫描函数{if(P2_6==0){delay(10);//延时去抖动if(P2_6==0){while(P2_6==0);if(a<9){a++;}elsea=0;}}if(P2_5==0){delay(10);//延时去抖动if(P2_5==0){while(P2_5==0);if(b<9){b++;}else(b=0);}}if(P2_4==0){delay(10);//延时去抖动if(P2_4==0){while(P2_4==0);if(c<5){c++;}elsec=0;}}if(P2_7==0){delay(10);if(P2_7==0){while(P2_7==0);P1_5=!P1_5;}}}voiddisplay(floatx){uintM,N,I;I=100*x/100;N=(100*x-100*I)/10;M=100*x-100*I—10*N;P2_0=0;P0=table[0];delay(10);P2_0=1;P2_1=0;P0=gao_table[I];delay(10);P2_1=1;P2_2=0;P0=table[N];delay(10);P2_2=1;P2_3=0;P0=table[M];delay(10);P2_3=1;}voidADC_Drv_InitCh(unsignedcharChNo){P1ASF=P1ASF|(0x01<<ChNo);//初始化相应通道工作在AD模式下}voidADC_Drv_StartCh(ucharChNo)//转换启动{uintDelay=0x00;P1ASF=P1ASF|(0x01<<ChNo);//初始化相应通道工作在AD模式下ADC_RES=0;//ClearpreviousresultADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ChNo;//for(Delay=0x00;Delay<500;Delay++);//ADCpower-onanddelayIE=0xA0|IE;//可位寻址中断允许寄存器用于AD中断EA=1;//单片机CPU总中断}voidADC_Drv_Service(void){ADC_Result[ADC_channel]=ADC_RES;ADC_Result[ADC_channel]=(ADC_Result[ADC_channel]〈〈2)|ADC_RESL;ADC_Finish_Flag=TRUE;}voidADC_Drv_Demo(void){if(ADC_Finish_Flag==TRUE){ADC_Finish_Flag=FALSE;ADC_Drv_StartCh(ADC_channel);m=ADC_Result[ADC_channel]*5。0/1024;}}voidPWM_Drv_Init(void){CCON=0;//初始化PCA控制寄存器CL=0;//初始化PCA计数器CH=0;CMOD=0x08;CR=1;}voidPWM0_Drv_SetDuty(unsignedcharDutyValue){CCAP0H=CCAP0L=DutyValue;//设置看空比CCAPM0=0x42;CR=1;}摘要虚拟仪器是当今仪器技术发展的重点,LabVIEW是一种图形化编程语言,作为数据采集和仪器控制软件的标准被广泛性应用于工业界、研究性课题。论文主要研究基于LabVIEW的模拟电路实验系统的设计,设计过程中的虚拟积分微分器采用图形化编程语言LabVIEW进行设计,通过各种波形信号的输入,对其各种参数进行设置,然后利用信号选择器选择所要输入的信号,然后经过程序的处理之后在前面板上显示积分微分前后的变化,在波形图中显示输入输出信号的波形,观察虚拟积分微分器的结果,得出结果与理论分析的结论是一致的。设计的积分微分器能对正弦波、方波、三角波等波形进行正确显示和积分微分处理。关键词:积分器;微分器;LabVIEWTheDesignofAnalogCircuitExperimentSystemBasedonLabVIEWABSTRACTVirtualinstrumentistheinstrumenttechnologydevelopmentfocus,LabVIEWisagraphicalprogramminglanguage,asdataacquisitionandinstrumentcontrolsoftwareiswidelyusedinindustry,academia,researchtopic.ThepapermainlystudiesthedesignofanalogcircuitbasedonLabVIEW,andthedesignprocessofvirtualdifferentialdeviceusesthegraphicalprogramminglanguageLabVIEW,throughvariouswaveformsignalinput,andsetvariousparameters,useasignalselectortoselecttheinputsignal,throughtheprocessoftreatmentinthefrontpaneldisplayintegralanddifferentialchangeinthewaveformdisplay,anddisplaytheinputandoutputsignalonthewaveformgraph,analyzethevirtualintegraldifferentialactuatorresult,theresultiscommonwiththeconclusionofthetheoreticalanalysis。Inthispaper,thedesignofintegraldifferentialdevicecapableofsinewave,squarewave,trianglewave,waveformdisplaycorrectlyanddifferentialtreatment.Keywords:IntegralDevice;DifferentialDevice;LabVIEW目录TOC\o"1—3"\h\z\u19771摘要I1147ABSTRACTII298941绪论1279531。1课题研究的意义1178511.2本文研究内容1239752虚拟仪器简介3154812。1虚拟仪器的概念3191242。2虚拟仪器发展史411842.3图形化编程语言LabVIEW5150972。4LabVIEW的开发环境6301513积分微分器介绍7197753.1积分微分运算的原理727823。2积分微分器的设计方法8130223。3积分微分器的应用9208544模拟电路实验系统仿真设计11179994.1虚拟仪器VI的设计11308664.2信号发生器的实现11264514。2。1基本信号发生器的实现1288704.2.2模拟信号发生器的实现13208244。3积分微分器的设计14319864.3。1积分微分器流程设计1415394。3.2积分微分器前面板的实现16282574。3.3积分微分器流程图设计17299594。3.4积分微分器的调试过程及其结果186444。4本章小结2050395结论与展望2365155。1结论23270825。2展望2327535参考文献241747致谢251绪论1.1课题研究的意义目前,电路和电子技术实验是电类专业学生必修并且非常重要的专业基础课,实验中常用的传统仪器包括:数字万用表、函数信号发生器、示波器、直流稳压电源等。很多专业性实验还需要一些特殊仪器,比如波特仪、直流电桥、逻辑分析仪等。熟练使用仪器是学生通过实验必须具备的一个基本技能,但实验中往往由于学生紧张,仪器较多,结果学生经常忙于调节仪器而没有太多时间专注于对实验原理的研究和实验结果的分析,导致实验的效果并不理想,也不利于学生更深层次的学习和提高。虚拟仪器的设计思想是基于计算机的强大功能,采用接口标准化的硬件进行数据采集,而对数据的分析、处理、显示则通过软件编程实现,即采用“软面板",用户自己定义仪器功能。我们可以在通过电路实验练习掌握传统仪器,在这种基础之上接触并学习虚拟仪器,并将虚拟仪器运用到电子技术实验中,就可以减少对仪器问题的困惑,而使我们分析及解决问题能力得以提升,并且可以早点通过使用虚拟仪器提前与专业接触,更有利于与后续专业课的学习和提高[1].积分微分器的实质是对信号进行处理,传统的积分微分器的设计是用窗口函数将理想积分微分器的脉冲响应截断来实现的,不同的窗口函数以及不同的窗口宽度对设计的积分微分器都有较大的影响.对于虚拟仪器来说,则具有丰富的函数功能、数值分析、可编程性以及直观等众多优势。因此,研究虚拟积分微分器具有十分重要的实际意义.LabVIEW是一种图形化编程语言,作为数据采集和仪器控制软件的标准被广泛应用于工业界、学术界和研究性实验室.LabVIEW是功能强大、灵活的多平台仪器和分析软件系统。通过采用虚拟仪器开发语言LabVIEW开发一个积分微分器,阐述基于LabVIEW的虚拟仪器在模拟电路实验中应用的实践性,并完成系统的仿真调试,让学生能够真正地的理解并完全地掌握LabVIEW技术.1.2本文研究内容本文要求结合虚拟仪器技术和软件编程技术完成设计并实现一个虚拟积分微分器,完成对系统的检测与调试。整个系统分两个部分,即硬件部分与软件部分,硬件部分主要由计算机和数据采集模块组成.数据采集模块可采用模拟仿真信号或者数据采集卡,本文重点放在积分微分器的参数设置和功能设计的实现。本文首先进行虚拟积分微分器的整体设计,掌握虚拟仪器的软件编程环境LabVIEW的使用。然后,用LabVIEW编程实现虚拟仪器的采集模块、参数测量模块、积分微分处理模块的设计.再进行检测仿真。本文文章的主要安排:第一章:绪论部分,综述本文的可以研究意义、内容及其背景。第二章:虚拟仪器的发展史和概念,以及图形化编程语言LabVIEW软件的基本介绍。第三章:积分微分器的介绍,比如积分微分运算、原理及其应用等.第四章:本文的关键部分,即对虚拟仪器VI的设计和积分微分器的设计,主要是前面板和程序框图的设计,将所设计的虚拟积分微分器进行实验,验证所设计的虚拟积分微分器运行可靠.第五章:论文总结.2虚拟仪器简介虚拟仪器是上世纪90年代初期出现的一种新型仪器,是现代实验室的基础.虚拟仪器由计算机、软件、模块式硬件组成,这些软硬件组合并它配置后模拟了传统的硬件仪器功能.虚拟仪器也称为LabVIEW程序.由于其功能是由用户软件定义的,所以虚拟仪器功能非常灵活、强大而又经济。因此,虚拟仪器代表了当前测试仪器发张的方向之一,使人类的测试技术进入了一个新时代。2。1虚拟仪器的概念虚拟仪器简称VI,是美国国家仪器公司于1976年最早提出的[2]。它既具有传统仪器的功能,又区别于其他系统仪器,它能充分发挥利用计算机技术的应用,使仪器的测量和测试以及调试仿真等变得简单.虚拟仪器是现代实验室的基础,其由计算机、应用软件和模块式硬件组成,也称之为LabVIEW程序。由于其功能是由用户软件定义的,所以虚拟仪器功能非常灵活、强大而又经济。虚拟仪器是指通过应用程序把计算机的功能模块和仪器硬件部分结合在一起,用户通过虚拟前面板来操作计算机从而完成对信号的采集、分析、仿真、显示等。虚拟仪器的实质就是充分利用计算机技术来实现传统仪器的功能.系统框图如图2—1所示。应用软件开发应用软件开发仪器驱动程序通信管理仪器驱动程序通信接口仪器接口VXIGPIB其他串口图2-1虚拟仪器系统框图2。2虚拟仪器发展史虚拟仪器是现代实验的基本组成部分,虚拟仪器的发展主要经历了五个重要的时代,下边将各个时代的主要仪器代表作出简单介绍。第一模拟时代以电磁感应基本原理为基础的指针式仪器,如电流电压表,万用表等。第二代分立元件式仪器20世纪50年代出现电子管、60年代出现晶体管,从此测试仪器就进入了电子晶体管时代。第三代数字化仪器20世纪70年代,随着集成电路的出现,出现了以集成芯片为基础的第三代仪器,代表有数字万用表、数字频率仪等.第四代智能仪器微电子技术的微处理器的出现,使虚拟仪器进入了以微处理器为基础的时代。虚拟仪器虚拟仪器出现在上世纪90年代,它是一种新型仪器,它具有超越性,它将以前由硬件完成的信号处理工作交由计算机软件进行处理完成,从而使仪器的硬件功能的软件化,给测试带来了巨大的改进,可以说,虚拟仪器的诞生是对传统仪器概念的重大突破,是仪器领域的一次新的改革.因此,虚拟仪器代表了当前测试仪器发展的方向,使人类的测试技术进入了一个新时代。我国基本还处于传统仪器跟计算机仪器分离的状态,结合我国的基本情况,我们必须一边引进先进仪器设备,一边自行研究开发,才能使我国在虚拟仪器这块领域站住脚。发展基于计算机的插卡式硬件模块为主的测控技术,发展以图形化为基础的软件,充分利用我们现有的计算机及测控技术硬件,缩短与国际先进水平的差距.随着计算机跟测控技术的发展,虚拟仪器的性能、集成、网络等都将有所提升[3].虚拟仪器不仅能实现传统仪器的各种功能,而且还具有传统仪器无法比拟的优点。虚拟仪器与传统仪器的区别如表2-1所示.表2-1虚拟仪器与传统仪器的区别虚拟仪器传统仪器用户自定义仪器功能只有厂家才能定义仪器功能关键是软件,系统性能强关键是硬件,系统性能一般可与网络连接与其他设备连接受限制技术更新时间短技术更新时间长数据可以编程、打印数据无法进行此操作维护费用较低维护费用高价格低廉价格昂贵开放、灵活性强封闭性、配合差2。3图形化编程语言LabVIEWLabVIEW是LaboratoryVirtualInstrumentEngineeringWorkbench的缩写,它是一个使用图形符号来编写程序的编程环境。LabVIEW是一个功能强大的仿真工具,常用于从外部数据源获取数据,并拥有众多与这些功能实现相关的VI.LabVIEW可以通过GPIB总线实现数据的传输[3].它它不同于传统的编程语言,如C语言,C++或Java,这些语言使用文本方式编程。然而,LabVIEW不仅仅是一种编程语言,它还是为科学家和工程师等设计的一种编程开发环境和运行系统,编程知识这些人工作的一部分.主要以框图形式编写程序,用于数据采集、仪器控制等领域,作为一个比较完整的软件开发环境,它为我们提供了实现仪器编程和数据采集系统的简化方法,可以大大提高工作效率.一个完整的LabVIEW程序包括三个主要的组成部分,即前面板、框图和图标。简单的说,前面板就是一个窗口,用户通过它与程序交互。当运行VI时,必须打开前面板,以便向执行程序输入数据。前面板主要由控件和指示器组成,控件可以让用户输入数值,向VI的框图提供数据。指示器显示由程序产生的输出信息。用户可以使用鼠标和键盘进入输入,然后在屏幕上观察程序产生的结果。框图保存LabVIEWVI的图形源代码,由LabVIEW的图形化编程语言构成。框图是实际可以执行的程序,前面板上的对象对应于框图上的终端,这样数据可以从用户传送到程序及再传回用户.图标是VI的图形表示,用于把LabVIEW程序变成一个子程序,以便在其他程序中调用。2。4LabVIEW的开发环境所有的labVIEW应用程序都是由前面板、流程图以及图框三部分组成[4]。(1)前面板:是图形用户界面,用户输入控制和输出显示来构成.控制是用户输入数据到程序的接口,而显示是输出程序产生的数据接口。控制和显示是用各种图形形式显示在前面板,具体表现为:旋钮、开关、图形图标以及其他控件和显示的对象等,这使用户界面更加直接观察和理解。(2)程序框图:由节点、端点、图框和连接线四种元素构成。labVIEW有两种节点类型,函数节点和子VI节点.labVIEW以编译好的机器代码供用户使用,而子VI节点是以图形语言形式提供给用户,用户可访问和修改任一子VI的节点代码,但无法对函数节点进行修改。图框是labVIEW实现程序结构控制命令的图形表示.如循环控制和顺序控制等,编程人员可以使用它们控制VI程序的执行方式。代码接口节点是框图程序与用户提供C语言文本程序的接口.3积分微分器介绍3.1积分微分运算的原理积分电路积分电路可以完成对输入电压的积分运算,即其输出电压与输入电压成正比.反向积分电路如图所示,电容C引入交流并联电压负反馈,运放工作在线性区[5]。由于积分运算是对瞬时值而言的,所以各电流电压均采用瞬时值符号.积分电路如图3-1所示,若输入电压为阶跃电压,并设定uc=0,则t≥0时,由于u1=E,所以,(3-1)图3—1积分电路微分电路微分是积分的逆运算,输出电压与输入电压呈微分关系。微分电路如图3-2所示。图3—2微分电路图中R引入并联电压负反馈,运放工作在线性区[5]。因为i-=0,并且“-"端是虚地,所以(3-2)可见u0与输入电压uI成正比。3.2积分微分器的设计方法基于DSPbuilder数字积分微分器的设计首先要利用Matlab对所设计的系统进行理论数值仿真,在此基础上进行数字保密系统的设计。该设计主要是利用Matlab中的DSPBuilder工具箱。在该设计过程中,用到加法器、乘法器、减法器、放大器、延时器、数据选择器、积分器、阶跃脉冲信号发生器、微分器等。该方法设计出的积分微分器主要应用于数字仿真,也可用于线性和非线性微分方程的数字求解[6]。(2)虚拟积分微分器主要实现对波形进行积分和微分处理,在信号积分微分器界面中,通过对前面板上控件的设定或者改变信号的类型、频率、相位、幅度和偏移量等,采用LabVIEW中设计的典型信号模块来实现对仿真信号的生成.将仿真信号生成和函数处理经过必要的连接就构成了积分微分器流程图,同时也可对延时时间进行设置,然后在波形显示控件中会分别显示信号积分微分前后波形的变化。在信号显示过程中可以通过信号重置按钮来选择更换信号的类型.3.3积分微分器的应用(1)微分器在跟踪系统的应用微分器在迅速精确地获取被跟踪目标的速度和加速度对于一些系统是至关重要的,如防御系统中的导弹拦截系统.在大多数情况下,采用差分方法来近似的估计信号的导数。通常情况下,由于噪声存在于几乎所有的信号中,通过这种方法不能正确地估计出信号的导数.卡尔曼滤波器可以被用来抑制扰动,同时求取信号的导数,然而,需要有对象的模型,这限制了信号的通用性,需要对被跟踪目标进行详细的了解,采用不基于对象模型的信号导数求取方法,设计各种适合于工程实际的微分器就可以解决这种问题[7]。(2)微分器在汽轮机上的应用在汽轮机的转速反馈通道上设置微分器,来加快调节系统的反应速度、提高系统的性能是设计中常用的方法。微分器在汽轮机调节系统中已有多处应用:目前汽轮发电机组的容量越来越大,转子时间常数相对减小,甩负荷后的最高飞升转速提高,对汽轮发电机组的安全构成严重威胁,为避免甩负荷后的最高飞升转速超过极限值,往往在汽轮机转速反馈通道上设置微分器,来增宽频带,加快调节系统的反应速度在功频电液调节系统中,在转速反馈通道中设置微分器,以获取角加速度信号来克服“反调”现象门;为抑制电力系统的低频振荡,提高电力系统的稳定性,在转速反馈通道上并联二阶超前网络,用来补偿调速器和汽轮机的相角滞后,提供正值阻尼力矩,这一环节亦具有微分器的作用。微分器能够提高系统的高频增益,虽然在应用中常以实际微分来代管理想微分环节,但对高频信号仍有一定的放大作用。(3)智能积分器在稳态误差中的应用在传统控制中,为了消除稳态误差,常常根据参考输入的形式,采用串接适量的积分器的方法.这种方法由于积分器的相位滞后特性,在暂态过程中积累了大量没用的误差信号,使系统的暂态响应变坏,甚至影响系统的稳定性。根据要求设计一个智能积分器,既能实现稳态无差,又能将系统中的误差信息丢掉,系统仅仅记忆保留有效的误差信息,从本质上消除了积分作用对暂态响应的不利影响,同时还发挥了积分的积极作用.当系统处于稳态无干扰时,系统等效于开环系统.4模拟电路实验系统仿真设计模拟电路是指处理模拟信号的电子电路,其中模拟信号是指时间跟幅度都连续的信号(连续的含义是在某一取值范围内可以取无穷多个数值)。模拟信号中当图像信息和声音信息发生改变时,信号的波形也会改变,即模拟信号待传播的信息包含在波形之中(信息变化规律直接反映在模拟信号的幅度、频率、相位的变化上)。本设计中将通过对信号发生器及积分微分器的设计来实现对模拟电路实验的仿真。4。1虚拟仪器VI的设计(1)在虚拟仪器前面板设置窗口控件,并创建“流程图”中的端口。首先在前面板开发窗口使用工具模块中的相应工具,从控制面板中取出和放置好所需要的软件,进行控件属性参数设置,标贴文字说明标签。前面板是模仿实际仪器的面板,通过鼠标和键盘为控制对象输入数据,然后在计算机屏幕上显示结果.(2)编写试验系统的流程图,虚拟仪器从流程图中接受命令。在流程图编辑窗口,放置节点、图框,并创建前面板控件,在流程图编辑窗口使用工具模板中相应工具,从Functions模板中取用并放置好所需要的图标,它们是流程图中的“节点"、“图框”。(3)数据流编辑,是使用连接工具按数据流的方向将端口、节点、图框相连,实现数据从源头按规定的运行方式达到目的终点.(4)运行检验,有两种检验方法,即仿真检验和实测检验。(5)数据观察。当检验观察中发现错误时,用鼠标点击“HighlightExecution"按钮,观察数据流中各个节点的数值。(6)命令存盘,保存设计好的虚拟仪器VI。4。2信号发生器的实现信号发生器是指产生所需参数的电测信号的仪器。按信号波形可分为正弦信号、函数信号、脉冲信号和随机信号等四大类。信号发生器又称为信号源或者振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波、正弦波的电路被称为函数信号发生器。4.2。1基本信号发生器的实现基本信号发生器是用来产生各种常用的信号波形,包括正弦信号、余弦信号、方波信号、三角波信号、锯齿波信号等。用到的函数是BasicFunctionGenerator函数,其中用输入控件来控制信号的类型、频率、幅值和相位等参数,用图表显示信号波形.基本信号发生器的前面板及流程图如图4-1,4—2所示。图4-1基本信号发生器前面板图图4—2基本信号发生器流程图4。2。2模拟信号发生器的实现模拟信号发生器用函数SimulateSignal来实现,将信号的幅值、频率、相位等参数放在一个簇来完成,模拟信号波形用WaveformGraph来显示,通过改变信号的参数可以得到不同的波形。模拟信号发生器的前面板和流程图如图4—3,4-4所示.图4-3模拟信号发生器前面板图图4—4模拟信号发生器流程图4。3积分微分器的设计(1)仪器面板图采用WaveformGraph来显示信号积分微分前后的波形,信号类型可以选择波形的类型(如正弦波、方波、三角波或锯齿波),可以通过前面板上的按钮(幅值、频率、相位和偏移量)来设定仿真信号的一些参数[9]。(2)仿真信号的生成采用LabVIEW中设计的典型信号生成模块。将仿真信号生成和函数处理经过必要的连接放入一个Whlie循环结构中就构成了积分微分器流程图。4.3。1积分微分器流程设计积分微分器的流程图如图4—5所示。开始开始进入信号积分微分进入信号积分微分选择信号的类型选择信号的类型波形参数设定波形参数设定信号在波形图中的显示NN是否重置是否重置YY波形继续扫描波形继续扫描返回返回图4—5积分微分器流程图程序运行过程如图4-6所示:波形的选择(正弦波、方波、三角波等)程序运行设置参数(延时、幅值、频率、相位、偏移量)波形的选择(正弦波、方波、三角波等)程序运行设置参数(延时、幅值、频率、相位、偏移量)积分微分处理环节观察经过积分微分前后波形积分微分处理环节观察经过积分微分前后波形信号重置信号重置图4-6程序运行过程图参数设置主要对输入波形的类型还有参数进行设置,如正弦波、方波、三角波、锯齿波等设置,还有进行参数的设置,如频率、振幅、偏移量、延时、相位进行设置。参数设置如图4-7和表4—1所示。图4—7参数设置图表4-1信号参数参数说明信号类型模拟信号的类型,如正弦波、方波等相位(Phase)指定信号的初始相位,单位为度偏移量(Offset)信号的直流偏移量频率(Frequency)波在单位时间完成周期性变化的次数幅值(Amplitude)单位周期出现的最大值,或者叫峰值重置信号重新对输入信号进行设置4。3。2积

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论