信号处理仿真及应用实验指导书
实验一 电路的建模与仿真
——MATLAB程序设计
一、实验目的:
1、熟悉MATLAB命令和编辑、运行、调试环境; 2、编写M文件,实现电路仿真。
二、实验原理与方法:仿真RLC电路的响应,要求运用电路分析知识编写M文件,计算电流,并绘制出图形。 二、实验内容及步骤:
方法一:采用函数文件形式进行仿真(参考教材P18例子)
1、如下图所示电路的初始能量为零,t=0时刻,将一个25mA的直流源作用到电路上,其中电容C=0.1F,电感L=1H,电阻R=4?,画出图中电感L支路上电流iL的图形。
I t=0 iC CiL L iR R
列写出关于电感L支路上电流iL的微分方程 2、根据建模分析 3、进行MATLAB仿真建立M文件,运行求解微分方程 4、绘制电感支路电流图形
方法二、采用MATLAB函数dsolve进行仿真
1、运用电路分析知识建立电路模型
如上图所示电路的初始能量为零,t=0时刻,将一个25mA的直流源作用到电路上,其中电容C=25nF,电感L=25mH,电阻R=400?(注意该参数与前面的参数不同)。列写出关于电感L支路上电流iL的微分方程
因为电路初始能量为0,而且电感上的电流不能突变,所以在开关打开瞬间电感上的电流iL(t)?0(t?0),电感上的电压VL(t)?0(t?0),又VL(t)?L*d(iL)/dt,所以:
diLdt(0)?0 (1)
?根据电路图及基尔霍夫电流定律可得:
iL?iR?iC?I (2)
其中,iR,iC的表达式分别如下:
iR?VR,iC?CdVdt (3)
在上式中,V为电阻R两端电压,同时也就是电容两端电压,又有如下式关系:
V?LdiLdt
dVdt?LdiLdt22 (4)
将(3)式与(4)式依次代入(2)式,可得如下表达式:
diLdt22?1diLRCdt?iLLC?ILC
2、进行MATLAB仿真建立M文件,运行求解微分方程 desolve:求解微分方程符号的一般指令,其通用格式为: r?dsol(v'e1e,q2e?,?q?','con1d,c?o?2n?,d
v其中,eq1,eq2,?分别代表按序排列的不同微分方程,cond1、cond2分别代表微分方程式的初始条件,v代表微分方程中的独立变量(其默认独立变量为t)。此外指令中用到字母D,代表与独立变量有关的微分,例如:DiL代表式子:d(iL)/dt;如D后面跟有数字n,则代表进行n次微分,没有则为默认的一次微分。
3、绘制电感支路电流图形
ezplot:作图指令,专门用于函数作图,通用格式为:ezplot(f,[min,max]) 其中,f代表函数,[min,max]代表函数中变量的范围。
在此例中t的范围很小,是为了观察iL在电路加上电流I的瞬间的变换情况。 三、实验思考:
1、基尔霍夫电流定律 2、命令行与M文件的区别
实验二 正弦稳态电路仿真
—— SIMULINK实现
一、实验目的:熟悉SIMULINK常用模块。建立含受控源的电路模型并进行仿真。 二、实验原理:仿真正弦稳态电路 三、实验内容及步骤:
1根据电路图建立SIMULINK电路模型
如图所示电路,已知C1=0.5F,R2=R3=2?,L4=1H,Us=10cost,Is(t)=5cos2t,求b,d两点间的电压
2建立SIMULINK电路模型
新建一个名为sy02.mdl的仿真模型文件,需要选用以下模块并设置其参数
a C1 + Us b R2 c VC Voltage Source模块:位于SimPowerSystems节点下的Electrical Sources模块库内,代表一个理想交流电压源
AC Current Source 模块:位于SimPowerSystems节点下的Electrical Sources模块库内,代表一个理想交流电压源。
Voltage Measurement 模块:位于SimPowerSystems节点下的Measurements模块库内,用于测量所在支路的电压值。
Scope 模块:位于Simulink节点下的Sink模块库内,用于显示输出图形,功能相当于一个示波器。
Series RLC Branch模块:基本电路
为了观察运行仿真后的输出结果,还应将模型编辑窗口菜单栏中“Simulation/ Simulation Parameters?项”的“Solver选项卡”中所含的“Start time参数”设置为0,“Stop time 参数”设置为20,这样可以使得仿真时间从0s到20s
此外还需要双击“Scope”模块图标,在弹出的“示波器”显示图框中单击parameters图标,将打开的对话框“Data history”页中的“Limit data points to last”选中,将其参数改为50000。这是为了“示波器”保存足够的显示数据。应注意的是该参数值的设置越大所占用的内存越大,会影响到仿真的速度,所以选择参数时应适当,够用即可。
上述工作进行完毕后,运行该模型,得到Scope的输出图形。 四、实验思考:
Simulink仿真的直观性 五、可用的MATLAB函数
R3 d Is L4 实验三 组合逻辑电路仿真
一、实验目的:应用SIMULINK实现编、移码器和加法器的仿真。 二、实验原理:
组合逻辑电路是相对于时序逻辑电路而言的,组合逻辑电路在结构上由各种逻辑门构成,它不包含记忆功能器件,其一般结构框图如下所示:
X1 X2 X3 X4 … 组合逻辑电路 …F1 F2 F3 F4 组合逻辑电路的特点是,在任何给定时刻的输出值仅与该时刻电路的输入值有关,而与过去的输入状态无关。目前,常用的组合电路有半加器、全加器、比较器、编码器、译码器、数据选择器、数据分配器、奇偶校验器等。
编码器是指用选定的一组0、1序列来标识特定对象的过程,执行编码功能的电路称为编码器,结构框图如图所示:
设编码器有n个输入端X0,X1,...Xn?1,有m个输出端Z0,Z1,...Zm?1。为了不使输出发生混乱而产生错误,规定在任何给定时间内,n个输入端中只有一个输入出现,其余n-1个输入均不得出现。为使输入与输出建立一一对应的关系,即一个被编码的对象具有一个特定的代码,输出的位数应满足:
m?log2 (该式中,m应取满足该式的最大整数)
n X0 X1 … 编码器 Z0 Z1 … Xn-1 数字系统是以二进制进行运算的,所以常常需要将用的十进制表示法与二进制表示法相互进行转换,编码器就起到了十分关键的作用。 三、实验内容及步骤:
利用SIMULINK模块进行一个3位二进制编码器的仿真。 1、系统分析
3位二进制编码器,8/3线二进制编码器,其输入端有8个,输出端有3个。 真值表如下图所示:
X0 Zm-1 X1 X2 X3 X4 X5 X6 X7 Z0 Z1 Z2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 根据真值表可以直接写出逻辑表达式:
Z2?X4?X5?X6?X7,Z1?X2?X3?X6?X7,Z0?X1?X3?X5?X7
2、模型搭建
首先建立一个名为sy03.mdl的文件,根据以上分析结果,可知需要选用以下模块: *Pulse Generator(脉冲序列发生器)模块:
位于Simulink节点下的Source库中,用于产生所需的原始脉冲脉冲序列。复制8个Pulse Generator模块进入sy03.mdl文件中,将它们分别命名为X0,X1,...X7。分别双击各个模块,对其参数进行调整。
在Pulse Generator打开的的参数对话框界面中进行相应的设置,在Pulse type选项中有Time based(默认选项)和Sample based两项。
如果选中Time based项,模块按照时间参数输出脉冲序列;
如果选中Sample based项,模块将根据设定的采样频率及其他相关参数输出序列。 在此选择Sample based项。
对“Block Parameters”对话框进行设置:
“Amplitude”文本框:用于设定调整脉冲输出幅度;
“Period(number of samples)”文本框:用于设定按照采样时间长度确定产生的脉冲序列周期;
“Pulse width(number of samples)”文本框:用于设定按照采样时间长度确定产生的脉冲序列周期;
“Phase delay (number of samples)”文本框:用于设定每一个脉冲持续的时间长短(即电平为1的时间,以采样时间为单位);
“Sample time’文本框:该文本框用于确定采样时间,单位是s(秒); *Logical Operator(逻辑操作)模块
位于Simulink节点下的Math Operations模块库中,用于实现逻辑表达式的运算 Logical Operator模块参数调整 * Scope(示波器)模块
位于Simulink节点下的Sinks模块库中,本例用到3个示波器。 设置示波器参数后单击Scope模块,可以看到Z2,Z1,Z0的输出波形。 四、实验思考:
本次实验利用Simulink已有模块完成数字电路的编码器仿真,应该注意Logical Operator模块和Pulse Generator模块等数字电路仿真常用模块的参数调整方法,以及它们如何相互搭配使用。 五、可用的MATLAB函数
实验四 时序逻辑电路仿真
一、实验目的:应用SIMULINK实现时序逻辑电路的仿真