现代仿真技术与应用-第三章连续系统的数字仿真.ppt_第1页
现代仿真技术与应用-第三章连续系统的数字仿真.ppt_第2页
现代仿真技术与应用-第三章连续系统的数字仿真.ppt_第3页
现代仿真技术与应用-第三章连续系统的数字仿真.ppt_第4页
现代仿真技术与应用-第三章连续系统的数字仿真.ppt_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,现代仿真技术与应用,教师:陆艳洪 联系方式: TEL: 88493458 转921 EMAIL: 办公室:实验大楼A913,2,现代仿真技术与应用 章节安排,第一章 概述 第二章 系统的数学模型 第三章 连续系统的数字仿真 第四章 离散事件系统仿真 第六章 分布式交互仿真 第七章 可视化、多媒体、虚拟现实仿真,3,现代仿真技术与应用 第三章连续系统的数字仿真,3.1 数值积分法 3.2 离散相似法 3.5 控制系统仿真工具SIMULINK,4,现代仿真技术与应用 第三章连续系统的数字仿真,5,数值积分法,离散相似法,间断非线性系统仿真算法,分布参数的仿真算法,工程领域常见的连续系统的仿真算法:,现代仿真技术与应用 第三章连续系统的数字仿真,6,数值积分:是数值分析的基本问题,是微分方程初值问题的一种近似解法,其基本思想是将一阶常微分方程(或方程组)转化为差分方程(即微分方程的离散形式,便于编程实现),从而求其数值解; 系统仿真:在给定初始条件可用数值积分法求解定常连续系统在一定输入作用下的变化过程。,现代仿真技术与应用 第三章连续系统的数字仿真,3.1 数值积分法,7,为t0, t内 f 下方的阴影面积,现代仿真技术与应用 第三章连续系统的数字仿真,3.1 数值积分法,基本原理:,分类:,(3-1),已知某系统的一阶向量微分方程为:,8,数值积分法基本概念,现代仿真技术与应用 第三章连续系统的数字仿真,计算yn+1只需用到yn的值,计算yn+1需用到yn ,yn-1 , yn-2 , yn-k的值,对不能自行启动的方法,可分两步走,第一步预估,第二步校正;因此精度高,但不适用于实时仿真。,计算yn+1时所用数据均已知,计算yn+1时需用到待求量yn+1,因此不能自启动,常用的数值积分法:欧拉法、梯形法、四阶龙格-库塔法、亚当姆斯法,9,3.1.1 常用的积分法-欧拉法,一阶微分方程为:,对式(3-1)在tk,tk+!区间上积分,现代仿真技术与应用 第三章连续系统的数字仿真,(3-3),(3-4),(3-1),于是可以得到微分方程的数值解为:,(3-6),矩形近似及误差,10,这种方法的几何意义:,取k=0,1,2,N,从t0开始,逐点递推求解t1时的y1, t2时的y2,直至tn时的yn,称之为欧拉递推公式。,现代仿真技术与应用 第三章连续系统的数字仿真,(3-6),最简单的数值积分法,只计算一次f(t, y)函数值,计算量小,但精度很低,不实用,常用来说明基本概念。当h很小时,造成的误差是允许的。该算法具有一阶精度。,就是把f(t,y)在区间tk,tk+1内的曲边面积用矩形面积近似代替。,3.1.1 常用的积分法-欧拉法,单步法、显示公式、能自启动。,11,3.1.1 常用的积分法梯形法(改进欧拉法),对式(3-1)在tk,tk+!区间上积分,用梯形面积近似(3-3)的积分项,有:,现代仿真技术与应用 第三章连续系统的数字仿真,(3-3),梯形近似及误差,(3-7),通过欧拉法计算出y(tk+1)的近似值: 代入原微分方程,计算fk+1的近似值 ,利用梯形公式求出修正后的yk+1,得到改进后的欧拉公式为:,12,几何意义:,现代仿真技术与应用 第三章连续系统的数字仿真,计算两次f(t, y)函数值,计算量增加,但精度有所提高。,就是把f(t,y)在区间tk,tk+1内的曲边面积用梯形面积近似代替。,改进的欧拉法,隐式公式、不能自启动、预估校正法。,13,3.1.1 常用的积分法梯形法,现代仿真技术与应用 第三章连续系统的数字仿真,预估-校正法程序框图,14,欧拉法,梯形法,回顾,现代仿真技术与应用 第三章连续系统的数字仿真,最简单的数值积分法,只计算一次f(t, y)函数值,计算量小,但精度很低,不实用,常用来说明基本概念。当h很小时,造成的误差是允许的。该算法具有一阶精度。,单步法、显示公式、能自启动。,计算两次f(t, y)函数值,计算量增加,但精度有所提高。,隐式公式、不能自启动、预估校正法。,数值积分法:,15,基本思想:在积分区间tn, tn+1内多预估几个点的函数值,然后用其线性组合来代替函数的各阶导数,再与泰勒级数展开式中的各项对比确定其中的系数,设y(t)为微分方程的解,将其在tk附近以h为变量展成泰勒级数:,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.1 常用的积分法龙格库塔法,(3-9),(3-10),r为精度阶次(使用k值的个数), , , wi为待定系数,由精度确定,16,当r=1时,,当r=2时,取,3.1.1 常用的积分法龙格库塔法,现代仿真技术与应用 第三章连续系统的数字仿真,数值解与欧拉递推公式一致。,数值解预估-校正公式一致。,17,r=3时,取,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.1 常用的积分法龙格库塔法,18,r=4时,取,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.1 常用的积分法龙格库塔法,19,各阶龙格库塔法的精度,理论上可以构造任意阶数的龙格库塔法 阶数越高,精度越高,计算量越大 精度的阶数与计算函数值 f 的次数之间并非等量增加的关系 对于大量的实际问题,四阶方法已可满足精度求,现代仿真技术与应用 第三章连续系统的数字仿真,20,变步长方法,误差式通常为,现代仿真技术与应用 第三章连续系统的数字仿真,当估计误差en大于最大允许误差emax时,步长减半并重新积分再估计误差;若步长小于步长下限hmin,则不再减半,以免增加仿真时间和舍入误差; 当估计误差en小于最小允许误差emin时,步长加倍并重新积分再估计误差;若步长大于步长上限hmin,则不再加倍,以免增加截断误差、减小数值稳定性。,21,算法误差,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.3 算法误差和稳定性问题,截断误差,舍入误差,截去高阶无穷小项引入的误差称为r阶精度,泰勒级数展开式,因计算机字长有限,数字不能完全精确表示而产生的误差,与步长、数字系统、运算次序以及计算f(t, y)子程序的精度等多种因素有关,22,算法稳定性问题,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.3 算法误差和稳定性问题,测试方程:,代入测试方程有:,欧拉法:,23,算法稳定性问题,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.3 算法误差和稳定性问题,24,各阶龙格库塔法的稳定域,将检验方程代入泰勒级数展开式可得稳定条件 稳定条件与计算步长和系统特征根都有关系,特征根越大,计算步长越小,现代仿真技术与应用 第三章连续系统的数字仿真,25,计算步长的选择,步长过大会增加截断误差,甚至出现不稳定现象;步长过小会增加计算步数,从而增大舍入误差; 步长变化对误差的影响与系统动态响应特性有关,响应越快对步长变化越敏感。,现代仿真技术与应用 第三章连续系统的数字仿真,有些仿真可考虑采用变步长,经验方法一:,经验方法二:,26,已知常微分方程组,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.5 病态系统(刚性(stiff)系统)的仿真方法,定义:,(3-34),则有系统矩阵 (雅可比矩阵(Jacobi matrix),若 的特征值均具有负实部,那么当:,式(3-34)微分方程组称为刚性方程,也称病态方程,其描述的线性或非线性系统称为病态系统。,(3-35),27,前面介绍的数值积分法进行求解时,仿真步长应该由系统的最小时间常数(相当于是最大特征值实部的倒数)决定,而仿真时间由系统的最大时间常数(相当于最小特征值实部的倒数)决定; 由定义可知,病态系统的时间常数( 1/ )差别很大; 那么对于病态系统,如果采用前面介绍的数值积分法进行求解,计算步长只能取得很小,系统的过渡过程又很长,将导致仿真计算量大、舍入误差累积大、数值解失真等; 目前已提出的刚性方程数值积分法有吉尔(Gear)法、特雷尔(Trernor)法、半隐式龙格库塔法等,其中吉尔法被公认为是十分有效的方法。,现代仿真技术与应用 第三章连续系统的数字仿真,3.1.5 病态系统(刚性(stiff)系统)的仿真方法,28,吉尔法为隐式线性多步法,其形式为:,当k=1时,为隐式欧拉法:,3.1.5 病态系统的仿真方法吉尔法,现代仿真技术与应用 第三章连续系统的数字仿真,(3-36),为待定系数,1-6阶吉尔法的系数如下表:,29,吉尔法的Stiff稳定,一个方法如果在区域R1(Re(h)D)中是绝对稳定的,而在区域R2(D Re(h) ,|Im(h)|)中是精确的,那么称这种方法是stiff稳定的。,现代仿真技术与应用 第三章连续系统的数字仿真,隐式吉尔多步法是stiff稳定的,但不能自行启动,且变步长困难。其刚性稳定区域如右图所示:,30,定义Z向量,现代仿真技术与应用 第三章连续系统的数字仿真,吉尔法的矢量形式,通过y的拟合多项式确定Z与Y之间的变换阵,以前一步y的各阶导数代替前几步的数据ym-1,ym-2,于是有单步多值法递推公式。,P为Pascal矩阵;L为吉尔法系数,由下表所示。,31,吉尔单步多值法L向量值,现代仿真技术与应用 第三章连续系统的数字仿真,对于非线性病态系统,采用吉尔法通常比一般变步长法节省大量仿真时间。 系统病态程度越高,非线性越强,吉尔法优越性越明显; 根据吉尔法编制的程序是通用的,既可以处理病态系统,也可以有效的仿真非病态系统,因此应用广泛。,32,3.2 离散相似法,现代仿真技术与应用 第三章连续系统的数字仿真,所谓离散相似法,就是将一个连续系统进行离散化处理,从而得到等价的系统离散模型,此种方法按系统的动态结构图建立仿真模型。 计算过程中,按各典型环节离散相似模型,根据环节的输入来计算环节的输出。,33,3.2 .2典型环节的离散相似模型,现代仿真技术与应用 第三章连续系统的数字仿真,1) 积分环节,传递函数:,状态表达式:,离散状态表达式:,P35,A=0,B=K,34,3.2 .2典型环节的离散相似模型,现代仿真技术与应用 第三章连续系统的数字仿真,2) 比例-积分环节,传递函数:,状态表达式:,离散状态表达式:,P35,A=0,B=K,35,3.2 .2典型环节的离散相似模型,现代仿真技术与应用 第三章连续系统的数字仿真,3) 惯性环节,传递函数:,状态表达式:,离散状态表达式:,P35,A=-a,B=K,36,3.2 .2典型环节的离散相似模型,现代仿真技术与应用 第三章连续系统的数字仿真,4) 比例-惯性环节,传递函数:,状态表达式:,离散状态表达式:,P35,A=-a, B=b-ak,37,3.2 .2典型环节的离散相似模型,现代仿真技术与应用 第三章连续系统的数字仿真,5) 二阶震荡环节,传递函数:,状态表达式: ( 可控标准型),u,+,x1 x2,38,算法误差和稳定性问题,现代仿真技术与应用 第三章连续系统的数字仿真,截断误差:截去高阶无穷小项引入的误差称为r阶精度; 舍入误差:因计算机字长有限,数字不能完全精确表示而产生的误差;,回顾,欧拉法:单步法、显示公式、能自启动,计算量小,精度低。 梯形法:隐式公式、不能自启动、预估校正法,计算量增加,但精度有所提高; 龙格库塔法:理论上可以构造任意阶数的龙格库塔法,阶数越高,精度越高,计算量越大;,数值积分法,仿真步长的选择,39,现代仿真技术与应用 第三章连续系统的数字仿真,回顾,病态系统的仿真方法,目前已提出的刚性方程数值积分法有吉尔(Gear)法、特雷尔(Trernor)法、半隐式龙格库塔法等,其中吉尔法被公认为是十分有效的方法。,离散相似法,积分环节的离散相似模型的建立 比例-积分环节的离散相似模型的建立 惯性环节的离散相似模型的建立 比例-惯性环节的离散相似模型的建立,就是将一个连续系统进行离散化处理,从而得到等价的系统离散模型,此种方法按系统的动态结构图建立仿真模型。,40,现代仿真技术与应用 第三章连续系统的数字仿真,3.5 matlab与SIMULINK基础,MATLAB是美国Math Works公司的软件产品; 是一个高级的数值分析、处理与计算软件; SIMULINK是基于模型化图形组态的动态系统仿真软件,是MATLAB的一个工具箱。,41,(1)具有丰富的数学功能,包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等 包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码函数、贝塔函数、椭圆函数等。 包括各种数学运算功能。如:数值微分、数值积分、插值、求极值、方程求根、FFT 、常微分方程的数值解等。,(2)具有很好的图视系统,可方便地画出两维和三维图形 高级图形处理。如:色彩控制、句柄图形、动画。 图形用户界面GUI制作工具,可以制作用户菜单和控件。使用者可以根据自己的需求编写出满意的图形界面。,3.5 matlab与SIMULINK基础,MATLAB语言的主要特点,现代仿真技术与应用 第三章连续系统的数字仿真,42,(3)可以直接处理声言和图形文件。,(4)具有若干功能强大的应用工具箱。,(5)使用方便,具有很好的扩张功能。,声言文件。如: WAV文件(例:wavread,sound等) 图形文件。如: bmp 、gif 、 pcx 、tif 、jpeg等文件。,如:SIMULINK、COMM、DSP、 SIGNAL等16种工具箱。,(6)具有很好的帮助功能,使用MATLAB语言编写的程序可以直接运行,无需编译。 可以M文件转变为独立于平台的EXE可执行文件。 MATLAB的应用接口程序API是MATLAB提供的十分重要的组件 ,由 一系列接口指令组成 。用户就可在FORTRAN或C中 , 把MATLAB当作计算引擎使用 。,提供十分详细的帮助文件(PDF 、HTML 、demo文件)。 联机查询指令:help指令(例:help elfun,help exp,help simulink),lookfor关键词(例: lookfor fourier )。,MATLAB语言的主要特点,43,MATLAB界面,现代仿真技术与应用 第三章连续系统的数字仿真,44,Matlab程序设计,MATLAB运用与简单运算,MATLAB绘图,数据处理,SIMULINK基础,现代仿真技术与应用 第三章连续系统的数字仿真,3.5 matlab与SIMULINK基础,控制工具箱,45,简单数学运算:,购买80个单位为0.89元的电阻,16个单位为12.2元的运放,25个单价1.82元的电容,共需多少钱,例子, 80*0.89+16*12.2+25*1.82 ans=331.900,或者,res= 80*0.89+16*12.2+25*1.82 res=331.900,现代仿真技术与应用 第三章连续系统的数字仿真,46,变量与数值显示格式:,变量规则,变量的名字必须以字母开头(不超过一定的字符),之后可以使任意的字母、数字和下划线。 变量名区分大小写; Matlab 不支持汉字,汉字不能出现在变量名和文件名中,数值显示常用格式,Long(16位)、bank(2个十进制位)、short(默认)、short e(5位加指数)、long e(16位加指数),现代仿真技术与应用 第三章连续系统的数字仿真,47,MATLAB运用与简单运算,转置,矩阵运算:,a=1 2 ; 4 5 ; b=a b=1 4 2 5,乘方, a=1 2 ; 4 5 ; a2= 9 12 24 33, a=1 2 ; 4 5 ; a.2= 1 4 16 25,现代仿真技术与应用 第三章连续系统的数字仿真,48,关系运算,逻辑运算,a=1:9; b=a4 b = 0 0 0 0 1 1 1 1 1,c=(a4)&(a7) c = 0 0 0 0 1 1 0 0 0,现代仿真技术与应用 第三章连续系统的数字仿真,MATLAB运用与简单运算,矩阵运算:,49,下标操作,a=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a(2:3,3:4) ans = 7 8 11 12,现代仿真技术与应用 第三章连续系统的数字仿真,MATLAB运用与简单运算,矩阵运算:,50,现代仿真技术与应用 第三章连续系统的数字仿真,MATLAB运用与简单运算,求解线性方程组:,A=10,3,1;2,-10,3;1,3,10; B=14,-5,14; Root=inv(A)*B%inv为求逆矩阵函数,51,Matlab程序设计,MATLAB运用与简单运算,MATLAB绘图,数据处理,SIMULINK基础,现代仿真技术与应用 第三章连续系统的数字仿真,3.5 matlab与SIMULINK基础,控制工具箱,52,MATLAB绘图:,二维图形,plot(x) plot(x,y); plot(x,y,参数); plot(x1,y1,参数1,x2,y2,参数2),现代仿真技术与应用 第三章连续系统的数字仿真,绘图函数plot的几种形式,x,y可以是向量或矩阵,参数为字符串,决定图形颜色、线型及数据点的图标。,53,MATLAB绘图:,二维图形,t=0:pi/100:pi*2; y1=sin(t); y2=sin(t-0.35); y3=sin(t-0.7); plot(t,y1,:,t,y2,t,y3,-); plot(t,y1,:r,t,y2,-g,t,y3,-b); plot(t,y1,:ro,t,y2,-gh,t,y3,-bx);,现代仿真技术与应用 第三章连续系统的数字仿真,54,MATLAB绘图:,二维图形,x=0:0.01:pi*3; y=sin(x); plot(x,y) title(First Figure Example) xlabel(Time(s) ylabel(Value(v) grid on gtext(sinx) legend(sinx)/图例注解,现代仿真技术与应用 第三章连续系统的数字仿真,55,MATLAB绘图:,二维图形,axis(xmin xmax ymin ymax),现代仿真技术与应用 第三章连续系统的数字仿真,图形坐标比例控制函数,set(gca,xtick, 标示向量)/按标示向量设置x.y轴刻度标示 set(gca,xticklabel, 字符串1|字符串2)/按字符串设置x.y轴刻度标示,图形坐标刻度标示函数,x=0:0.05:7; y=sin(x); plot(x,y) axis(0 3*pi -2 2) set(gca,xtick,0 1.4 3.14 5 6.28) set(gca,yticklabel,-1|-0.5|zero|0.5|one),56,MATLAB绘图:,二维图形,hold:保持当前图形 hold on:保持当前图形及轴系的所有特性; hold off:解除hold on函数,现代仿真技术与应用 第三章连续系统的数字仿真,图形的保持,x=0:0.2:12; plot(x,sin(x),-); hold on plot(x,1.5*cos(x),:),57,MATLAB绘图:,二维图形,将绘图区域划分为m行n列区域,并指定p编号区域为当前绘图区域,编号顺序先上后下,先左后右。,现代仿真技术与应用 第三章连续系统的数字仿真,图形的分割,x=0:0.05:7; y1=sin(x) y2=1.5*cos(x); y3=sin(2*x); y4=5*cos(2*x) subplot(2,2,1) ;plot(x,y1);title(sin(x) subplot(2,2,2); plot(x,y2);title(cos(x) subplot(2,2,3); plot(x,y3);title(sin(2x) subplot(2,2,4); plot(x,y4);title(cos(2x),subplot(m,n,p):,58,三维图形,x=-4:0.1:4; y=x; x,y=meshgrid(x,y); z = 3*(1-x).2.*exp(-(x.2) - (y+1).2) . - 10*(x/5 - x.3 - y.5).*exp(-x.2-y.2) . - 1/3*exp(-(x+1).2 - y.2); mesh(x,y,z),MATLAB绘图:,现代仿真技术与应用 第三章连续系统的数字仿真,59,Matlab程序设计,MATLAB运用与简单运算,MATLAB绘图,数据处理,SIMULINK基础,现代仿真技术与应用 第三章连续系统的数字仿真,3.5 matlab与SIMULINK基础,控制工具箱,60,现代仿真技术与应用 matlab与SIMULINK基础,M文件(脚本文件(Script File)和函数文件),对于一些比较简单的问题 ,在指令窗中直接输入指令计算 。 对于复杂计算,采用脚本文件(Script file)最为合适 。 MATLAB只是按文件所写的指令执行 。 脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)MATLAB指令集合。 脚本文件运行后 ,所产生的所有变量都驻留在 MATLAB基本工作空间(Base workspace)中。只要用户不使用清除指令(clear), MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。,脚本文件(Script File),61,现代仿真技术与应用 matlab与SIMULINK基础,M文件(脚本文件(Script File)和函数文件),菜单操作(FILENEWM-File)。 命令操作:在命令窗口输入命令“edit” 。 命令按钮操作(通过工具栏上的new m-file按钮) 。,M文件建立,62,现代仿真技术与应用 matlab与SIMULINK基础,M文件(脚本文件(Script File)和函数文件),与脚本文件不同 ,函数文件犹如一个“黑箱”,把一些数据送进并经加工处理,再把结果送出来。 从形式上看 ,与脚本文件不同 ,函数文件的笫一行总是以 “function”引导的“函数申明行” 。 从运行上看 ,与脚本文件运行不同 ,每当函数文件运行, MATLAB就会专门为它开辟一个临时工作空间,称为函数工作空间( Function workspace) 。当执行文件最后一条指令时 ,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。,函数文件,63,现代仿真技术与应用 matlab与SIMULINK基础,M文件(脚本文件(Script File)和函数文件),Function输出形参表=函数名(输入形参表) 函数体 return 函数文件不象M文件,不能直接运行,编辑完后直接存盘; 函数文件名: 通常是有函数名加上扩展名.m组成,函数文件名也可以与函数名不同。当两者不同时,matlab将忽略函数名而确认函数文件名,调用时使用的是函数文件名; 函数文件也可以不使用return语句,被调函数执行完后自动返回 。,函数文件结构,64,函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己 (递归调用)。,函数文件,现代仿真技术与应用 matlab与SIMULINK基础,例:有5个人坐在一起,问第五个人多大,说比第4个人大2岁,第四个人说比第三个人大2岁,第三个人说比第二个人大2岁,第二个人说比第一个人大2岁,第一个人说是12岁。问第5个人多大?,65,M文件的调试,编写 M文件时,错误(Bug)在所难免。错误有两种:语法(Syntax)错误和运行(Run-time)错误。 语法错误是指变量名、函数名的误写,标点符号的缺、漏等。对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。运行错误是算法本身引起的,发生在运行过程中。 相对语法错误而言,运行错误较难处理 。尤其是M函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。,有两种调试方法:直接调试法和工具调试法。,现代仿真技术与应用 matlab与SIMULINK基础,66,直接调试法:可以用下面方法发现某些运行错误。,在M文件中,将某些语句后面的分号去掉, 迫使M文件输出一些中间计算结果,以便发现可能的错误。 在适当的位置,添加显示某些关键变量值的语句(包括使用 disp 在内)。 利用 echo 指令,使运行时在屏幕上逐行显示文件内容。echo on 能显示M脚本文件;echo FunNsme on 能显示名为FunNsme 的M函数文件在原M脚本或函数文件的适当位置; 增添指令 keyboard 。 keyboard 语句可以设置程序的断点 。 通过将原M函数文件的函数申明行注释掉,可使一个中间变量难于观察的M函数文件变为一个所有变量都保留在基本工作空间中的M脚本文件。,M文件的调试,现代仿真技术与应用 matlab与SIMULINK基础,67,GUI 界面调试法:,MATLAB 5.x 版提供了一个基于GUI界面的调试。使用它,可以对函数进行调试。,Debug菜单的使用:,Continue:恢复程序运行至结束或另一个断点 。,Single Step:单步执行函数。,Step In:深入下层局部工作区 。,Quit Debugging:退出调试状态。,Set/Clear Breakpoint:设置/清除光标处的断点 。,Clear All Breakpoints:清除程序中的所有断点 。,Stop if Error:运行至出错或结束。,Stop if Warning:运行至警告消息或结束。,Stop if NaN of Inf:运行至运算结果出现 NaN 或 Inf。,M文件的调试,现代仿真技术与应用 matlab与SIMULINK基础,68,例:给定三个数A,B,C,要求按由大到小的顺序输出,其中最大数放入A,最小数放入C中。,If-else-end,if expression1 commands1 elseif expression2 commands2 - else commands end,程序流程控制语句,现代仿真技术与应用 matlab与SIMULINK基础,69,For循环,for 循环变量 = 表达式1 : 表达式2: 表达式3 command end,程序流程控制语句,现代仿真技术与应用 matlab与SIMULINK基础,例:有一数列 求这些项的和 。,初值,步长,终值,70,while循环,while expression command end,程序流程控制语句,现代仿真技术与应用 matlab与SIMULINK基础,例:求1+2+3+100的和。,71,Continue语句,程序流程控制语句,现代仿真技术与应用 matlab与SIMULINK基础,例:把100到120之间的能被7整除的整数输出。,用于控制循环的跳出。,72,现代仿真技术与应用 matlab与SIMULINK基础,例:边沿滤波器设计,73,现代仿真技术与应用 matlab与SIMULINK基础,例:边沿滤波器设计,function y=FiltFunc1(x,windowsNum,sampleNum) varout=ones(sampleNum,1)*100000000; for i=1:sampleNum-windowsNum+1 average=mean(x(i:i+windowsNum-1); vartmp=std(x(i:i+windowsNum-1); for j=i:i+windowsNum-1, if(varout(j)vartmp) y(j)=average; varout(j)=vartmp; end end end,clc; clear; close all; len=200; flen=10; snr=1; a=zeros(1,len); for t =1:len if t100 a(t)=0; else a(t)=2; end end,z=awgn(a,snr,measured); t=1:1:60; c=FiltFunc1(z,flen,len); figure; plot(a,r); figure; plot(z,g); figure; plot(c,b);,74,Matlab程序设计,MATLAB运用与简单运算,MATLAB绘图,数据处理,SIMULINK基础,现代仿真技术与应用 第三章连续系统的数字仿真,3.5 matlab与SIMULINK基础,控制工具箱,75,矩阵分解:,特征值分解,三角分解,奇异分解,v,d=eig(a,b),v,d=eig(a),l, u, p=lu(a),u,s,v=svd(a),MATLAB数据处理:,现代仿真技术与应用 第三章连续系统的数字仿真,76,多项式处理:,MATLAB数据处理:,现代仿真技术与应用 第三章连续系统的数字仿真,求多项式 根,77,曲线拟合,曲线拟合与插值:,x=0:0.1:1; y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; p=polyfit(x,y,2); xi=0:0.01:1; yi=polyval(p,xi); plot(x,y,xi,yi),x,y为两等长向量,x为采样点,是采样点函数值,代表次多项式,P 为2阶多项式,MATLAB数据处理:,现代仿真技术与应用 第三章连续系统的数字仿真,求多项式P在自变量x=xi的值,78,曲线拟合:,MATLAB数据处理:,现代仿真技术与应用 第三章连续系统的数字仿真,例:用一个4次多项式在区间0,2 内拟函数cos(x)并绘曲线,79,曲线拟合与插值:,插值函数,t=interpl (x, y, x0, 参数),MATLAB数据处理:,现代仿真技术与应用 第三章连续系统的数字仿真,x,y为两等长向量,x为采样点,是样本值,x0描述欲插值的点,为向量或标量,线性插值主要参数说明表,例:用不同的插值方法计算sin(x)在x= /4时的值,80,X, Y=ode23(xfun, X0, Xn , y0)%二阶、三阶龙格-库塔法,常微分方程数值解:,X, Y=ode45(xfun, X0, Xn , y0) %四阶、五阶龙格-库塔法,MATLAB数据处理:,现代仿真技术与应用 第三章连续系统的数字仿真,初值问题在1,3区间内的数值解,求微分方程,先建立该方程的函数文件 function f=f(x,y) f=-3.*y+2*x; 在命令窗口输入命令 X,Y =ode(f,1 3,2); X%转置后显示自变量一组采样点 Y%转置后,显示与采样点对应的一组数值解,解:,81,Matlab程序设计,MA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论