当前位置:首页 > EDA > 电子设计自动化
[导读]   1 引言  系统仿真是近30年才发展起来的一门新兴学科,它通过对所研究系统的认识和了解,抽取其中的基本要素,建立与现实系统相对应的仿真模型,并通过系统模型实验去研究一个已经存在的或者正在设计的系统的

 

  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(0<=32,n 为整数),延时为0。采样后将相应值输出,但信号在量值上仍然是连续的,需将f(nT)的所有值映射到数字量所表示的状态上,这种过程为量化。在量化过程中是将样本的幅值范围分为若干个量化层,每一个量化层对应一个量化输出,所有落在该量化层内的样本都统一取该量化输出值。本实例中,采用4位编码,则有 24=16个量化层。在编码过程中采用从1000到0111的编码,来输出相应的量化值。其源代码如下:

function[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转换电路的仿真,结果表明仿真效果良好。这种方法可以应用于多种控制电路、通信电路等系统的仿真中。仿真电路的工作过程类似于真实的硬件,而且更便宜、更灵活,也很容易进行恢复,避免了操作错误造成的损失,按每个单位一年减少五千元计算,具有明显的经济效益和社会效益。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能
关闭
关闭