万博1manbetxSimulink模型

模型是使用数学方程和图表对系统进行抽象和简化的描述。本主题中的建模概念为理解使用Simulink对系统进行数学描述的过程提供了环境万博1manbetx®软件工具。

框图

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

框图语义

A的经典的方框图系统与块和线以图形的绘制。这些框图的历史是从工程的领域,如反馈控制理论和信号处理的。的框图中的块定义本身的模型。基本模型之间的关系由连接方框信号线表示。集体中的框图的块和行描述的系统的总体模型。

万博1manbetxSimulink的扩展经典框图由:

  • 添加一组式(块方法)来定义输入信号,输出信号和块状态变量之间的基于时间的关系,各块的。

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

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

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

一个是Simulink编辑器的基本建模构造。万博1manbetx的实例从内置在Simulink库来执行特定万博1manbetx操作。您也可以创建自己的定制模块。某些块输入信号,输出信号,以及状态。大多数块具有您用来指定块的行为参数。是否一个块具有参数和这些参数的性质是特定于每个块。

每个块表示Simulink引擎的一组方程。万博1manbetx方程用块方法表示。上面显示的块具有以下块方法。

块方法在块图的模拟过程中进行评估。块方法的评估是在一个仿真循环中执行的,其中通过仿真循环的每个循环表示在给定时间点对块图的评估。

虚拟块

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

万博1manbetxSimulink定义了以下虚拟块:

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

  • 运行轨迹外港- 使用端口块到块内的数据(信号),并且从系统块或参考的模型块以外的事件(函数调用)移动到。

  • 公交车造物主,总线分配,总线选择- 总线块组合信号转换成一个虚拟总线和管理的信号围绕一个复杂的框图路由。虚拟总线是一个简单的图形化的方便,不改变模型的行为。

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

非虚拟块

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

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

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

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

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

  • 函数调用,原子子系统要么模型块其执行由一个事件从函数调用引发剂(例如,状态流图表,函数调用发生器,和S-功能块)来控制,包含一个触发港口块触发类型设置函数调用

万博1manbetxSimulink中定义了以下非虚拟部件仅子系统块。

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

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

    A,而迭代器子系统类似,因为它可以在给定时间步骤对于任何数量的迭代运行一个函数调用子系统。的同时迭代器子系统从一个函数调用子系统不同之处在于不存在单独的引发剂。

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

看到非虚拟和虚拟块

块屏蔽

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

看到屏蔽基础

定制模块

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

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

  • MATLAB®函数-使用MATLAB语言编写MATLAB函数,并在Simulink模型中运行。万博1manbetx看到实现MATLAB功能使用块

  • MATLAB系统 - 将现有的系统对象基于matlab.System到Simulink。万博1manbetx看到MATLAB系统块

  • 画一个方框图表示一个算法,把这个方框图包装在Simulink的一个实例中万博1manbetx子系统块,然后使用Simulink块掩码为块提供参数对话框。万博1manbetx看到子系统,原子子系统,CodeReuse子系统

  • Ç来电 - 整合您的外部C代码到Simulink模型。万博1manbetx看到整合用C来电块C代码

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

看到自定义块的类型,块创作和模拟集成

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

信号线路

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

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

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

事件行

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

看到信号信号基础

数据

数据是参数和输入信号值即Simulink中使用,以产生从模拟模型的行为而产生的输出值。万博1manbetx

类型的数据:

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

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

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

  • 数据对象——使用万博1manbetxSimulink.Signal万博1manbetxSimulink.Parameter类来创建数据对象。看到数据对象

位置的数据:

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

  • MATLAB基工作区-使用MATLAB的基本工作空间将与模型分离的变量保存到mat文件或MATLAB脚本中。

    万博1manbetxSimulink将基本工作空间和数据字典视为单个全局名称空间。如果基本工作空间和引用的数据字典具有相同的变量名,则Simulink将使用数据字典中的变量值。万博1manbetx

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

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

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

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

    模型工作区变量的值由模型保存的值、单独的mat文件或MATLAB文件进行初始化,或者使用模型保存的MATLAB代码进行初始化。

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

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

    创建数据字典文件。在里面建模选项卡,在设计,点击数据字典。请点击并输入带有扩展名的文件名.sldd

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

    看到什么是数据字典?

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

也可以看看:确定存储变量和对象为Simulink模型万博1manbetx,符号解析

参数

参数是影响仿真和代码生成结果S万博1manbetximulink模型的特点。

模型参数

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

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

看到集模型配置参数模型

块参数

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

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

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

  • 模型浏览器- 指定与变量块参数。

看到安装块参数值

块参数变量

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

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

  • 万博1manbetxSimulink数据字典——在数据字典中创建设计数据变量,并将字典链接到一个模型。在模型模拟期间,Simulink从数据字典中检索数万博1manbetx据。

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

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

