Simulink自定义模块的建立

合集下载

Matlab-Simulink基本模块操作

Matlab-Simulink基本模块操作

第2章 Simulink模块操作
表 2-2 控制模块方块图的参数
参数
定义
ScreenColor BackgroundColor
模型方块 图的背景色 模块和标 注的背景色
Fore groun dColor
模块和标 注的前景色
第2章 Simulink模块操作
用户可以把这些参数设置为如下任一值: 'black','white','red','green','blue','cyan','magenta',
第2章 Simulink模块操作
Simulink模块操作
2.1 模块操作 2.2 改变模块外观 2.3 设置模块参数 2.4 标注方块图 2.5 模块属性对话框 2.6 显示模块输出 2.7 控制和显示模块的执行顺序 2.8 查表编辑器 2.9 鼠标和键盘操作概述
第2章 Simulink模块操作
2.1 模 块 操 作
2.1.1 Simulink模块类型 用户在创建模型时必须知道,Simulink把模块分为两种
类型:非虚拟模块和虚拟模块。非虚拟模块在仿真过程中起 作用,如果用户在模型中添加或删除了一个非虚拟模块,那 么Simulink会改变模型的动作方式;相比而言,虚拟模块在 仿真过程中不起作用,它只是帮助以图形方式管理模型。此 外,有些Simulink模块在某些条件下是虚拟模块,而在其他 条件下则是非虚拟模块,这样的模块称为条件虚拟模块。表 2-1列出了Simulink中的虚拟模块和条件虚拟模块。
第2章 Simulink模块操作 图2-10
第2章 Simulink模块操作
2.2.3 指定方块图颜色 Simulink允许用户在方块图中指定任何模块或标注的前景色

simulink建模实例

simulink建模实例

simulink建模实例Simulink是一种功能强大的工具,用于建立和模拟各种系统的动态行为。

它可以帮助工程师和科学家更好地理解和分析系统的行为,并进行系统设计和优化。

下面我将通过一个实例来展示Simulink的应用。

假设我们要建立一个控制系统,用于控制一个小型机器人的移动。

该机器人有两个驱动轮,我们希望能够通过Simulink来设计一个控制器,使机器人能够按照预定的路径移动。

我们需要建立一个系统模型,包括机器人本身、传感器和执行器。

在Simulink中,我们可以使用各种模块来表示这些组件,并使用连线连接它们。

例如,我们可以使用“转向模块”来表示机器人的转向系统,使用“速度模块”来表示机器人的速度控制系统。

接下来,我们需要定义机器人的运动路径。

在Simulink中,我们可以使用“路径生成器”模块来定义路径。

通过调整路径生成器的参数,我们可以创建各种形状的路径,例如直线、曲线等。

然后,我们需要设计一个控制器,将路径信息转换为机器人的运动指令。

在Simulink中,我们可以使用“控制器模块”来实现这一功能。

该模块可以根据路径信息和机器人的当前位置,计算出机器人应该采取的行动,例如转向角度和速度。

我们需要将控制指令发送给机器人的执行器,以实现机器人的移动。

在Simulink中,我们可以使用“执行器模块”来模拟执行器的行为。

该模块可以将控制指令转换为实际的电压或力矩信号,驱动机器人的驱动轮进行运动。

通过上述步骤,我们就建立了一个完整的机器人控制系统模型。

我们可以在Simulink中进行仿真,观察机器人在不同路径和控制策略下的运动行为。

通过调整模型中各个组件的参数,我们可以进行系统性能的优化和改进。

Simulink是一个强大的工具,可以帮助我们建立和模拟各种系统的动态行为。

通过Simulink,我们可以更好地理解和分析系统的行为,并进行系统设计和优化。

在实际工程中,Simulink的应用广泛,并在控制系统、信号处理等领域发挥着重要作用。

Simulink中的自定义模块

Simulink中的自定义模块

目录Fcn 模块 (1)MATLAB Fcn 模块 (2)S Function (System Function) (2)1. 函数的函数头 (3)2. 函数分析 (3)3.带参数的S函数 (5)4.S函数格式及说明 (6)simulink中子模块的封装 (11)Fcn 模块Fcn模块对它的输入进行指定的表达式运算。

使用的表达式可由下面的一个或多个部分组成。

u --- 模块的输入。

如果u是一个向量,u(i)表示此向量的第i个元素;u(1)或者u表示第一个元素数值常数(例如表达式5.2*u)算术运算符(+ - * / ^ 例如表达式u^2+5.2)关系运算符(== != > < >= <=) --表达式返回1,如果关系为真; 否则返回0逻辑运算符(&& || !) 表达式返回1,如果关系为真; 否则返回0括号数学函数(abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt, tan, tanh.)Workspace中定义的变量–如果变量名字不是Matlab 保留字符(比如sin),变量名字会被传递给Matab,从而在Maltab Workspace中获取相应给定的值。

矩阵或者向量必须具体到其对应的元素。

(比如A(1,1))注意:Fcn模块中使用的表达式不支持矩阵运算,同样不支持(:) 符。

模块输入可以是标量或者向量,但输出总是标量数值。

