金宝appSimulink模型

模型是使用数学方程和图表的系统的抽象和简化描述。本主题中的建模概念理解的数学描述与Simulink中的系统的过程中提供上下文金宝app®软件工具。

框图

一个框图是一个的视觉表示模型在Simuli金宝appnk编辑器。编辑器允许您添加从代表基本模型组件模块库中选择块。基本组件包括积分,增益和求和块。被连接到彼此以信号和事件在视觉上构建模型方程。

框图语义

A的经典的方框图系统用块和线以图形方式绘制。这些方框图的历史来自于反馈控制理论和信号处理等工程领域。块图中的块本身定义了一个模型。基本模型之间的关系由连接模块的信号线表示。方框图中的块和线共同描述了系统的整体模型。

金宝app模型扩展了经典框图通过:

  • 向每个块添加一组方程(块方法),这些方程定义了输入信号、输出信号和块状态变量之间基于时间的关系。

  • 为每个块添加参数,指定模型方程中的系数。

  • 提供的Simulink引金宝app擎的数值解框图通过评估随时间的关系,其中时间从用户指定的“开始时间”开始,并在用户指定的“停止时间”结束。

也可以看看:金宝appSimulink的方框图,交互式地构建和编辑一个模型,使用方框图以图形方式表示动态系统,模拟

一个是Simulink编辑器的基本建模构造。金宝app的实例从内置的Simulink库执行特定的金宝app操作。您还可以创建自己的自定义块。有些块具有输入信号、输出信号和状态。大多数块都有用于指定块行为的参数。一个块是否有参数以及这些参数的性质是特定于每个块的。

每个块表示Simulink引擎的一组方程。金宝app方程用块方法表示。上面显示的块具有以下块方法。

的框图的模拟过程中块的方法进行了评价。的块的方法进行评价的结果的模拟循环,其中通过模拟循环每个周期代表该框图中的在给定时间点评估内进行。

虚拟块

虚拟块组织和模型提供图形化的层次结构,但它们不影响仿真结果。在模型模拟,Simulink的发动机变平,所有虚拟块。金宝app也就是说,Simu金宝applink中执行之前到位扩展块。这种膨胀是类似于宏的编程语言如C或C ++的工作方式。

金宝appSimulink定义了以下虚拟块:

  • 虚拟子系统- 使用虚拟子系统,一个更大的模型内封装和相关功能部件。一个虚拟子系统块具有参数的复选框视为原子单位清除。

  • 运行轨迹外港-使用端口块将数据(信号)和事件(函数调用)从系统块或引用的模型块内移动到块内。

  • 公交车造物主,总线分配,总线选择器总线块将信号组合成一个虚拟总线,并在一个复杂的框图上管理信号的路由。虚拟总线只是一种图形化的便利,不会改变模型的行为。

看到非虚拟块和虚拟块,信号类型,复合信号的类型.

非虚拟框

非虚拟块在模型中提供了执行控制和图形层次结构。金宝appSimulink定义了以下非虚拟子系统和模型块:

  • 对象中的原子子系统和模型块原子子系统块或模型块,该块引用在每个时间步骤中作为单个单元(原子执行)执行的模型。对于原子子系统块,选中参数复选框视为原子单位被选中。

    可以将任何Simulink块放在金宝app原子子系统或参考模型,包括与不同的执行率块。这种灵活性提供在执行级别分组的模型的功能方面的优点。

    在下面的例子中,车辆模型是原子子系统包含汽车力学模型的块。控制模型引用自模型块。

  • 启用和触发-原子子系统要么模型块,其执行由来自信号的受控外部数据控制。包含一个启用要么触发端口块。为触发端口块,参数触发类型被设置为升起,落下, 要么.

  • 函数调用 -原子子系统要么模型块的执行由函数调用启动程序(例如,Stateflow图表、函数调用生成器和S-Function块)的事件控制,它包含一个触发与端口块触发类型设置为函数调用.

