搜档网
当前位置:搜档网 › 第九章 Simulink高级仿真技术

第九章 Simulink高级仿真技术

第九章 Simulink高级仿真技术
第九章 Simulink高级仿真技术

105

第九章 Simulink 高级仿真技术

第八章对动态系统的建模、仿真与分析方法做了详细的介绍,这些方法足够用户对简单的动态系统进行仿真研究,但对于复杂的系统来说还略显不足。况且要想灵活高效的使用Simulink ,还必须了解Simulink 的工作原理。本章主要介绍Simulink 的高级仿真技术,包括Scope 模块的高级使用技术、Simulink 的工作原理、过零事件、系统代数环的概念与解决方案、高级积分器的使用方法等。

9.1 Scope 模块的高级使用技术

从前面章节所举出的仿真示例中可以看出,在对系统进行仿真分析时,通常使用Scope 示波器模块来观察动态系统的仿真结果或系统中指定的信号。用户可以很方便地对Scope 模块进行各种控制以便对指定信号进行观测,以便对系统进行有效的分析。Scope 模块也可以设置成悬浮Scope 模块,因而本节主要对Scope 模块和悬浮Scope 模块做详细的介绍。 9.1.1 Scope 模块的使用

Scope 模块是一个用途很广的显示模块,我们前面章节给出的Simulink 仿真系统中多半都使用了这种模块,它是以图形的方式直接显示指定的信号。当无需对输出结果进行定量分析,可以从Scope 模块输出的曲线中直接获知系统的运动规律。Scope 模块给用户提供了很多控制方法,可以使用户对Scope 模块的输出曲线进行各种控制调整,以便用户观测和分析输出结果。

Scope 模块的工具栏按钮命令如图9.1所示。下面分别介绍各项功能。

一、打印输出(Print )

将系统仿真结果的输出信号打印出来。 二、视图自动缩放(Autoscale )

点击此按钮可以自动调整显示范围以匹配系统仿真输出信号的动态范围。 三、X 轴缩放、Y 轴缩放以及视图整体缩放

可以分别对X 坐标轴、Y 坐标轴或同时对X 、Y 坐标轴的信号显示进行缩放,以满足用户对信号做局部观察的需要。使用时,单击缩放按钮后选择需要观察的信号范围即可。若需要缩小视图,单击鼠标右键,选择弹出菜单的Zoom out 即可。 四、保存和恢复坐标轴设置

图9.1 Scope 模块的工具栏按钮命令

106

使用Scope 模块观察输出信号时,用户可以保存坐标轴设置。这样,当信号的视图发生改变后,单击恢复坐标轴设置可以恢复以前保存的坐标轴设置。 五、Scope 参数设置

点击Scope 模块工具栏的参数设置按钮(Parameters ),可以打开Scope 模块的参数设置界面,见图9.2(a)。Scope 模块的参数设置包含两个选项卡:General 和Data History 。 1、 General 选项卡

通常参数设置界面首先显示General 选项卡的内容。在General 选项卡中可以进行下列设置: (1)坐标系数目(Number of axes )

在一个Scope 模块中可以使用多个坐标系窗口同时输出多个信号。同时可使用的坐标系数目由此处设置。默认设置下,Scope 模块仅显示一个坐标系窗口。 (2)悬浮Scope 开关(floating scope )

用来将Scope 模块切换为悬浮Scope 模块。悬浮Scope 模块将在9.1.2中介绍。 (3)显示时间范围(Time range )

用来设置信号的显示时间范围。需要注意的是信号显示的时间范围和系统仿真的时间范围可以不同。坐标系所显示的时间范围并非为绝对时间,而是指相对时间范围,坐标系左下角的时间偏移(Time offset )规定时间的起始时刻。

(a )Scope 模块的General

选项卡

(b) Scope 模块的Data history 选项卡图9.2 Scope 模块的参数设置界面

107

(4)坐标系标签(Tick labels )

确定Scope 模块中各坐标系是否带有坐标系标签。此选项提供3种选择:全部坐标系都使用坐标系标签(all )、最下方坐标系使用标签(bottom axis only )以及都不使用标签(none ). 2、Data history 选项卡

在Data history 选项卡中可以进行下列设置: (1)信号显示点数限制(Limit data points to last )

用来限制显示信号的数据点的数目,Scope 模块会自动对信号进行截取,只显示信号最后n 个点(n 为设置的点数)。

(2)保存信号至工作空间(Save data to workspace )

将Scope 模块显示的信号保存至MATLAB 工作空间中,以便于对信号进行更深入的定量分析。 (3)数据保存变量名

设置被保存至MATLAB 工作空间中数据的变量名。 (4)数据保存类型

设置被保存至MATLAB 工作空间中数据的保存类型。数据的保存类型有三种:带时间变量的结构体(Structure with time )、结构体(Structure )以及数组变量(Array )。

另外,在Scope 模块中的坐标系中单击鼠标右键,选择弹出菜单中的坐标系属性(axes properties ),将弹出如图9.3所示的对话框。用户可以对Scope 模块的坐标系标题和信号显示范围进行设置,以便于更好地分析显示信号。

9.1.2 悬浮Scope 模块的使用

在进行系统仿真分析时,用户往往需要对多个信号进行观察和做定性的分析。如果将每个信号都与一个Scope 模块相连接,则系统模型中就会存在多个Scope 模块,使得系统模型显得凌乱、不简练,且不易对不同Scope 模块中显示的信号进行比较。使用悬浮Scope 模块可以解决这个问题。

与Scope 模块不同,悬浮Scope 模块没有输入端口,它在仿真过程中可以显示任何选定的信号,而Scope 模块只能显示输入到其端口的信号。

这里以8.4节中例8.2连续的非线性系统的输出结果为例说明悬浮Scope 模块的使用技术。图8.28求解Van der Pol 方程的Simulink 模型中Scope1是一个悬浮Scope 模块。在Simulink 模型中,悬浮Scope 模块的创建有三种方法。第一,直接从Sink 模型库中选择悬浮Scope 模块;第二,点中普通的Scope 模块的parameters 中的floating scope 选项,将普通的Scope 模块设置为悬浮Scope 模块;第三,点击图9.1所示的悬浮Scope 开关也可将普通的Scope 模块设置为悬浮Scope 模块。

要使用悬浮Scope 模块显示指定的信号,必须进行正确的设置。 一、设置需要显示的信号

显示信号的选择是悬浮Scope 使用的关键。使用悬浮Scope

模块的信号选择器选择需要显示的信号。

图9.3 坐标系属性设置对话框

108

点击图9.1所示的悬浮时信号选择器即可打开信号选择器对话框,见图9.4,然后在可显示信号列表中选择需要显示的信号。

二、设置信号存储缓冲区与全局变量

默认情况下,Simulink 的信号都是局部变量,Simulink

重复使用存储信号的缓冲区。使用悬浮Scope 模块时,由于信号和模块之间没有实际的连接,用户需要对要显示的信号进行正确设置以避免Simulink 对变量的缓冲区重复使用。

关闭Simulink 仿真参数对话框(Configuration Parameters

)中的Optimization 选项卡,选择禁用Signal storage reuse 功能可以避免

Simulink 对变量的缓冲区重复使用。如图9.5。

对于例8.2,使用悬浮Scope 模块的信号选择器选择需要显示的信号1x 和2x ,在进行了必要的信号存储缓冲区及全局变量设置后,重新运行,悬浮Scope 模块的显示的仿真结果见图9.6。

图9.4 悬浮Scope 模块的信号选择 图9.5 信号存储缓冲区设置

109

9.2 Simulink 的工作原理

尽管Simulink 的初衷是为用户提供一个具有友好用户界面的系统级仿真平台,通过它的图形化仿真环境,可以为用户屏蔽掉许多繁琐的编程工作,而把主要精力放在模型的构建上,从而使用户快速完成系统的设计任务。但为了能够高效灵活地使用Simulink ,必须了解Simulink 的工作原理。Simulink 通过系统模型(框图)与MATLAB 求解器直接的交互对话完成系统仿真的,见图9.7。Simulink 传递模块参数和差分(微分)方程给MATLAB 求解器,而MATLAB 求解器计算系统模块的输出以更新离散系统的状态并确定下一步仿真时间。

9.2.1 系统模型 简单地说,Simulink 中的每个模块都是一个具有输入、输出和状态三个基本元素的系统。在Simulink 中,模块都是用向量来表示这三个基本元素的,假设u 、x 和y 分别表示输入、状

态和输出向量。图9.8能够表示这三个元素的关系。其中状态向

量是非常重要的概念,状态决定了模块的输出,而它的当前值

是前一个时间模块的状态和(或)输入的函数。拥有状态的模

块必须能够保存前面的状态值,计算当前的状态值,并且具有保存以前状态值或输入值的存储空间。Simulink 的Integrator 模块是有状态的模块,Integrator 模块输出的是输入信号从仿真开始时刻到当前时刻的积分值,当前积分值依赖于Integrator 模块的输入的历史记录,因此积分值是模块的一个状态。而

Gain

图9.8 Simulink 模块的基本模型 图9.7 Simulink 仿真原理示意图 图9.6 悬浮Scope 显示的例8.2的仿真结果

模块则是无状态的模块,其输出完全由当前的输入值和增益决定,因此,Gain模块没有状态。