MATLAB Fcn 模块MATLAB Fcn模块对它的输入进行指定的Matlab函数或者表达式运算。

输出尺寸必须和模块中定义的尺寸相符,否则报错。

下面是MATLAB Fcn模块中可以使用的有效表达式sin atan2(u(1),u(2)) u(1)^u(2)注意:同Fcn模块相比,在仿真中MATLAB Fcn模块速度要慢,因为它需要在每个积分步骤中调用Maltab编译器。

自定义Simulink模块方法

自定义Simulink模块方法
自定义Simulink模块方法
S-函数
• 实验时,有时发现一些过程用普通的Simu-link模块不易搭建,或者找不到相 应的模块。我们可以使用Simulink支持的S-函数格式,用Matlab语言或者C语言 写出描述过程的程序,构成S-函数模块,直接调用。 用Matlab语言编写S-函数
引导语句为:
S-函数
• 用C语言编写S-函数 可以用Matlab6.1中提供的S-函数编辑程序来设计C语言的S-函数模板 也可以用 sfundemos 命令打开S-function demos模块组进行设计
相关S-函数的详细内容可参考《S-函数编写指导》等相关资料
自定义Simulink模块库的添加
自定义Simulink模块库的添加
• 命令 which('slbloБайду номын сангаасks.m','-all') 找到slblocks.m 文件,复制到自定义模块库所在文件夹,编辑如下
保存,刷新Simulink Library Browser,就可以看到自己的模块库

Function[sys,x0,str,ts] = f(t,x,u,flag,p1,p2,· · · )
其中,p1,p2,· · · 是用户自定义的参数,t,x,u,flag等是固定参数。具体细节可参考《系统仿真 技术与应用》的6.3节 Simulink中提供了一个sfuntmpl.m的模板文件,可以从这个模板出发构建自己的S-函数,命 令 which('sfuntmpl.m','-all') 可以显示模板所在位置。

simulink中sub封装模块添加参数

simulink中sub封装模块添加参数

simulink中sub封装模块添加参数
在Simulink中,可以使用Subsystem模块来封装其他模块,并在Subsystem模块中添加参数。

以下是在Simulink中创建Subsystem模块并添加参数的步骤:
1. 在Simulink编辑器中,将需要封装的模块拖拽到模型中。

2. 在需要添加参数的Subsystem模块上单击右键,选择“Mask Subsystem”选项。

3. 在弹出的“Mask Editor”窗口中,可以看到该Subsystem模块的参数设置界面。

4. 在参数设置界面中,可以添加需要的参数。

可以使用Simulink提供的参数类型,如数值型、字符串型、布尔型等,也可以自定义参数类型。

5. 在添加参数时,可以在“Parameter”文本框中输入参数的名称,在“Value”文本框中输入参数的值或表达式。

6. 如果需要添加多个参数,可以单击“Add Parameter”按钮,并在弹出的对话框中输入参数的名称和值或表达式。

7. 完成参数设置后,单击“OK”按钮保存Subsystem模块的配置。

在完成Subsystem模块的创建和参数设置后,可以在模型中使用该Subsystem模块,并使用设置的参数来控制模块的行为。

Simulink中的自定义模块

Simulink中的自定义模块

目录Fcn 模块 (1)MATLAB Fcn 模块 (2)S Function (System Function) (2)1. 函数的函数头 (4)2. 函数分析 (4)3.带参数的S函数 (8)4.S函数格式及说明 (9)simulink中子模块的封装 (16)Fcn 模块Fcn模块对它的输入进行指定的表达式运算。

使用的表达式可由下面的一个或多个部分组成。

u --- 模块的输入。

如果u是一个向量,u(i)表示此向量的第i个元素;u(1)或者u表示第一个元素数值常数(例如表达式5.2*u)算术运算符(+ - * / ^ 例如表达式u^2+5.2)关系运算符(== != > < >= <=) --表达式返回1,如果关系为真; 否则返回0逻辑运算符(&& || !) 表达式返回1,如果关系为真; 否则返回0括号数学函数(abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt, tan, tanh.) Workspace中定义的变量–如果变量名字不是Matlab 保留字符(比如sin),变量名字会被传递给Matab,从而在Maltab Workspace中获取相应给定的值。

矩阵或者向量必须具体到其对应的元素。

(比如A(1,1))注意:Fcn模块中使用的表达式不支持矩阵运算,同样不支持(:) 符。

模块输入可以是标量或者向量,但输出总是标量数值。

MATLAB Fcn 模块MATLAB Fcn模块对它的输入进行指定的Matlab函数或者表达式运算。

输出尺寸必须和模块中定义的尺寸相符,否则报错。

下面是MATLAB Fcn模块中可以使用的有效表达式sin atan2(u(1),u(2)) u(1)^u(2)注意:同Fcn模块相比,在仿真中MATLAB Fcn模块速度要慢,因为它需要在每个积分步骤中调用Maltab编译器。

第08讲 simulink基本操作及模块的构造

第08讲 simulink基本操作及模块的构造

