首页 > 技术文库 > 接口电路仿真的算法分析及实现

接口电路仿真的算法分析及实现

时间:2009-02-06 10:06:00      来源:

“由于Simulink的模块库中,缺少各种可编程接口芯片模块,结合A/D(模/数)转换电路,介绍了Simulink和MATLAB编程相结合实现接口电路仿真的一种方法。确定电路的功能之后,分析其算法并采用MATLAB编程语言编程实现,选择Simulink模块库中的有关模块,对这些模块进行修改,删除

1  引言

系统仿真是近30年才发展起来的一门新兴学科,它通过对所研究系统的认识和了解,抽取其中的基本要素,建立与现实系统相对应的仿真模型,并通过系统模型实验去研究一个已经存在的或者正在设计的系统的过程。Matlab是一种功能强大的的仿真工具,它包括众多的功能各异的工具箱、以矩阵和数组为基本单位的编程语言,为数学计算和试验数据分析提供了极大的便利。Siumlink是MATLAB的一个共生产品,包括丰富的模块资源和工具箱资源,具有相对独立的功能和使用方法,提供了建模、分析和仿真各种动态系统的交互环境,建立仿真模型后可以很容易地通过改变仿真参数,得到不同参数的仿真结果。结合MATLAB和Simulin的特点,可以实现各种电路的仿真。

在构建仿真电路时,有些可以直接调用Simulink模块,有些用Simulink模块难以实现的,可以通过编写Simulink 支持的S函数来完成。对于比较复杂的仿真电路,可以采用Simulink模块调用和编程混合的方式实现。本文所实现的A/D转换电路的仿真就是采用Simulink模块调用和MATLAB编程混合的方式。

2  A/D转换电路的仿真

2.1  A/D转换电路的的仿真

模/数(A/D)转换电路的任务是将连续变换的模拟信号转换为离散的数字信号,以便于数字系统进行处理,模/数转换一般要完成采样、量化和编码等几个过程。

采样是在连续变化的模拟量上按一定的规律(周期地)取出其中的某一些瞬时值来代表这个连续的模拟量。为了保证采样信号不丢失的信息,即采样后的离散信号能代替或能恢复原来的连续信号,采样必须遵循采样定理,即对信号采样时,采样频率必须大于或等于信号最高频率的两倍。

量化就是将f(nT)的所有值映射到数字量所表示的状态上。实际上,在量化过程中是将样本的幅值范围分为若干个量化层,每一个量化层对应一个量化输出,所有落于该量化层内的样本都统一取该量化输出值。量化层的数目与量化后编码的位数有关。

2.1.1 采样功能的实现

A/D转换就是一个量化的过程,它把采样后的模拟信号转换成数字量。在实际工作中,A/D转换首先要选定一个合适的编码方案,然后根据编码的位数确定量化层,从而确定采样频率。实现仿真电路的关键是采样模块的构建,由于Simulink的模块难以构建采样功能,采样模块主要是通过编写Simulink支持的S函数实现的。S函数有固定的程序格式,S函数的实现包括初始化、连续状态微分、计算输出和仿真终止。可以用MATLAB语言可以编写S函数,也可以使用C 语言、C++和Fortran 等语言编写。S函数使用一种特殊调用规则来实现用户与Simulink的内部解法器进行交互,并且这种交互可以适用于不同性质的系统。S函数模块存放在Functions&Tables模块库中,通过此模块可以创建包含S函数的Simulink模块。S函数文件名区域要填写S函数的文件名。S函数参数区填入S函数所需要的参数。

本系统假定输入的模拟信号周期为2,编写了4个S函数,分别为sf_ad4、sf_ad8、sf_ad16、sf_ad32,对应的采样时间分别为0.5、0.25、0.125、0.0625,即采样频率分别是信号最高频率的四倍、八倍、十六倍和三十二倍。下面以sf_ad32函数为例,说明其算法及实现程序。

