Matlab仿真应用详解讲义Word文档格式.docx

上传人:b****6 文档编号:21644054 上传时间:2023-01-31 格式:DOCX 页数:50 大小:1.34MB
下载 相关 举报
Matlab仿真应用详解讲义Word文档格式.docx_第1页
第1页 / 共50页
Matlab仿真应用详解讲义Word文档格式.docx_第2页
第2页 / 共50页
Matlab仿真应用详解讲义Word文档格式.docx_第3页
第3页 / 共50页
Matlab仿真应用详解讲义Word文档格式.docx_第4页
第4页 / 共50页
Matlab仿真应用详解讲义Word文档格式.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

Matlab仿真应用详解讲义Word文档格式.docx

《Matlab仿真应用详解讲义Word文档格式.docx》由会员分享,可在线阅读,更多相关《Matlab仿真应用详解讲义Word文档格式.docx(50页珍藏版)》请在冰豆网上搜索。

Matlab仿真应用详解讲义Word文档格式.docx

2、计算机仿真

计算机仿真也称为计算机模拟,就是利用计算机对所研究系统的结构、功能和行为以及参与系统控制的主动者——人的思维过程和行为,进行动态性的比较和模仿,利用建立的仿真模型对系统进行研究和分析,并可将系统过程演示出来.

1.2计算机仿真模型与方法

1、系统

系统是指相互联系又相互作用的元素之间的有机组合.这里所指的系统是广义的,它包含所有的工程系统和非工程系统.电气、机械和通信系统都是工程系统,而经济、交通、管理和生物系统等都是非工程系统。

 任何系统都存在三方面需要研究的内容:

 实体:

组成系统的具体对象.

 属性:

实体的特性(状态和参数)。

即实体、属性和活动。

由于组成系统的实体之间相互作用而引起实体属性的变化,通常用“状态"

的概念来描述。

研究系统就是研究系统状态的改变,即系统的转变。

系统具有四个特性:

(1)目的性 

(2)集合性(3)相关性(4)环境适应性

2、模型

模型建立的任务是要确定模型的结构和参数。

建立模型有三种途径:

(1)对内部结构和特性清楚的系统,即所谓的白箱(多数的工程系统都属于这一类),可以利用已知的一些基本规律,经过分析和演绎导出系统模型.

 

(2)对那些系统结构和特性不清楚或不很清楚的系统,即所谓的黑箱或灰箱,如果允许直接进行试验性观测,则可以先猜想模型再通过试验验证和修正之。

(3)对那些系统结构和特性不清楚或不很清楚但又不允许直接实验观测的系统(非工程系统多属于这一类),则采用数据收集和统计归纳的方法来假设模型。

  在选择模型结构时,要以方便达到模型研究的目的为前提.通常遵循下述原则:

  

(1)相似性.即模型与被研究系统具有相似的数学报述或物理特征。

相似原则是选择模型最重要的原则。

   

(2)简单性。

一般而言,在实用的前提下,模型越简单越好。

(3)切题性。

模型应该针对研究目的的有关方面,而不是一切方面.

   (4)吻合性。

模型结构的选择,应尽可能对利用的数据作合理的描述,通常其实验数据应尽可能由模型来解释。

 (5)综合精度。

它是模型框架、结构和参数集合的一种指标。

若有限的信息限制了模型的精度,则应进行各方面精度的平衡和折中。

(6)可辨识性。

模型结构必须选择可辨识的形式。

若一个结构具有无法估计的参数,则此结构无实用价值.

1。

1.3计算机仿真的步骤

计算机仿真,概括地说是一个“建模一实验一分析”的过程,即仿真不单纯是对模型的实验,还包括从建模到实验再到分析的全过程。

因此进行一次完整的计算机仿真有以下步骤:

(1)列举并列项目

每一项研究都应从说明问题开始,问题由决策者提供,或由熟悉问题的分析者提供.

(2)设置目标及完整的项目计划

目标表示仿真要回答的问题,系统方案的说明,项目计划包括人数,研究经费以及每一阶段工作所需要的时间。

(3)建立模型和收集数据

模型和实际系统没有必要一一对应型开始,然后建立更复杂的模型。

 (4)编制程序和验证只需描述实际系统的本质.利用数学公式、逻辑公式和算法等来表示实际系统的内部状态和输入输出的关系。