Simulink中的状态向量可以分为连续状态、离散状态或两者的结合。无论是连续系统还是离散系统,在用计算机进行仿真时,都需要在采样时间点(即采样时间步长)估计系统的输入、输出和状态向量。在每一个采样时刻,Simulink根据当前的时间、输入和状态来决定该采样时刻的输出。

9.2.2 Simulink求解器概念

Simulink求解器在Simulink进行仿真计算的过程中起着非常重要的作用,它是Simulink进行仿真计算的核心。因此,要了解Simulink的工作原理,必须先对Simulink求解器有所了解。

一、离散求解器

离散系统一般是用差分方程描述的,其输入与输出仅在离散的采样时刻取值,系统的状态每隔固定的时间才更新一次,而Simulink对离散系统的仿真核心是对离散系统差分方程的求解。因此,Simulink 可以做到对离散系统仿真的绝对精确(除了有限的数据截断误差)。

要对纯粹的离散系统进行仿真,需要使用离散求解器对其进行求解。用户需要选择Simulink仿真参数设置对话框中的求解器选项卡中的discrete(no continuous states)选项,即没有连续状态的离散求解器,便可对离散系统进行精确的求解与仿真。见8.4节 8.4.2 离散系统仿真分析算例8.3。

二、连续求解器

与离散系统不同,连续系统的输入、输出与状态都是连续的,并且输入、输出与状态的关系需要用微分方程描述。因此需要使用数字计算机对系统的微分或偏微分方程进行求解,所以只能求出其数值解(即近似解),不可能得到系统的精确解。

Simulink对连续系统进行仿真,实质上是对系统的微分或偏微分方程进行求解。对微分方程的近似求解的方法有多种,因此Simulink的连续求解器有多种不同的形式,如变步长求解器ode45、ode23、ode113,定步长求解器ode5、ode4、ode3等。采用不同的连续求解器会对连续系统的仿真结果和仿真速度产生不同的影响,但一般不会对系统的性能分析产生较多的影响,因为用户可以设置具有一定误差范围的连续求解器进行相应的控制。连续求解器设置见图9.9。

连续求解器

仿真误差设置

仿真步长控制

图9.9 连续求解器设置

需要说明的一点是,实际系统很少是纯粹连续或离散的,大部分系统是混合系统。连续变步长求解器不仅考虑了连续状态的求解,也考虑了离散状态的求解,因此连续变步长求解器比较常用。连续变步长求解器首先尝试使用最大步长(仿真起始时采用初始步长)进行求解,如果在这个仿真区间内有离散状态更新,步长便减到与离散状态的更新相吻合。

9.2.3 仿真过程

110

Simulink的仿真过程包括两个阶段:初始化和模型计算。

一、初始化

在初始化阶段,要完成的工作包括:

将模块参数传递给MATLAB进行估值,得到的数值结果将作为模块的实际参数;

模型的各个层次被展开。每个非条件执行子系统被它所包含的模块替代;

模型中的模块按更新的次序进行排序。排序算法产生一个列表确保具有代数环的模块在产生它的驱动输入的模块被更新后再更新;

决定模型中没有显式设置的信号属性,例如名称、数据类型、数值类型以及大小等,并且检查每个模块是否能够接收连接到它们输入端的信号。

Simulink使用属性传递的过程来决定未被设定的属性,属性传递是将源信号的属性传递到它所驱动模块的输入信号。

决定模型中所有没有显式设置采样时间的模块的采样时间;

分配和初始化用于存储每个模块的状态和输出的当前值的存储空间。

二、模型计算

完成初始化工作后,Simulink就开始运行仿真了。Simulink是使用数值积分来仿真计算的。所以,Simulink求解器在仿真计算中起到非常重要的作用。

在仿真开始时,模型设置待仿真系统的初始状态和输出,在每个时间步长中,Simulink计算系统的输入、状态和输出,并更新模型来反映计算出的值。在仿真结束时,模型得出系统的输入。状态和输出。在每个时间步长中,Simulink所采取的动作依次是:

按排列好的次序,更新模型中模块的输出。Simulink通过调用模块的输出函数计算模块的输出。Simulink把当前值、模块的输入和状态传给这些函数计算模块的输出。对于离散系统,Simulink只有在当前时间是模块采样时间的整数倍时,才会更新模块的输出;

按排列好的次序,更新模型中的模块状态。Simulink调用模块的离散状态更新函数来计算一个模块的离散状态;对连续状态的微分进行数值积分来获得当前的连续状态;

检查模块连续状态的不连续点。Simulink使用过零检测(Zero crossing detection)状态的不连续点;计算下一个仿真步长的时间。

这里需要说明的是,Simulink在仿真中要根据事先确定的模块更新次序更新状态和输出。而更新次序对仿真结果的正确性非常关键。特别的,当某个模块的输出是它当前时刻的输入值的函数,则该模块必须在驱动它的模块被更新之后才能被更新,否则,模块的输出将无意义。

为了建立有效的更新次序,Simulink根据输出和输入的关系,将模块分为两类。当前输出依赖于当前时刻输入的模块称为直接馈入模块,所有其它的模块称为非直接馈入模块。比如,Simulink中的Gain、Product和Sum模块是直接馈入模块,而Constant模块(没有输入)、Memory模块(输出只依赖于前一个时间步长的输入)则是非直接馈入模块。基于上述的分类,Simulink使用两个基本规则对模块进行排序:

每个模块必须在它所要驱动的所有模块中的任何一个模块更新之前被更新,这条规则确保模块在被更新时,它的输入有效;

非直接馈入模块可以按任何的次序更新,只要它们在它们所要更新的直接馈入模块之前更新。这条规则可以通过把所有非直接馈入模块以任何次序放在更新列表来满足。它允许Simulink在排序过程中忽略非直接馈入模块。

在排序过程中,Simulink检查和标记代数环的出现。有关代数环的概念本章将做较详细的介绍。

9.3 系统过零的概念与解决方案

Simulink对系统仿真的控制是通过系统模型(框图)与MATLAB求解器的直接交互对话进行的,见图9.7。Simulink将系统模型、模块参数传递给MATLAB求解器,而MATLAB求解器计算系统模块的输出、确定下一步仿真时间,并通过Simulink环境再传递给系统模型。

111

对话方式的核心是事件通知。系统模型通过Simulink仿真环境通知求解器前一个仿真步长内系统所发生的事件,以便求解器计算当前仿真时刻的结果。Simulink用过零检测来检测系统中是否有事件发生。系统模型正是通过过零检测与事件通知完成与MATLAB求解器的交互的。

9.3.1 过零事件及过零检测

在系统仿真的过程中,过零是指系统模型中的信号或系统模块特征产生显著变化。这种改变包括两种情况:(1)信号在上一个仿真步长中改变了符号;(2)系统模块在上一个仿真时间步长改变了模式(如积分器进入了饱和区)。

过零本身便是一个非常重要的事件,同时它也用来表示其它事件的发生,统称过零事件。Simulink 用过零来表征动态系统中的不连续性。例如系统响应的跳变等。过零事件的一个典型的示例是和地板相撞反弹的小球。要对这样的系统进行仿真,求解器不可能精确地使仿真时刻与小球和地面接触的时刻重合。这样,小球就像穿过了接触点,穿透了地板。

过零检测在检测过零事件是否发生方面发挥着重要的作用。Simulink使用过零检测使某仿真时刻精确地(在机器精度范围内)发生在状态事件发生的时刻。因此对于和地板相撞反弹的小球系统的仿真来说,仿真时刻可以精确地取在小球与地面接触的时刻,仿真就不会发生穿透现象,且小球的速度由负到正的转换非常迅速。Simulink中有一个弹球的演示示例,用户可在MATLAB命令窗口键入bounce或在MATLAB的demo窗口直接找寻并打开它。感兴趣的读者也可以通过此例熟悉高级积分器的设置和使用,见9.5节高级积分器中例9.6。

9.3.2 事件通知

在动态系统仿真中,采用变步长求解器可以使Simulink正确地检测到系统模块与信号中过零事件的发生。当一个模块通过Simulink仿真环境通知求解器在系统前一个仿真步长时间内发生了过零事件,变步长求解器就会缩小仿真步长,即使求解误差满足绝对误差和相对误差的上限要求。缩小仿真步长的目的是判断事件发生的准确时间(也就是过零事件发生的准确时刻)。虽然这样做会使系统的仿真速度变慢,但这样做对系统的某些模块是非常重要的。因为这些模块的输出可能表示的一个物理值,它的零值可能标志系统运行状态的改变,或可能控制着另外的模块。事实上,只有少数的模块可以发出事件通知。每个模块发出专属于自己的事件通知,而且可能与不止一个类型的事件发生关联。

事件通知是Simulink进行动态系统仿真的核心。可以说,Simulink动态系统仿真是基于事件驱动的,这符合当前交互式设计与面向对象设计的思想。在系统仿真中,系统模型与求解器均可看作某种对象,事件通知可以理解为对象间的消息传递;对象通过消息的传递来完成系统模型和求解器之间的交互作用。

9.3.3 支持过零的模块

