您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > simulink动态系统建模仿真 第5章
第5章Simulink仿真设置第5章Simulink仿真设置5.1仿真基础5.2设置仿真算法5.3工作区输入/输出设置5.4输出信号的显示第5章Simulink仿真设置5.1仿真基础5.1.1设定仿真参数Simulink中模型的仿真参数通常在仿真参数对话框内设置。这个对话框包含了仿真运行过程中的所有设置参数,在这个对话框内,用户可以设置仿真算法、仿真的起止时间和误差容限等,还可以定义仿真结果数据的输出和存储方式,并可以设定对仿真过程中错误的处理方式。首先选择需要设置仿真参数的模型,然后在模型窗口的Simulation菜单下选择ConfigurationParameters命令,打开ConfigurationParameters对话框,如图5-1所示。第5章Simulink仿真设置在ConfigurationParameters对话框内用户可以根据自己的需要进行参数设置。当然,除了设置参数值外,也可以把参数指定为有效的MATLAB表达式,这个表达式可以由常值、工作区变量名、MATLAB函数以及各种数学运算符号组成。参数设置完毕后,可以单击Apply按钮应用设置,或者单击OK按钮关闭对话框。如果需要的话,也可以保存模型,以保存所设置的模型仿真参数。关于仿真参数对话框内各选项参数的基本设置方式,将在下一节中详细介绍。第5章Simulink仿真设置图5-1第5章Simulink仿真设置5.1.2控制仿真执行Simulink的图形用户接口包括菜单命令和工具条按钮,如图5-2所示,用户可以用这些命令或按钮启动、终止或暂停仿真。若要模型执行仿真,可在模型编辑器的Simulation菜单上选择Start命令,或单击模型工具条上的“启动仿真”按钮。第5章Simulink仿真设置Simulink会从ConfigurationParameters对话框内指定的起始时间开始执行仿真,仿真过程会一直持续到所定义的仿真终止时间。在这个过程中,如果有错误发生,系统会中止仿真,用户也可以手动干预仿真,如暂停或终止仿真。在仿真运行过程中,模型窗口底部的状态条会显示仿真的进度情况,同时,Simulation菜单上的Start命令会替换为Stop命令,模型工具条上的“启动仿真”按钮也会替换为“暂停仿真”按钮,如图5-3所示。当仿真结束时,计算机会发出蜂鸣声,通知用户仿真过程已结束。第5章Simulink仿真设置图5-2第5章Simulink仿真设置图5-3第5章Simulink仿真设置仿真启动后,Simulation菜单上的Start命令会更改为Pause命令,用户可以用该命令或“暂停仿真”按钮暂时停止仿真,这时,Simulink会完成当前时间步的仿真,并把仿真悬挂起来。这时的Pause命令或暂停按钮也会改变为Continue命令或“运行”按钮。若要在下一个时间步上恢复悬挂起来的仿真,可以选择Continue命令继续仿真。如果模型中包括了要把输出数据写入到文件或工作区中的模块,或者用户在SimulationParameters对话框内选择了输出选项,那么,当仿真结束或悬挂起来时,Simulink会把数据写入到指定的文件或工作区变量中。第5章Simulink仿真设置5.1.3交互运行仿真在仿真运行过程中,用户可以交互式执行某些操作,如:修改某些仿真参数,包括终止时间、仿真算法和最大步长。改变仿真算法。在浮动示波器或Display模块上单击信号线以查看信号。更改模块参数,但不能改变下面的参数:状态、输入或输出的数目;采样时间;过零数目;任一模块参数的向量长度;内部模块工作向量的长度。第5章Simulink仿真设置需要注意的是,在仿真过程中,用户不能更改模型的结构,如增加或删除线或模块,如果必须执行这样的操作,则应先停止仿真,在改变模型结构后再执行仿真,并查看更改后的仿真结果。第5章Simulink仿真设置5.2设置仿真算法本节介绍ConfigurationParameters对话框内基本仿真参数的设置方式,用户也可以在MATLAB命令行中用sim和simset命令设置这些参数。关于如何使用命令行进行仿真,读者可以参看第8章“使用命令行仿真”。第5章Simulink仿真设置从图5-1中可以看到,仿真参数对话框的左侧是Select树状列表选项区,选择不同的节点命令,将在对话框的右侧出现该项的设置面板。其中,Solver面板用来设置仿真的起止时间和仿真算法等选项;DataImport/Export面板用来设置用户把数据输出到MATLAB工作区或者从MATLAB工作区中输入数据时的相关选项;Optimization面板用来设置改善仿真性能和优化模型代码执行效率的相关选项;Diagnostics面板用来设置Simulink在执行仿真时对模型进行的检测选项;HardwareImplementation面板只适用于基于计算机的系统模型,如嵌入式控制器,利用这个面板可以指定用来执行模型系统时的硬件特性;ModelReferencing面板用来设置在其他模型中包含当前模型以及在当前模型中包含其他模型时的选项,同时还可以设置编译选项;Real-TimeWorkshop面板用于设置与实时工作区有关的选项,本书不对其进行介绍。这些选项面板中的设置参数对于模型仿真的准确性和仿真性能来说都起着非常重要的作用。第5章Simulink仿真设置5.2.1设置仿真时间用户可以在Starttime和Stoptime文本框内输入新的数值来改变仿真的起始时间和终止时间,如图5-4所示。缺省时的起始时间为0.0秒,终止时间为10.0秒。图5-4第5章Simulink仿真设置需要注意的是,仿真时间和实际的执行时间并不相同,例如,运行一个设置为10秒仿真时间的模型通常并不会花费10秒。计算机运行仿真程序所需要的时间取决于很多因素,通常包括模型的复杂度、仿真算法的步长以及计算机的速度等。第5章Simulink仿真设置5.2.2设置仿真算法Simulink模型的仿真需要计算仿真起始时间到终止时间之间每个时间步的输入、输出和状态值,这需要利用仿真算法来执行。这里,我们按习惯将求解器称做仿真算法。通常,用来求解模型的仿真算法有很多,当然,没有任何一种算法适用于所有模型,因此,Simulink对仿真算法进行了分类,并使每类算法可以解算一种特定类型的模型。用户可以在Solver选项页内选择最适合自己模型的仿真算法,可以选择的算法有:第5章Simulink仿真设置定步长连续算法;变步长连续算法;定步长离散算法;变步长离散算法。第5章Simulink仿真设置1.定步长连续算法这种算法在仿真时间段(由起始时间到终止时间)内以等间隔时间步来计算模型的连续状态。它使用数值积分算法计算系统的连续状态,每个算法使用不同的积分方法,用户可以根据需要选择最适合自己模型的算法,当然,这需要了解不同积分算法之间的优缺点。使用定步长连续算法进行仿真的仿真结果的准确度和仿真时间取决于仿真步长的大小,仿真步长越小,结果越准确,仿真步长越大,仿真时间也就越长。第5章Simulink仿真设置定步长连续算法可以用来处理包含连续状态和离散状态的模型。从理论上来说,定步长连续算法也能够处理包含非连续状态的模型,但是,这会增加仿真计算时的不必要开销。因此,若模型中没有状态或只有离散状态,则即使选择了定步长连续算法,Simulink通常还会使用定步长离散算法进行求解。若想为模型指定定步长连续算法,可先在Solveroptions选项区中的Type算法列表中选择Fixed-step选项,然后从相邻的Solver积分方法列表中选择一个选项,如图5-5所示。第5章Simulink仿真设置图5-5第5章Simulink仿真设置Simulink把定步长连续算法分为两类:显式算法和隐式算法。1)显式算法显式算法用显式函数计算下一时刻的状态值,即tnxhnxnxd)(d)()1(第5章Simulink仿真设置这里,h是仿真步长。Simulink提供的显式定步长连续算法如下:ode5:Dormand-Prince法;ode4:RK4,四阶Runge-Kutta(龙格-库塔)法;ode3:Bogacki-Shampine法;ode2:Heum法,也称为改进的Euler(欧拉)法;ode1:Euler法。第5章Simulink仿真设置每个算法使用不同的积分方法计算模型的状态导数。这些算法是按照积分算法的复杂程度给出的,其中,ode5是最复杂的积分算法,而ode1是最简单的积分算法。不管仿真步长是多少,积分算法越复杂,则仿真精度越高。第5章Simulink仿真设置默认情况下,当为模型选择Fixed-step选项时,Simulink会把仿真算法缺省设置为ode3,也就是说,它会选择一个既可以求解连续状态,又可以求解离散状态,而且计算量适中的算法。用户可以选择Simulink提供的缺省值作为仿真步长,或者自己设置仿真步长。如果模型有离散状态,则Simulink会把仿真步长设置为模型的基本采样时间;如果模型没有离散状态,则Simulink会把仿真步长设置为仿真终止时间与仿真起始时间差值的1/50,这种设置保证了在模型指定的采样时刻更新模型离散状态时,仿真过程能够捕捉到模型的状态更新。但是,ode3算法无法保证精确地计算到模型的连续状态,为了获得希望的精度,用户可以选择其他的算法。第5章Simulink仿真设置2)隐式算法隐式算法用隐式函数计算下一时刻的状态值,即0d)(d)()1(tnxhnxnx这里,h是仿真步长。Simulink只提供了一种隐式算法,即ode14x(extrapolation,外推)法。这个算法使用牛顿法和外推法计算下一时间步上的模型状态值,因此还需要指定牛顿法的迭代次数和外推阶数。如图5-6所示,Extrapolationorder选项设置外推阶数;NumberNewton’siterations选项设置迭代次数。迭代次数越多,外推阶数越高,仿真精度也就越高,但是每个步长内的计算负荷也就越大。第5章Simulink仿真设置图5-6第5章Simulink仿真设置对于任何一个模型,只要给定足够的仿真时间和足够小的仿真步长,Simulink利用任何一个定步长连续算法总能得到希望的仿真精度。但实际上这是不可能的,或者说是不现实的,因为很难确定哪一个仿真算法与仿真步长的组合能够在最短的时间内得到最佳的结果。对一个特定模型来说,确定一个最佳算法通常需要进行多次实验。第5章Simulink仿真设置这里给出一种最有效的利用实验法确定模型最佳定步长仿真算法的方法。首先,为模型选择一种变步长仿真算法,并使仿真精度达到希望的要求,这样用户也就知道了仿真结果应该是什么样子的。接下来,使用ode1算法和缺省步长仿真模型,并把仿真结果与变步长算法的仿真结果进行比较,如果在希望的精度上结果是相同的,那么最佳的定步长仿真算法就是ode1,这是因为ode1是最简单的定步长算法,在当前选择的步长下它的仿真时间是最短的。第5章Simulink仿真设置如果ode1无法给出准确的结果,那么就选择另一个定步长算法,直到找到满足精度要求而且计算量又最小的算法。达到这种目的的最有效方式就是使用二进制搜索技术,首先试试ode3,如果它给出了准确的结果,再试试ode2,如果ode2也给出了准确的结果,那么ode2就是该模型的最佳算法,否则最佳算法就是ode3。如果ode3没有给出准确的结果,那么试试ode5,如果ode5给出了准确的结果,再试试ode4,如果ode4给出了准确的结果,那么ode4就是这个模型的最佳算法,否则就是ode5。如果ode5也无法给出准确的结果,那么减小仿真步长,并重复上述过程,直到找到一个能够满足求解精度,又有较小计算量的算法。第5章Simulink仿真设置2.定步长离散算法定步长离散算法与定步长连续算法一样,仿真结果的准确度和仿真时间也取决于仿真步长的大小:仿真步长越小,结果越准确;仿真步长越大,仿真时间也就越长。同样,如果模型有离散状态,则Simulink会把
本文标题:simulink动态系统建模仿真 第5章
链接地址:https://www.777doc.com/doc-3194666 .html