基于MATLAB的逆变电源研究(含完整程序 中英文翻译)

上传人:仙*** 文档编号:28428193 上传时间:2021-08-28 格式:DOC 页数:41 大小:909.21KB
返回 下载 相关 举报
基于MATLAB的逆变电源研究(含完整程序 中英文翻译)_第1页
第1页 / 共41页
基于MATLAB的逆变电源研究(含完整程序 中英文翻译)_第2页
第2页 / 共41页
基于MATLAB的逆变电源研究(含完整程序 中英文翻译)_第3页
第3页 / 共41页
点击查看更多>>
资源描述
目录1 方案论证21.1 设计实现要求21.2 设计方案确定22 原理简介32.1 升压斩波电路32.1.1 升压电路原理图32.1.2 原理分析32.2 三相电压型桥式逆变电路42.2.1 逆变电路原理图42.2.2 逆变电路原理42.3 SPWM逆变器的工作原理52.4 Simulink仿真环境53 仿真建模53.1 斩波电路仿真建模63.2 逆变电路仿真建模73.3 逆变电源仿真建模84 仿真实现94.1 斩波电路仿真实现94.2 逆变电路仿真实现104.3 逆变电源仿真实现105 心得体会12参考文献12附录 逆变电源研究1 方案论证1.1 设计实现要求本次设计要求对逆变电源进行Matlab仿真研究,输入为100V,输出为380V、50Hz三相交流电,采用PWM斩波控制技术,建立Matlab仿真模型并得到实验结果。1.2 设计方案确定由于要求的输出为380V、50Hz三相交流电,显然不能直接由输入的100V直流电逆变产生,需将输入的100V直流电压通过升压斩波电路提高电压,再经过逆变过程及滤波电路得到要求的输出。根据课本所学的,可以采用升压斩波电路和三相电压型桥式逆变电路的组合电路,将升压后的电压作为逆变电路的直流侧,得到三相交流电,同时采用PWM控制技术,使其频率为50HZ。根据对输出电压平均值进行调制的方式不同,斩波电路分为脉冲宽度调制(PWM)、频率调制和混合型三种。在此使用第一种方法,也是应用最多的方法。通过控制开关器件的通断实现电能的储存和释放过程,输出信号为方波,调节脉宽可以控制输出的电压的大小。根据直流侧电源性质不同,逆变电路可分为电压型逆变电路和电流型逆变电路。这里的逆变电路属电压型。采用等腰三角波作为载波,用SPWM进行双极性控制。该电路的输出含有谐波,除了使波形具有对称性减少谐波和简化控制外,还需要专门的滤波电路进行滤波。滤波电路采用RLC滤波电路。直流斩波电路采用PWM斩波控制,输出的方波经过滤波电路后变为直流电送往逆变电路。逆变采用PWM逆变电路,采用SPWM作为调制信号,输出PWM波形,再经过滤波电路得到380V、50Hz三相交流电。系统总体框图如图1-1所示。图1-1 系统总体框图最后通过MATLAB集成环境simulink进行仿真,验证结果。2 原理简介2.1 升压斩波电路2.1.1 升压电路原理图图2-1 升压斩波电路原理图2.1.2 原理分析 假设L值、C值很大,V通时,E向L充电,充电电流恒为I1,同时C的电压向负载供电,因C值很大,输出电压uo为恒值,记为Uo。设V通的时间为ton,此阶段L上积蓄的能量为EI1ton,V断时,E和L共同向C充电并向负载R供电。设V断的时间为toff,则此期间电感L释放能量为 ,稳态时,一个周期T中L积蓄能量与释放能量相等,,化简得。输出电压高于电源电压,故称升压斩波电路,也称之为boost变换器。T与的比值为升压比,将升压比的倒数记作,由于+=1,故。升压斩波电路能使输出电压高于电源电压的原因 :L储能之后具有使电压泵升的作用,并且电容C可将输出电压保持住。2.2 三相电压型桥式逆变电路2.2.1 逆变电路原理图图2-2 三相桥式逆变电路原理图2.2.2 逆变电路原理 该电路采用双极性控制方式,U、V和W三相的PWM控制通常公用一个三角载波,三相的调制信号、和一次相差120。U、V和W各相功率开关器件的控制规律相同,现以U相为例来说明。当时,给上桥臂以导通信号,给下桥臂以关断信号,则U相相对于直流电源假想中点的输出电压。当HelpDemosSimulinkSimPowerSystemsGeneral Demos中的Three-Phase Two-Level PWM Voltage Source Converters。此电路采用了三相逆变桥集成块Universal Bridge 3 arms,滤波电路也已由Three-Phasse Parallel RLC Load模块构成,不需另加滤波电路。在此电路的基础上稍作修改,即构成三相桥式PWM型逆变电路模型,如图3-3所示。其中变压器仅起隔离作用,不对电压进行升降。图3-3 三相桥式PWM型逆变电路模型3.3 逆变电源仿真建模将斩波电路的输出接到逆变电路的输入,就得到逆变电源仿真模型,如图3-4所示。图3-4 逆变电源仿真模型4 仿真实现4.1 斩波电路仿真实现打开斩波电路窗口,根据参考资料设置初试参数,设置时双击元件图标。输入直流电设为100V,开关器件IGBT和二极管Diode使用默认参数。负载R=50 ,电感L=6e-04H(即0.6mH),电容C=3e-05F(即30uF)。设置PWM发生器周期Period为0.0001s,占空比Pulse Width(% of period)为84.1%,其他参数不变。单击Start simulation按键,开始仿真,双击示波器Scope,观察输出波形图。此时输出波形持续等副震荡,且幅值太高,很不理想。分析知升降压斩波电路中电感和电容值均应很大,将电容值改为500uF(C=5e-04F),电感值为3.8mH,观察波形,如图4-1 所示,输出电压约0.2s后稳定在630V。 图4-1逆变电路仿真波形通过几次调节各元件参数发现,改变电感和电容的值,输出电压稳定值也在变化。电容的作用主要是使输出电压保持住,电容值过小输出波形会持续震荡,应取较大,但过大的电容值会使输出电压稳定的时间太长。根据以上规律反复改变各元件参数,直到得到满意的结果。4.2 逆变电路仿真实现逆变电路中的参数主要有离散PWM生成器(Discrete PWM Generator)中的载波频率(Carrier frequency)、采样时间(Sample time)、调制参数(Modulation index)和输出电压频率(Frequency of output voltage),变压器(Transformer)中的绕组参数(Winding parameters),Three-Phasse Parallel RLC Load模块中的参考点相电压(Nominal phase-to-phase voltage)和频率(Nominal frequency)。由于要求输出交流电频率为50Hz,上述参数中的频率都应为50Hz。载波频率过小时,输出的波形有些跳动,和正弦波有一定的差距,如图4-2 逆变电路仿真波形所示。图4-2逆变电路仿真波形4.3 逆变电源仿真实现 首先应将斩波电路的输出电压调到630V左右,再对逆变电源进行仿真。反复调节参数知当斩波电路中PWM脉冲生成器的占空比达到84.1%时,输出的直流电压约为630V,此时的波形如图4-5 所示,输出电压先大幅震荡,大约0.2s后,稳定在630V左右。图4-3逆变电源斩波输出波形图4-4 逆变电源输出波形改变逆变电源仿真模型中的参数到要求值,单击Start simulation按键开始仿真,图4-4为逆变电源输出波形。有图可知,逆变电源输出三相交流电相电压波形幅值为311V,各相电压互差120,周期为0.02s即频率为50Hz,满足任务要求。5 心得体会通过本次电力电子技术课程设计,我学会了使用Matlab软件仿真集成环境Simulink进行仿真的基本操作方法,熟悉了用protel画电路图,也对斩波电路、逆变电源的原理有了进一步的理解。电力电子技术是我们非常喜欢的一门课程,学到的知识非常实用,这次课设让我把书本上的理论知识和实际电路仿真联系起来,在增强实践能力的同时,我也学到了运用matlab仿真电力电子电路,以后有很多电路我都可以做出仿真来。在做此次课程设计中,我还是遇到了很多问题的,比如画图时找不到IGBT元件,设定电感电容参数时花了好多时间,仿真时还找不到所需的元件,最后还是通过问同学和上网查资料才完成,还真有点辛苦。Matlab很强大,以后还要继续研究啊!参考文献1王兆安等.电力电子技术.北京:机械工业出版社,20072薛定宇.基于Matlab/Simulink的系统仿真技术与应用.北京:清华大学出版社,20063王丹力等.Matlab控制系统设计、仿真、应用.北京:中国电力出版社,20074周建兴等. MATLAB从入门到精通.北京:人民邮电出版社,20085陈国呈.PWM逆变技术及应用.北京:中国电力出版社,2007附录一:程序代码(1):clear all;t=-2*pi:0.01:2*pi;y=3*sin(2*t);plot(t,y);xlabel (时间);ylabel(信号强度);title(正弦信号);grid on;axis(-7 7 -3.5 3.5);实验结果:正弦序列:clear all;n=-20:20;y=sin(0.1*pi*n);stem(n,y);xlabel (n);ylabel(信号强度);title(正弦信号序列);axis(-20 20 -3.5 3.5);grid on;输出结果:程序代码(2):fs=100;%设定采样频率N=256;n=0:N-1;t=n/fs;x=sinc(2*pi*t-8); %生成sa信号subplot(311);plot(t,x);%作sa信号的时域波形xlabel(t);ylabel(y);title(sa信号sinc(2*pi*t-8)时域波形);grid on;y=fft(x,N);%进行N点fft变换mag=abs(y);%求幅值f=(0:length(y)-1)*fs/length(y);%进行对应的频率转换subplot(312);plot(f,mag);%做频谱图axis(0,100,0,20);xlabel(频率(Hz);ylabel(幅值);title(sa信号sinc(2*pi*t-8)时域波形幅频谱图N=256);grid on;z=angle(y);subplot(313);plot(f,z);%做相谱图axis(0,100,-5,5);xlabel(频率(Hz);ylabel(角度);title(sa信号sinc(2*pi*t-8)相频图N=256);grid on;波形:程序代码(3):function varargout = two(varargin)% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, two_OpeningFcn, . gui_OutputFcn, two_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before erzhi is made visible.function two_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.-%接下来是菜单的程序-function file_Callback(hObject, eventdata, handles)-%文件打开程序function open_Callback(hObject, eventdata, handles) name,path=uigetfile(*.bmp,载入图像);if isequal(name,0)|isequal(path,0) errordlg(没有选中文件,出错); return;else x=imread(path,name); axes(handles.axes1); imshow(x); handles.img=x; handles.noise_img=x; guidata(hObject,handles)end-function save_Callback(hObject, eventdata, handles)%文件保存 filename,pathname = uiputfile(*.bmp,图片保存为);if isequal(filename,pathname,0,0) errordlg(没有保存,出错); return;elsefile=strcat(pathname,filename);(handles.axes2);i=getimage(gca);imwrite(i,file);end-function exit_Callback(hObject, eventdata, handles)clc;close all;close(gcf);-%编辑菜单的程序-function edit_Callback(hObject, eventdata, handles)-function huidu_Callback(hObject, eventdata, handles)%灰度处理axes(handles.axes2);if isrgb(handles.img) y=rgb2gray(handles.img); %RGBimshow(y);else msgbox(这已经是灰度图像,转换失败);end -function liangdu_Callback(hObject, eventdata, handles)%亮度处理 prompt=输入参数1,输入参数2,输入gamma; defans=0 0.7,0 1,1; p=inputdlg(prompt,输入参数,1,defans); p1=str2num(p1); p2=str2num(p2); p3=str2num(p3); gamma=p3; x=(handles.img); y=imadjust(x,p1,p2,gamma); axes(handles.axes2); imshow(y);-function jietu_Callback(hObject, eventdata, handles)%截图set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);y=imcrop(handles.img);imshow(y); handles.Timage=y;-function fangda_Callback(hObject, eventdata, handles)-function lingjz_Callback(hObject, eventdata, handles)%邻近插值放大axes(handles.axes2);prompt=输入放大倍数:;defans=2;p=inputdlg(prompt,输入放大倍数,1,defans);p1=str2num(p1);y=imresize(handles.img,p1,nearest); %最近邻插值法放大imshow(y);-function shuangxianfa_Callback(hObject, eventdata, handles)%双线放大axes(handles.axes2);prompt=输入放大倍数:;defans=2;p=inputdlg(prompt,输入放大倍数,1,defans);p1=str2num(p1);y=imresize(handles.img,p1,bilinear); %最近邻插值法放大imshow(y); -function shuangsanci_Callback(hObject, eventdata, handles)%双三次放大axes(handles.axes2);prompt=输入放大倍数:;defans=2;p=inputdlg(prompt,输入放大倍数,1,defans);p1=str2num(p1);y=imresize(handles.img,p1,bicubic); imshow(y);-function suoxiao_Callback(hObject, eventdata, handles)%邻近插值缩小 axes(handles.axes2); prompt=输入放大倍数:; defans=0.2; p=inputdlg(prompt,输入放大倍数,1,defans);p1=str2num(p1);y=imresize(handles.img,p1,nearest); %最近邻插值法缩小 imshow(y);-function shuangxian_Callback(hObject, eventdata, handles)%双线性缩小axes(handles.axes2);prompt=输入放大倍数:;defans=0.2;p=inputdlg(prompt,输入放大倍数,1,defans);p1=str2num(p1);y=imresize(handles.img,p1,bilinear); %最近邻插值法缩小imshow(y); -function shuangsancisuox_Callback(hObject, eventdata, handles)%双三次缩小axes(handles.axes2);prompt=输入放大倍数:;defans=0.2;p=inputdlg(prompt,输入放大倍数,1,defans);p1=str2num(p1);y=imresize(handles.img,p1,bicubic); imshow(y); -function xuanzhuan_Callback(hObject, eventdata, handles)-function updown_Callback(hObject, eventdata, handles)%上下翻转axes(handles.axes2);x=(handles.img);if isrgb(handles.img) for k=1:3 y(:,:,k)=flipud(x(:,:,k);%上下翻转函数endimshow(y);else x=(handles.img); y=flipud(x); imshow(y);end-function leftright_Callback(hObject, eventdata, handles)%左右翻转axes(handles.axes2);if isrgb(handles.img) x=(handles.img);for k=1:3 y(:,:,k)=fliplr(x(:,:,k);%左右翻转函数endimshow(y);else x=(handles.img); y=fliplr(x); imshow(y);end-function zeft90_Callback(hObject, eventdata, handles)%左转90度axes(handles.axes2);x=(handles.img);y=imrotate(x,90); imshow(y);-function right90_Callback(hObject, eventdata, handles)%右转90度axes(handles.axes2);x=(handles.img);y=imrotate(x,-90); imshow(y);-function other_Callback(hObject, eventdata, handles)%任意角度旋转axes(handles.axes2);prompt=输入参数1:;defans=30;p=inputdlg(prompt,输入参数,1,defans);p1=str2num(p1);y=imrotate(handles.img,p1); imshow(y);-function gs_Callback(hObject, eventdata, handles)%加入高斯噪声 axes(handles.axes2); prompt=输入参数1:,输入参数2; defans=0,0.02; p=inputdlg(prompt,输入参数,1,defans); p1=str2num(p1); p2=str2num(p2); y=imnoise(handles.img,gaussian,p1,p2);imshow(y);handles.noise_img=y; guidata(hObject,handles);-function jy_Callback(hObject, eventdata, handles)%加入椒盐噪声prompt=输入参数1:; %对话框的设置,用户输入的是字符串defans=0.02; %缺省值p=inputdlg(prompt,输入参数,1,defans); p1=str2num(p1); %字符串转化为数值axes(handles.axes2);x=(handles.img);y=imnoise(x,salt & pepper,p1); imshow(y);handles.noise_img=y;guidata(hObject,handles);-function cx_Callback(hObject, eventdata, handles)%加入乘性噪声 axes(handles.axes2);prompt=输入参数1:;defans=0.02;p=inputdlg(prompt,输入参数,1,defans);p1=str2num(p1);y=imnoise(handles.img,speckle,p1);imshow(y); handles.noise_img=y;guidata(hObject,handles);-function zhifangtutongji_Callback(hObject, eventdata, handles)-function red_Callback(hObject, eventdata, handles)%R直方图set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);x=imhist(handles.img(:,:,1); %直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,xtick,0:50:255);-function gray_Callback(hObject, eventdata, handles)%G直方图set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);if isrgb(handles.img) x=imhist(handles.img(:,:,2); %直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,xtick,0:50:255);else msgbox(这是灰度图像,旋转失败);end-function blue_Callback(hObject, eventdata, handles)%B直方图set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);if isrgb(handles.img) x=imhist(handles.img(:,:,3); %直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%axis(0 255 0 150000);set(handles.axes2,xtick,0:50:255);%set(handles.axes2,ytick,0:2000:15000);else msgbox(这是灰度图像,旋转失败);end-function junheng_Callback(hObject, eventdata, handles)%直方图均衡set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);if isrgb(handles.img) a=histeq(handles.img(:,:,1); b=histeq(handles.img(:,:,2); c=histeq(handles.img(:,:,3); k(:,:,1)=a; k(:,:,2)=b; k(:,:,3)=c; imshow(k);elseh=histeq(handles.img); %直方图均衡imshow(h);end-%频谱分析-function pinpu_Callback(hObject, eventdata, handles)-function pinputu_Callback(hObject, eventdata, handles)%显示频谱图axes(handles.axes2);x=(handles.img);if isrgb(x) m=fft2(x(:,:,1); y=fftshift(m); imshow(log(abs(y),);else m=fft2(x); y=fftshift(m); imshow(log(abs(y),);end-function frequency_Callback(hObject, eventdata, handles)%低通滤波器axes(handles.axes2);x=(handles.img);if isrgb(x) msgbox(这是彩色图像,不能通过低通滤波器,失败);elsey1=imnoise(x,salt & pepper); % 叠加椒盐噪声f=double(y1); % 数据类型转换,MATLAB不支持图像的无符号整型的计算g=fft2(f); % 傅立叶变换g=fftshift(g); % 转换数据矩阵M,N=size(g);nn=2; % 二阶巴特沃斯(Butterworth)低通滤波器d0=10; %截止频率为10m=fix(M/2); n=fix(N/2);for i=1:M for j=1:N d=sqrt(i-m)2+(j-n)2); h=1/(1+0.414*(d/d0)(2*nn); % 计算低通滤波器传递函数 result(i,j)=h*g(i,j); endendresult=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2);imshow(y3); % 显示滤波处理后的图像end-function gaotong_Callback(hObject, eventdata, handles)%高通滤波器axes(handles.axes2);x=(handles.img);if isrgb(x) msgbox(这是彩色图像,不能通过高通滤波器,失败);elsey1=imnoise(x,gaussian); %加高斯噪声f=double(y1); % 数据类型转换k=fft2(f); % 傅立叶变换g=fftshift(k); % 转换数据矩阵M,N=size(g);nn=2;d0=3; %截止频率为3m=fix(M/2); n=fix(N/2);for i=1:M for j=1:N d=sqrt(i-m)2+(j-n)2); % 计算高通滤波器传递函数 if d=d0 h=0; else h=1; end result(i,j)=h*g(i,j); endendresult=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2);imshow(y3); end-%接下来这段程序是灰度图像处理程序-function huiduchuli_Callback(hObject, eventdata, handles)-function erzhituxiang_Callback(hObject, eventdata, handles)%二值图像axes(handles.axes2);x=(handles.img);if isrgb(x) msgbox(这是彩色图像,不能转换为二值图像,转换失败);elsej=im2bw(x);imshow(j);end-function tuxiangfushi_Callback(hObject, eventdata, handles)%图像腐蚀axes(handles.axes2);x=(handles.img);if isrgb(x) msgbox(这是彩色图像,不能进行图像腐蚀,失败);elsej=im2bw(x);se=eye(5);bw=bwmorph(j,erode);imshow(bw);end-function suoyintuxiang_Callback(hObject, eventdata, handles)%创建索引图像axes(handles.axes2);x=(handles.img);if isrgb(x) msgbox(这是彩色图像,不能创建索引图像,创建失败);elsey=grayslice(x,16);axes(handles.axes2);imshow(y,jet(16);end-%这段是颜色模型的转换-function ysmx_Callback(hObject, eventdata, handles)-function hsv_Callback(hObject, eventdata, handles)%RGB图像转HSVaxes(handles.axes2);x=(handles.img);if isrgb(x) HSV=rgb2hsv(x); imshow(HSV);else msgbox(这是灰度图像,不能转换,转换失败);end-function ntsc_Callback(hObject, eventdata, handles)%RGB转NTSCaxes(handles.axes2);x=(handles.img);if isrgb(x)ntsc=rgb2ntsc(x);imshow(ntsc);else msgbox(这是灰度图像,不能转换,转换失败);end-function ycbcr_Callback(hObject, eventdata, handles)%RGB转YCBCRaxes(handles.axes2);x=(handles.img);if isrgb(x)ycbcr=rgb2ycbcr(x);imshow(ycbcr);else msgbox(这是灰度图像,不能转换,转换失败);end-%这是滤波程序-function lvbo_SelectionChangeFcn(hObject, eventdata, handles)str=get(hObject,string);set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);i=handles.noise_img;if isrgb(i) a=handles.noise_img(:,:,1);b=handles.noise_img(:,:,2);c=handles.noise
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!