金宝appSimulink中定义了以下非虚拟部件仅子系统块。

  • 行动子系统-原子子系统块,其执行由动作发起者的事件控制(例如,如果要么开关罩块)。包含一个港口行动内的块子系统块。

  • 虽然迭代器于子系统的原子子系统在每个模型时间步长中运行多个迭代的块。包含一个而迭代器阻止控制迭代次数通过评估的逻辑条件。

    while迭代器子系统类似于函数调用子系统,因为它可以在给定的时间步上运行任意次数的迭代。while迭代器子系统不同于函数调用子系统,因为没有单独的启动器。

  • 对于迭代器子系统 -原子子系统在每个模型时间步骤中运行固定次数的迭代的块。包含一个对迭代器阻止控制迭代次数。

看到非虚拟块和虚拟块.

块面具

阻挡掩模是唯一的接口选择的块参数显示的自定义块参数。一种用于子系统阻挡掩模,可以为上内侧的块设定参数提供接口子系统块而无需导航模型的层次结构。

看到屏蔽基础.

定制模块

自定义块是扩展Simulink内置功能的新块。金宝app您可以创建自定义块的库来在模型中使用。

下面的块以图形方式使用块图或以编程方式定义自定义块的算法。

  • MATLAB®功能 - 代码使用MATLAB语言MATLAB功能,在Simulink模型运行。金宝app看到实现MATLAB功能使用块.

  • MATLAB系统——自带存在系统对象基于matlab.System到Simulink。金宝app看到MATLAB系统块.

  • 子系统 - 绘制表示的算法的框图,在Simulink的实例包此图金宝app子系统块,然后使用Simulink块掩码为块提供参数对话框。金宝app看到子系统,原子子系统,CodeReuse子系统.

  • Ç来电 - 整合您的外部C代码到Simulink模型。金宝app看到整合用C来电块C代码.

  • S-功能 - 通过创建一个MATLAB文件或包含块的系统功能的MEX文件创建一个自定义编程块。产生的文件被称为S-功能。然后,您的S函数模型中的Simulink的S-功能块的实例关联。金宝app看到S-功能.

看到定制模块的类型,块创作和模拟集成.

行是Simulink编辑器的基本建模构造。金宝app线路将块的输出端口与其他块的输入端口连接起来。

信号线路

信号线在模拟过程中从一个块的数据传输到另一个块。信号随时间变化的具有在时间(连续)或在指定的时间点(离散的)在所有点处的值的数量。的信号对应于它的块输出方法的评估过程中写入的信号中的块的源码。的信号的目的地是它的块的输入方法的评估过程中读取的信号中的块。

您可以指定信号属性,包括信号名称、数据类型(例如,双精度、32位整数)、数字类型(例如,实数、复数)和维度(例如,一维、二维、多维数组)。许多块可以接受或输出任意数据类型或维数的信号。其他块对它们能处理的信号的属性施加限制。

在模拟过程中,通过记录信号来保存信号中的数据。

事件行

在响应函数调用或操作启动程序时,事件行将事件发送到子系统要么模型块。接收事件的块,在一个时间步中执行其中的块一次或多次。函数调用启动器包括函数调用生成器块、状态图和s -函数块。行动发起者包括如果开关罩块。

看到信号信号基础.

数据

数据是参数和输入信号值,Simulink使用这些参数和输入信号值来生成模拟模型行为产生的输出值。金宝app

数据的类型:

  • 模型参数——在模型中指定块和信号参数的变量。包括MATLAB变量、参数和信号数据对象、数据类型对象和总线对象。

  • 模型配置参数-控制模拟。

  • 模拟数据 - 输入数据,您使用驾驶仿真和模拟生成的输出数据。

  • 数据对象——使用金宝appSimulink.Signal金宝appSimulink.Parameter类来创建数据对象。看到数据对象.