事实上在Simulink的模型库中,只有少数的模块能够产生过零事件。能够产生过零事件的模块有:Math模型库中的求绝对值模块Abs;最值模块MinMax;符号运算模块Sign;Discontinuities模型库中的偏移模块Backlash;死区模块Dead Zone;交叉模块Hit Crossing;继电模块Relay;饱和模块Saturation;Continuous模型库中的积分模块Integrator;Logic and Bit Operations模型库中的关系运算模块Relational Operator;Sources模型库中的阶跃模块Step;Subsystems模型库中的子系统模块Subsystem,以及Signal Routing模型库中的开关模块Switch等。一般来说,不同模块所产生的过零事件的类型不同。例如:对于求绝对值模块Abs,当输入改变符号时产生一个过零事件,而饱和模块Saturation则能够生成两个不同的过零事件,一个用于下饱和,一个用于上饱和。

对于其它不具备过零检测能力的模块,如果需要对它们进行过零检测,则可以使用Discontinuities模型库中的交叉模块Hit Crossing来实现。当Hit Crossing模块的输入穿过某个偏移值(offset)时会产生一个过零事件,所以它可以用来为不具备过零能力的模块提供过零检测的能力。

一般来讲,系统模型中模块过零的作用有两种:一是用来通知求解器系统的运行模式是否发生了改变,即系统的动态特性是否发生改变;二是来驱动系统模型中的其它模块。过零信号包含三种类型:上升沿、下降沿、双边沿。其中,上升沿是指系统中的信号上升到零或穿过零,或者信号由零变为正;下降沿是指系统中信号下降到零或穿过零,或者信号由零变为负;双边沿是指任何信号的上升或下降沿的

112

发生。

9.3.4 过零的举例

一、过零点的产生与影响

例9.1 举例说明过零的产生与影响

图9.10是例9.1的系统仿真模型和仿真结果图。由仿真模型可以看出系统中采用了User-Defined Functions模型库中的Fcn模块和Math Operations模型库中Abs模块。其中Fcn模块和Abs模块的输入信号分别是正弦信号和偏差为0.5的正弦信号。这两个模块均完成对输入信号求绝对值的功能。

由本例可以看出不支持过零事件的Fcn模块在求绝对值时,一些拐点被漏掉了,而支持过零事件Abs 模块能够使过零点处的仿真步长足够小,精确地捕获其输入信号改变符号的时刻,得到零点结果。

图9.10 过零事件及其对计算结果的影响

二、关闭过零与影响

例9.1中过零表示系统穿过了零点。其实,过零不仅表示信号穿过了零点,还可表示信号的陡沿和饱和。下面介绍的例9.2可以说明这个问题。

图9.11是例9.2的系统仿真模型及其仿真结果。在此例中,系统实现了输入信号由其绝对值跳变到饱和值的功能,并且其跳变过程受到仿真时间的控制。此系统中所采用的模块Abs和Saturation都支持过零事件,因此在系统的响应输出中得到了理想的陡沿。

图9.11 例9.2的系统仿真模型及其仿真结果

113

在使用Simulink进行动态仿真时,仿真参数默认选择使用过零检测功能。如果过零检测并不能给系统仿真带来很大的好处,用户可以关闭仿真过程中过零事件的检测功能。用户需要在Simulation-Configuration Parameters参数设置对话框的Solver选项卡中选择过零检测的开和关。(a)、(b)分别是过零检测设置及关闭过零检测后,例9.2系统的仿真结果。显然,关闭过零检测功能后,系统的仿真结果在信号进入饱和时带有一些拐角,且在5s时的陡沿不理想。

9.3.5 使用过零检测的其它注意事项

在使用过零检测时,用户需要主要以下事项:

一、关闭系统仿真参数设置中的过零检测,可以使系统的仿真速度得到很大的提高。但可能会引起系统仿真结果的不精确,甚至出现错误的结果;

二、关闭系统过零检测对Hit Crossing交叉模块无影响;

三、对于离散模块及其产生的离散信号不需要进行过零检测。这是因为用于离散系统仿真的离散求解器与连续变步长求解器都可以很好地匹配离散信号的更新时刻。

在对某些特殊的动态系统进行仿真时,有可能在一个非常小的时间段内多次通过零点。这将导致在同一时间内多次探测到信号的过零,从而使得Simulink仿真终止。在这种情况下,用户应该关闭过零检测功能再进行仿真。但是对于模块过零非常重要的系统,用户可以采用在系统模型中串接交叉Hit Crossing 模块,并关闭过零检测功能的方法来实现过零的检测。

过零检测设置

(a) 系统过零检测设置

(b) 例9.2关闭过零检测后系统仿真结果

(b) 例9.2关闭过零检测后系统仿真结果

114

115

9.4 系统代数环的概念与解决方案

9.4.1 直接馈入模块

前面介绍Simulink 仿真原理时曾经提到,为了建立有效的更新次序,Simulink 根据输出和输入的关系,将模块分为两类。当前输出依赖于当前时刻输入的模块称为直接馈入(Direct feedthrough )模块,所有其它的模块称为非直接馈入模块。对于直接馈入模块来说,如果输入端口(Input ports )没有输入信号,就无法计算该模块的输出信号。在Simulink 中具有直接馈入特性的模块有:

Math Function 模块; Gain 模块; Product 模块;

State-Space 状态空间模块(矩阵D 不为0时);

Tranfer Fcn 传递函数模块(分子和分母多项式阶次相同时); Zero-Pole 零极点模块(零点和极点数目相同时); Sum 模块;

Intergrator 积分模块。 9.4.2 代数环的产生

在用Simulink 进行系统仿真时,常常出现系统模型中产生代数环的提示。那么什么情况下系统模型中会产生代数环?下列两种情况下,系统模型中会产生代数环:

第一,具有直接馈入特性的模块的输入端口直接由此模块的输出驱动;

第二,具有直接馈入特性的模块的输入端口由其它具有直接馈入特性的模块所构成的反馈回路间接地驱动。

图9.13所示是非常简单、非常典型的代数环的产生示例。 运行该仿真模型MATLAB 命令窗口会提示: Found algebraic loop containing block(s): 'Examp9_3/Gain' 'Examp9_3/Sum' (algebraic variable) 即系统中存在代数环,且代数环包含Sum 和Gain 模块。从仿真图中可以看出此代数环回路由一个求和模块和一个增益模块构成,其中模块的输出状态z 同时又作为该模块的输入。由于求和模块具有直接馈入的特性,即模块的输出直接依赖于模块的输入,因而构成了代数环。很显然,此代数环可以用数学表达式 z u z =?直接描述,相应的其输出状态为/2z u =。但对于大多数的代数环系统而言,难以通过直接观察来求解。

如果系统中出现了代数环,由于代数环的输入和输出之间是相互依赖的,组成代数环的所有模块都要求在同一个时刻计算输出。这与系统仿真的顺序概念不符,因此,最好使用其它的方法来解决代数环的求解问题。

9.4.3 代数环的举例与解决方案

对于系统中所产生的代数环,解决的方法有三种:

第一,使用手工的方法对系统方程直接求解; 第二,对代数环进行代数约束; 第三,切断代数环。

一、代数环解决方法一:使用手工的方法对系统方程直接求解 例9.3 代数环的直接求解。

116

很显然,此代数环可以用数学表达式

z u z =?直接描述,其输出状态为/2z u =,当输入1u =时,计算出输出0.5z =。其结果见Display 模块所示。事实上,Simulink 中有一个内置的代数环求解器,可以对含有代数环的简单的系统模型进行正确的计算。 二、代数环解决方法二:使用代数约束

系统模型中使用代数约束Algebraic Constraint 模块并给出约束初值,可以很方便地对代数方程进行求解。代数约束模块的输入()F z 是一个代数表达式,输出是模块的代数状态。代数约束模块通过调整其输出的代数状态以使其输入为零。 例9.4 求解代数方程组:1221

10

10z z z z +?=????=?,显然此方程组的解为120,1z z ==。

图9.14是例9.4的系统仿真模型,其中代数约束模块的输出分别是代数状态1z 和2z 。1z 和2z 分别通过反馈回路作为代数约束模块的输入。其仿真结果如图9.14中Display 模块中所显示。

图9.13 具有代数环的系统模型

图9.14 使用代数约束解决代数环问题

117

当系统中使用代数约束时,系统中将出现代数环。对于系统中存在代数环的系统,Simulink 会在每个仿真步长中调用代数环求解器对系统进行求解。代数环求解器通过迭代的方法对系统进行求解,由于对系统的求解使用了迭代方法,因而含有代数环的系统的仿真速度相对不含代数环的系统要慢一些。 在使用代数约束模块时,Simulink 使用牛顿迭代法求解代数环。虽然采用这种方法是一种稳定的算法,但是如果代数状态的初始值选择得不合适,算法可能不收敛。因此,用户在使用代数约束时,一定要注意代数约束模块输出的代数状态的初始值的选取问题,如果初始值选取的不同,有可能造成最终结果的不同。下面举例说明这个问题。 例9.5 使用代数约束求解方程

220x x ??= 即 (1)(2)0x x +?=

的根(显然此方程的根是11x =?,22x =)

。 图9.15是求解该方程的系统仿真模型。如果其中的代数约束模块的初始值分别取为5或-5,则仿真

得出的结果是不同的。不同的结果见图9.15中Display 和Display1模块的显示。

3

、代数环解决方法三:切断环

