simulink入门教程.docx
《simulink入门教程.docx》由会员分享,可在线阅读,更多相关《simulink入门教程.docx(94页珍藏版)》请在冰豆网上搜索。
simulink入门教程
Simulink入门教程
Simulink?
快速入门
启动Simulink软件
要构建模型,可以使用SimulinkEditor和LibraryBrowser。
启动MATLAB软件
启动Simulink之前,请先启动MATLAB。
请参阅启动和关闭(MATLAB)。
配置MATLAB以启动Simulink
您在MATLAB会话中打开第一个模型时需要的时间比打开后续模型长,因为默认情况下,MATLAB会在打开第一个模型时启动Simulink。
这种即时启动Simulink的方法可以缩短MATLAB启动时间,避免不必要的系统内存占用。
要快速打开第一个模型,您可以配置MATLAB,在它启动时同时启动Simulink。
要启动Simulink而不打开模型或LibraryBrowser,请使用?
start_simulink。
根据MATLAB的启动方式,恰当使用此命令:
在MATLAB?
文件中
在操作系统命令行中,使用matlab命令和-r开关
例如,要在运行MicrosoftWindows操作系统的计算机上启动MATLAB时启动Simulink,请创建具有以下目标的桌面快捷方式:
matlabroot\bin\win64\-rstart_simulink
在Macintosh和?
Linux计算机上,可在启动MATLAB时使用以下命令启动Simulink软件:
matlab-rstart_simulink
打开SimulinkEditor
要打开SimulinkEditor,您可以:
创建一个模型。
在MATLAB的?
Home选项卡上,点击Simulink并选择一个模型模板。
或者,如果您已经打开了LibraryBrowser,请点击?
NewModel按钮
。
有关创建模型的其他方法,请参阅创建模型。
打开一个现有模型。
要打开最近使用的模型,请在MATLAB?
Home选项卡上点击Simulink。
或者,如果您知道要打开的模型的名称,可在MATLAB命令提示符下输入名称,例如?
vdp。
有关打开模型的其他方法,请参阅打开模型。
提示
SimulinkEditor会在MATLAB桌面的前端打开。
要将MATLAB桌面移动到前端,请在SimulinkEditor中选择?
View>MATLABDesktop。
打开LibraryBrowser
通过以下方式之一从MATLAB中打开SimulinkLibraryBrowser:
在主页选项卡上,点击?
Simulink并选择一个模型模板。
在新模型中,点击LibraryBrowser按钮
。
在命令提示符下,输入?
slLibraryBrowser。
LibraryBrowser随即打开,并显示您系统中的Simulink模块库的树视图。
当您点击树视图中的库时,右侧窗格将显示库的内容。
注意
除了Simulink库之外,Simulink还附带了模块库。
这些库支持对附带的示例模型(包含这些库中的模块)进行仿真。
但是,要生成代码或修改这些模块,必须拥有相关的产品许可证。
在SimulinkEditor中构建和编辑模型
启动Simulink并创建一个新模型
向模型中添加模块
对齐和连接模块
设置模块参数
添加更多模块
建立分支连接
组织模型
对模型进行仿真并查看结果
修改模型
本示例介绍创建模型、向模型中添加模块、连接模块以及仿真模型的基础知识。
您还将学习如何使用子系统组织模型、为模型的组件命名以及修改模型。
启动Simulink并创建一个新模型
1.在MATLAB主页选项卡中,点击Simulink。
2.在SimulinkStartPage上,点击BlankModel模板。
将在SimulinkEditor中打开一个基于BlankModel模板的新模型。
3.打开LibraryBrowser,以访问创建模型需要的模块。
在SimulinkEditor中,点击LibraryBrowser按钮
。
向模型中添加模块
一个模型至少要接收一个输入信号,对该信号进行处理,然后输出结果。
在LibraryBrowser中,Sources库包含代表输入信号的模块。
Sinks库包含用于捕获和显示输出的模块。
其他库包含可用于各种用途(如数学运算)的模块。
在此基本模型中,输入信号为正弦波,执行的操作为增益运算(通过乘法增加信号值),结果输出到一个Scope窗口。
尝试使用不同的方法来浏览库,并向您的模型中添加模块。
1.打开Sources库。
在LibraryBrowser的树视图中,点击Sources库。
2.在右窗格中,将光标悬停在SineWave模块上,以查看描述其用途的工具提示。
3.使用上下文菜单在模型中添加一个模块。
右键点击该模块并选择Addblocktomodeluntitled。
(要了解该模块的详细信息,请从上下文菜单中选择Help。
)
4.通过拖放操作在模型中添加一个模块。
在库树视图中,点击MathOperations。
在MathOperations库中,找到Gain模块,然后将其拖到模型中SineWave模块的右侧。
5.在库树视图中,点击Simulink,查看以图标形式显示在右窗格中的子库。
此视图是导航库结构的另一种方法。
双击Sinks库图标。
6.在Sinks库中,找到Scope模块,然后使用上下文菜单或通过拖放操作将其添加到模型中。
现在,您的模型如下图所示。
对齐和连接模块
可将模块连接起来,在模型元素之间建立能够使模型正常工作所需要的关系。
当您根据模块之间的交互方式对齐模块后,模型将更加一目了然。
快捷方式可以帮助您对齐和连接模块。
1.拖动Gain模块,使其与SineWave模块对齐。
当两个模块水平对齐时,将出现一条对齐参考线。
释放模块,此时将出现一个蓝色箭头,作为建议连接线的预览。
2.要接受该连接线,请点击箭头的末端。
此时参考线将变成一条实线。
3.采用同样的方法,将Scope模块与Gain模块对齐并连接起来。
提示
可以使用Diagram>Arrange菜单查看其他对齐方式选项。
设置模块参数
您可以设置大多数模块上的参数。
参数可以帮助您指定模块如何在模型中工作。
您可以使用默认值,也可以根据需要设置值。
可以使用PropertyInspector设置参数。
也可以双击大多数模块,使用模块对话框来设置参数。
要了解何时使用每一种方式,请参阅设置属性和参数。
在模型中,您可以在SineWave模块中设置幅值,在Gain模块中设置增益值。
1.显示PropertyInspector。
选择View>PropertyInspector。
2.选择SineWave模块。
3.在PropertyInspector中,将Amplitude参数设置为2。
4.选择Gain模块并将Gain参数设置为3。
该值将显示在模块上。
添加更多模块
假设您要再执行一个增益运算,但这次针对的是SineWave模块的输出绝对值。
为了实现此目的,需要添加一些模块,请尝试通过不同的方式找到库中的模块并添加到模型中。
1.如果知道要添加的模块的名称,可以使用快捷方式。
点击模型中要添加模块的位置,然后键入模块名称(在本例中为Gain)。
此时将显示一个可能的模块列表。
2.点击模块名称,或者在突出显示模块名称后按Enter。
如果它不是列表中的第一个模块,您可以使用箭头键突出显示模块名称。
使用此方法可以在出现蓝色放大镜的任何位置添加模块,例如在您绘制信号线时。
3.许多模块会显示要求您为某个模块参数输入值的提示。
Gain模块会提示您输入Gain值。
键入3并按Enter。
每增加一个模块实例,名称中的数字就会增加1,例如Gain1、Gain2等。
4.在模型中添加一个Abs模块。
假定您不知道模块在哪个库中,也不知道模块的完整名称。
这种情况下,可以使用LibraryBrowser中的搜索框进行搜索。
在搜索框中输入abs并按Enter。
当您找到Abs模块后,将其添加到Gain1模块的左侧。
5.添加另一个Scope模块。
您可以右键点击并拖动现有的Scope模块为其创建一个副本,或使用Edit>Copy和Edit>Paste。
下图显示了您的模型的当前状态。
注意
当您按照数字顺序为模型中的模块命名时(例如Gain1、Gain2等),复制和粘贴操作将按照ASCII字符的标准排序约定生成模块名称。
这种排序方法可能会导致模块名称中出现一串难以理解的数字。
如果编号方案对您很重要,请为模块编号,使复制和粘贴操作生成的模块名称遵循常见的阅读顺序。
为此,请在模块名称中使用前导零,例如Gain001、Gain002等。
建立分支连接
第二个增益运算的输入是正弦波的绝对值。
要使用一个SineWave模块作为两个增益运算的输入,需要从SineWave模块输出信号上创建一条分支。
1.对于模型中的第一组模块,您使用了水平对齐参考线帮助您对齐和连接模块。
您还可以使用参考线垂直对齐模块。
将Scope1模块拖动到Scope模块下面并与之对齐。
当垂直对齐参考线显示两个模块已对齐时,释放模块。
2.按下图所示对齐并连接Abs和Gain1模块。
3.从SineWave模块的输出端口创建一条连接到Abs模块的分支线。
当光标悬停在SineWave模块的输出信号线上时,按住Ctrl键并向下拖动。
拖动分支线,直到末端靠近Abs模块为止。
4.向Abs模块拖动,直到分支线连接到该模块。
根据需要移动顶点,以拉直该线。
(顶点上出现一个圆圈。
)
您可以尝试用其他方法来连接模块:
拖动鼠标,从一个模块的输出向另一个模块的输入绘制一条连接。
当您的模块已对齐(即不显示参考线)时,可以使用此方法。
选择第一个模块,然后按住Ctrl键并点击要连接的模块。
当您不希望模块对齐时,可以使用此方法。
连接线根据需要拐弯以建立连接,如下图所示。
注意
您可以选择多个模块,将它们连接到一个具有多个输入端口的模块(例如,总线)。
要从线段逼近对角线,请按住Shift键并拖动顶点。
提示
要改善信号线的形状,请选择信号线,然后从省略号菜单中选择AutorouteLine。
如果模型元素之间存在更好的路线,则会重新绘制信号线。
组织模型
您可以将模块组合成子系统,并为模块、子系统和信号添加标签。
有关子系统的详细信息,请参阅创建子系统。
1.拖动鼠标,在Abs和Gain1模块周围绘制一个选择框。
2.将光标移动到选择框右下角出现的省略号上。
从工具栏中选择CreateSubsystem。
模型中将出现一个子系统模块,代替Abs和Gain1模块。
要调整子系统模块的大小,使其最适合您的模型,请拖动模块句柄。
3.为子系统指定有意义的名称。
双击模块名称并键入AbsoluteValue。
4.双击AbsoluteValue子系统将其打开。
提示
要使用ExplorerBar来导航模型层次结构,请右键点击模块并选择OpeninNewTab。
该子系统包含您选择作为子系统基础的Abs和Gain1模块。
它们依次连接到两个新模块:
In1(Inport模块)和Out1(Outport模块)。
Inport和Outport模块对应于子系统的输入端口和输出端口。
5.点击SimulinkEditor中的UptoParent按钮
返回到模型顶层。
6.您可以为任何信号命名。
双击信号并键入名称即可。
例如,双击来自Gain模块的信号,然后键入MySignal。
双击信号线而不是画布的空白区域,否则将创建一个单独的文本元素(注释)。
有关处理信号名称的其他方法,请参阅信号名称和标签操作。
下图显示了您创建子系统、命名子系统并命名信号之后的模型。
提示
要查看其他调整大小和对齐选项,请使用Diagram>Arrange菜单。
对模型进行仿真并查看结果
1.您可以使用Simulation>Run命令(Ctrl+T)或Run按钮
对模型进行仿真。
您可以使用自己偏好的方法对模型进行仿真。
在本示例中,仿真运行10秒,此为默认设置。
2.双击两个Scope模块将其打开,然后查看结果。
在每个Scope中,点击Autoscale按钮
以查看完整信号。
下图显示了两个结果。
在第二个图中,不出所料,正弦波的绝对值始终为正。
修改模型
您可以在现有信号上添加模块、从模型中移除模块以及重新绘制连接线。
要修改此模型,请为模型中两个分支的输入添加一个偏置。
再将其中一个Scope替换为另外一种信宿。
对于某些模块,从其他模块上连接一条线会在该模块上添加一个输入端口或输出端口。
例如,当您为子系统添加连接线时,子系统上会出现一个端口。
产生端口的其他模块包括BusCreator、Scope以及Add、Sum和Product模块。
有关详细信息,请参阅AutomaticPortCreation:
Addinportsandoutportstoblockswhenroutingsignals。
1.在模型中添加一个Bias模块,并将Bias参数设置为2。
2.将该模块拖动到SineWave模块后面、分支线前面的信号线上。
如果您需要为该模块腾出空间,请将SineWave模块向左拖动,或者拖动分支线的末端,将分支线向右移动。
当您将模块拖动到信号线上时,模块的两侧将与信号线连接起来。
当您对位置感到满意时,释放模块。
3.移除Scope模块。
如果要断开Scope模块与模型的连接,但不想将其删除,请按住Shift键并拖动该模块。
使用Edit菜单命令或键盘按键剪切或删除此模块。
断开的连接线显示为红色点线。
提示
当您删除具有一个输入端口和一个输出端口的模块时,断开的连接线之间会出现提示。
点击该提示可将信号连接起来。
4.向模型中添加一个ToWorkspace模块,并将其放在断开的连接线的末端。
ToWorkspace模块将结果输出给MATLAB工作区中的一个变量。
5.再向子系统中添加一个输入。
向模型中添加一个SineWave模块,并将幅值设置为5。
将其放在子系统模块的左侧。
6.拖动鼠标从新的SineWave模块向子系统的左侧绘制一条线。
模块上将出现一个新端口In2。
7.再向子系统中添加一个输出。
向模型中添加一个ToWorkspace模块,并将其放在子系统的右侧。
拖动鼠标从输入端口向子系统的右侧绘制一条线。
模块上将出现一个新端口Out2。
8.打开子系统并将Out1模块重命名为Scope。
将Out2模块重命名为Workspace。
向模型添加一个ManualSwitch模块。
调整大小并按下图所示进行连接。
在Gain模块后绘制分支信号,以将输出指向ToWorkspace模块。
然后,返回到模型的顶层。
下图显示了当前模型。
9.对模型进行仿真。
osimout和simout1变量出现在MATLAB工作区中。
您可以双击每个变量以查看结果。
o如果要使用第二条正弦波作为子系统算法的输入,请打开子系统并双击开关。
输入更改为In2。
再次进行仿真。
提示
要在使用和不使用Bias模块的模型仿真效果之间切换,请右键点击Bias模块,然后选择CommentThrough。
此模块仍然在模型中,但不影响运算。
右键点击Bias模块,然后选择Uncomment即可启用此模块。
CommentOut命令会注释掉模块的输出信号,因此不传递信号数据。
请使用上述每个命令进行尝试,以便更好地理解它们的效果。
创建模型和现有打开模型
创建模型
使用自定义设置创建新模型
打开模型
在打开模型时加载变量
打开使用不同字符编码的模型
Simulink?
模型文件类型
创建模型
1.在MATLAB主页选项卡中,点击?
Simulink。
2.在Simulink首页,选择一个模板或搜索模板。
模型模板是应用常见建模方法的起点。
它们可以帮助您重用设置和模块配置,并与他人分享知识。
使用模型和工程模板来应用最佳实践,并充分利用以前的建模解决方案。
点击模板标题以阅读其说明。
要定位不在MATLAB搜索路径中的模板,请点击?
Open。
模型模板的扩展名为.
sltx。
3.选择您需要的模板后,点击?
CreateModel。
要使用模板而不阅读说明,请点击模板图像。
或者按?
Ctrl+N以使用默认模板。
要设置默认模板,请参阅使用自定义设置创建新模型。
此时将在SimulinkEditor中打开一个使用模板设置和内容的新模型。
有关后续步骤,请参阅在SimulinkEditor中构建和编辑模型。
如果内置模板不能满足您的需要,请尝试在?
Examples选项卡上搜索,也可以自行创建模板。
请参阅CreateaTemplatefromaModel。
在?
Examples选项卡上,输入搜索词以查找感兴趣的示例标题和描述,或者点击产品名称旁边的ViewAll,以打开网络上的更多示例。
使用自定义设置创建新模型
您可以为所有新模型指定一个模型模板。
1.使用所需的配置设置和模块创建一个模型,然后将该模型导出到模板中。
请参阅CreateaTemplatefromaModel。
2.要在每个新模型中重用这些设置,请使用SimulinkStartPage或?
函数将新模板设置为默认的模型模板。
在StartPage上,点击模板标题以展开其说明,然后点击?
CreateModel旁边的向下箭头并选择SetAsDefault。
设置默认的模型模板后,每个新模型都将使用该模板,例如,当您按?
Ctrl+N、使用新模型按钮或使用new_system时,都会使用该模板。
在SimulinkEditor中,当您选择File>New>MyDefaultTemplateName时,默认模板名称位于列表的顶部。
默认模板在StartPage上显示一个标记。
打开模型
打开模型时,模型将加载到内存中并显示在SimulinkEditor中。
使用以下方式之一:
在MATLAB?
主页选项卡中,点击?
Simulink。
在SimulinkStartPage上,从列表中选择一个最近使用的模型或工程,或点击?
Open。
在SimulinkEditor中,选择?
File>OpenRecent,然后选择一个最近使用过的模型。
在MATLAB命令提示符下,输入不带文件扩展名的模型名称,例如?
vdp。
该模型必须在当前文件夹或MATLAB搜索路径中。
在SimulinkLibraryBrowser中,点击?
Openmodelorlibrary按钮
。
使用“当前文件夹”浏览器或您操作系统上的文件浏览器打开模型。
提示
设置收藏夹可从StartPage轻松回到您喜欢的模型和工程。
在SimulinkStartPage上最近使用的文件列表中,您可以将文件添加到收藏夹中。
然后,Favorites列表将显示在StartPage上最近使用的文件上方,以便您轻松重新打开自己喜欢的模型和工程。
要清除StartPage上最近使用的文件列表,请在MATLAB中输入:
注意
要在旧版本的Simulink中打开在新版本中创建的模型,首先要将模型导出到旧版本。
请参阅将模型导出到以前的Simulink版本。
在打开模型时加载变量
在构建模型的过程中,有时您需要为模型定义变量。
例如,假设您有一个模型,其中包含一个Gain模块。
您可以指定变量K作为增益,而不是在模块上设置该值。
使用这种方法时,必须为要仿真的模型定义变量K。
当您打开模型时,可以使用模型回调来加载变量。
1.在使用Gain模块的模型中,将该模块的?
Gain值设置为K。
2.在MATLAB脚本中定义变量。
在MATLAB中,选择新建>脚本。
在脚本中输入您的变量定义:
K=27
3.将脚本另存为。
4.在模型中,打开PropertyInspector。
选择?
View>PropertyInspector。
如果未在模型顶层选择任何内容,可使用PropertyInspector设置模型属性。
否则,请使用?
File>ModelProperties。
5.在模型属性的?
Callbacks部分,选择PreLoadFcn作为您要定义的回调。
在窗格中输入loadvar。
6.保存模型。
下次您打开该模型时,PreloadFcn?
回调会将变量加载到MATLAB工作区中。
有关回调的信息,请参阅针对自定义模型行为的回调。
要以编程方式定义加载变量的回调,请参阅打开模型时通过编程方式加载变量。
打开使用不同字符编码的模型
如果您在使用不同编码的MATLAB会话中打开使用特定字符集编码的MDL文件,将会出现警告。
例如,假设您在为Shift_JIS配置的MATLAB会话中创建一个MDL文件,然后在为US_ASCII配置的会话中打开它,此时就会出现警告。
警告消息显示当前会话的编码以及创建模型时所使用的编码。
SLX文件不会发出警告,因为它们可以存储任何编码的字符。
如果您遇到任何字符损坏的问题(例如,使用与模型关联的MATLAB文件时),请尝试使用?
slCharacterEncoding函数更改当前MATLAB会话的字符编码,使其与模型的字符编码相匹配。
Simulink可以检查模型中是否包含当前区域设置不支持的字符。
有关详细信息,请参阅Checkmodelforforeigncharacters和保存具有不同字符编码的模型。
Simulink?
模型文件类型
默认情况下,您创建的新模型带有.slx扩展名。
在R2012b之前创建的模型带有.mdl扩展名。
可编辑的模型可以带有.slx或.mdl扩展名,具体取决于模型的创建时间以及是否进行过转换。
请参阅将模型保存为SLX文件格式。
.slxp和.mdlp扩展名表示受保护的模型,不能打开和编辑。
请参阅受保护模型。
模型模板的扩展名为.sltx。
Simulink库还使用.slx扩展名,但您不能对这些模型进行仿真。
要了解详细信息,请参阅创建自定义库。
另请参阅
|||open_system|simulink
保存模型
如何判断模型需要保存
保存模型
保存模型时会执行哪些操作
将模型保存为SLX文件格式
保存具有不同字符编码的模型
将模型导出到以前的Simulink版本
从一个旧版本Simulink保存到另一个旧版本
如何判断模型需要保存
要判断模型是否需要保存,请查看SimulinkEditor的标题栏。
如果模型需要保存,标题栏中的模型名称旁边会显示一个星号(称为修改标志:
*)。
要通过编程方式确定模型是否需要保存,请使用模型参数?
Dirty。
例如:
ifstrcmp(get_param(gcs,'Dirty'),'on')
save_system;
end
保存模型
第一次保存模