位置的数据:

  • 块的参数-使用块参数直接指定数值。您还可以输入一个变量名,并在Simulink模型工作空间、Simulink数据字典或MATLAB基本工作空间中定义它的值。金宝app

  • MATLAB基工作区- 使用MATLAB基地工作区,以保存来自于MAT文件或MATLAB脚本模型不同的变量。

    金宝appSimulink的治疗基地工作区和数据字典作为一个全局命名空间。如果基本的工作区和一个引用的数据字典具有相同的变量名,Simulink中使用在数据字典中的变量值。金宝app

    MATLAB基本工作空间包含全局变量,并且对于所有Simulink模型都是可见的。金宝app

    看到信号加载技术的比较,出口仿真数据.

  • 金宝app仿真软件模型的工作区- 使用模型工作区定义和存储本地数据变量。在模型工作区中定义的变量只能用唯一的名称空间模型的范围内是可见的。因此,你可以在多个模型工作区使用相同的变量名,就可以了独特的可变值分配给每个模型的名称。

    定义使用模型浏览器数据字典的变量。在里面造型选项卡上,单击模型浏览器.在左侧窗格中,选择Model Workspace。

    对于模型工作区的变量值是从保存与模型值进行初始化,从单独的MAT文件或文件MATLAB或使用保存与模型MATLAB代码初始化。

    看到模型工作区,为模型工作区中的数据指定源.

  • 金宝app模型数据字典- 使用数据字典定义和存储模型之间的全局数据,分享数据,并跟踪数据更改作出。数据保存在从模型单独的文件。

    创建数据字典文件。在里面造型选项卡,在设计,点击数据字典.点击并输入一个文件名的扩展名.sldd.

    定义使用模型浏览器数据字典的变量。在里面造型选项卡上,单击模型浏览器.在左侧窗格中,选择设计数据.

    看到什么是数据字典?.

  • 导入和导出数据 - 导入信号,用于从MATLAB基工作区,MAT文件,或电子表格的模拟。创建使用源块或输入信号信号编辑器块。使用信号记录到出口仿真结果。信号被保存为载体(t, X, Y)对于时间,状态和输出在每个主要时间步长。

也可以看看:确定存储变量和对象为Simulink模型金宝app,符号解析.

参数

参数是影响仿真和代码生成结果S金宝appimulink模型的特点。

模型参数

模型参数指定了编译、仿真和代码生成期间的模型行为,比如要使用的求解程序以及要显示的错误和警告的类型。

要指定模型参数,在造型选项卡上,单击模型设置.打开配置参数对话框。

看到为一个模型设置模型配置参数.

块参数

块参数定义模型动力学和数学。无论是块有参数,你可以设置和这些参数的本质是具体到每一个块。要指定模块参数,打开块参数对话框,或在造型选项卡,在设计,请按下列其中一项:

  • 属性检查器-直接指定块参数或为参数值输入变量名。

  • 模型数据编辑器-指定带有变量的块参数。

  • 模型浏览器-指定带有变量的块参数。

看到安装块参数值.

块参数变量

如果你有在许多地方在大型模型中使用的一个参数,更新该参数的每一个实例可以是一个艰巨的任务。取而代之的是,输入的变量名作为参数的的值,然后确定一次使用以下方法中的一个的变量中。

  • 金宝appSimulink模型工作空间——创建模型工作空间变量并为变量赋值。您定义的参数是特定于模型的,并与模型一起保存。使用MATLAB变量便于维护。使用一个金宝appSimulink.Parameter对象来控制其他属性,包括数据类型、维度和单位。看到使用模型资源管理器编辑和管理工作区变量.

  • 金宝appSimulink数据字典——在数据字典中创建设计数据变量,并将字典链接到一个模型。在模型模拟期间,Simulink从数据字典中检索数金宝app据。

  • MATLAB基工作区 - 在MATLAB基工作区,限定使用任何MATLAB机构,用于限定可变参数。例如,你可以使用MAT文件,当你打开模型加载的变量。使用MATLAB表达式以指定的参数变量值。金宝appSimulink的运行仿真之前先计算表达式。看到保存和载入工作空间变量(MATLAB)保存工作区变量(MATLAB)负载工作空间变量(MATLAB)。

