目 录
摘 要 I
Abstract II
第一章 绪论 1
1.1选题背景及意义 1
1.2设计内容 1
1.3设计思想 2
第二章 MATLAB简介 3
2.1 MATLAB程序设计 3
2.2 Simulink仿真 4
2.2.1 Simulink 启动 4
2.2.2 Simulink 模块库及模块操作 4
2.2.3 仿真参数设置 6
2.3图形用户界面(GUI) 7
第三章 单相桥式全控整流电路进行simulink电路仿真设计 8
3.1单相桥式全控整流电路(电阻性负载)工作原理 8
3.2建立仿真模型及仿真实现 9
3.3仿真结果分析及总结 16
总 结 17
致 谢 18
参考文献 19
1.2设计内容
(1)在了解MATLAB语言的基础上进一步掌握和精通MATLAB;
(2)利用MATLAB强大的程序设计和仿真分析功能完成常见的《电路原理》的设计及仿真。
(3)学会使用Sinulink和GUI的基本应用和设置。
本设计利用MATLAB及Simulink仿真软件强大的图形处理功能,符号运算功能和数值计算功能,实现常见的《电路原理》如编码器、译码器、数据选择器、触发器、锁存器等《电路原理》的设计及仿真。本设计通过Simulink仿真软件使用常见的与、或、非等基本逻辑单元,延时信号、时钟信号等信号源和示波器完成以上各种《电路原理》的设计和仿真,同时通过MATLAB汇编语言实现以上各基本《电路原理》的逻辑表达式,并在给定输入信号的情况下完成并验证各基本《电路原理》的功能。通过程序设计和波形输入输出仿真两种方法来共同完成各种基本的《电路原理》的设计。
1.3设计思想
本设计以基于Matlab对单相桥式整流电路进行了simulink电路设计和仿真,同时以MATLAB汇编语言和各种基本组合《电路原理》的逻辑表达式为基础实现组合《电路原理》的设计并验证其逻辑功能。
第二章 MATLAB简介
2.1 MATLAB程序设计
MATLAB有两种工作方式:一种是交互式的命令行工作方式;另一种是M文件的程序工作方式。在前一种工作方式下,MATLAB被当做一种高级数学演算纸和图形表现器来使用,MATLAB提供了一套完整的而易于使用的编程语言,为用户提供了二次开发的工具,下面主要介绍MATLAB控制语句和程序设计的基本方法。
用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。两者区别在于:命令文件没有输入参数,也不返回输出参数;而函数文件可以输入参数,也可以返回输出参数。命令文件对MATLAB工作空间的变量进行操作,而且函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。M文件可以使用任何编辑程序建立和编辑,而一般常用的是使用MATLAB提供的M文件窗口。
首先从MATLAB命令窗口的File菜单中选择New菜单项,在选择M-file命令,将得到的M文件窗口。在M文件窗口输入M文件的内容,输入完毕后,选择此窗口File菜单的save as命令,将会得到save as 对话框。在对话框的File 框中输入文件名,再选择OK按钮即完成新的M文件的建立。
然后在从MATLAB 命令窗口的File 菜单中选择Open对话框,则屏幕出现Open对话框,在Open对话框中的File Name 框中输入文件名,或从右边的directories框中打开这个M文件。在M文件所在的目录,再从File Name 下面的列表框中选中这个文件,然后按OK按钮即打开这个M文件。在M文件窗口可以对打开的M文件进行编辑修改。在编辑完成后,选择File菜单中的Save命令可以把这个编辑过的M文件报存下来。
当用户要运行的命令较多或需要反复运行多条命令时,直接从键盘逐渐输入命令显得比较麻烦,而命令文件则可以较好地解决这一问题。我们可以将需要运行的命令编辑到一个命令文件中,然后再MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%一阶RC电路的仿真%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear all;
%% =====================参数选择=============================%%
R=100; %电阻值
C=1e-6; %电容值
sigma=1e-6;
error=1e-10;
%% =====================中间值计算===========================%%
Tmax=sqrt((-log(error))*2*sigma^2)+R*C;
Wmax=sqrt(-(log(error/(sqrt(2*pi*sigma^2))))*2/(sigma^2));
deltt=pi/Wmax;
deltw=2*pi/Tmax;
N=ceil(2*pi/(deltt*deltw));
%% =====================重新调整参数=========================%%
Tmax=N*deltt;
deltw=2*pi/Tmax;
%w=0:deltw:(N-1)*deltw;
w1=0:deltw:(floor(N/2)-1)*deltw;
w2=(-floor(N/2)-1)*(deltw):deltw:-deltw;
w=[w1,w2];
t=0:deltt:((N-1)*deltt);
%% ====================高斯脉冲时域波形======================%%
figure(1);
Vs=1*exp(-t.^2/(2*sigma^2));
plot(t,Vs);
%% ====================高斯脉冲频域波形======================%%
figure(2);
GuassW=fft(Vs); %%频谱凹型
%GuassW=fftshift(GuassW);
plot(w,abs(GuassW));
%% ======================电路输出波形=======================%%
figure(3);
Hw=1./(1+1j*w*R*C); %%%RC传输函数
%%plot(w,abs(Hw));
VoW=GuassW.*Hw;
plot(t,ifft(VoW));
Vot=ifft(VoW);
%% =====================保存频域输出结果====================%%
save('projectFD','t','Vot');