首先,设模拟信号是周期为2的Sine波,且用连续的时间函数f(t)表示,采样就是周期地取f(t)的瞬时值。根据采样定理,对每个周期的模拟信号采样32次,则采样的时间就为0.0625(2/32)的倍数。完成一个周期的采样时间为0.0625*n(0function[sys,x0,str,ts]=sf_ad32(t,x,u,flag)

switch flag,

case 0,

[sys,x0,str,ts]=mdlInitializeSizes;

………

case 9,

sys=[];

otherwise

error([unhandle flag=,num2str(flag)]);

end

function[sys,x0,str,ts]=mdlInitializeSizes

sizes=simsizes;

sizes.NumContStates=0;

sizes.NumDiscStates=0;

sizes.NumOutputs=1;

sizes.NumInputs=1;

sizes.DirFeedthrough=1;

sizes.NumSampleTimes=32;

sys=simsizes(sizes);

x0=[];

str=[];

ts=[

0.0625 0

0.125  0

0.0625*3 0

0.25 0

………

0.0625*31 0

2 0 ];

function  sys=mdlUpdate(t,x,u)

sys=x;

function sys=mdlOutput(t,x,u)

sys=u;

其中,sys依照flag的值返回不同的结果,x0为初始状态值,str用于设置输出矢量为一个空矩阵,ts采用两列的矩阵来设置采样时间和延迟,sf_ad4是S函数的函数名,t为目前仿真中的实现时间,x为状态矢量,可为空,u为输入矢量,flag为S函数行为标示。

sf_ad8、sf_ad16、sf_ad32的S函数类似于sf_ad4,不同的就是采样时间的个数和ts的采样时间和延迟矩阵。调用S函数时首先将所需的S函数模块拖入调用模块(Simulink->User-Defined Functions->S-Function)并设置S函数的参数,参数设置对话框如图1所示。

图1 S函数的调用

2.1.2 A/D转换仿真电路的构建

A/D转换仿真电路由“模拟信号发生器”模块、“选择采样函数1~4”模块、“结果显示”模块和“A/D转换电路”子系统组成,如图2所示。

“选择采样函数1~4”模块是选择采样频率,构建过程为:在Matlab的命令窗口中输入命令Simulink打开Simnlink Library Browser子窗口,选中左边目录栏中的Simulink库后单击子目录Sources,右边的子窗口显示相应的Sources库中的模块集,选中Constant常数模块并拖入所建的仿真模块中(简单表述为Simulink->Sources->Constant,后文同此),双击此模块出现参数设置框,输入所要选择函数对应的编号1~4。“模拟信号发生器”模块和“结果显示”模块通过直接调用模拟信号发生器和示波器构建。“A/D转换电路”子系统内部主要是由1个选择开关和四个S函数组成。“采样电路”子系统的构建首先是调用一般的子系统(Simulink->Ports&Subsystems->Subsystem),然后双击此子系统,在子系统的内部生成1个选择开关,拖入四个S函数,把选择开关与四个S函数相连。

图2 “A/D转换”仿真系统的主界面

2.1.3 A/D转换电路的仿真结果

运行仿真电路时,由“模拟信号发生器”模块产生各种模拟输入信号,通过“选择采样函数1~4”模块选定采样频率,结果在“结果显示”模块显示。

选择采样函数为4,则A/D转换的采样时间为0.0625,选定输入信号分别为正弦波和随机波。运行此仿真系统后的结果如图3、图4所示。

图3 输入信号为正弦波的运行结果     图4 输入信号为随机波的运行结果

3  结束语

本文作者创新点:由于Simulink的模块库中,缺少各种可编程接口芯片模块,将Simulink 和MATLAB编程混合应用到A/D、D/A转换电路的仿真,结果表明仿真效果良好。这种方法可以应用于多种控制电路、通信电路等系统的仿真中。仿真电路的工作过程类似于真实的硬件,而且更便宜、更灵活,也很容易进行恢复,避免了操作错误造成的损失,按每个单位一年减少五千元计算,具有明显的经济效益和社会效益。

参考文献:

[1] Lech Znamirowski etc. Programmable Analog/Digital Arrays in Control and Simulation[J].Analog Integrated Circuits and Signal Processing,2004,39(4):55~73.

[2]张志勇等. 精通MATLAB6.5[M]. 北京:北京航空航天工业出版社,2003

[3]张建灵,安锦文,王米娜.基于Simulink 和C/C++混合编程的模糊控制系统仿真[J].系统仿真学报,2004,16(12):2774~2776.

[4]胡琳静,孙政顺.SIMULINK中自定义模块的创建与封装[J].系统仿真学报,2004,16(3):488~491.

[5]王海龙.某型数字射频存储器模数转换接口设计研究[J].微计算机信息,2007.3-2:286287

联系地址:

江西省南昌市江西师范大学瑶湖校区计算机信息工程学院 叶继华老师.

邮政编码:330022.

叶继华(1966~),男,江西上饶人,副教授,硕士生导师,主要从事系统仿真、网络通信方面的研究

郭帆(1977~),男,江西南昌人, 副教授/博士,主要从事计算机网络的研究

陶  玲(1983~),江西南昌人,硕士研究生

Biography:YE Ji-Hua(1966-),male,Han, Jiangxi Shangrao, Master mentor, Major: system simulation,network communications ,Associate Professor,College of Computer Information Engineering,JiangXi Normal University.

Guo Fan(1977-)male,Han,Jiangxi Nanchang,Doctor,Major:Computer Network, Associate Professor,College of Computer Information Engineering,JiangXi Normal University.

TAO Ling(1983-),female,Han, Jiangxi Nanchang,graduate student.

声明:本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原网站所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮�[email protected]。

分享到:

猜你喜欢

新闻

新品

方案

我要评论

matlab计算a d量化,接口电路仿真的算法分析及实现相关推荐

  1. matlab 从 wind 量化接口获取数据

    matlab 从 wind 量化接口获取数据 闲话 做量化,数据是非常重要的.wind 虽然说在数据方面也强不到哪里去,不过毕竟是行业的龙头老大.我实习所在的某机构公司就用有用 wind.所以,我终于 ...

  2. 有哪些美股量化接口?

    官方的美股量化接口​是有的,像是MATLAB +ib,Quantopian + IB都可以,不过有些现在好像都已经改版了,没有做了,具体还有其他的一些,也可以到富途或老虎证券上问问,应该也能找到合适的 ...

  3. matlab 计算指北角,用MATLAB如何计算出矩形区域内的最大值?

    在MATLAB图像处理工具箱(Image Processing Toolbox)的GUI函数中,有一些用来在图像或坐标轴上选择矩形或椭圆区域的函数,使用示例如下: 第一行代码:显示matlab内置的一 ...

  4. matlab计算叶子的面积,基于MATLAB进行树叶面积测量实验报告

    <基于MATLAB进行树叶面积测量实验报告>由会员分享,可在线阅读,更多相关<基于MATLAB进行树叶面积测量实验报告(3页珍藏版)>请在人人文库网上搜索. 1.科学计算与数据 ...

  5. 数学建模笔记(十一):统计模型(MATLAB计算,函数参数解释待补充)

    文章目录 一.概述 二.参数估计--区间估计 1.糖果称重(求总体均值 μ \mu μ的双侧置信区间) (一)根据公式计算结果 (二)直接使用 t t e s t ( ) ttest() ttest( ...

  6. 广发量化接口的编程语言

    广发量化接口的编程语言有以下几种: 1.Python 2.R 3.Matlab 4.Julia 5.Java 6.JavaScript 7.Scala 8.Ruby 9.Frameworks

  7. matlab画复变函数,科学网—复数复变函数的Matlab计算与绘图 - 周铁戈的博文

    复数复变函数的Matlab计算与绘图 周铁戈 复数的表示 存在两种表示方法,一种是代数式,一种是指数式,在Matlab中的方式如下: >> z=1+2i            #代数式,1 ...

  8. 达摩院2021年十大科技趋势出炉:量子计算、脑机接口…

    2021年,科技发展将往何处去? 这是阿里达摩院从基础研究.IT技术和生产生活三个方面,给出的10个答案: 量子计算.脑机接口.第三代半导体应用.AI药物研究.柔性电子材料-- 其中,既有学术研究,也 ...

  9. 达摩院2021年十大科技趋势出炉:量子计算、脑机接口、第三代半导体应用……...

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 2021年,科技发展将往何处去? 这是阿里达摩院从基础研究.IT技术和生产生活三个方面,给出的10个答案: 量子计算.脑机接口.第三代半导体 ...

最新文章

  1. C++游戏开发需要阅读的书籍
  2. matlab氢原子杂化轨道,网络版原子和分子结构可视化程序的开发
  3. CSS之window的视图属性
  4. 【牛客 - 368C】流星雨(概率dp,乘法逆元)
  5. jsp出现The import Xxx type is not resolved...
  6. android分辨率px跟dp,Android屏幕适配 px,dp,dpi及density的关系与深入理解
  7. Huffman编码树
  8. 刷爆了!BAT这场AI芯片之战,你更支持谁​?
  9. linux重要目录之usr和var
  10. debian webmin 安装
  11. 对于文章的字母、单词、短语,(无用词表)的检索Java代码实现
  12. 《C++ API设计》摘录
  13. C#中datagridview实现单元格输入框加按键,下拉框功能
  14. 中基鸿业如何投资理财
  15. Qt高质量的开源项目合集
  16. 【程序人生】程序员薪酬对比研究以及晋升详情2022(持续更新)
  17. MSDN无法打开的解决办法
  18. java.sql.SQLException : null, message from server: “Host ‘‘ is not allowed to connect to this Maria
  19. #644 (Div. 3)F. Spy-string(暴力枚举)
  20. java 5%3_【Java】位操作符-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....

热门文章

  1. SpringBoot学习--基于狂神说的springboot笔记
  2. 我忘了你是谁-非主流留言
  3. 2022山东省安全员C证考试模拟100题模拟考试平台操作
  4. Xamarin For VS2015安装
  5. 2009最新经典爱情短信收藏
  6. 被某些数整除的数的特征——数论
  7. 美国服务器Ping值多少算正常
  8. 如何在vue项目中设置首页
  9. 优漫动游:什么是ui设计?UI设计是什么样子的工作内容?
  10. 七年了,终于又接到了个诈骗电话~