利用simulink实现8线3线编码器的设计仿真.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用 simulink 实现 8 线 3 线编码器的设计仿真
1问题描述( 8 线 3 线编码的设计的数学建模)
在数字电路中,编码器、译码器的应用极为广泛。所谓编码,就是在选定的一系列二
值代码中赋予每个代码以固定的含义,执行编码功能的电路统称为编码器。
实现8 线 3 线编码器,它的功能是对输入端的8 个信号进行编码,输出三位二进制数。
要求输入信号每次只有一个事0,其余7 个是1。其中0 值是待编码信号。我们将用MATLAB 的 simulink 软件包实现这种常用的数字组合逻辑电路,并进行仿真。
2.系统模型及建模分析
根据前面介绍的8 线 3 线编码器的功能,可列出下面得真值表:
有了真值表之后,就可以写出输入输出间的逻辑函数式如下:
在写出逻辑表达式之后,我们就可以用与非门来实现这个表达式。
3. 仿真实现;
在进行仿真时,将在8 个输入端依次加一个低电平,然后用 3 个示波器观察 3 个输出波形。
用 simulink 实现这个数学电路系统一共分三个步骤:
第一步:添加模块,在MATLAB 中运行 simulink ,打开模块浏览器,然后新建一个模型。接
下来把本次仿真需要的模块添加到模型中。这里共需要三种模块:与非门4个,离散信号脉
冲源 8 个,示波器 3 个。与非位于 simulink 模中的 logocal operater, 离散信号源脉冲位于 simulink
—sources—pulse generator ,示波器位于 simulink —sinks—scope。将三种模到拖到一个模型中。
点与非模的名称,即写着Logical Operator的区域,将名称改Y0,接着点中与非模不要松开鼠,按住Ctrl 拖个模到另一个位置,就会复制一个新的
Y1 模。用同的方法得到Y2,似地将离散信号脉冲源模名字改J0,同得到J0,
J1⋯J7。最后将示波器复制三个。一来就将所有模添加到模型中了。
第二步:修改模参数
首先双Y0,打开属性框,将操作(Operator )修改“ NAND”,入点数改4,然后点OK 确定。 Y1,Y2 也做同修改。
然后,通双示波器模Scope,得到一个形界面,在其工具上打印右
的 Parameters ,打开示波器属性置框,将坐改 3 ,同地,将示波器
Scope1,Scope2 的坐数改4。
最后修改脉冲源的属性。双离散脉冲源J0,将看到关于它的属性框,可以从框中看到 5 个参数置,分:
Amolititude :方波信号的幅度;
Period :方波信号的周期;
Pulse width:脉冲度;
Sample Time :采度,以秒位。
个例子中的要求,我需要J0 到 J7 依次低平,所以将 J0 到 J7的周期整8,脉冲度7,相位延 -7 到 0,幅度和采用默。在零刻,J0 低
平,其余入高平;一个采,J1 低平。下去,到第七个采,
J7 低平。从而了要求。
第三步:系及仿真
在将各模之的上。根据入出的表达式,将J1、J3、J5、J7 接到Y0 的入,将J2、J3、J6、 J7 接到Y1 的入,将J4、 J5、J6、 J7 接到Y2的入。然后用示波器
Scope Y2、Y1、Y0 的出, Scope1 用来 J0 到 J3 4 个波形, Scope2 用来 J4 到 J7 4 个波形。我
就完成了、
在最后行仿真之前,先保存果到自己的工作目里。
仿真束后,可以从示波器Scope1, Scope2 上看到器的8 个入端的波形,在示
波器 Scope 中看到编码器输出波形。
4.实验过程中遇到的问题;
在初建立 simulink 模型时,我找不到 simulink 模块浏览器与题相匹配的仿真模块,开始以为是机房MATLAB 版本太低,准备要放弃这个课题。后来通过对相似模块的研究发现,原题中需要的Discrete Pulse Generator可以通过Pulse Generator 改变 time为Sample **就可以实现。在设置离散脉冲源信号的时候,没有依次将Phase dalay(相位延迟 )设置为 -7— 0,只
是随便设定了一个数字,后来波形出现混乱,无法出现预期效果。通过对8线3线编码器的
研究和其逻辑功能的实现,我明白了其中的不妥,从而做出了改正。由于对Simulink开始的
不熟悉,造成了在连线过程中出现很多阻挠,比如,改变输入输出端口数目的操作,改变输
入输出端口方向的操作,设定示波器时间的操作,这样使我开始在连线时,将整个仿真图连
得很乱,没有清晰地方向,不能一目了然,通过同学的帮助,和对相关书籍的学习,我基本
掌握了 Simulink 中的基本操作。
在建模过程中,开始也是毫无头绪,虽然有了课题,但是还是无从下手,但是通过研究,结果并没有我想象中那么复杂,只是利用最基本的仿真模块就可以达到预期效果,这让我对
Simulink 这门技术产生了好感。
5. 仿真结果分析
8 线 3 线编码器仿真后,当输入J0 到 J7 依次以 1 为单位的相移变化时,示波器的波形跟
着变化,如果J0 为低电平,则的输出波形为低电平,表示0 的二进制数,J4 为低电平时,
则 Y0 为低电平, Y1, Y2 为高电平,表示 4 的二进制数,从而实现了编码的功能。
6.总结
通过对具体模型的建立和利用Simulink 的仿真实现,我体会到了实践的重要性,通常一个
模型的建立在开始的时候都是看似很难的,其实,在仔细研究过后,才发现只要认真分析其
中的每个细节都能个个攻破,最后达到预想结果,当然,我的这个模型只是具体实际应用中
的一个小环节,没有用到太多高功能的技术,但是,我想只要对实际问题认真分析,就能建
立一个有利于各种现实问题的解决。通过对 Simulink 的学习,我对这门技术产生了兴趣,它能帮助我们更好的解决更多在现实中不可实现的仿真。