建模者必须决定是采用通用语言如Fortran、C还是专用仿真语言来编制程序。

在本书中,我们的选择是Matlab和其动态仿真工具simulink,在以下的章节中,我们会逐步展示使用MATLAB的好处.

(5)确认

确认指确定模型是否精确地代表实际系统。

它不是特性的差异,不断对模型进行校正的迭代过程。

(6)实验设计次完成,而是比较模型和实际系统

确定仿真的方案、初姑化周期的长度、仿真运行的长度以及每次运行的重复次数.

 (7)生产性运行和分析

通常用于估计被仿真系统设计的性能量度。

利用理论定性分析、经验定性分析或系统历史数据定量分析来检验模型的正确性,利用灵敏度分析等手段来检验模型的稳定性.

 (8)文件清单和报表结果

(9)实现

表示为框图为:

1.2仿真实例:

报童问题仿真

1、报童问题

报童每卖一份报纸赚a元,若订报后卖不出去,则可退回,此时每退一份赔b元,虽然每天卖出的报数是随机的,但报童可以根据以往卖报情况的统计来获得每天卖k份的概率p(k),试求报童每天期望受益达到最大的订报量z'

2、数学模型

设报童每天订报z份,每天卖出y份,设y的分布为

考虑到报童每天的损失情况有如下两种:

(1)供过于求,因退货造成的平均损失为

(2)供不应求,因缺货造成的平均损失为:

所以每天的期望损失费为

目标是使得每天期望损失最小的订报量.反之,就是使报童的每天期望总收益达到最大,写成目标函数为:

约束条件z受到报童资本的限制.

要求解此模型可以用的方法:

(1)如果知道p的概率分布.或者(2)枚举法,但是搜索范围有限。

3、计算机仿真求解

对于给定每天订报量Z值,利用离散随机变量采样算法产生给定分布的随机数R,用来表示报童每天卖出的报纸数,从而可以计算出一天的损失以及一个阶段的平均损失.(key:

如何产生服从给定分布的随机变量?

?

)而且在实际应用中分布并非总是给定的,需要搜集数据,从中辨识分布,进行参数估计.

4、计算机仿真程序

注:

假设在均匀分布条件下

5、仿真结果与分析

[z,s]=baotong(5,10,0。

2,0.4)

6、报童问题模拟系统的推广

(1)求每天的卖出报数服从任意分布的情况下,使报童受益最大的最优订报量Z’

(2)对报纸总发行量进行测算

(3)适当修改仿真系统,可将其用于企业的订货和库存策略研究

1.3 随机变量的产生

这一节假定分布函数已经确定,而主要介绍产生具有这种分布的随机变量的方法。

这些方法的基础是独立均匀分布U(0,1)的随机源,在MATLAB中提供了产生U(0,1)分布的随机数的函数.此外还提供了产生各种分布随机数的函数。

1。

3.1均匀分布随机数的产生

大多数随机数发生器是各种同余发生器,由Lehmer在1951年提出的

产生0到m-1之间的数

C=0时为乘同余法,不为零时为混合同余法。

对于二进制机器,可以按照下面规则选择a和m

1.3.2、随机变量的产生

1、反函数法

理论基础是概率积分变换原理:

设X是一个0到1间均匀分布的随机变量U(0,1)其采样值为x,

为满足概率分布F(y)的随机变量。

因此产生变量Y的随机数y可以分为两步:

例如:

产生U(a,b)随机数y

韦伯分布,在可靠性问题中有广泛的应用。

2、卷积法

3、产生正态分布的随机数

有两种方法:

(1)近似法

理论基础为概率论中的中心极限定理,可以用多种相互独立的均匀分布随机数来产生正态分布,比较著名的是随机数的个数选12个,即:

该方法缺点是精度不够.

(2)直接变换法

因为正态分布的反函数无法用解析式表达,所以不能用反函数方法产生,直接变换法的步骤如下:

4、离散随机变量采样的直接变换法

5、泊松分布随机数的产生

泊松分布在排队论和军事运筹学中是一种常见的随机数。

它的产生当然可以采用直接变换法,但其计算量会很大.这里不作证明地介绍一种简单的算法:

注意:

不管使用哪种方法产生何种分布的随机数,都应该对所产生的随机数进行统计检验。

1.4输入数据的分析