也可以看看通过创建变量共享和重用块参数值,创建,编辑和管理工作区变量

模型参数和实例参数

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

使用不同的值,

  1. 在参考模型的模型工作区中,创建一个MATLAB变量or万博1manbetxSimulink.Parameter宾语。

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

  3. 对于在参考模型块,输入块参数的值的模型参数的名称。

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

也可以看看将可重用引用模型的实例参数化可调块参数

可调块参数

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

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

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

也可以看看指定块的属性

属性

属性是Simulink模型的特万博1manbetx征,通常不影响仿真结果。要指定属性,请在建模选项卡,在设计,点击属性检查器

模型属性

属性检查器打开后,单击a中的空白区域框图或在建模选项卡,选中模型设置>模型属性。模型属性包括:

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

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

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

看到管理模型属性

块属性

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

  • 块注释-选择的块参数的值显示在块的下面。

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

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

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

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

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

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

状态变量

模型的状态是由其状态变量的值定义的。状态变量是一组变量,其在0时刻的值与模型输入值和模型方程可以决定模型在仿真过程中的行为。状态变量的例子包括,电机位置和速度,电感电流,电容电压,溶液温度和气体压力。

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

与各国合作

提供了模拟的过程中判定,初始化,并记录模型状态以下设施:

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

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

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

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

    在MATLAB命令窗口中,输入模型函数,然后列出状态块。

    [SYS,X0,STR,TS] = vehicle_model([],[],[], '尺寸')STR = { 'vehicle_model /集成'}
  • Simu万博1manbetxlink调试器在模拟过程中的每个时间步上显示状态的值,Simulink调试器则显示状态的值状态命令显示关于模型当前状态的信息(参见万博1manbetxSimulink的调试器)。

    在MATLAB命令窗口,启动Simulink的调试器,然后输入命令万博1manbetx状态

    >>状态为连续状态的‘vehicle_model’:Idx值(系统:块:元素名‘BlockName’)0。0 (0:0:0 CSTATE 'vehicle le_model/Integrator')
  • 块参数对话框(和ContinuousStateAttributes参数)允许您为那些使用连续状态的块(例如积分器)的状态指定名称。这可以简化状态日志数据的分析,特别是当一个块有多个状态时。

持续的状态

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

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

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

离散状态

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

与离散状态模块包括:

  • 离散时间积分

  • 离散状态空间

  • 离散传递FCN

  • 延迟

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

  • 固定步长离散求解器-确定一个固定的步长,该步长对模型的所有离散状态进行所有采样,不管这些状态在采样时是否改变值。

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

模拟混合系统

一种混合模型具有连续和离散状态。解决这样的模型需要选择一个步长大小能够同时满足在连续状态整合的精度约束并且在离散状态的采样时间间隔约束。万博1manbetxSimulink中通过使下一采样时间间隔离散求解如在连续求解器的附加约束满足这一要求。连续求解器选择的步长即推进模拟直到但不超出下一个离散采样的时间。连续求解器可以采取下一步的采样时间命中,以满足其准确性约束的时间短一步,但它不能采取超越下一个采样时间步打,即使其准确性约束它允许。

你可以使用任何的积分方法模拟混合系统,但某些方法比其他人更有效。对于大多数混合动力系统,ODE23ODE45在效率方面优于其他解决方案。由于与样本有关的不连续性和持有的离散块,请不要使用ode15sode113混合系统的求解器。

样品时间

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

采样时间规定为:

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

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

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

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

也可以看看什么是采样时间?,采样时间的类型,指定采样时间查看采样时间信息

块试时报

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

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

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

请注意,并非所有的块接受所有类型的采样时间。例如,离散的块不能接受的连续采样时间。

作为一种可视化帮助,Simulink万博1manbetx允许对任何块图进行可选的颜色编码和注释,以指示块样例时间的类型和速度。您可以捕获图例中的所有颜色和注释(参见查看采样时间信息)。

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

单位

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

万博1manbetx单位被指定为运行轨迹块或外港在Simulink边界处的块参数万博1manbetx模型组件。万博1manbetxSimulink的模型组件包括子系统块,模型块,Stateflow图和Simulink中的Simscap万博1manbetxe转换器模块。在模型上显示单元,在调试选项卡,选中信息覆盖>单位

也可以看看:单位规格在Simulink模型万博1manbetx,转换单元

直接馈通

万博1manbetxSimulink块特性,其中块的输出端口信号由其输入端口信号的值计算而来。输出信号值是输入信号值的函数。

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

也可以看看:代数环概念

代数环

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

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

也可以看看:代数环概念

人工代数循环

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

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

$$ 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中精确地定位不连续点而不需要使用过小的时间步长。万博1manbetx通常,这种技术可以改进模拟运行时间。