当使用相同的参数集为多于一个模型使用MATLAB基工作区或数据的Simul金宝appink字典定义变量是有用的。这种机制还允许您使用不同的参数值的集合为同一型号。

另请参阅共享和复用块参数值由创建变量,创建、编辑和管理工作区变量.

模型参数和实例参数

当您从多个模型块引用相同的模型创建模型的实例。您可以设置块参数使用相同的值或模型的每个实例不同的值。

使用不同的值,

  1. 在所引用的模型的模型工作区,创建一个MATLAB变量或金宝appSimulink.Parameter宾语。

  2. 输入参数名称和默认参数.选择论点复选框创建模型参数.

  3. 对于引用模型中的一个块,为块参数的值输入模型参数的名称。

  4. 对于每个模型块,打开“块参数”对话框,选择实例参数选项卡,为…输入一个值实例参数模型参数的名字。

另请参阅可重复使用的参考模型的参数化实例.可调参数块

可调参数块

您可以在模拟期间更改可调块参数的值。这允许您以交互方式确定最适合参数的值。当您更改可调参数的值时,更改将在下一个时间步骤开始时生效。的增益参数获得块是可调的。模拟运行时可以更改块的增益。看到调整和实验用块参数值.

设置使用属性检查器模块参数

中指定参数造型选项卡,在设计,点击属性检查器.单击一个块显示该块参数和属性。

另请参阅指定块属性.

属性

属性是一般不影响仿真结果Sim金宝appulink模型的特点。要指定属性,在造型选项卡,在设计,点击属性检查器.

模型属性

使用属性检查器打开,单击内的空白空间框图或在造型选项卡上,选择模型设置>模型属性.模型属性包括:

  • 通用 - 名称模型文件的位置。

  • 设计数据——定义在模型外部的变量,用于参数化模型及其块和信号。

  • 回调 - 命令当特定模型事件发生时执行。

看到管理模型属性.

块属性

打开属性检查器后,选择一个块,然后选择属性选项卡。块的属性包括:

  • 块诠释 - 选择的块参数的值显示在块下方。

  • 回调—当特定块事件发生时执行的命令。例如,您可以设置一个MATLAB脚本来使用表达式加载和定义块参数变量。

  • 优先级 - 设置块的相对执行顺序。较低的值的较大的优先级值之前首先执行块。

  • 标签 - 块标识以编程方式进行搜索。

使用属性检查器设置模型和块属性

中设置属性模拟选项卡,在准备,点击属性检查器.单击空白区域以显示模型属性。单击一个块以显示块属性。

也可以看看:指定块属性,定制模型行为的回调.

状态变量

模型的状态由它的状态变量的值来定义。状态变量设定的变量,其在时间为零的模型的输入值和模型方程数值可以确定在模拟过程中的模型的行为。状态变量的示例包括,马达的位置和速度,电感器电流,电容器电压,溶液温度,以及气体压力。

如果一个块的当前输出值是前一个输出值的函数,则该块定义了需要在时间步长之间保存的状态变量。因此,计算块输出需要在当前时间步长保存状态变量的值,以便在后续时间步长计算输出。

处理状态