输入数据时仿真实验的动力,如在排队系统中,典型的输入数据是到达的时间间隔和服务时间的分布。

要得到一个正确的输入数据模型需要4个步骤:

(1)收集原始数据

(2)基本统计分布的辨识,如用频数分布或直方图的方法作出分布假设;

(3)在上面所作的假设分布前提下,估测分布的参数;

(4)进行拟合度检验,以确定所假设的分布形式是否与收集到的数据吻合。

如果不吻合,返回到第

(2)步重新作出假设。

若实验多次仍不吻合,则使用经典的分布形式。

说明:

分布的辨识:

这一步的目的是对所收集的数据的概率分布形式作出假设,以便进行后面的参数估计和分布的假设检验。

首先要画出频数分布或直方图。

直方图的数据取值范围一般是等宽的,当然有时也用到不等宽的区间。

在画直方图中,分组区间的组数依赖于观察次数以及数据的分散程度。

经验的法则是选择样本量的平方根。

对于连续数据的直方图,一般可以将每一区间频数中点连接起来便于观察.

常用估计量

拟合度检验

常用的检验方法:

卡方分布

—个科学的完整的仿真研究,还应包括对输出结果的分析。

输出分析就是对仿真中所产生的数据进行分析,其目的在于预测一个系统的性能或比较两个甚至多个不同系统设计的性能.

1.5离散系统仿真

若系统中状态的变化是在某些离散点或量化区间上发生,这样的模型称为离散事件模型,对应的系统称为离散事件系统。

客观现实中,这样的系统是大量存在的。

它不仅存在于工程系统之中,而且还大量出现于非工程系统(如经济、社会和生物)领域之中.例如,市场贸易、库存管理、设备装修、人口控制和交通管理等系统。

在这种系统的研究、开发、设计和规划等工作中,人们经常需要了解哪些是系统的控制因素以及它们对系统稳定性和发展进程等方面的影响。

例如,在经济领域中,商品的价格可能会在平均价格水平上发生周期性波动或者临时出现对商品价格的控制失灵。

人们希望能够预测这些现象并对他们进行控制.

离散系统的基本要素

离散系统的基本要素主要有:

  

(1)实体.一般指系统所研究的对象.用系统的术语说,它是系统边界内的对象,系统中流动的或活动的元素都可以成为实体。

例如,企业生产经营系统中,采购部、北京时间、制造车间和销售部门等均可称为实体。

(2)属性.实体由它的属性来描述,属性反映实体的某些性质.例如,在商店系统中的顾客是一个实体,性别、年龄、优先权、购物时间、排队时间、服务时间以及购物费用等便是它的属性。

  (3)时刻。

在系统的某个时间数值上,至少有一个实体的属性被改变,则称此时间数值为时刻。

   (4)间隔。

相邻两个时刻之间的持续时间称为间隔。

 (5)状态。

在某—个确定时刻,对系统实体和属性的描述称为状态。

(6)事件.在某个时刻,系统状态变化的产生,称为一个时间,“事件"

是改变系统状态的实体的瞬间行为。

(7)活动。

文体的一个持续期间称为活动.活动的开始或结束的瞬间则是一事件。

  (8)进程。

进程由若干事件及若干活动组成,一个进程描述了它所包括的事件及活动间的相互逻辑关系及时序关系。

如,一个顾客到达系统,经过排队,直到服务员为其服务完毕后离去可称为一个进程。

2、离散系统仿真模型的结构

FEL:

未来事件表,存放表示所有当前正在进行的活动的结束事件,每一个事件记录至少包含两项:

事件时间和事件类型。

一般有如下组成部分:

(1)系统状态。

它是由一组系统状态变量构成,用它来描述系统在不同时刻的状态。

(2)模拟时钟。

用来提供模拟模型当前时刻的变量,它描述系统内部的时间变化。

(3)时间表。

在模拟过程中按时间顺序所发生的事件类型和时间对应关系的表,称为时间表。

(4)统计器。

在计算机仿真中往往设计一些工作单元,用来控制和存储仿真过程中结果的统计信息,并进行统计计数。

(5)定时子程序。

该子程序可依据时间表来确定下一个事件,并将模拟时钟报移到-卜个事件的发生时间。

(6)初姑子程序。

在开始仿真时对系统进行初姑化的子程序。

(7)事件子程序。