在实际应用时,前面介绍的两种解决含代数环系统的仿真问题的方法有时是不方便的。这是因为第一,很多情况下,很难甚至不可能进行手工求解;其次,在使用代数约束,由Simulink 内置的代数环求解器对含代数环的系统进行仿真时,虽然系统可以有效地求解代数环,但由于采用的牛顿迭代方法需要在每个仿真步长内进行多次迭代,因此仿真速度会大幅度地降低。因此,用户可以通过某种方式破坏代数环产生的条件来切断模型中的代数环结构,从而加快系统的仿真速度。

常用的切断代数环的方法是在代数环中加入Discrete 模型库中的存储模块(Memery 模块)或单位延迟模块(Unit Delay 模块)。尽管使用这种方法非常容易,但是在一般条件下并不推荐这样做,因为加入存储或延迟模块会改变系统的动态特性,而且对于不适当的初始估计值,有可能导致系统不稳定。

图9.15 代数约束状态初始值设置对计算结果的影响

9.5 高级积分器

积分运算是动态系统仿真中常见的运算之一。在使用Simulink对实际的动态系统进行仿真计算时,积分运算是构成Simulink求解器的核心技术之一。前面在举例介绍动态系统的仿真方法时,仅使用了简单的积分器,用户仅仅需要设置积分器的初始值,其他均采用积分器的缺省设置。本节将简单介绍高级积分器的概念、设置方法和应用。

图9.16是默认参数设置下的积分器外观和选择所有参数设置后积分器的外观比较。前者俗称简单积分器,后者为高级积分器。要想正确灵活地使用选择所有参数设置后的积分器,必须先了解这种积分器各个端口的含义和设置。下面首先介绍积分器参数设置对话框。积分器参数设置对话框如图9.17所示。

图9.16 积分器外观比较

积分器状态重置

积分器初始条件设置

显示状态端口

积分器输出

范围限制

显示饱和输出端口

显示状态端口

图9.17 高级积分器设置

118

9.5.1 积分器初始条件端口

设置积分器初始条件的方法有两种,分别是

内部输入源设置:点击积分器模块,打开积分器参数设置对话框,在初始条件源设置(Initial condition source)中选择内部设置(Internal),并在下面的文本框中键入给定的初始条件即可,这种设置方式不显

x。

示积分器初始条件设置端口

x为标外部输入源设置:在初始条件条件源设置中选择外部设置(External),初始条件设置端口以

志显示。这种设置需要使用Signal Attributes模型库中的IC模块设置积分器初始值。

9.5.2 积分器状态端口

在对动态系统进行仿真研究时,有时是不能使用积分器输出端口,而需要使用其状态端口的。下列两种情况下时,用户不能使用积分器输出端口,而必须使用状态端口:

当积分器模块的输出经重置端口或初始条件端口反馈至模块本身时,会造成系统模型中出现代数环,此时需要使用状态端口;

当从一个条件执行子系统向另一个条件执行子系统传递状态时,可能会引起时间同步问题。此时需要使用状态端口,不能使用输出端口。

事实上,积分器状态端口的输出值和输出端口的输出值本身没有大的区别,其不同之处仅在于二者产生的时间略微有所不同。这正是Simulink解决上述问题的方案。选择Show state port复选框,状态端口会显示在积分器的顶部,见图9.17。

9.5.3 积分器输出范围限制和饱和输出端口(Saturation)

在对动态系统进行仿真的过程中,所使用的积分器的输出可能会超过系统本身所允许的上限或下限值,选择积分器输出范围限制框(Limit output),并设置上限值(Upper saturation limit)与下限值(Lower saturation limit),可以将积分器的输出限制在一个给定的范围之内。此时积分器服从下列规则:当积分结果小于或等于下限值且输入信号为负,积分器输出保持在下限值(下饱和区);

当积分结果介于下限值和上限值之间时,积分器输出为实际积分值;

当积分结果大于或等于上限值且输入信号为正,积分器输出保持在上限值(上饱和区);

选择Show saturation port复选框可以在积分器上显示饱和端口Saturation。饱和端口的输出用来表示积分器的饱和状态,其取值有三种情况:

输出为1,表示积分器处于上饱和区;

输出为0,表示积分器处于正常范围之内;

输出为-1,表示积分器处于下饱和区。

当选择输出信号限制时,积分器模块将产生三个过零事件:一个用来检测积分结果何时进入上饱和区,一个用来检测积分结果何时进入下饱和区,还有一个用来检测积分器何时离开饱和区。

9.5.4 积分器重置

选择积分器状态重置框可以重新设置积分器的状态,其值由外部输入信号决定。此时在积分器输入端口下方出现重置触发端口。可以采用不同的触发方式对积分器状态进行重置:

上升沿触发重置方式:选择rising;

下降沿触发重置方式:选择falling;

双边沿触发重置方式:选择either;

当重置信号非零时,选择level重置积分器状态,并使积分器输出保持在初始状态。

积分器的重置端口具有直接馈入的特性。积分器的输出不管是直接反馈还是通过其它具有直接馈入特性的模块反馈至其重置端口,都会使系统出现代数环。而使用状态端口代替输出端口则可以避免代数环的产生。

9.5.5 积分器绝对误差设置(Absolute tolerance)

119

120

默认情况下,积分器采用Simulink 自动设置的绝对误差限。用户也可以根据自己的需要设置积分器的绝对误差限,直接在Absolute tolerance 下键入误差上限即可。 9.5.6 过零检测设置

当选择过零检测功能时,积分器会自动产生过零事件。下面使用例9.6说明。 例9.6 小球撞击地板系统的仿真模型及其积分器Velocity 参数设置窗口见图9.18。

小球撞击地板系统的仿真模型模拟以一定初速度向上弹的小球反复与地面相撞,其位置逐渐发生变化并最终变为零的过程。仿真模型不考虑空气的阻力。这样,小球在空中运行过程中的机械能量保持不变,保证了小球在与地面撞击后的瞬时速率与下次小球与地面撞击前的速率相同;其次,仿真模型对小球和地面的撞击过程做了简化。模型假设撞击后的速度与撞击前的速度之比始终是个常数,本例中该常数取值为

-0.8。

小球在空中做自由落体运动。根据牛顿运动学定律。小球的运动方程为dv g dt =

和dx v dt

= 其中g 为重力加速度,v 为小球速度,x 为小球在空间的位置。所以在构建仿真模型时,需要两个积分器:Position 和Velocity 。对于积分器Position 模块,它的输入是速度信号,且小球的初始位置是10,所

以其初始状态设置为10。此外,球与地板接触与否对位移的运算规律没有任何影响,所以Position 积分器的积分限是0至无穷大。但对于velocity 积分模块,由于小球与地板接触之后使小球速度方向和积分初始值均发生了变化,因此必须对此积分器进行参数设置。velocity 积分模块的参数设置情况见图9.18所示的velocity 积分器参数对话框。

Velocity 积分模块选择了积分器状态重置功能,采用位置信号的下降触发标志使积分重新回到初始值。而Initial condition source 参数设置为external ,则积分的初始值由外部输入,其初始值由一个初值为15的IC 模块给定。Show state port 复选框选中的结果是用户可以使用积分器的输出积分状态通过具有直接馈入特性的Gain 模块输入到IC 模块,而不用直接使用积分器的输出以避免系统中出现代数环。该积分器参数设置时选择了过零检测功能,使得Simulink 能够通过过零检测来准确地确定小球与地板接触的时刻。一旦小球位移从正变为负就产生一个下降触发事件,Simulink 通过过零检测来捕获这个事件。一旦检测到下降沿。就会使Velocity 重新设置为初始值,而此时的初始值为当前状态值乘以-0.8。运行Bounce 模型的仿真结果见图9.19。

图9.18 bounce 仿真模型及其Velocity 积分器设置

121

习 题

9.1 使用代数约束求解方程

2340x x ??=

9.2 求解代数方程组:12215

1

z z z z +=??

?=?,并将结果显示在display 模块中。

9.3 建立图9.20所示的仿真模型,熟悉高级积分器的使用方法,分析其所能完成的功能。

图9.19 Bounce 模型的仿真结果

图9.20 题9.3图

CarSim与Simulink联合仿真