19
20
5、Signal Routing(信号路由模块库) Bus Creator:由输入产生总线信号 Bus Selector:总线信号选择器 Data Store Memory:用户定义的数据存储区 Data Store Read:从数据存储区读出数据 Data Store Write:向数据存储区写入数据 Demux:信号分解器 From:从Goto 模块中获得信号 Goto:向Goto 模块传递信号
8
* View 查看菜单 Toolbar 显示/关闭工具条开关 Status bar 显示/关闭状态条开关 Description 显示/关闭描述窗口开关 Stay on top 位于上层 Collapse entire browser 压缩整个树状结构 Expand entire browser 展开整个树状结构 Large icons 大图标 Small icons 小图标 Show parameters for selected block 显示所选模块参数
26
27
8、 User-Defined Function(用户自定义函数模块库) Fcn:用自定义的函数(表达式)进行运算 MATLAB Fcn:利用 matlab 的现有函数进行运算 (对输入进行运算输出结果) S-Function:调用自编的S-函数模块进行运算 S-Function Builder: S-函数生成器
18
Slider Gain:渐变增益 Sum:加减运算 Trigonometric Function:三角函数,包括正弦、余弦、正切等 Logical Operator:逻辑运算 Relational Operator:关系运算 Complex to Magnitude-Angle:由复数输入转为幅值和相角输出 Magnitude-Angle to Complex:由幅值和相角输入合成复数输出 Complex to Real-Imag:由复数输入转为实部和虚部输出 Real-Imag to Complex:由实部和虚部输入合成复数输出

m函数生成simulink模块

m函数生成simulink模块

m函数生成simulink模块1. 引言m函数是一种在MATLAB中常用的编程语言,用于实现特定的功能和算法。

Simulink是MATLAB的一个功能强大的工具箱,用于建模、仿真和分析动态系统。

在Simulink中,可以通过使用m函数来创建自定义的模块,以便实现更复杂的系统模型。

本文将深入探讨如何使用m函数生成Simulink模块,并提供一些实例来帮助读者更好地理解。

2. m函数简介m函数是MATLAB中用于实现特定功能的自定义函数。

它由一系列的MATLAB代码组成,可以接受输入参数,并返回输出结果。

m函数的语法与MATLAB脚本文件相似,但具有更大的灵活性和复用性。

在Simulink中,m函数可以用于创建自定义的模块,以便在系统建模过程中使用。

3. Simulink模块的生成过程3.1 创建m函数文件首先,我们需要创建一个m函数文件。

在MATLAB的当前工作目录下,右键点击鼠标并选择”New”->“Function”,然后输入文件名并选择”m文件”作为文件类型。

点击”Save”按钮后,MATLAB将自动创建一个空的m函数文件,并将其打开以供编辑。

3.2 编写m函数代码在m函数文件中,我们可以根据具体需求编写自定义的MATLAB代码。

这些代码既可以是编写好的函数调用,也可以是一系列的算法和计算过程。

无论是什么样的代码,都需要满足函数的输入输出要求。

例如,我们要编写一个简单的m函数用于计算两个数的和。

代码如下:function output = add(a, b)output = a + b;end在上述代码中,我们定义了一个名为”add”的m函数,它接受两个输入参数a和b,并返回它们的和。

3.3 保存并添加到Simulink模型中在完成m函数的编写后,我们需要将其保存,并添加到Simulink模型中以供使用。

首先,点击m函数文件编辑器的”Save”按钮保存代码。

然后,在Simulink模型编辑器中,选择”Library Browser”视图,然后在浏览器窗口中找到并双击”User-Defined Functions”库。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自定义模型的建立
1,搭建直流电机模型
2,选定要包含到子模块中的所有模块:
单击Edit菜单下Creat Subsystem项,选定的模块即便为子系统:
3,封装子系统
将子系统命名为DC_motor_Subsystem,右击子系统模块,在弹出的菜单中选择Mask Subsystem,打开封装编辑器:
Icon&Ports选项卡可对模块的外框,透明度,图表等进行设置。

在Icon Drawing Command 区域中可用命令改变端口名称,添加图片,修改颜色等。

以下命令用于修改端口名称及颜色:
color('red');port_label('input',1,'Control Signal');
color('red');port_label('output',1,'Torque');
color('red');port_label('output',2,'Angle');
color('red');port_label('output',3,'Speed');
输入命令后单击OK,则则子模块变为:
若要添加图片,需将图片放在模型所在目录下,命名为‘DC_motor’,在Icon Drawing Command区域内输入命令:
image(imread('DC_motor.jpg'))
则子模块变为:
4,添加模块到库浏览器
在Simulink库浏览器窗口,选择File菜单下New—Library,打开库编辑窗口,将封装后的DC_motor_subsystem拖入库编辑器并保存为DC_motor_subsystem_lib.mdl。

编写M函数代码:
并保存在DC_motor_subsystem_lib.mdl所在目录下,重新打开模块库,则自定义模块添加成功:
注意事项:
在建模过程中,应注意模型名称是否拼写正确等细节问题。

在自定义模块建立中,应注意,模型、slblocks函数等均应保存在matlab安装目录下BIN 文件夹内,否则将不能添加到模块库中。

相关文档
最新文档