一个事件子程序对应于一种类型的事件,它在相应事件发牛时,就转入该事件:

子程序进行处理,更新系统状态.

(8)仿真报告子程序。

它在仿真结束时,用来计算与打印仿真结果。

(9)主程序。

它用来调用定时子程序,控制整个系统的仿真过程,并确定下一事件,传递控制给各事件子程序以更新系统状态.

3、模拟时钟

模拟时钟和实际时钟的区别在于:

前者是离散的,后者是连续的。

模拟时钟的读数应与现实系统中事件发生的时间·

一致,但模拟时钟的时间决不等于计算机进行模拟运行的时间.仿真运行时间完全取决于被仿真系统的特点、模型复杂的程度,以及模拟时钟所取单位的大小。

例如,当模拟一个经济系统时,模拟时钟的单位可以取月或年。

这样,即使现实系统运行了几年甚至几百年,而高速计算机用于仿真的运行可以在几分钟内完成。

1.5.2离散系统仿真的基本方法

1、基本策略

离散系统仿真的基本策略有三种,分别是事件调度法(EventScheduling)、活动扫描法(ActivityScanning)和进程交互法(ProcessInteraction)。

(1)事件调度法

离散系统中最基本的概念是事件。

用事件的观点来分析真实系统,通过定义事件及每个事件发生引起系统状态的变化,按时间顺序确定并执行每个事件发生时相关的逻辑事仍:

,这就是事件调度法的基本思想。

按这种策略建立模型时,所有事件均放在事件表中.模型中设有一个时间控制成分,该成分从事件表中选择具有最早发生时间的事件,并将模拟时钟修改到该事件发生的时间,再调用与该事件相应的事件处理模块,该事件处理完后返回时间控制成分。

这样,事件的选择与处理不断地进行,直到仿真终止的条件满足或程序事件产生为止。

(2)活动扫描法

有时,事件发生不仅与时间有关,而且与其他条件有关,即只有满足某些条件时才会发生.在这种情况下,采用事件调度法就显示出这种策略的弱点.原因在于,这类系统的活动持续时间具有不确定性,因而无法预定活动的开始或终止时间。

活动扫描法是针对具有上述特点的系统产生的,这种策略的基本思想:

系统由成分组成,而成分包含活动,这些活动必须满足某些条件,每一个成分均有一个相应的活动子进程;

仿真过程中,活动的发生时间作为条件之一,而且具有较高的优先权。

(3)进程交互法

离散系统仿真的第三种方法是进程交互法.我们知道,一个进程包含若干个有序事件及有序活动.进程交互法采用进程描述系统,将模型中的主动成分历经系统时所发生的事件及活动按时间顺序进行组合,从而形成进程。

一个成分一旦进入进程,它将完成该进程的全部活动。

进程交互法既可预定事件,又可对条件求值,因而它兼有事件调度法及活动扫描法两者的特点。

一般很少采用这种方法。

该方法被广泛采用。

但实现和设计复杂.

第二章 用MATLAB实现静态仿真

2。

1、MATLAB中的程序设计

2、决策:

控制流

2.2 仿真应用:

输入数据分析

2.1 随机变量的产生

两个基本的函数用于产生随机数:

1、rand

产生(0,1)之间的均匀分布的随机数或向量.

2、randn产生标准正态分布的随机数

如何利用rand和randn产生泊松分布的随机数.

我们可以利用Matlab提供的统计工具箱生成各种分布的随机数.

4、random