CarSim与Simulink联合仿真 1 软件介绍 在MATLAB中,Simulink是用来建模、仿真和分析动态多维系统的交互工具。可以使用Simulink提供的标准模型库或者自行创建模型库,描述、模拟、评价和精化系统行为,同时,Simulink和MATLAB之间的联系十分便捷,可以使用一个灵活的操作系和应用广泛的分析和设计工具。最后,除了可以使用Simulink建模和仿真之外,还可以通过其他软件联合来完成更多的分析任务,如CarSim、ADAMS、AMEsim等许多软件。 CarSim是专门针对车辆动力学的仿真软件,CarSim模型在计算机上运行的速度比实时快3-6倍,可以仿真车辆对驾驶员,路面及空气动力学输入的响应,主要用来预测和仿真汽车整车的操纵稳定性、制动性、平顺性、动力性和经济性,同时被广泛地应用于现代汽车控制系统的开发。CarSim可以方便灵活的定义试验环境和试验过程,详细的定义整车各系统的特性参数和特性文件。CarSim软件的主要功能如下: ●适用于以下车型的建模仿真:轿车、轻型货车、轻型多用途运输车及SUV; ●可分析车辆的动力性、燃油经济性、操纵稳定性、制动性及平顺性; ●可以通过软件如MA TLAB,Excel等进行绘图和分析; ●可以图形曲线及三维动画形式观察仿真的结果; ●包括图形化数据管理界面,车辆模型求解器,绘图工具,三维动画回放工具,功率 谱分析模块; ●程序稳定可靠; ●软件可以实时的速度运行,支持硬件在环,CarSim软件可以扩展为CarSim RT, CarSim RT 是实时车辆模型,提供与一些硬件实时系统的接口,可联合进行HIL 仿真; ●先进的事件处理技术,实现复杂工况的仿真; ●友好的图形用户界面,可快速方便实现建模仿真; ●提供多种车型的建模数据库; ●可实现用户自定义变量的仿真结果输出; ●可实现与simulink的相互调用; ●多种仿真工况的批运行功能; 2 CarSim与Simulink联合仿真 2.1 Simulink接口 1) 变量由Simulink导入CarSim(导入变量) 可由Simulink导入到CarSim中的变量可达160多个,主要分为以下几部分: ?控制输入

通信仿真课程设计-matlab-simulink

成都理工大学工程技术学院 《通信仿真课程设计》报告 班级:信息工程1班 姓名:寇路军 学号: 201620101133 指导教师:周玲 成绩: 2019 年 3月 23 日

目录 通信仿真课程设计报告 (2) 一.绪论 (2) 二.课程设计的目的 (2) 三.模拟调制系统的设计 (3) 3.1 二进制相移键控调制基本原理 (3) 3.2 2PSK信号的调制 (3) 3.2.1模拟调制的方法 (3) 3.3 2PSK信号的解调 (4) 3.4 2PSK的“倒∏现象”或“反向工作” (5) 3.5功率谱密度 (5) 四.数字调制技术设计 (7) 4.1 2PSK的仿真 (7) 4.1.1仿真原理图 (7) 4.1.2 仿真数据 (7) 4.1.3 输出结果 (9) 总结 (10) 参考文献 (11)

通信仿真课程设计报告 一.绪论 随着社会的快速发展,通信系统在社会上表现出越来越重要的作用。目前,我们生活中使用的手机,电话,Internet,ATM机等通信设备都离不开通信系统。随着通信系统与我们生活越来越密切,使用越来越广泛,对社会对通信系统的性能也越高。另外,随着人们对通信设备更新换代速度越来越快。不得不缩短通信系统的开发周期以及提高系统性能。针对这两方面的要求,必需要通过强大的计算机辅助分析设计技术和工具才能实现。自从现代以来,计算机科技走上了快速发展道路,实现了可视化的仿真软件。 通信系统仿真,在目前的通信系统工程设计当中。已成为了不可替代的一部分。它表现出很强的灵活性和适应性。为我们更好地研究通信系统性能带来了很大的帮助。本论文主要针对模拟调制系统中的二进制相移键控调制技术进行设计和基于Simulink进行仿真。通过系统仿真验证理论中的结论。本论文设计的目的之一是进一步加强理论知识,熟悉Matlab软件。 Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink 已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。 二.课程设计的目的 1.掌握模拟系统2PSK调制和解调原理及设计方法。 2.熟悉基于Simulink的通信系统仿真。

Simulink仿真参数设定

simulink中的solver各选项表示的意思ZZ 2007-05-11 21:12 | (分类:默认分类) 构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。 一、设置仿真参数和选择解法器 设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。 Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。 Workspace I/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。 Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。 1、Solver页 此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;选择输出项。 仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。 仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法。 变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。 ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。 ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。 ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。 ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。 ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。 ode23tb:是TR-BDF2的一种实现, TR-BDF2 是具有两个阶段的隐式龙格-库塔公式。discrtet:当Simulink检查到模型没有连续状态时使用它。 固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。 ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。

MATLAB仿真技术

MATLAB仿真技术 作 业 合 集

第1章 习题 5.利用直接输入法和矩阵编辑器创建矩阵A=? ? ? ? ??642531。 解:⑴利用直接输入法输入程序 A=[1 3 5;2 4 6] 按Enter 键后,屏幕显示 A = 1 3 5 2 4 6 ⑵用矩阵编辑器创建矩阵,如图1.1所示。 图1.1 MATLAB 编辑器 7.用矩阵编辑器创建矩阵a,使a 具有如下矩阵形式。 a=??????642531?a=??????????654321?a=??????????987654321?a=???? ??????098706540321?a=????? ???????00 00 09870654 0321 解:用矩阵编辑器创建矩阵a 的过程如图1.2、1.3、1.4、1.5、1.6所示。 图1.2 图1.3 图1.4 图1.5

图1.6 9.已知矩阵B=????? ?? ?????????922518113211912102201304161475231501017,试:①提取矩阵B 的第一行和第二行的第2、4、5个元素组成新矩阵1B ;②提取矩阵B 的第三行和第一行的全部元素组成新矩阵2B ;③使矩阵B 的第一行和第三行的第2;4个元素为0;④标出矩阵B 的第一行中小于5的元素。 解:①如上题,用矩阵编辑器生成矩阵B ,再输入程序 B1=B([1,2],[2,4,5]) 按Enter 键后,屏幕显示 B1 = 0 0 15 5 14 16 ②输入程序 B2=B([1,3],:) 按Enter 键后,屏幕显示 B2 = 17 0 1 0 15 4 0 13 0 22 ③第一行和第三行的第2;4个元素原本就为0。 ④输入程序如下 C=B(1,:)<5; %将B 矩阵第一行中小于5 的值标记为1 D=B(1,C) %去B 矩阵第一行中标为1的元素 按Enter 键后,屏幕显示 D= 0 1 0 11.已知矩阵a 为4阶魔方阵,令a+3赋值给b ,a+b 赋值给c ,求b 和c 。 解:程序如下。 >> a=magic(4) %建立4阶魔方矩阵 a = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> b=a+3 %将a 中各元素加3 b = 19 5 6 16 8 14 13 11 12 10 9 15 7 17 18 4

Simulink系统仿真课程设计

《信息系统仿真课程设计》 课程设计报告 题目:信息系统课程设计仿真 院(系):信息科学与技术工程学院 专业班级:通信工程1003 学生姓名: 学号: 指导教师:吴莉朱忠敏 2012 年 1 月 14 日至2012 年 1 月 25 日 华中科技大学武昌分校制

信息系统仿真课程设计任务书

目录 摘要 (5) 一、Simulink仿真设计 (6) 1.1 低通抽样定理 (6) 1.2 抽样量化编码 (9) 二、MATLAB仿真设计 (12) 2.1、自编程序实现动态卷积 (12) 2.1.1 编程分析 (12) 2.1.2自编matlab程序: (13) 2.1.3 仿真图形 (13) 2.1.4仿真结果分析 (15) 2.2用双线性变换法设计IIR数字滤波器 (15) 2.2.1双线性变换法的基本知识 (15) 2.2.2采用双线性变换法设计一个巴特沃斯数字低通滤波器 (16) 2.2.3自编matlab程序 (16) 2.2.4 仿真波形 (17) 2.2.5仿真结果分析 (17) 三、总结 (19) 四、参考文献 (19) 五、课程设计成绩 (20)

摘要 Matlab 是一种广泛应用于工程设计及数值分析领域的高级仿真平台。它功能强大、简单易学、编程效率高,目前已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图形处理系统、MATLAB数学函数库和MATLAB应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。本次课程设计主要包括MATLAB和SIMULINKL 两个部分。首先利用SIMULINKL 实现了连续信号的采样及重构,通过改变抽样频率来实现过采样、等采样、欠采样三种情况来验证低通抽样定理,绘出原始信号、采样信号、重构信号的时域波形图。然后利用SIMULINKL 实现抽样量化编码,首先用一连续信号通过一个抽样量化编码器按照A律13折线进量化行,观察其产生的量化误差,其次利用折线近似的PCM编码器对一连续信号进行编码。最后利用MATLAB进行仿真设计,通过编程,在编程环境中对程序进行调试,实现动态卷积以及双线性变换法设计IIR数字滤波器。 本次课程设计加深理解和巩固通信原理、数字信号处理课上所学的有关基本概念、基本理论和基本方法,并锻炼分析问题和解决问题的能力。

Matlab中的Simulink和SimMechanics做仿真

这里我们利用Matlab中的Simulink和SimMechanics做仿真,那么先来看看相关的资料。 SimMechanics ——机械系统建模和仿真 SimMechanics 扩展Simscape? 在三维机械系统建模的能力。用户可以不进行方程编程,而是借助该多刚体仿真工具搭建模型,这个模型可以由刚体、铰链、约束以及外力组成。自动化3-D动画生成工具可做到仿真的可视化。用户也可通过从CAD系统中直接导入模型的质量、惯量、约束以及三维几何结构。Real-Time Workshop可以对SimMchanics模型进行自动化C代码生成,并在硬件在回路仿真过程中可以使用生成的代码而不是硬件原型测试嵌入式控制器。 SimMechanics可以用于开发悬架、机器手臂、外科医疗设备、起落架和大量的其它机械系统。用户也可以在SimMechanics环境下集成其它的MathWorks物理建模工具,这样做可以实现更加复杂跨领域的物理建模。 特点: ?提供了三维刚体机械系统的建模环境 ?包含了一系列分析机械运动和设计机械元件尺寸的仿真技术 ?三维刚体可视化仿真 ?SimMechanics Link utility,提供Pro/ENGINEER 和SolidWorks CAD平台的接口并且也提供了API函数和其它CAD平台的接口