在模拟过程中,为确定、初始化和记录模型状态提供了以下工具:

  • 数据导入/导出“模型配置参数”对话框的窗格(参见国家信息),可以为模型状态指定的初始值,并在模拟如MATLAB工作区的阵列或结构变量在每个时间步长的状态的值进行记录。

    打开“配置参数”对话框。选择状态检查记录块到MATLAB可变xout.

    在MATLAB命令窗口中,列出每个时间步的Integrator块状态的记录值。

    >> XOUT {1} .Values.Data ANS = 0.0000 1.8127 3.2968 4.5119。.。
  • 模型关于由模型所定义的状态,包括状态的总数,即定义了与它的初始值的每个状态中的块命令来显示信息。列表框与状态模型vehicle_model。

    在MATLAB命令窗口,与国家进入模型的功能,然后单块。

    (sys, x0, str, ts) = vehicle_model([]、[][],“大小”)str = {vehicle_model /集成商的}
  • Simu金宝applink调试器在模拟过程中的每个时间步上显示状态的值,Simulink调试器则显示状态的值命令显示关于模型当前状态的信息(参见金宝appSimulink的调试器)。

    在MATLAB命令窗口,启动Simulink的调试器,然后输入命令金宝app.

    sldebug 'vehicle_model'(sldebug @ 0):>>规定连续状态关于 'vehicle_model':IDX值(系统:块:元素名称 '块名称')0 0(0:0:0 CSTATE 'vehicle_model /集成')
  • 块参数对话框(和ContinuousStateAttributes参数)允许你给名国那些块(如集成)雇用连续状态。这可以简化分析数据记录为状态,特别是当一个块具有多个状态。

持续的状态

连续状态是为所有的时间值定义的。连续状态的一个例子是一个模拟速度计上的汽车显示速度,它的指针位置随着轮胎的旋转而不断变化。

与连续状态和块参数块初始条件包括:

一般情况下,除简单模型外,不存在用常微分方程表示的状态积分的解析方法。对状态积分需要使用数值方法。

离散状态

离散状态仅在特定的时间来定义。它是其中状态是在周期性的或非周期性的时间间隔更新的连续状态的一个近似。离散状态的例子将是对是每秒更新,而不是连续的数字速度计示出的汽车的速度。

与离散状态模块包括:

  • 离散时间积分器

  • 离散状态空间

  • 离散传递Fcn

  • 延迟

计算一个块的离散状态需要知道它在前一个时间步的值以及当前块的输入值。金宝appSimulink提供了两种类型的离散求解器:

  • 固定步长的离散求解器 - 在采样时间的命中判定的固定步长大小命中所有样本时间模型的所有离散状态,而不管状态是否实际变化值。

  • 变步长离散求解器-改变步长,以确保采样时间命中只在状态改变值时发生。

混合动力系统建模

混合模型具有连续和离散两种状态。求解这样一个模型需要选择一个步长,既满足连续状态积分的精度约束,又满足离散状态的采样时间间隔约束。金宝appSimulink通过将离散求解器的下一个样本时间间隔作为连续求解器的附加约束来满足这一要求。连续求解器选择一个步长,使模拟时间不超过下一个离散样本时间。连续求解器可以采取比下一个样本时间短的时间步长来满足其精度约束,但即使精度约束允许,它也不能超过下一个样本时间步长。

你可以使用任何的积分方法模拟混合系统,但某些方法比其他人更有效。对于大多数混合动力系统,ode23ODE45优于在效率方面的其他解算器。因为与离散的块的采样和保持相关联的不连续的,不使用ode15sode113解算器为混合系统。

采样时间

采样时间是时间间隔,指定用于执行块的方法来产生输出,并更新块的内部状态的速率(1 /采样时间)。时间是一个框图的固有组分随时间的框图变化的模拟结果。

采样时间规定为:

  • 连续块运行在不同的时间基于解决方案的设置。

  • 离散 - 块在被明确指定特定时间运行。

在下面的示例中,控制器以指定的采样时间为的离散速率运行0.01而Simulink确定车辆模金宝app型具有连续的采样时间。

确定系统的行为,随着时间的推移因此需要解决重复间隔的模型,叫做时间步长或时间间隔,从时间跨度的开始的时间跨度结束。解决在连续的时间步骤的模型的过程被称为模拟该模型代表的系统。

另请参阅什么是采样时间?,采样时间的类型,指定采样时间查看采样时间信息.

块样品时间

