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

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