?能够把模型转化为C代码(使用Real-Time Workshop) ?由于集成在Simulink环境中,因此可以建立高精度、非线性的模型以支持控制系统的开发和测试。 强大功能: 搭建机械系统模型 使用SimMechanics用户仅需要收集物理系统信息即可建立三维机械系统模型。使用刚体、坐标系、铰链和作用力元素定义和其它Simulink模型直接相连的部分。这个过程可以重用Simulink模型以及扩展了SimMechanics工具的能力。用户还可把Simulink模型和SimMechnics模型集成为一个模块,并可封装成可在其它模型中复用的子系统。 机械系统建模仿真和分析 SimMechanics包含如下子系统: ?使用Simulink查表模块和SimMechanics传感器和作动器定义的非线性的弹性单元 ?用来定义航空器件压力分布的空气动力学拖曳模块,例如副翼和方向舵 ?车辆悬架系统,例如防侧翻机械装置和控制器 ?轮胎模型

simulink仿真全参数设置

1.变步长(Variable—Step)求解器 可以选择的变步长求解器有:ode45,ode23,ode113,odel5s,ode23s和discret.缺省情况下,具有状态的系统用的是ode45;没有状态的系统用的是discrete. 1)ode45基于显式Runge—Kutta(4,5)公式,Dormand—Prince对.它是—个单步求解器(solver)。也就是说它在计算y(tn)时,仅仅利用前一步的计算结果y(tn-1).对于大多数问题.在第一次仿真时、可用ode45试一下. 2)ode23是基于显式Runge—Kutta(2,3).Bogackt和Shampine对.对于宽误差容限和存在轻微刚性的系统、它比ode45更有效一些.ode23也是单步求解器.3)odell3是变阶Adams-Bashforth—Moulton PECE求解器.在误差容限比较严时,它比ode45更有效.odell3是一个多步求解器,即为了计算当前的结果y(tn),不仅要知道前一步结果y(tn-1),还要知道前几步的结果y(tn-2),y(tn-3),…; 4)odel5s是基于数值微分公式(NDFs)的变阶求解器.它与后向微分公式BDFs(也叫Gear方法)有联系.但比它更有效.ode15s是一个多步求解器,如果认为一个问题是刚性的,或者在用ode45s时仿真失败或不够有效时,可以试试odel5s。odel5s是基于一到五阶的NDF公式的求解器.尽管公式的阶数越高结果越精确,但稳定性会差一些.如果模型是刚性的,并且要求有比较好的稳定性,应将最大的阶数减小到2.选择odel5s求解器时,对话框中会显示这一参数.可以用ode23求解器代替。del5s,ode23是定步长、低阶求解器. 5)ode23s是基于一个2阶改进的Rosenbrock公式.因为它是一个单步求解器,所以对于宽误差容限,它比odel5s更有效.对于一些用odel5s不是很有效的刚性问题,可以用它解决. 6)ode23t是使用“自由”内插式梯形规则来实现的.如果问题是适度刚性,而且需要没有数字阻尼的结果,可采用该求解器. 7)ode23tb是使用TR—BDF2来实现的,即基于隐式Runge—Kutta公式,其第一级是梯形规则步长和第二级是二阶反向微分公式.两级计算使用相同的迭代矩阵.与ode23s相似,对于宽误差容限,它比odtl5s更有效. 8)discrete(变步长)是simulink在检测到模型中没有连续状态时所选择的一种求解器.

adams和simulink联合仿真的案例分析

相信大家在联合仿真ADAMS和SIMULINK时都会遇到很多的问题:ADAMS/contro中的例子ball_beam通过联合仿真,更容易理解adams和simulink的联合仿真精髓。小球在一脉冲力的作用下沿着横梁滚动,此时梁的两端受力不平衡,梁的一段倾斜,为了使得小球不掉下横梁,在横梁上施加一个绕Z轴的力矩,横梁达到一定的角度之后逆向转动,然后小球就在这个作用力矩的控制下来回滚动而不掉下横梁!其中控制力矩在整个过程中是个动态变化的,力矩Torque_In是通过位移Position 和横梁转角Beam_Angle确定,这个是在simulink中通过框图完成的。 首先我申明一下我用的是adams2003和matlab6.5 以下我说明一下我的操作步骤: 1、把control中的ball_beam文件copy到另外一个文件夹下,同时设置adams和matlab的默认路径即为ball_beam文件夹,这样可以省略很多不必要的麻烦! 2、用aview打开ball_beam.cmd文件,先试试仿真一下,可以看到小球会在脉冲的作用下滚动,仿真时间最好大于8s 3、载入control模块,点击tools|plugin manager在control框选定。 4、点击control|plant export在file prefix下输入你的文件名,这个可以随便的,我输入的是myball,在plant input点击右键点

击guess选定tmp_MDI_PINPUT,在tmp_MDI_PINPUT中就是输入力矩Torque_In,只有一个输入参数;同样在plant output 中点击右键guess选定tmp_MDI_POUTPUT,这是模型的输出变量横梁转角Beam_Angle和小球与横梁中心轴的距离position。control package选择matlab,type是non_linear,初始化分析选择no,然后按ok!此时m文件已经生成了! 5、打开matalb,设置你的工作路径在ball_beam文件夹上,键入myball,马上有 %%% INFO : ADAMS plant actuators names : 1 Torque_In %%% INFO : ADAMS plant sensors names : 1 Beam_Angle 2 Position 出现 6、再键入adams_sys,弹出一个控制框图,这时可以新建一个mdl文件,将adams_sub拖入你新建的mdl框图中,其实再这里有一个偷懒的办法,就是在matlab中打开ball_beam.mdl文件,然后把他的那个adams_sub用你的刚产生的这个代替,然后另存为my_ball.mdl!

通信仿真课程设计-matlab-simulink

理工大学工程技术学院 《通信仿真课程设计》报告 班级:信息工程1班 姓名:寇路军 学号: 3 指导教师:周玲 成绩: 2019 年 3月 23 日

目录 通信仿真课程设计报告 (2) 一.绪论 (2) 二.课程设计的目的 (2) 三.模拟调制系统的设计 (3) 3.1 二进制相移键控调制基本原理 (3) 3.2 2PSK信号的调制 (3) 3.2.1模拟调制的方法 (3) 3.3 2PSK信号的解调 (4) 3.4 2PSK的“倒∏现象”或“反向工作” (5) 3.5功率谱密度 (5) 四.数字调制技术设计 (7) 4.1 2PSK的仿真 (7) 4.1.1仿真原理图 (7) 4.1.2 仿真数据 (7) 4.1.3 输出结果 (9) 总结 (10) 参考文献 (11)

通信仿真课程设计报告 一.绪论 随着社会的快速发展,通信系统在社会上表现出越来越重要的作用。目前,我们生活中使用的手机,,Internet,ATM机等通信设备都离不开通信系统。随着通信系统与我们生活越来越密切,使用越来越广泛,对社会对通信系统的性能也越高。另外,随着人们对通信设备更新换代速度越来越快。不得不缩短通信系统的开发周期以及提高系统性能。针对这两方面的要求,必需要通过强大的计算机辅助分析设计技术和工具才能实现。自从现代以来,计算机科技走上了快速发展道路,实现了可视化的仿真软件。 通信系统仿真,在目前的通信系统工程设计当中。已成为了不可替代的一部分。它表现出很强的灵活性和适应性。为我们更好地研究通信系统性能带来了很大的帮助。本论文主要针对模拟调制系统中的二进制相移键控调制技术进行设计和基于Simulink进行仿真。通过系统仿真验证理论中的结论。本论文设计的目的之一是进一步加强理论知识,熟悉Matlab软件。 Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink 已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。 二.课程设计的目的 1.掌握模拟系统2PSK调制和解调原理及设计方法。 2.熟悉基于Simulink的通信系统仿真。

matlab通信仿真课程设计样本

《matlab通信仿真设计》课程设计指导书 11月

课程设计题目1: 调幅广播系统的仿真设计 模拟幅度调制是无线电最早期的远距离传输技术。在幅度调制中, 以声音信号控制高频率正弦信号的幅度, 并将幅度变化的高频率正弦信号放大后经过天线发射出去, 成为电磁波辐射。 波动的电信号要能够有效地从天线发送出去, 或者有效地从天线将信号接收回来, 需要天线的等效长度至少达到波长的1/4。声音转换为电信号后其波长约在15~1500km之间, 实际中不可能制造出这样长度和范围的天线进行有效信号收发。因此需要将声音这样的低频信号从低频率段搬移到较高频率段上去, 以便经过较短的天线发射出去。 人耳可闻的声音信号经过话筒转化为波动的电信号, 其频率范围为20~20KHz。大量实验发现, 人耳对语音的频率敏感区域约为300~3400Hz, 为了节约频率带宽资源, 国际标准中将电话通信的传输频带规定为300~3400Hz。调幅广播除了传输声音以外, 还要播送音乐节目, 这就需要更宽的频带。一般而言, 调幅广播的传输频率范围约为100~6000Hz。 任务一: 调幅广播系统的仿真。 采用接收滤波器Analog Filter Design模块, 在同一示波器上观察调幅信号在未加入噪声和加入噪声后经过滤波器后的波形。采用另外两个相同的接收滤波器模块, 分别对纯信号和纯噪声滤波, 利用统计模块计算输出信号功率和噪声功率, 继而计算输出信噪比, 用Disply显示结果。 实例1: 对中波调幅广播传输系统进行仿真, 模型参数指标如下。

