第8章simulin命令行仿真技术.ppt
《第8章simulin命令行仿真技术.ppt》由会员分享,可在线阅读,更多相关《第8章simulin命令行仿真技术.ppt(128页珍藏版)》请在三一办公上搜索。
1、第8章 Simulink命令行仿真技术,8.1 使用命令行方式建立系统模型8.2 回顾与复习:Simulink与MATLAB的接口 8.3 使用命令行方式进行动态系统仿真8.4 使用MATLAB脚本分析动态系统8.5 其 它 内 容,8.1 使用命令行方式建立系统模型,除了使用Simulink的图形建模方式建立动态系统模型之外,用户也可以使用命令行方式进行系统建模,然后再进行动态系统的仿真与分析。在进一步介绍使用命令行进行动态系统的仿真技术之前,首先简单介绍一下使用命令行的方式建立系统模型的相关知识。Simulink中建立系统模型的命令如表8.1所示。,表8.1 系统模型建立命令,使用上面的命
2、令便可以生成和编辑动态系统的Simulink模型,由于使用命令行方式建立的Simulink系统模型与使用图形建模方式建立的系统模型没有什么大的分别,因此这里仅简单介绍各个命令的使用,而不再给出使用这些命令所建立的系统模型框图。1.new_system 1)使用语法 new_system(sys),2)功能描述 使用给定的名称建立一个新的Simulink系统模型。如果sys为一个路径,则新建立的系统为在此路径中指定的系统模型下的一个子系统。注意,new_system命令并不打开系统模型窗口。3)举例new_system(mysys)%建立名为mysys的系统模型new_system(vdp/my
3、sys)%建立系统模型vdp下的子系统mysys,2.open_system 1)使用语法open_system(sys)open_system(blk)open_system(blk,force)2)功能描述 打开一个已存在的Simulink系统模型。,open_system(sys):打开名为sys的系统模型窗口或子系统模型窗口。注意,这里sys使用的是MATLAB中标准路径名(绝对路径名或相对于已经打开的系统模型的相对路径名)。open_system(blk):打开与指定模块blk相关的对话框。open_system(blk,force):打开封装后的子系统,这里blk为封装子系统模块的
4、路径名。这个命令与图形建模方式中的Look under mask菜单功能一致。,3)举例open_system(controller)%打开名为controller的系统模型open_system(controller/Gain)%打开controller模型下的增益模块Gain的对话框 3.save_system 1)使用语法save_system save_system(sys)save_system(sys,newname),2)功能描述 保存一个Simulink系统模型。save_system:使用当前名称保存当前顶层的系统模型。save_system(sys):保存已经打开的系统模型
5、,与save_system功能类似。save_system(sys,newname):使用新的名称newname保存当前已经打开的系统模型。,3)举例save_system%保存当前的系统模型save_system(vdp)%保存系统模型vdpsave_system(vdp,myvdp)%保存系统模型vdp,模型文件名为myvdp,4.close_system,bdclose 1)使用语法close_systemclose_system(sys)close_system(sys,saveflag)close_system(sys,newname)close_system(blk)bdclose
6、;bdclose(sys);bdclose(all),2)功能描述关闭一个Simulink系统模型。close_system:关闭当前系统或子系统模型窗口。如果顶层系统模型被改变,系统会提示是否保存系统模型。close_system(sys):关闭指定的系统或子系统模型窗口。close_system(sys,saveflag):关闭指定的顶层系统模型窗口并且从内存中清除。saveflag为0表示不保存系统模型,为1表示使用当前名称保存系统模型。,3)举例close_system%关闭当前系统close_system(engine,1)%保存当前系统模型engine(使用当前系统名称),然后再关
7、闭系统close_system(engine/Combustion/Unit Delay)%关闭系统模型engine下的Combustion 子系统中Unit Delay模块的对话框,5.find_system 1)使用语法 find_system(sys,c1,cv1,c2,cv2,.p1,v1,p2,v2,.)2)功能描述 查找由sys指定的系统模型、模块、连线及注释等等,并返回相应的路径名与操作句柄。由于使用此命令涉及较多的参数设置,因此这里不再赘述,用户可以查看Simulink的联机帮助系统中Simulink目录下的Using SimulinkModel Construction Co
8、mmandsIntroduction中的find_system命令的帮助即可。,6.add_block1)使用语法add_block(src,dest)add_block(src,dest,parameter1,value1,.)2)功能描述在系统模型中加入指定模块。add_block(src,dest):拷贝模块src为dest(使用路径名表示),从而可以从Simulink的模块库中复制模块至指定系统模型中,且模块dest参数与src完全一致。add_block(src,dest_obj,parameter1,value1,.):功能与上述命令类似,但是需要设置给定模块的参数paramete
9、r1,value1为参数值。,3)举例add_block(simulink3/Sinks/Scope,engine/timing/Scope1)%从Simulink的模块库Sinks中复制Scope模块至系统模型engine中子系统timing中,其名称%为Scope17.delete_block1)使用语法delete_block(blk)2)功能描述从系统模型中删除指定模块。delete_block(blk):从系统模型中删除指定的系统模块blk。3)举例delete_block(vdp/Out1)%从vdp模型中删除模块Out1,8.replace_block 1)使用语法replace
10、_block(sys,blk1,blk2,noprompt)replace_block(sys,Parameter,value,blk,.)2)功能描述 替代系统模型中的指定模块。replace_block(sys,blk1,blk2):在系统模型sys使用模块blk2取代所有的模块blk1。如果blk2为Simulink的内置模块,则只需要给出模块的名称即可,如果为其它的模块,必须给出所有的参数。如果省略noprompt,Simulink会显示取代模块对话框。,replace_block(sys,Parameter,value,.,blk):取代模型sys中具有特定取值的所有模块blk。Pa
11、rameter为模块参数,value为模块参数取值。3)举例 replace_block(vdp,Gain,Integrator,noprompt)%使用积分模块Integrator取代系统模型vdp中所有的增益模块Gain,并且不显示取代对话框,9.add_line、delete_line 1)使用语法 h=add_line(sys,oport,iport)h=add_line(sys,oport,iport,autorouting,on)delete_line(sys,oport,iport)2)功能描述 在系统模型中加入或删除指定连线。add_line(sys,oport,iport):
12、在系统模型sys中给定模块的输出端口与指定模块的输入端口之间加入直线。oport与iport分别为输出端口与输入端口(包括模块的名称、模块端口编号)。,add_line(sys,oport,iport,autorouting,on):与add_line(sys,oport,iport)命令类似,只是加入的连线方式可以由autorouting的状态控制:on表示连线环绕模块,而off表示连线为直线(缺省状态)。delete_line(sys,oport,iport):删除由给定模块的输出端口oport至指定模块的输入端口iport之间的连线。,3)举例add_line(mymodel,Sine
13、Wave/1,Mux/1)%在系统模型mymodel中加入由正弦模块Sine Wave的输出至信号组合模块Mux第一个输入间%的连线delete_line(mymodel,Sine Wave/1,Mux/1)%删除系统模型mymodel中由正弦模块Sine Wave的输出至信号组合模块Mux第一个输入间的%连线,10.set_param和get_param 1)使用语法set_param(obj,parameter1,value1,parameter2,value2,.)get_param(obj,parameter)get_param(objects,parameter)get_param(
14、handle,parameter)get_param(0,parameter)get_param(obj,ObjectParameters)get_param(obj,DialogParameters),2)功能描述 设置与获得系统模型以及模块参数。set_param(obj,parameter1,value1,parameter2,value2,.):其中obj表示系统模型或其中的系统模块的路径,或者取值为0;给指定的参数设置合适的值,取值为0表示给指定的参数设置为缺省值。在仿真过程中,使用此命令可以在MATLAB的工作空间中改变这些参数的取值,从而可以更新系统在不同的参数下运行仿真。,ge
15、t_param(obj,parameter):返回指定参数取值。其中obj为系统模型或系统模型中的系统模块。get_param(objects,parameter):返回多个模块指定参数的取值,其中 objects 表示模块的细胞矩阵(Cell)。get_param(handle,parameter):返回句柄值为handle的对象的指定参数的取值。get_param(0,parameter):返回Simulink当前的仿真参数或默认模型、模块的指定参数的取值。,get_param(obj,ObjectParameters):返回描述某一对象参数取值的结构体。其中返回到结构体中具有相应的参数名
16、称的每一个参数域分别包括参数名称(如Gain)、数据类型,如string以及参数属性如read-only等。get_param(obj,DialogParameters):返回指定模块对话框中所包含的参数名称的细胞矩阵。由于参数选项很多,这里不再赘述,读者可以参考Simulink帮助中的Model and BlockParameters中的详细介绍。,3)举例set_param(vdp,Solver,ode15s,StopTime,3000)%设置系统模型vdp的求解器为ode15s,仿真结%束时间为3000 sset_param(vdp/Mu,Gain,1000)%设置系统模型vdp中模块M
17、u中的增益模块Gain的取值为1000set_param(vdp/Fcn,Position,50 100 110 120)%设置系统模型vdp中的Fcn模块的位置为,set_param(mymodel/Zero-Pole,Zeros,2 4,Poles,1 2 3)%设置系统模型mymodel中零极点模块Zero-Pole的零点Zeros取值为2 4,而极点Poles取值为%1 2 3get_param(Mysys/Subsys/Inertia,Gain)%获得系统模型Mysys中子系统Subsys中的Inertia模块的增益值。其结果如下(假设此系统模型%以存在)ans=,1.0000e-0
18、06p=get_param(untitled/Sine Wave,DialogParameters)%获得系统模型untitled下正弦信号模块Sine Wave的参数设置对话框中所包含的参数名称,%结果如下p=Amplitude FrequencyPhaseSampleTime,11.gcb、gcs以及gcbh1)使用语法gcbgcb(sys)gcsgcbhbdrootbdroot(obj),2)功能描述gcb:返回当前系统模型中当前模块的路径名。gcb(sys):返回指定系统模型中当前模块的路径名。gcs:获得当前系统模型的路径名。gcbh:返回当前系统模型中当前模块的操作句柄。bdroo
19、t:返回顶层系统模型的名称。bdroot(obj):返回包含指定对象名称的顶层系统的名称,其中obj为系统或模块的路径名。,12.simulink 1)使用语法 simulink 2)功能描述 打开Simulink的模块库浏览器。使用命令行方式建立的动态系统模型与使用Simulink图形建模方式所建立的系统模型完全一致,然而,仅仅使用命令行方式建立系统模型是一件麻烦且低效的方法。,8.2 回顾与复习:Simulink与 MATLAB的接口,先建立一个非常简单的动态系统,其功能如下:(1)系统的输入为一单位幅值、单位频率的正弦信号。(2)系统的输出信号为输入信号的积分。其要求是:(1)系统的输入
20、信号由MATLAB工作空间中的变量提供,时间范围为0至10 s。(2)使用MATLAB绘制原始输入信号与系统运算结果的曲线。,从动态系统的功能与其要求可知,建立此动态系统的模型需要以下一些模块:(1)Sources模块库中的In1模块:表示系统的输入。(2)Sinks模块库中的Out1模块:表示系统的输出。(3)Continuous模块库中的Integrator模块:积分运算器。其中In1(Inport)模块与Out1(Outport)模块都是虚模块,它们仅仅表示将信号传入或传出子系统。,图8.1 简单动态系统模型框图,图8.2 Workspace I/O 设置,然后在MATLAB工作空间中定
21、义输入变量sim_input如下:t=0:0.1:10;%表示输入信号的时间范围 u=sin(t);%产生输入正弦信号 sim_input=t,u;%传递至Simulink系统模型的变量接下来,采用默认的系统仿真参数并运行系统仿真。最后使用MATLAB命令绘制出原始输入信号与系统运算结果,如下所示:plot(t,u,tout,yout,-)%绘制系统输入信号与仿真结果,如图8.3所示.,图8.3 系统原始输入与运算结果曲线,8.3 使用命令行方式进行动态系统仿真,8.3.1 使用sim命令进行动态系统仿真 1.使用语法 t,x,y=sim(model,timespan,options,ut)t
22、,x,y1,y2,.,yn=sim(model,timespan,options,ut);以上是完整的语法格式,实际使用中可以省略其中的某些参数设置而采用默认参数进行仿真。,2.功能描述 对指定的系统模型按照给定的仿真参数与模型参数进行系统仿真。仿真所使用的参数包括所有使用仿真参数对话框的设置、MATLAB工作空间的输入输出选项卡中的设置以及采用命令行方式设置的仿真参数与系统模块参数。,除参数model外,其它的仿真参数设置均可以取值为空矩阵,此时sim命令对没有设置的仿真参数使用默认的参数值进行仿真。默认的参数值由系统模型框图所决定。用户可以使用sim命令的options参数对可选参数进行设
23、置,这样设置的仿真参数将覆盖模型默认的参数。如果用户对连续系统进行仿真,必须设置合适的仿真求解器,因为默认的仿真求解器为变步长离散求解器(Variable Step Discrete Solver)。可以使用simset命令进行设置(后面将简单介绍simset命令的使用)。,3.参数说明(1)model:需要进行仿真的系统模型框图名称。(2)timespan:系统仿真时间范围(起始时间至终止时间),可以为如下的形式:tFinal:设置仿真终止时间。仿真起始时间默认为0。tStart tFinal:设置仿真起始时间(tStart)与终止时间(tFinal)。tStart OutputTimes
24、tFinal:设置仿真起始时间(tStart)与终止时间(tFinal),并且设置仿真返回的时间向量tStart OutputTimes tFinal,其中tStart、OutputTimes、tFinal必须按照升序排列。,(3)options:由simset命令所设置的除仿真时间外的仿真参数(为一结构体变量)。(4)ut:表示系统模型顶层的外部可选输入。ut可以是MATLAB函数。可以使用多个外部输入ut1、ut2。(5)t:返回系统仿真时间向量。(6)x:返回系统仿真状态变量矩阵。首先是连续状态,然后是离散状态。(7)y:返回系统仿真的输出矩阵。按照顶层输出Outport模块的顺序输出,
25、如果输出信号为向量输出,则输出信号具有与此向量相同的维数。(8)y1,.,yn:返回多个系统仿真的输出。,8.3.2 举例之一:简单仿真 在8.2节中以动态系统command_in_out为例,对Simulink与MATLAB接口设计作了简单的回顾与复习。Simulink系统模型的输入信号为MATLAB工作空间中的变量,同时仿真结果也被输出到MATLAB工作空间中。但在进行系统仿真时,并没有使用命令行方式。实际上用户也可以使用命令行方式对此系统模型进行仿真,在仿真之前,首先使用仿真参数设置对话框设置参数。然后在MATLAB命令窗口中键入如下命令进行系统模型的仿真,并绘制此系统的输入信号与仿真结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- simulin 命令行 仿真技术
链接地址:https://www.31ppt.com/p-5117273.html