每个Simu金宝applink块都有一个示例时间,它定义了块的执行时间。大多数块允许您通过a指定示例时间SampleTime参数。常见的选择包括离散的,连续的,继承的采样时间。

常见的采样时间类型 采样时间 例子
离散 (T年代,To] 单位延迟,数字滤波
连续 [0,0] 积分,微分
继承了 [-1,0] 增益,和

为离散的块,采样时间为矢量[TS,为了]其中Ts是连续采样时间和To之间的时间间隔或周期是初始偏移,以采样时间。相反,对于非离散的块采样时间由使用零,负整数,或无穷大来表示采样时间的特定类型的有序对表示。例如,连续块具有的[0,0]的标称采样时间和用于在其中的状态连续地变化(例如,汽车加速)的模型系统。而你指示继承块的采样时间型象征性地为[-1,0]和Simulink然后确定基于模型中的继承块的上下文的实际值。金宝app

注意,不是所有块都接受所有类型的采样时间。例如,一个离散块不能接受一个连续的采样时间。

对于一个视觉帮助,Simulink中金宝app允许任何框图的可选颜色编码和注释以指示所述块的采样时间的类型和速度。您可以捕获所有传说中的颜色和注释(见查看采样时间信息)。

有关示例时间的更详细讨论,请参见采样时间

单位

单位用来衡量一个量的总量。

金宝app单位被指定为运行轨迹块或外港在Simulink边界处的块参数金宝app模型组件.金宝appSimulink的模型组件包括子系统块,模型块、状态流图表和Simulink到Simscape转换器块。金宝app在模型中显示单元调试选项卡上,选择信息覆盖>单位.

也可以看看:单位规格在Simulink模型金宝app,转换单元.

直接馈通

金宝appSimulink块特性,其中块的输出端口信号由其输入端口信号的值计算而来。输出信号值是输入信号值的函数。

具有直接馈通的块包括获得,产品,,转移Fcn,状态方程数学函数块。

也可以看看:代数环概念.

代数环

信号与块之间的循环直接引线.一个代数环一般发生时的块的输入端口与直接引线是直接由同一块的输出端口驱动,还是通过与直接引线.

在下面的模型中,这两个获得积木直接引线创建代数环.

也可以看看:代数环概念.

人工代数循环

一个人工代数循环时发生的原子子系统或模型块导致的Simulink以检测代数环,即使子系统的内容不包含从输入到输出的直接馈通。金宝app当你创建一个原子子系统,所有的运行轨迹块是直接馈通,导致代数环。

从包含的模型开始,它代表了一个简单的比例控制的工厂所描述的

$$ G(s) = \frac{1}{s^2+2s+1}$$

可以在状态空间形式被重写

$ $ & # xA;左\点{x} = \ [& # xA;开始\{数组}{cc} & # xA;2 38 & #;1 \ \ & # xA; 1 & # 38;0 xA & #;结束\{数组}& # xA;正确\]& # xA; + \离开(& # xA; \开始{数组}{c} & # xA; 0 \ \ 1 & # xA;结束\{数组}& # xA; \右)& # xA; $ $

左$ $ & # xA; y = \[开始\{数组}{cc} 0 & # 38; 1 \结束数组{}\]& # xA; $ $

该系统既没有代数变量,也没有直接馈入,也不包含代数环。

按照以下步骤修改模型:

  1. 将控制器和设备块封装在子系统中。

  2. 在子系统对话框中,选择视为原子单位使子系统具有原子性。

  3. 在里面诊断型号配置参数的面板中,将代数环参数错误.

在模拟这个模型时,由于子系统是直接馈通的,所以会产生一个代数循环,即使原子子系统中的路径不是直接馈通的。由于代数循环错误,模拟停止。

讨论二阶导数过零检测

该模拟使用一种被称为技术过零检测在simulink中精确地定位不连续点而不需要使用过小的时间步长。金宝app通常,这种技术可以改进模拟运行时间。