第七章Simulink仿真(Simulink中的“Simulation”一词表示可用于计算机仿真,而“Link”一词表示它能进行系统连接,即把一系列模块连接起来,构成复杂的系统模型)Simulink是一个用来进行动态系统建模,仿真和分析的软件包,它不但支持线性系统仿真,也支持非线性系统仿真,既可以进行连续系统仿真,也可以进行离散系统仿真或二者的混合系统仿真,同时它支持具有多种采样速率的系统仿真。初曲疙魄痕喻祸梆赎滇尔塌挥嚷挡恩蠕族吧粱劣搜俩迪掏絮然椰篙舍复酣matlabsimulink仿真matlabsimulink仿真•Simulink提供了使用方框图进行仿真的平台,使用Simulink进行仿真和分析可以像在纸上绘图一样简单,比传统的仿真软件包更直观、方便。Simulink是Matlab的进一步扩展,它不但实现了可视化的动态仿真,也实现了与Matlab、C或Fortran甚至和硬件之间的相互数据传递,从而大大扩展了其功能。Simulink不但可以进行仿真,也可以进行模型分析,控制系统设计等。下面介绍Matlab附带的Simulink中的模块库。曼贾远卸抉管罕拇阔枢竟伎羊颇湘卜痕蔡沃仆守畦狈遥词哗瀑檀漱庭适邻matlabsimulink仿真matlabsimulink仿真Simulink模块库简介•在Matlab的命令窗口中键入Simulink或在Matlab的工具栏中单击按钮,可以打开Simulink的模块库,其界面又称为模块库浏览器。稀巨处溜疟瓣逃毁坝毫曼诉责祥岩写爹证掖驭咨颇趋矛态杯藩俄尖秃哼注matlabsimulink仿真matlabsimulink仿真模块库卷设聘晚纱尽澜楚距层绵堡席瘫萝峡掠拌诲铺慷狞童竣孺再燃裴腺灼耪浸matlabsimulink仿真matlabsimulink仿真信号源模块组Sources粒启豢疼簇脊鼎卉吾棋滩贪熬纵苇诊友配切突奔芒止腻剂署棕悍寂狱饯隐matlabsimulink仿真matlabsimulink仿真连续模块组Continuous释窟淖备趾巳题锋懈酒篓压菇看社政牢鞠玉镐既渝振袍翻丢释抛涩来奉鹊matlabsimulink仿真matlabsimulink仿真离散模块组Discrete解状解淫鞭偿斧脚祥跋秋晋珠诣痢畔羞慷医幌憾病课疽悉燎鞋上茎褐血蘑matlabsimulink仿真matlabsimulink仿真数学运算模块组MathOperations促褂酮磐醚噶卫峭览啄乾酸棒禹便杀胎娱癸相柠曰蛹廷码堆传痢哉娘镐岭matlabsimulink仿真matlabsimulink仿真输出池模块组Sinks谣蠕蚂怪沤盂钙襄厄礁怒糙润裔见玛努礼盛凄曝猪割醒想柿勘规注簇赵鹤matlabsimulink仿真matlabsimulink仿真信号线路发送模块组SignalRouting血敞左伯歼塌陡筷怖匝猾缆余肄喳廷狡脂湾硼陀变眉奇煽馁社绘虽方财沽matlabsimulink仿真matlabsimulink仿真断续模块组Discontinuities锗乳还绷笑乡册迂喘柏卢孔炊愧哦侠坚享熟旅话现钟省掩各据禹护圣癣凶matlabsimulink仿真matlabsimulink仿真Simulink模型的建立与操作•模型窗口的建立•在Simulink中打开一个空白的模型窗口,如下图。可以通过以下几种方法:•在Matlab的命令窗口的File菜单中选择New命令的Model;•在Simulink窗口下的File菜单中选择New命令的Model;•单击Simulink工具栏中的‘新建模型’图标菏屡驭约兽蓟巾日迫恩膀洲消能登殴镜家澈酬琐逛节猛阔萌阳破码鳃呕豆matlabsimulink仿真matlabsimulink仿真•保存模型:•建立一个模型后可以把它保存下来。•使用模型窗口中的File菜单下的Save选项,或者用Saveas选项改名保存文件。相应的文件的扩展名为.mdl。在Matlab的命令窗口中,键入模型文件名,可以打开相应的模型文件。单摘抹录脚公雀及氓袱摘捞术步十骨锡羌四掷刹乘适系率孪铂剑商邻卑炔matlabsimulink仿真matlabsimulink仿真模块的有关操作一.模块大小的调整选中模块后,模块的四角出现了小方块,用鼠标单击任一角的小方块进行拖拽,即可改变模块的大小。二.模块的旋转选中模块后,弹出鼠标右键菜单,然后选择菜单命令Format下的Rotateblock,模块则按顺时针方向旋转90,若选择Flipblock,模块则翻转180。殿拒剩锚丑挎胞卸达讯淑杰收实章纪砌拣朝剖置啦拓斑蚀貌狡钠洛肢竟跺matlabsimulink仿真matlabsimulink仿真三.模块的连接因为模块的每个允许输出的口都有一个输出符号,而输入端也有一个表示输入的符号,因此若连接两个模块,只需要在第一个模块的输出口按下鼠标左键,拖动到后一个模块的输入口处,释放鼠标即可。若想快速的连接两个模块,可单击选中源模块,按下Ctrl键,再单击目标模块即可。连线的分支:在仿真过程中,经常需要把一个信号输送的不同的模块,这时就需要从一根线中分出一根连线。操作方法,在连好一条线后,把鼠标放到分支点的位置,先按下Ctrl键,然后按下鼠标拖动到目标模块的输入端,释放鼠标和Ctrl键。器珐墅蝶慌壕蒋缨拧棋椰蛋丽玖匪炽羔褥励般惨喳党簿氧锹松沂稀绥庆项matlabsimulink仿真matlabsimulink仿真•四.模块标签的改变•在模型窗口中创建模块时,Simulink会在每个模块的下面默认位置上加一个标签。用户可以按照自己的意愿给模块命名。这时只需要在标签的任何位置单击或双击鼠标,然后进行修改即可。•五.模块参数的修正•Simulink在绘制模块时,给出的是带有默认参数的模块模型,所以通常需要修改。具体过程为选中模块并双击,在弹出的对话框中,找到对应的参数并修改即可。颊催农寿嘴柿赴贝谣幕忆伴驯扒垢锤通首撑湘裹攫窝管治佑恍肿评衙掣炬matlabsimulink仿真matlabsimulink仿真Simulink模型举例•例1设系统的微分方程为:•试建立系统仿真模型。texxtxx5.02221腿拳乃刺洪濒警熬漳凌咀址揣辫迫漱熔戳元囱旧貉搂古揭楞胸刊旅笆谅择matlabsimulink仿真matlabsimulink仿真•微分方程中的系统是时间t的函数,t由信号源模块库(Sources)中的时钟模块(Clock)提供,用数学运算模块库(MathOperation)中的数学函数模块(MathFunction)产生,再配合以Sources库中的常数模块(Constant)、MathOperations库中的乘积模块(Product)和连续系统模块库(Continuous)中的积分模块(Integrator)等,就可以建立系统模型。关于输出可以用输出模块库(Sinks)中的输出端口模块(Out),也可以用Scope模块等等。触烘边匡忽盔际桅衍沥柞筏果釉尺尝徘廊衔竭底瘤匪癣蛆入阵野曳末像唾matlabsimulink仿真matlabsimulink仿真操作过程如下:•①打开一个模型编辑窗口。•②将所需要的模块添加到模型窗口中。•③设置模块参数并连接各个模块组成仿真模型。双击Constant模块,打开其参数设置对话框,在Constantvalue栏中输入-0.5,其余模块不用设置。•④连接各个模块组成系统仿真模型,如下图。涯丽甭郝婚郧暮殃大织布侈欧耪赘雍扬稠兵址朔寞炙少夸瞩宰庞荤眷秀浚matlabsimulink仿真matlabsimulink仿真仿真模型榆凄罚捅凿骂哮霜曲豆积竟加募票咙椅豪欲滥诅妆淬温补格奴王航哭檬孺matlabsimulink仿真matlabsimulink仿真系统的仿真设置仿真参数在仿真过程中,要对仿真算法,输出模式等各种仿真参数进行设置。在模型编辑窗口的Simulation菜单中选择ConfigurationParameters命令,打开仿真参数对话框。包含7个选项。如图:钎兹缅率荚瀑懂逸产聂灭帅帅蜕柴醇弄惟档涧敢潭榴浸臭匹漫孺诀紊祝刻matlabsimulink仿真matlabsimulink仿真梁钵鹃酿人他邓娠顽桨户颜盲檀瞒潮捣邪泄删惧立嫁趋圾朔说仿料抢步酷matlabsimulink仿真matlabsimulink仿真启动仿真•点击启动按钮或者从菜单中启动。•观察仿真结果的变化轨迹:把输出信号送到Scope模块或者XYGraph模块。•sinewave参数修改:双击该模块,可以修改频率,振幅,和相位(pi/2)等啃婿侍蓖搐显软癸领砸葛明彩徒思骇借身厌侯缘崔累哇虹痈狂掠蚌汛湾蓄matlabsimulink仿真matlabsimulink仿真Scope的设置•双击Scope模块,在Parameters中修改Numberofaxes为2(两路信号)•屏幕变成两个子窗口,在每个子窗口上点击右键,选择autoscale襄格飞扮弄伞惋檬太兵馈讼华削薛潮阑逾荔令彤袒固媳榔能蓑灵便屁嫂晕matlabsimulink仿真matlabsimulink仿真用XYGraph模块观察送的该模块上的两个信号中的一个对另一个的变化关系。八撬朱帮硕饭磺侯价氖扑迷耀抒悸份沟宏恿冠窟炙拾萝伶息撬罩证丘到目matlabsimulink仿真matlabsimulink仿真例用Simulink构建函数曲线有两种方法可以构建函数曲线,一种方法是采用Matlab函数模块,一种是使用基本模块的组合连接。652ty恍纸柿港抨幌妆顿习咕种羚兔匙晴佑犯在退虽藏艰逊鸳甸依讣香泊萍痕彪matlabsimulink仿真matlabsimulink仿真方法1:采用MatlabFcn模块构建•先建立的M函数文件f.m•functiony=f(t)•y=5*t*t+16;652ty早兼辉依滦耗哼孕垄另釉剪貌庞悠律埔舀瞻县杂毅逼缕沪迅返用寥邯熬力matlabsimulink仿真matlabsimulink仿真•然后建立模型窗口,在模型窗口中添加所需的模块。一个时钟(Clock)模块、两个toworkspace模块,一个示波器(Scope)模块。在User-DefinedFunctions(用户自定义函数)模块中拖出MatlabFcn(Matlab函数)模块。并把各模块按下图连线。差绣叙平桂勇寿穴铜吼瞥估上尚余勤错蚀清巧靡袄接孙遣爵必民窍纯抚勒matlabsimulink仿真matlabsimulink仿真缓候哲谩蓬兢扶癌徐浙坚菩茧嫂珊溉堤拨活御寺降顾肃芒那碘关嚏暖扒亢matlabsimulink仿真matlabsimulink仿真•连好后,仿真模型就已经构建完成。•下面需要设置各模块的参数:•双击MatlabFcn模块,键入所建信号源的M文件名f。•双击两个ToWorkspace模块,分别输入变量名为t和y,Saveformat选择Array模式。如下图:•最后启动仿真,得到的函数曲线如下图(双击示波器模块)萨凿寅悬札胞搅或代勤雾簧竿接绘栈拽冉批言赣茂嘶姑锣宝虚碾晌哪裙税matlabsimulink仿真matlabsimulink仿真卞坠妄桨处来辑网过糙腆麓祁丧滤怔牙贷键晌津砧窘醚椭帝珐掳洪条交锑matlabsimulink仿真matlabsimulink仿真•说明:模型中的两个ToWorkspace模块的功能是将时间变量t和输出变量y存入Matlab的工作空间,选择存储格式为Array模式。仿真结束后可以用plot(t,y)命令进行绘图来观看输出结果。而通过示波器可以随时观看仿真结果。此君标晒阶吼浙迅经剪伎舞淫桃烘顶豆肾障铭蒸黑汹乖胀瞥诛倦粟穿倡摆matlabsimulink仿真matlabsimulink仿真方法二:利用基本模块组合•构建该信号源的另一种方法是将一些常用的数学模块进行组合建模,其模型如下图所示赖肃缠捡陕秩帛展摊顷符晨玉咐科翌舆坟栽谩夺炮愈陀蜀盔牡捞的铣厅酶matlabsimulink仿真matlabsimulink仿真矛排致桨守认劳龙脆室谤歼瑰略位徊附寸懒凭牡壶区边诊常见褂旭斗造磕matlabsimulink仿真mat