1.基带信号: 音频, 最大幅度为1。基带测试信号频率在100~6000Hz 内可调。 2.载波: 给定幅度的正弦波, 为简单起见, 初相位设为0, 频率为550~1605Hz 内可调。 3.接收机选频放大滤波器带宽为12KHz, 中心频率为1000kHz 。 4.在信道中加入噪声。当调制度为0.3时, 设计接收机选频滤波器输出信噪比为20dB, 要求计算信道中应该加入噪声的方差, 并能够测量接收机选频滤波器实际输出信噪比。 仿真参数设计: 系统工作最高频率为调幅载波频率1605KHz, 设计仿真采样率为最高工作频率的10倍, 因此取仿真步长为 8max 1 6.2310(1-1)10step t s f -==? 相应的仿真带宽为仿真采样率的一半, 即 18025.7(1-2)2step W KHz t == 设基带测试正弦信号为m(t)=Acos2πFt, 载波为c(t)=cos2πf c t, 则调制度为m a 的调制输出信号s(t)为 ()(1cos 2)cos 2(1-3)a c s t m Ft f t ππ=+ 容易求出, s(t)的平均功率为 21(1-4)24a m P =+ 设信道无衰减, 其中加入的白噪声功率谱密度为N 0/2, 那么仿真带宽(-W, W)内噪声样值的方差为 2002(1-5)2N W N W σ=?=

ADAMS与Matlab联合仿真

7.1机械夹紧机构建模使用实例 机械系统建模实例将创建一种机械夹紧机构模型,是阿波罗登月计划中用于夹紧登月舱和宇宙飞船的十二个夹紧机构之一。夹紧机构包括:摇臂(Pivot)、手柄(Handle)、锁钩(Hook)、连杆(Slider)和固定块(ground Block)等物体。 夹紧机构的工作原理是:如图7-1所示,在夹紧机构手柄(Handle)处施加一个作用力,驱动机构运动,使其锁钩(Hook)处产生十倍于作用力的夹紧力,用于夹紧登月舱和宇宙飞船。 夹紧机构的设计要求是:至少产生800N的夹紧力;施加在手柄上的力应不大于80N;释放手柄的力应最小;在振动环境中夹紧机构应安全可靠。 手柄Handle 锁钩Hook 图7-1 夹紧机构三维模型图 以下将从创建几何构件、添加约束、添加载荷及结果后处理等几个方面详细介绍机械夹紧机构模型的建立。通过本实例的学习,能够详细了解ADAMS软件设计流程及使用方法。 7.1.1创建几何构件 1、创建新模型 本实例将使用ADAMS/View的零件库、约束库和力库创建夹紧机构模型。 首先打开ADAMS/View,选择“Create a new model”,模型名称(Model Name):Latch,点击OK,创建新模型完毕。其它设置如图7-2所示:

图7-2 创建新模型 2、设置工作环境 选择菜单栏【Settings】→【Units】命令,设置模型物理量单位,如图7-3所示: 图7-3设置模型物理量单位 选择菜单栏【Settings】→【Working Grid】命令,设置工作网格,如图7-4所示:

图7-4设置工作网格 3、创建设计点 设计点是几何构件形状设计和位置定位的参考点。本实例将通过设计点列表编辑器创建几何构件模型所需要的全部设计点。 选择并点击几何模型库(Geometric Modeling)中的点(Point),下拉菜单选择(Add to Ground)、(Don’t Attach),并单击Point Table列表编辑器,创建并生成Point_1、Point_2等六个设计点,如图7-5、图7-6所示: 图7-5设计点列表编辑器

实验六 SIMULINK仿真综合实验

实验6 SIMULINK 仿真综合实验 一、实验目的 1.熟悉Simulink 的操作环境并掌握绘制系统模型的方法。 2.掌握Simulink 中子系统模块的建立与封装技术。 3.对简单系统所给出的数学模型能转化为系统仿真模型并进行仿真分析。 二、实验设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 三、实验内容 1.建立下图1所示的Simulink 仿真模型并进行仿真,改变Gain 模块的增益,观察Scope 显示波形的变化。 图1 正弦波产生及观测模型 Sine Wave Scope 1 Gain 2.利用simulink 仿真来实现摄氏温度到华氏温度的转化:325 9 c f +=T T (c T 范围在-10℃~100℃),参考模型为图2。 图2 摄氏温度到华氏温度的转化的参考模型 3.利用Simulink 仿真下列曲线,取πω2=。

t t t t t t x ωωωωωω9sin 9 1 7sin 715sin 513sin 31sin )(++++=。 仿真参考模型如下图3,Sine Wave5模块参数设置如下图4,请仿真其结果。 图3 ()x t ω的仿真参考模型图 图4 Sine Wave5模块参数设置图 4.悬吊式起重机动力学仿真 悬吊式起重机结构简图 1. 悬吊式起重机动力学方程 式中,mt 、mp 、I 、c 、l 、F 、x 、θ 分别为起重机的小车质量、吊重、吊重惯量、等价粘性摩擦系数、钢丝绳长(不计绳重),小车驱动力、小车位移以及 ())1(sin 22 θl x dt d m x c F x m p t ---= ()) 2(cos 22 θl dt d m g m P p p =-)3(sin cos )sin (22 θ θθθ I Pl l x dt d l m p =--小车水平方向受力方程吊绳垂直方向受力方程 小车的力矩平衡方程

复杂过程控制系统设计与Simulink仿真

银河航空航天大学 课程设计 (论文) 题目复杂过程控制系统设计与Simulink仿 真 班级 学号 学生姓名 指导教师

目录 0. 前言 (1) 1. 总体方案设计 (2) 2. 三种系统结构和原理 (3) 2.1 串级控制系统 (3) 2.2 前馈控制系统 (3) 2.3 解耦控制系统 (4) 3. 建立Simulink模型 (5) 3.1 串级 (5) 3.2 前馈 (5) 3.3 解耦 (7) 4. 课设小结及进一步思想 (15) 参考文献 (15) 附录设备清单 (16)

复杂过程控制系统设计与Simulink仿真 姬晓龙银河航空航天大学自动化分校 摘要:本文主要针对串级、前馈、解耦三种复杂过程控制系统进行设计,以此来深化对复杂过程控制系统的理解,体会复杂过程控制系统在工业生产中对提高产品产量、质量和生产效率的重要作用。建立Simulink模型,学习在工业过程中进行系统分析和参数整定的方法,为毕业设计对模型进行仿真分析及过程参数整定做准备。 关键字:串级;前馈;解耦;建模;Simulink。 0.前言 单回路控制系统解决了工业过程自动化中的大量的参数定制控制问题,在大多数情况下这种简单系统能满足生产工艺的要求。但随着现代工业生产过程的发展,对产品的产量、质量,对提高生产效率、降耗节能以及环境保护提出了更高的要求,这便使工业生产过程对操作条件要求更加严格、对工艺参数要求更加苛刻,从而对控制系统的精度和功能要求更高。为此,需要在单回路的基础上,采取其它措施,组成比单回路系统“复杂”一些的控制系统,如串级控制(双闭环控制)、前馈控制大滞后系统控制(补偿控制)、比值控制(特殊的多变量控制)、分程与选择控制(非线性切换控制)、多变量解耦控制(多输入多输出解耦控制)等等。从结构上看,这些控制系统由两个以上的回路构成,相比单回路系统要多一个以上的测量变送器或调节器,以便完成复杂的或特殊的控制任务。这类控制系统就称为“复杂过程控制系统”,以区别于单回路系统这样简单的过程控制系统。 计算机仿真是在计算机上建立仿真模型,模拟实际系统随时间变化的过程。通过对过程仿真的分析,得到被仿真系统的动态特性。过程控制系统计算机仿真,为流程工业控制系统的分析、设计、控制、优化和决策提供了依据。同时作为对先进控制策略的一种检验,仿真研究也是必不可少的步骤。控制系统的计算机仿真是一门涉及到控制理论、计算机数学与计算机技术的综合性学科。控制系统仿真是以控制系统的模型为基础,主要用数学模型代替实际控制系统,以计算机为工具,对控制系统进行实验和研究的一种方法。在进行计算机仿真时,十分耗费时间与精力的是编制与修改仿真程序。随着系统规模的越来越大,先进过程控制的出现,就需要行的功能强大的仿真平台Math Works公司为MATLAB提供了控制系统模型图形输入与仿真工具Simulink,这为过程控制系统设计与参数整定的计算与仿真提供了一个强有力的工具,使过程控制系统的设计与整定发生了革命性的变化。

(完整word版)CarSim、Simulink联合仿真

CarSim 与Simulink 联合仿真 1 软件介绍 在MATLAB 中,Simulink 是用来建模、仿真和分析动态多维系统的交互工具。可以使用Simulink 提供的标准模型库或者自行创建模型库,描述、模拟、评价和精化系统行为,同时,Simulink 和MATLAB 之间的联系十分便捷,可以使用一个灵活的操作系和应用广泛的分析和设计工具。最后,除了可以使用Simulink 建模和仿真之外,还可以通过其他软件联合来完成更多的分析任务,如CarSim 、ADAMS 、AMEsim 等许多软件。 CarSim 是专门针对车辆动力学的仿真软件,CarSim 模型在计算机上运行的速度比实时快3-6 倍,可以仿真车辆对驾驶员,路面及空气动力学输入的响应,主要用来预测和仿真汽车整车的操纵稳定性、制动性、平顺性、动力性和经济性,同时被广泛地应用于现代汽车控制系统的开发。CarSim 可以方便灵活的定义试验环境和试验过程,详细的定义整车各系统的特性参数和特性文件。CarSim 软件的主要功能如下:适用于以下车型的建模仿真:轿车、轻型货车、轻型多用途运输车及SUV ;可分析车辆的动力性、燃油经济性、操纵稳定性、制动性及平顺性;可以通过软件如MA TLAB ,Excel 等进行绘图和分析;可以图形曲线及三维动画形式观察仿真的结果;包括图形化数据管理界面,车辆模型求解器,绘图工具,三维动画回放工具,功率谱分析模块;程序稳定可靠;软件可以实时的速度运行,支持硬件在环,CarSim 软件可以扩展为CarSim RT, CarSim RT 是实时车辆模型,提供与一些硬件实时系统的接口,可联合进行HIL 仿真;先进的事件处理技术,实现复杂工况的仿真;友好的图形用户界面,可快速方便实现建模仿真;提供多种车型的建模数据库;可实现用户自定义变量的仿真结果输出;可实现与simulink 的相互调用;多种仿真工况的批运行功能; 2 CarSim 与Simulink 联合仿真 2.1 Simulink 接口 1)变量由Simulink 导入CarSim (导入变量) 可由Simulink 导入到CarSim 中的变量可达160 多个,主要分为以下几部分:控制输入