x1= random(’Normal',0,1,2,4);

产生2*4的正态分布序列

x2= random(’Poisson'

1:

6,1,6);

分别产生参数为1到6的泊松分布数值

Y=random(name,A) returnsrandomnumbers Yfrom the one-parameterfamily ofdistributionsspecifiedbyname. Parameter values for thedistributionaregivenin A。

收集—画出直方图—参数估计—拟合度检验的分析方法

1、Matlab中画直方图的函数

 N=hist(Y),其中Y指输入的数据向量,(这里既可以行向量,也可以是列向量),但如果Y为矩阵.则看成几个列向量分别处理。

由于没食指定区间如何划分,函数缺省的将输入数据的范围等宽的划分为10块.输出N返回一频数矢量。

  N=hist(Y,M),其小M足一个标量,指定分块的个数。

  N=hist(Y,X),其中x是个向量,用以指定每块的中心值,这就使得用户具有定义非等宽分块的能力,如果想更随意的定义块的边界就要使用histc函数.此外,hist还可以返回每个小块的中心值,调用形式为[X,N]=hist(…),如果调用时没有输出参量,则函数仅画直方图。

Allelementsin vectorYorin onecolumnofmatrixYare groupedaccordingtotheirnumeric range. Each group is shownas onebin.

函数bar(n)用来画出直方图。

比较高斯分布和泊松分布的直方图,不难发现它们之间形状上的差别,高斯分布的直方图 一般关于某条轴对称,而泊松分布稍微向左边偏一点.这些特征分别与各自的概率密度函数图像相对应。

至此就可以对输入数据的分布形式作出判断,再进行参数估计。

2、参数估计

Matlab中计算两个统计量均值和样本方差的函数分别是mean和std。

当第1个下标不变,第二个下标变化时说明列不变,行数一直变化。

因此是对每一行求平均。

Mean(d,1)表示对每一列求平均,当dim维数超过2时,则结果为d。

对矩阵求标准方差使用std函数。

这些函数缺省情况下都是按列向量进行的,但都可以自定义成按行向量进行分析。

例如:

I就是向量Y按元素值升序排列后下标的相应排序。

Matlab统计工具箱中有许多专门的函数用来进行参数估计。

如poissfit,betafit, binofit,expfit,gamfit, mle,normfit,unifit,weibfit等,其中mle是极大似然估计.以poissfit为例:

3、拟合度检验

有以下几个步骤:

(3)根据样本的自由度以及检验前给定的显著性水平,在卡方表例查出作出判决的阈值,并将检验统计量与之相比较.若大于阈值,则拟合不好,需要重新假设,否则说明合理。

理论频数的计算需要一些技巧。

计算理论频数的步骤:

diff用来求差分和近似导数。

Y=diff(X)calculatesdifferencesbetweenadjacentelements ofX。

If Xisavector,then diff(X)returnsa vector,one elementshorterthanX,of differencesbetweenadjacentelements:

[X(2)-X

(1) X(3)-X

(2) ... X(n)-X(n-1)]

IfXisa matrix,then diff(X) returnsamatrixof rowdifferences:

[X(2:

m,:

)-X(1:

m-1,:

)]

Ingeneral,diff(X)returnsthe differencescalculatedalongthefirstnon-singleton(size(X,dim) >

 1) dimensionofX.

Y =diff(X,n)applies diffrecursivelyntimes,resultinginthe nth difference。

Thus,diff(X,2) isthesameasdiff(diff(X))。

Y= diff(X,n,dim) isthenthdifference functioncalculatedalongthe dimensionspecified by scalardim.Iforder nequalsorexceedsthelengthofdimensiondim, diffreturnsanemptyarray.

2.3 仿真应用之输出分析

3。

1图形函数

Figure,plot,xlabel,ylabel,legend,title等。

子图绘制subplot

2.3。

3曲线插值与拟合

1、曲线拟合

2、一维插值

长度.

3、三次样条插值

绘制一个圆的过程.

2。

4静态仿真应用实例

4。

1二进制通信系统的蒙特卡洛仿真

1、问题

通信理论中对某种通信方式的误码率的估算。

2、模型建立

二进制通信中,0和1组成的二进制数据采用两个波形传播,设数据率为Rbit/s,发送每个比特更具如下规则映射为相应的波形:

Tb为事件间隔,这个映射的过程也称为脉冲调制。

通信理论中,假定数据比特中0和1出现的概率相同,各为0。

对于传输信号的信道通常用加性高斯白噪声信道(AGWN)来近似。

即在传输的信号上叠加一个高斯随机过程,因此得到接收波形为:

最佳接收机的组成结构:

选择不同的传输信号,相关器的输出就会有不同的结果,如,传输信号s0,s1满足下面的条件:

第一个表达式的意思是指两个信号正交,后一个等式要求两个信号的能量相同,这种情况下可以导出:

在0被发送的前提下:

(如何导出?

1被发送的前提下:

相关器的判决准则是当r0>r1时判定接收波形代表的比特为0,否则为1。

如果判断错误,就产生了误码。

误码率的解析式为:

在通信理论中通常定义信噪比参数作为系统的一个参数,定义为:

3、二进

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1