单闭环直流调速系统simulink仿真课程设计

目录 一、摘要.......................................................... - 3 - 二、课程设计任务 .................................................................................................... - 3 - 三、课程设计内容 .................................................................................................... - 3 - 1、PID控制原理及PID参数整定概述.................................................................... - 3 - 2、基于稳定边界法(临界比例法)的PID控制器参数整定算法 ............................ - 5 - 3、利用Simulink建立仿真模型............................................................................ - 8 - 4、参数整定过程 .................................................................................................- 12 - 5、调试分析过程及仿真结果描述.........................................................................- 16 - 四、总结 ...................................................................................................................- 17 - 五、参考文献 ...........................................................................................................- 17 -

实验7 Simulink仿真技术

实验七Simulink仿真技术 1 实验目的: 了解对动态系统进行建模、仿真与分析工具-------Simulink 掌握Simulink仿真的方法和步骤 2 实验相关的知识重点: Simulink是MATLAB下的一个软件包。使用Simulink进行仿真一般分为两步: 1、在仿真模型编辑窗口中搭建好自己的仿真模型,设置好具体模型参数和仿 真参数; 2、开始仿真,Simulink将根据用户搭建的模型,模拟系统在用户设定条件下 的具体行为。 一个典型的Simulink模型由信源、系统及信宿等3部分组成可,它们的关系如下图所示: 信源提供系统的输入信号,如常量、正弦波、方波等;系统是对仿真对象的数学抽象,比如是连续线性系统,还是连续非线性系统?对输入信号进行求和,还是对输入信号进行一次调制:信宿是收信号的的部分,用户可以把它送到“示波器”中显示出来,或者保存到相应的mat文件中去。 一、模型文件操作 Simulink所建立的模型文件的后缀名为*.mdl。模型文件实际是一个结构化了的ASCII文件,它描述了模型的关键字和参数。同MATLAB的M文件一样它可以进行新建、打开、保存、打印等操作。 二、模块的操作 1. 模块的选定: 2.模块大小的调整: 3.模块方向的调整: 4.模块位置的调整: 5.模块的删除: 6.模块参数的设置 三、信号线的操作 1.信号线的连接: 2.信号线的折曲: 3.折点的移动: 4.信号线的删除: 5.信号线的标签: 6.信号线标签的传递: 四、模型的注释

建立Simulink模型应该养成添加模型注释的良好习惯。方法是:在模型编辑窗任意位置双击鼠标左键,将弹出一个编辑窗,可以在其中写入注释内容。 在模块库浏览器中的Simulink结点下包含了搭建一个Simulink模型所需的基本模块,这些是首先应该掌握的。下面主要对其中的Sources模块库、Sinks 模块库、Continuous模块库、Discrete模块库、Math Operations模块进行介绍。 一、Sources模块库 主要用于给Simulink仿真模型提供输入信号 1. Sine Wave模块 2.From Workspace模块 3.From File模块 二、Sinks模块库 主要功能是接收信号,并且将接收到的信号显示出来 1. 示波器的工具栏 2. 坐标轴的范围调整 三、Continuous模块库 主要用于对连续系统的建模。 四、Discrete模块库 主要用于离散系统建模。这类系统在时域上一般用差分方程来描述,或者在频域上利用Z变换得到传递函数进行描述. 五Math Operations模块库 主要用于对输入信号进行数学操作,包括逻辑运算和关系运算. 六其他模块库中的内容 基本模块库中还包括很多其他模块,另外,Simulink还可以由Blocksets来扩展它的功能.例如,利用DSP Blockset仿真数字信号处理的问题,利用Communication Blockset, CDMA Reference Blockset可以仿真通信领域的问题. 3 实验题目: 1.打开Simulink的模块库浏览器,仔细观察Simulink的基本模块, 它们是如何分类组织起来的?这样,在实际使用中才能快速、正确地查到自己所需要的模块。 2.用信号发生器产生频率1GHz,最高幅度为2的正弦波,用示波器 显示出来;用信号发生器产生幅度为2 ,频率10MHz, 占空比1/2的方波信号,用示波器显示。 3.为什么要封装子系统,如何封装?举例说明。

基于MATLAB的数字基带传输系统的仿真-课程设计报告书

通信工程专业《通信仿真综合实践》研究报告 基于MATLAB的数字基带传输系统的仿真设计 学生:*** 学生学号:20***** 指导教师:** 所在学院:信息技术学院 专业班级:通信工程 中国 2016 年 5月

信息技术学院 课程设计任务书 信息技术院通信工程专业 20** 级,学号 201***** **** 一、课程设计课题: 基于MATLAB的数字基带传输系统的仿真设计 二、课程设计工作日自 2016 年 5 月 12 日至 2016 年 5 月 24 日 三、课程设计进行地点:图书馆 四、程设计任务要求: 1.课题来源: 指导教师指定题目 2.目的意义:. 1)综合应用《掌握和精通MATLAB》、《通信原理》等多门课程知识,使学生建立通信系统的整体概念 2)培养学生系统设计与系统开发的思想 3)培养学生独立动手完成课程设计项目的能力 3.基本要求: 1) 数字基带信号直接送往信道: 2)传输信道中的噪声可以看作加性高斯白噪声 3)可用滤波法提取定是信号 4)对传输系统要有清楚的理论分析 5)把整个系统中的各个子系统自行构造,并对其性能进行测试 6)最终给出信号的仿真结果(信号输出图形) 课程设计评审表

基于MATLAB 的数字基带传输系统的仿真 概述 :本课程设计主要研究了数字信号的基带传输的基本概念及数字信号基带传输的传输过程和如何用MATLAB 软件仿真设计数字基带传输系统。首先介绍了本课题的理论依据及相关的基础知识,包括数字基带信号的概念,数字基带传输系统的组成及各子系统的作用,及数字基带信号的传输过程。最后按照仿真过程基本步骤用MATLAB 的仿真工具实现了数字基带传输系统的仿真过程,对系统进行了分析。 第一部分 原理介绍 一、数字基带传输系统 1)数字基带传输系统的介绍 未经调制的数字信号所占的频谱是从零频或很低频率开始,称为数字基带信号。在某些具有低通特性的有线信道中,特别是在传输距离不太远的情况下,基带信号可以不经载波调制而直接传输。这种不经载波调制直接传输数字基带信号的系统,称为数字基带传输系统。 数字基带系统的基本结构可以由图1 的模型表示.其中包括发送滤波器、传输信道、接收滤波器、抽样判决等效为传输函数为H (w) 基带形成网络,对于无码间干扰的基带传输系统来说, H (w) 应满足奈奎斯特第一准则, 在实验中一般取H (w) 为升余弦滚降特性.在最佳系统下, 取C(w) = 1,GT (w) 和GR(w) 均为升余弦平方根特性.传输信道中的噪声可看作加性高斯白噪声, 用产生高斯随机信号的噪声源表示. 位定时提取电路,在定时精度要求不高的场合, 可以用滤波法提取定时信号,滤波法提取位定时的原理可用图2表示。 图1 基带传输系统模型 设发送滤波器的传输特性 , 则 ω ωπ d e H t g jwt R ? ∞ ∞ -= )(21 )()(ωT G

相关主题