CN1965293B - 使用模型事件调度模型组件的执行的***和方法 - Google Patents
使用模型事件调度模型组件的执行的***和方法 Download PDFInfo
- Publication number
- CN1965293B CN1965293B CN2005800078113A CN200580007811A CN1965293B CN 1965293 B CN1965293 B CN 1965293B CN 2005800078113 A CN2005800078113 A CN 2005800078113A CN 200580007811 A CN200580007811 A CN 200580007811A CN 1965293 B CN1965293 B CN 1965293B
- Authority
- CN
- China
- Prior art keywords
- incident
- model
- execution
- appointment
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/12—Symbolic schematics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/543—Local
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
公开了一种指定和配置图形模型的动态性与该模型的组件的执行之间的因果关系的方法。模型组件执行依赖于模型事件的出现。首先在建模环境中定义模型事件。在事件定义中指定的模型中出现条件促使事件被“发布”。已与事件的出现相关联的模型组件“接收到”发布事件的通知,然后执行。可以指派在子***内随机的组件以在出现事件时执行,与模型内不邻接的组件所能够执行的一样。可以不在模型的视窗中绘制连接组件的图形指示符而指定模型事件和组件执行之间的关联性。
Description
相关的申请
本申请要求美国专利申请序列号为10/759,346、于2004年1月15日提交的专利申请的权益,其内容通过引用结合于本文。
技术领域
本发明的示范实施例一般涉及建模环境内的模型组件的执行,更具体来说使用模型事件来调度建模组件的执行。
相关的申请
本发明的示范实施例涉及目前待决的美国专利申请,标题为“在块图建模中使用执行场景的***和方法”,序列号为:10/414,644,其内容通过引用结合于本文。
背景技术
马萨诸塞州内蒂克的Math Works公司的SimulinkTM是图形建模环境的一个示例,确切地来说块图环境的示例。SimulinkTM允许用户创建动态***的图画模型。模型由一组符号(称为块)组成。每个块可以具有零或多个输入端口、输出端口和状态。每个块表示一个动态***,其输入、状态和输出可以在特定时间点上连续和/或离散地改变。使用线将块的端口彼此连接,以及它表示块之间的数据相关性。可以将信号表示为沿着将块图中的块连接的线上分布的值。
如果块所有的输入、状态和输出连续地或按一个固定的周期速率改变,则将该块视为“单速率”块。如果输入、状态和输出一起或单独在两个或以上速率定义的时间点上更新,则将该块视为“多速率”块。如果模型在其中具有多速率块,或按不同速率运行的两个或以上的单速率块,则该模型本身是多速率的(相对于单速率)。
如果块的功能定义是在它所在的模型的环境之外,则称该块为“原子”。SimulinkTM具有一组预定义的原子块(例如,求和、乘积、增益),以及用户还可以通过用户书写的“S-函数”创建他们自己的原子块。作为原子,S-函数的功能定义是在模型的场景之外指定的,例如使用C代码或MATLAB′m′代码指定的。“复合”块是其功能定义是通过模型使用多组原子和复合块指定的块。SimulinkTM允许用户指定“子***”,其定义是由互连的多组预定义块、用户书写的S-函数和其他SimulinkTM子***构成的复合块。子***可以使用“模型层次结构”按层次结构嵌套。
SimulinkTM采样速率提供一种用于指定模型组件的执行频率的机制。图1描述一种在控制模型组件的执行时使用采样速率的示例。例如,设计者可以指定被控对象块4按连续速率执行,以及控制器块10按某个周期性的离散速率执行。模型组件的执行由SimulinkTM基础设施在仿真时调度,或由操作***来调度以供实时的实施。在模型的动态性与这些速率的调度之间没有因果关系;组件执行的瞬间是预定的。
SimulinkTM支持采样速率的传播。例如,图1中的增益块8和12的速率保留不指定,而或指定为“继承”。在此情况中,假定已指定被控对象4和控制器10块的速率,增益块8和12从被控对象和控制器块继承它们的速率。
SimulinkTM还提供用于指定模型的动态性与模型组件的执行之间的因果关系的机制,包括:函数调用子***、触发子***、迭代器(iterator)子***、动作子***和启用的子***。因果关系的指定允许用户指定以模型中信号的当前值和过去值以及其他数据为条件的模型组件的执行。
但是,条件执行的范围一般限于子***,因为指定这些关系的常规方法不允许将条件执行的范围定义为随意一组块(相对于包括子***的一组块)。这是相当大的局限性,因为有许多时候,期望同时执行不在一个子***和/或在模型中非邻接的一组块。例如,条件执行的常规方法不允许在开机(power-up)或关机(power-down)时分布在模型上的不同块的执行。因此,组成因果关系的方式是受限制的。指定模型的动态性与模型组件的执行之间的因果关系的常规方法不允许用户启用子***中一半的块然后触发其他块。相似地,不能通过一个触发来触发子***中的一些块,而通过另一个触发来触发其余的块。
指定模型的动态性与模型组件的执行之间的因果关系的常规机制的另一个缺点是这些机制需要在块图中制作图形连接来指示因果性。这可能导致一些用户感觉块图“杂乱”的外观。用于指定因果关系的常规机制的另一个局限性是,这些常规机制不会自然而然地映射到如初始化、异常或任务的高级软件或操作***构造。相似地,因为指定该因果关系的常规机制缺乏与因果关系相关联的第一类对象,所以难以对该关系配置和指派特征。对于用户来说,还难以直接影响与这些机制相关联的隐式动态性,例如与被启用的子***相关联的启用和禁用方法,并基于这些隐式动态性有条件地执行模型的组件。
发明内容
本发明的示范实施例提供一种指定和配置模型的动态性与模型的组件的执行之间的因果关系的机制。模型组件执行依赖于“模型事件”的出现。首先,在建模环境中定义模型事件。在事件定义中指定的模型中出现条件促使事件被“发布”。与事件的出现相关联的模型组件“接收到”发布事件的通知,然后执行。可以指派在子***内被隔离的组件以在出现事件时执行,如同模型内非邻接的组件所能够执行的一样。可以不在模型的视窗中绘制连接组件的图形指示符而指定模型事件和组件执行之间的关联。
在一个实施例中,在具有至少一个含多个可执行组件的模型的建模环境中,一种方法可监控针对指定事件的出现的模型的执行。当确定指定事件出现时,将事件的出现发布(posted)到事件处理程序。然后,执行组件以响应事件处理程序的通知。
在另一个实施例中,在具有含多个可执行组件的至少一个模型的建模环境中,一种方法可监控针对指定事件的出现的模型的执行。当确定指定事件出现时,中断另一个事件的执行以响应确定了指定事件的发生。然后,执行模型中的操作以响应确定了指定事件的发生。
在一个实施例中,在建模环境中,***包括具有多个可执行组件的图形模型。该***还包括事件处理程序。事件处理程序从发生指定事件的模型接收通知。***还包括从发生指定事件的事件处理程序接收通知的至少一个组件。接收组件响应该通知来执行。
附图说明
图1描述了利用采样速率的常规块图模型;
图2描述了利用本发明的示范实施例的发布过程的模型;
图3描述了根据本发明的示范实施例在StateflowTM环境中发布和接收事件;
图4是启用的子***中发生隐式事件的时序图;
图5描述了在启用的子***中使用隐式事件的模型;
图6A描述了在相同任务内且在没有事件转换块的情况下发生事件转换的模型;
图6B描述了使用事件转换块在不同任务中发生事件转换的模型;
图6C描述了在模型中使用事件转换块的时间线;
图7A描述了利用本发明的示范实施例将事件处理为异常的模型;
图7B描述了利用本发明的示范实施例以使用分支优先级块来控制执行次序的模型;
图7C突出了图7B模型中的分支优先级块指示的执行次序;
图7D描述了利用本发明的示范实施例以通过块组来控制执行次序的模型;
图8是本发明的示范实施例中对比正常和异常事件的处理的数据流程图;
图9描述了适于实现本发明的示范实施例的环境;以及
图10是用于将采样速率与事件发生相关联的遵循本发明的示范实施例的步骤序列的高级视窗的流程图。
具体实施方式
本发明的示范实施例提供一种将模型组件的执行和指定模型事件的发生联系起来的机制。将采样速率指定为事件,由此建立了模型组件的执行与模型动态性间的联系。可以将非邻接模型元素配置为基于模型事件的出现有条件地执行。此外,组件执行的范围不限于整体中如某些常规***所要求的子***。基于事件出现的组件的条件执行还可以用于异常处理。可以不在模型的视窗中绘制附加的组件连接而建立模型组件与事件之间的关联。
为了简明,本文所包含的本发明的示范实施例的解释参考了基于SimulinkTM和MATLABTM的建模环境(二者都是马萨诸塞州内蒂克的Math Works公司的应用程序)。但是,本领域技术人员应该认识到除了包括马萨诸塞州内蒂克的Math Works公司的StateflowTM的传统的块图、状态图示应用程序(state diagramming application)以及数据流程图示环境(data flow diagramming environment)之外,本发明的示范实施例还可以应用于其他建模环境和其他类型的图。
如本发明的示范实施例中使用的SimulinkTM模型事件(下文也称为“事件”或“SimulinkTM事件”)可以明确地在MATLAB工作区中被定义为对象。其属性可以包括名称、颜色、可选的期望速率、可选的任务、以及有关应该如何实施该事件对应的功能的解释(例如嵌入(inline)对明确定义的签名)。
已定义的事件可以由模型中的块基于用户定义的随意条件来“发布”。“接收”该事件的块在它被发布时执行。“发布”指向事件处理程序发送指示特定事件发生的消息。然后,当事件发布时,注册到或在其他方面挂接到事件处理程序的块被告知事件的出现。
图2描述了利用发布过程的模型20的示例。事件“A”已经定义并被赋予颜色“蓝色”的属性。在模型20中,块“发布”22已配置为(如该附图的对话框所示)当在其输入端口26的信号24大于零时有条件地发布事件“A”。该对话框为发布块22从用户请求多个参数,包括多个输入36、该块据以执行的条件38和指派给定义的模型事件40的名称。模型20的视窗指示块“常量”28的的采样速率已被指定为事件“A”。该采样速率(即事件“A”的发生)被传播到已设为继承它们的采样速率的块“单元延迟”30和“输出1”32。由此所有三个块接收到事件“A”。所有三个块28、30和32可以假设事件“A”的“颜色”并在显示器中向用户阴影显示蓝色作为表示逻辑关联的方式。因此,当“正弦波”块21的输出是正时,块“发布”发布“A”,三个块28、30和32执行,并更新模型的根输出端口(outport)上的值。
图2所示的模型示出与本发明的示范实施例提出的子***的条件执行相关联的一些问题的解决。有与因果关系相关联的第一类对象“A”,由此对该关系配置和指派如颜色的特征是可能的。条件执行的范围不限于子***。有条件地执行的三个块28、30和32不被分组到一个母子***内以及可以从模型20的非邻接区域中选择。此外,条件执行的范围采用速率传播(仅块“常量”28指定“A”作为其采样速率)。这促成一种指定采样速率的方法,该方法比接收到“A”的每个块不得不具有明确指定为“A”的采样速率的其他情况更简明。还有,块与事件的关联不需要在块图中发布块22与常量块28之间绘制图形连接来指示因果性。“发布”块22指定的条件与三个块28、30和32的执行之间的因果关系通过它们的公共基准到达名称为“A”的事件对象23。
事件的“范围”是它所在的工作区的范围。如果工作区与子***或模型相关联,则事件的范围是该子***或模型。块只能指定它们的采样时间作为事件,此时该事件不超出该块的范围内。
图3描述了另一个发生事件的显式发布和接收的环境示例,其中更详细地显示StateflowTM图表30和该图表的组件的块图模型32。在该示例中,用户定义分别具有属性颜色绿色和蓝色的事件“A”34和“B”36。事件34和36都具有指定为20毫秒的采样速率。Stateflow图表30则每个20毫秒执行一次,并按严格定义的周期性顺序发布这些事件。两个输入端口块40和50具有设为事件“A”34和“B”36的采样速率。其余的块承接那些事件作为继承的采样速率,并阴影显示为对应于该事件的颜色。一组绿色块40、42、44和46接收事件“A”并在该事件被发布时执行。同样地,一组蓝色块50、52、54和56在事件“B”被发布时执行。
一组处理每个事件的块按它们在模型中排序的块列表中出现的相对次序执行。排序的块列表次序由数据相关性确定。因此,每20毫秒,Stateflow图表30执行一次,以及绿色块40、42、44和46的链从左到右执行,然后蓝色块50、52、54和56的链从左到右执行。再者,因为事件的可选采样速率已经明确地指定为20毫秒,所以执行运行时间检查以确保那些事件按每20毫秒发布。明确指定事件的速率的一个优点在于无论任何情况下只要相继的执行之间需要消逝的时间,为该速率生成的任何代码就可以使用所生成的代码中的对应的常量采样时间,而无需如常规情况那样需要使用定时器。
与定义为工作区对象以及其发布的条件由用户明确地指定(例如使用SimulinkTM的“发布”块或Stateflow逻辑)的显式事件相比,隐式事件由模型构造隐含,并响应那些构造的执行被自动发布。用户不能发布隐式事件。但是,用户可以处理隐式事件,这意味着用户可以定义直接响应隐式事件来执行的模型组件。
本发明的示范实施例包括下表注释的五种类型的隐式事件:
事件的名称 | 事件的类型 | 范围 | 发布的位置 | 发布的时间 |
t<sub>s</sub> | 启动 | 整个模型 | 模型的根 | 模型执行的开始 |
t<sub>o</sub> | 初始化 | 启用/如果/情况子*** | 子***的顶层 | 第一次子***从不活动转换到活动 |
t<sub>e</sub> | 启用 | 启用/如果/情况子*** | 子***的顶层 | 子***从不活动转换到活动的任何时候 |
t<sub>d</sub> | 禁用 | 启用/如果/情况子*** | 子***的顶层 | 子***从不活动转换到活动的任何时候 |
t<sub>f</sub> | 关闭 | 整个模型 | 模型的根 | 模型执行的结束时 |
本领域技术人员将认识到,在不背离本发明范围的前提下,除了上表中列出的那些外,还可以处理其他类型的隐式事件。例如,可以支持的其他类型的隐式事件包括错误条件,如乘积块尝试除以零时或对数块尝试取零的对数时发布的隐式事件。对应于隐式事件的对象自动占据模型的各种工作区,由此用户可以配置它们的特性。
图4在时序图中描述了上表中注释的隐式事件。图4示出在启用子***或函数调用层次结构中该子***的派生范围内的事件的相对时序;该时间变化信号是启用子***的信号。所有五种类型的隐式事件具有异步的采样速率。这些隐式事件包括启动70、初始化72、启用74、禁用76和关闭78。
图5中示出在启用的子***90中使用隐式事件的一个示例。子***90具有与之相关联的隐式启用和禁用事件,它们在该子***启用和禁用时被发布。块“零阶保持”92具有指定为“禁用”的采样速率,由此它在隐式禁用事件执行时,即启用的子***90禁用时执行。通过传播,块“增益1”94也继承该事件(禁用)作为其采样速率,当子***90禁用时这两个块一起执行并更新与该子***输出端口96相关联的存储器。
本发明的示范实施例中的每个事件1-1地映射到用作至已将其采样速率指定或继承为该事件的块所对应的代码的入口点的函数(这里也称为“事件处理程序”)。无论何时,只要导致发布事件的条件成立,***就通过调用该函数来反应。该函数可在代码生成时嵌入。对是否嵌入事件的函数的选择是对应事件对象的特性。作为缺省实现,用户可以选择嵌入隐式事件的函数,而不嵌入显式事件的函数。
SimulinkTM事件的特性之一是它的任务。缺省情况下,事件从发布它的源场景中继承它的任务。例如,在图3中,事件“A”34和“B”36在与发布这些事件的Stateflow图表30相同的任务中执行。生成的代码调用对应于“A”和“B”的函数作为本地函数调用,如下文对应于图3的模型的伪代码所述。
void model_step()
{
A();
B();
}
void A()
{
u3=x;
u2=2*u1;
x=u2;
}
void B()
{
v3=y;
v2=3*v1;
y=v2;
}
可以将事件的任务指定为模型任务对象的名称,对应于实时实现中的任务。SimulinkTM任务对象对应于衍生(spawned)的操作***任务。任务对象的特性可以包括指派的速率(周期性值或异步)、优先级、任务栈大小、该任务是否是可抢占的或其他特性。当发布事件而其任务不同于发布该事件的块或模型构造的任务时,将对应于该事件的函数调度在该事件的任务中。如果该任务被指定为周期性的,则该函数在发布该事件期间该任务的任何时间步长期间执行。如果该任务被指定为异步的,则发布该事件促使该任务***作***执行。
本发明的示范实施例通过任务的使用避免了异步发布事件和多线程的实现。通过指示为了数据的完整性而需要事件转换模块的地方,任务用于帮助确保在实时实现中使用事件时数据的完整性。任务还用于指定与转换相关联的任务的相对优先级。本发明的示范实施例使用作为SimulinkTM的速率转换块的规范化的事件转换块。图6A、6B和6C图示涉及事件转换和事件转换块的使用的一些问题。
图6A描述了响应事件A和B的出现而出现转换的模型100。在模型100中,事件A和B具有相同的任务,以及可以利用永久存储器以存储处于这两个事件的边界处的数据来解决数据完整性问题。因为这两个事件都在相同的任务中,所以它们无法彼此抢占,而且无需附加机制(例如双缓冲)。在该模型100中,将永久存储器用于左边两个传递函数块102、104的输出,因此无需转换块以在传递函数块102、104和106之间传递数据。
但是,如果事件A和B被指定为在不同任务中执行,则事件转换块是必需的,如图6B所示。在图6B的模型110中,事件A是具有高优先级的任务,而事件B是具有低优先级的任务。在此情况中,位于第一112和第二116传递函数块之间的边界处的名称为转换的块114充当零阶保持。位于第二116和第三120传递函数块之间的边界处的名称为转换1的块118通过缺省充当延迟。
图6C的时间线示出图6B的事件转换块的功能。因为事件转换块转换114充当零阶保持,所以在附图中它由标记为“ZOH”的时间片表示。因为事件转换块转换1 118充当延迟,所以在附图中它由标记为“1/z”的时间片表示。只要指派给事件A的任务不在抢占包含事件B的任务,事件转换块转换114在每次事件A的处理程序执行时执行。这防止了对B的处理程序的输入在执行中间改变。因为在异步因果***中,没有方法预先知道下次将在何时发布事件B,所以这是必需的。在时间B的处理程序完成执行之后,时间转换块转换1 118的输出函数在每次发布事件A时执行。这确保事件A的处理程序利用B的处理程序计算的最新值,但是如果不是必需的话不执行转换1的输出函数。
由此,在图6C中,与事件B相关联的低优先级任务执行(步骤130),延迟执行(步骤132),与事件A相关联的高优先级任务(步骤134)执行,然后是零阶保持(步骤136)。然后与事件A相关联的任务执行(步骤138)而没有在此前执行延迟,因为自上次A执行后B并没有执行。然后在该高优先级任务(步骤138)之后执行零阶保持(步骤140)。然后执行与B相关联的低优先级任务(步骤142),并被高优先级任务中断(步骤144)。在完成高优先级任务(步骤144)之后,低优先级任务(步骤142)恢复而零阶保持不执行,因为低优先级任务已经启动。过程然后继续,依次执行延迟(步骤146),高优先级任务(步骤148)和零阶保持(步骤150)。
除了确保数据完整性外,事件转换块对于事件传播期间解析(resolution)也是必需的。但是,当在相同任务中的事件之间转换时,该块将它的输入值复制到它的永久输出。然后可以尝试后期编译来减小该块。应该注意转换块需要InitialCondition(初始条件)参数来初始化它们的存储器。在一个实施中,该参数的缺省值是零。
事件还可以用于处理模型执行时遇到的错误。当错误发生时,模型可以“以异常的方式发布事件”。以异常的方式发布的事件称为“异常事件”。异常事件的关键特征是,以不同于以非异常方式发布的事件或“正常事件”不同的方式处理它。具体来说,当一个事件发布另一个异常事件时,该第一事件的函数从不在退出异常事件的函数时恢复执行。换言之,如果B以异常方式中断A,则在B完成之后,A的执行不被恢复。注意在相同模型中可以同时以正常方式和异常方式调用事件。
图7A中描述了在模型中使用异常事件。在模型160中,上方组件属于事件A的处理程序的一部分。如果输入u1 162的量值小于或等于1e-6,则由异常子***164中的抛出块166以异常方式发布事件B或简称为“抛出”。如果输入u1 162小于等于1e-6,则异常子***164评估输入162和并仅抛出事件B。抛出块166在功能上与发布块相似,例外的是它以异常方式而非正常方式发布事件。当抛出事件B时,事件B的处理程序执行,将数据存储168设为大的固定常量。当事件B的处理程序完成时,控制不返回到事件A的处理程序,因为事件B作为异常被抛出,而非返回到调用进程。表示图7A所描述的过程的代码可以表示为如下:
void model_step()
{
A();
}
void A()
{
u2=fabs(u1);
u3=u2<=1.0e-6;
if(fabs(u1)<=1.0e-6){
B();/*return from B()exceptionally*/
return;
}
v4=rt_sgn(4*(v1/u1));
x=rt_lookup(rtP.lookup,v4);
}
void B()
{
x=1.0e6;
}
如果以正常方式而非作为异常发布了事件B,则当事件B的处理程序完成时,事件A的处理程序会完成执行。图8中以抽象方式描述了这两个对比场景。本领域技术人员将理解,具有一种精确的机制以在将事件引入到模型中时控制如何排序块是重要的,因为事件在数据相关性隐含的因果关系之上和之外引入一个因果关系。
图7A中的模型利用了原子子***来强制要求排序的块次序,其中抛出块先于乘积块执行,其意图是有条件地通过异常事件B来绕开该块。因为在排序的块列表中原子子***早于乘积块,所以包括抛出块的其内容将先于乘积块执行。原子子***的一个缺点在于,其内容不是在相同的图形级作为其母图形来呈示,使得其内容较不容易辨认。
使用原子子***来控制执行次序的一个备选机制是,对离开块的分支指派优先级,然后分支中的所有块继承该块的优先级,只要这种继承是唯一的且明确的。图7B示出“分支优先级块”170的安置,它指定下方分支中的块应该先于上方分支中的块执行。图7C指示图7B的分支优先级块170指示的执行次序。分支优先级块170中的编号“1”(172)指示下方分支应该首先执行。分支优先级块170中的编号“2”指示上方分支应该第二地执行。
图7D描述了使用原子子***来控制执行次序的再一个备选。图7D描述了“块组”的使用。在排序的块列表中,组1(176)中的块将出现在组2(178)中的块之前。
在图8中左边示出两个事件的正常发布过程的块图中,模型的执行(步骤180)触发事件A(步骤182)。事件A的执行期间,事件B以正常方式发生并被处理(步骤184)。在处理事件B(步骤184)之后,恢复事件A的处理(步骤182)。在事件A的执行(步骤182)完成之后,控制返回到事件A出现(步骤180)之前模型执行中的点上。
在图8中右边示出两个事件的异常发布过程的块图中,模型的执行(步骤190)触发事件A(步骤192)。事件A的执行(步骤192)期间,事件B以异常方式发生并被处理(步骤194)。因为以异常方式处理事件B,控制传递回事件A出现(步骤190)之前所存在的模型执行中的点上,而不恢复事件A的处理。
与异常事件相关联的“早期返回”还可以帮助防止无用地执行源于错误条件中所含信号的计算下游。例如,在图7的示例中,u1的量值的检查作为原子子***执行的一部分在乘积块和乘积块的块下游之前发生。因为早期返回源于被中断的事件,所以如果事件B被抛出,则那些块免于(无用)执行。
如上所述,可以以正常或异常方式发布事件。发布块用于以正常方式发布事件,而抛出块用于以异常方式发布事件。此外,用户指定的S-函数API也可以用于以正常或异常方式发布事件。模型组件可以在事件以正常方式被抛出或以异常方式被抛出但是不能同时这两种情况时,处理该事件。可以将块的采样时间指定为“A”,以指示在以正常方式发布时它处理事件A,或指定为“A.exception”,以指示在以异常方式发布时它处理事件A。当以异常方式发布事件A时,具有采样时间A的块不处理它,以及当以正常方式发布事件A时,具有采样时间A.exception的块不处理它。
以异常方式发布的显式事件应该具有非空处理程序;在以异常方式处理该事件的模型中应该有至少一个块。如果情况不是这样,则产生错误。此要求通过用户花时间创建的模型组件发布显式异常事件以及应该由该模型来处理事件的认识来验证。如果有非空处理程序,则以正常方式发布隐式事件。如果没有模型组件正在处理以正常方式发布的隐式事件,则反之以异常方式发布该时间。抛出块可以再次发布它正在以正常方式处理为异常事件的事件。当不能保证以正常方式成功处理事件时,可以利用此场景。在初次尝试之后,可以以异常方式处理该事件。
图9描述了适于实现本发明的示范实施例的环境。电子设备200拥有图形建模和执行环境202,如SimulinkTM或StateflowTM应用程序。电子设备200可以是工作站或服务器、膝上型计算机、PDA、网络连接的器具或能够支持图形建模和执行环境202的某种其他数字电子设备。图形建模和执行环境202包括上文论述的至少一个图形模型204和事件处理程序206。电子设备200与显示设备208接口,该显示设备208为用户212显示模型204的视窗210。显示设备208和用户212可以处在电子设备200的本地或远程位置。本领域技术人员将认识到在本发明的范围内可以有许多不同的可能软件和硬件配置。
图10中示出本发明的示范实施例遵循的步骤的一个高级顺序。该顺序开始于图形建模和执行环境202中模型204的执行(步骤220)。然后,确定模型执行期间先前指定的事件的出现(步骤222)。将事件出现发布到事件处理程序206(步骤224)。事件处理程序通知其采样速率与事件发生相关的注册块(步骤226)。通知之后,其采样速率依赖的事件发生的块执行(步骤228)。
因为在不背离本发明范围的前提下可以进行某些更改,所以上文描述所含或附图所示的所有内容应该解释为说明性的而不应作字面上的解释。本领域的实施者将意识到,本文图示和描述的***配置是落在本发明范围内的多种可能***配置的示例。同样地,本文论述的步骤的顺序是落在本发明范围内的可能的示范而非排他性的步骤顺序。
Claims (29)
1.一种图形建模环境中的方法,所述图形建模环境具有含多个可执行的基于时间的组件的至少一个模型且提供所述模型的视窗,所述方法包括如下步骤:
监控所述模型的执行,以确定指定的事件的发生;
在所述模型的执行期间确定所述指定的事件的发生;以及
将所述图形建模环境中所述指定的事件的发生登记到事件处理程序,所述登记将所述指定的事件的发生通知所述事件处理程序;以及
响应所述通知执行来自所述多个可执行的基于时间的组件中的至少一个基于时间的组件,所述基于时间的组件包括采样时间。
2.如权利要求1所述的方法,还包括如下步骤:
将所述多个基于时间的组件的至少其中之一注册到所述事件处理程序;以及
在所述登记之后,在注册到所述事件处理程序的所述多个基于时间的组件的至少其中之一上,接收所述指定的事件的发生的通知。
3.如权利要求1所述的方法,还包括如下步骤:
在所述视窗上显示登记组件,所述登记组件指定导致所述登记发生的条件。
4.如权利要求1所述的方法,还包括如下步骤:
将至少一个基于时间的组件的初始和随后执行的采样时间设为所述指定的事件的每一次发生。
5.如权利要求4所述的方法,还包括如下步骤:
将所述采样时间传播到所述模型中的至少一个其他的基于时间的组件,所述至少一个其他的基于时间的组件配置为继承采样时间。
6.如权利要求4所述的方法,还包括如下步骤:
将所述模型中的多个非邻接的基于时间的组件的采样时间设为所述指定的事件的每一次发生。
7.如权利要求6所述的方法,其中设置多个非邻接的基于时间的组件的所述采样时间,而不调整所述视窗中显示的基于时间的组件之间的可视连接。
8.如权利要求4所述的方法,还包括如下步骤:
借助所述视窗中的事件ID来指示将所述至少一个基于时间的组件的采样时间设到所述指定的事件。
9.如权利要求4所述的方法,其中所述指定的事件是用户设置的显式事件。
10.如权利要求4所述的方法,其中所述指定的事件是所述模型的执行导致的隐式事件。
11.如权利要求10所述的方法,其中所述隐式事件是开机、关机和初始化的其中之一。
12.如权利要求10所述的方法,其中所述隐式事件对应于子***的启用和禁用的其中之一。
13.如权利要求2所述的方法,还包括如下步骤:
以所述视窗中用户可配置的颜色指示基于时间的组件接收哪个事件。
14.如权利要求1所述的方法,将正在监控所述模型的执行所针对的所述指定的事件的执行范围限制于所述模型的一部分。
15.如权利要求1所述的方法,其中所述模型中的每个事件基于一一对应的方式映射到事件处理程序,所述事件处理程序是函数。
16.如权利要求15所述的方法,其中所述函数是内联的。
17.如权利要求1所述的方法,其中分支优先级块响应所述通知来指示块的至少两个分支之间的执行次序。
18.如权利要求1所述的方法,其中多于一个块组执行以响应所述通知,所述块组是用户选择的块分组,所述块组的执行次序由用户指定。
19.如权利要求1所述的方法,还包括:
响应所述指定的事件的发生的确定来中断执行事件的执行;以及
响应所述指定的事件的发生的确定来执行所述模型中的操作。
20.如权利要求19所述的方法,其中所述指定的事件作为正常事件而被处理,并且还包括如下步骤:
恢复所述被中断的事件的执行。
21.如权利要求19所述的方法,其中所述指定的事件作为异常事件被处理,并且还包括如下步骤:
将所述模型的执行的控制返回到调用被中断执行的事件的调用过程,而不恢复所述被中断的事件的执行。
22.如权利要求19所述的方法,其中所述指定的事件是使用事件对象来指定的。
23.如权利要求22所述的方法,其中所述指定的事件是显式事件。
24.如权利要求22所述的方法,其中所述指定的事件是隐式事件。
25.如权利要求22所述的方法,其中所述事件对象与任务对象相关联,所述任务对象对应于操作***任务。
26.如权利要求25所述的方法,其中所述任务对象具有指定的执行速率和优先级的至少其中之一。
27.如权利要求26所述的方法,其中具有不同任务的至少两个事件正在模型中执行,并且还包括如下步骤:
使用事件转换组件来调度与所述至少两个事件相关联的基于时间的组件的执行,所述事件转换组件将与所述至少两个事件相关联的所述基于时间的组件的执行分开。
28.如权利要求19所述的方法,其中所述操作由分支优先级块中指示的执行次序来控制。
29.如权利要求19所述的方法,其中所述操作是多于一个块组的执行,所述块组是用户选择的块分组,所述块组的执行次序由用户指定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/759,346 US8793602B2 (en) | 2004-01-15 | 2004-01-15 | System and method for scheduling the execution of model components using model events |
US10/759,346 | 2004-01-15 | ||
PCT/US2005/000390 WO2005071537A1 (en) | 2004-01-15 | 2005-01-06 | A system and method for scheduling the execution of model components using model events |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1965293A CN1965293A (zh) | 2007-05-16 |
CN1965293B true CN1965293B (zh) | 2010-06-16 |
Family
ID=34749680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800078113A Active CN1965293B (zh) | 2004-01-15 | 2005-01-06 | 使用模型事件调度模型组件的执行的***和方法 |
Country Status (7)
Country | Link |
---|---|
US (4) | US8793602B2 (zh) |
EP (1) | EP1706818B1 (zh) |
JP (1) | JP2007518190A (zh) |
CN (1) | CN1965293B (zh) |
ES (1) | ES2599006T3 (zh) |
HU (1) | HUE031215T2 (zh) |
WO (1) | WO2005071537A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8793602B2 (en) | 2004-01-15 | 2014-07-29 | The Mathworks, Inc. | System and method for scheduling the execution of model components using model events |
US8683426B2 (en) | 2005-06-28 | 2014-03-25 | The Mathworks, Inc. | Systems and methods for modeling execution behavior |
US7542892B1 (en) * | 2004-05-25 | 2009-06-02 | The Math Works, Inc. | Reporting delay in modeling environments |
US8201140B2 (en) * | 2005-08-30 | 2012-06-12 | The Mathworks, Inc. | System and method for creating and using graphical object instances in a statechart environment |
JP2007128345A (ja) * | 2005-11-04 | 2007-05-24 | Toshiba Corp | プログラム自動生成装置、プログラム自動生成方法、およびプログラム自動生成プログラム |
CN100465886C (zh) * | 2006-05-26 | 2009-03-04 | 华为技术有限公司 | 一种建立可扩展文档模型的装置及管理文档模型的方法 |
JP4706608B2 (ja) * | 2006-09-28 | 2011-06-22 | 株式会社日立製作所 | 製造工程分析方法 |
US7873500B1 (en) * | 2006-10-16 | 2011-01-18 | The Mathworks, Inc. | Two-way connection in a graphical model |
US9442701B1 (en) * | 2007-06-21 | 2016-09-13 | The Mathworks, Inc. | Verifying models for exceptional behavior |
WO2009034416A1 (en) * | 2007-09-10 | 2009-03-19 | Abb Technology Ag | Configuring of intelligent electronic device |
US8280832B1 (en) * | 2009-03-04 | 2012-10-02 | The Mathworks, Inc. | Proving latency associated with references to a data store |
IL197576A0 (en) * | 2009-03-12 | 2009-12-24 | Univ Ben Gurion | A method and tool for task modeling of mobile phone applications |
US8467888B2 (en) * | 2009-06-05 | 2013-06-18 | The Mathworks, Inc. | Automated PID controller design |
US8566804B1 (en) | 2009-08-13 | 2013-10-22 | The Mathworks, Inc. | Scheduling generated code based on target characteristics |
US8990783B1 (en) | 2009-08-13 | 2015-03-24 | The Mathworks, Inc. | Scheduling generated code based on target characteristics |
US9020792B2 (en) * | 2010-09-17 | 2015-04-28 | International Business Machines Corporation | Coupling architectural and implementation/behavioral models of a computer-based system |
US9547481B2 (en) * | 2013-05-28 | 2017-01-17 | The Mathworks, Inc. | Textual code provided in temporal and change operators of a technical computing environment |
US9128783B1 (en) | 2014-03-04 | 2015-09-08 | The Mathworks, Inc. | Scheduling and executing model components in response to un-modeled events detected during an execution of the model |
US10019238B2 (en) * | 2015-06-23 | 2018-07-10 | Open Text Sa Ulc | Compositional entity modeling systems and methods |
US10496528B2 (en) * | 2015-08-31 | 2019-12-03 | Microsoft Technology Licensing, Llc | User directed partial graph execution |
US10860947B2 (en) | 2015-12-17 | 2020-12-08 | Microsoft Technology Licensing, Llc | Variations in experiment graphs for machine learning |
US20170322716A1 (en) | 2016-05-04 | 2017-11-09 | Open Text Sa Ulc | Reusable entity modeling systems and methods |
US11853690B1 (en) * | 2016-05-31 | 2023-12-26 | The Mathworks, Inc. | Systems and methods for highlighting graphical models |
US10585648B2 (en) | 2016-06-01 | 2020-03-10 | The Mathworks, Inc. | Systems and methods for aggregating implicit and explicit event code of executable models |
US11244090B2 (en) * | 2016-06-01 | 2022-02-08 | The Mathworks, Inc. | Systems and methods for extracting adjustable attributes of model components |
CN108089501A (zh) * | 2017-12-20 | 2018-05-29 | 西安中车永电电气有限公司 | 基于Simulink和Sateflow的地铁永磁牵引变流器控制逻辑建模方法 |
JP7203865B2 (ja) | 2018-05-07 | 2023-01-13 | グーグル エルエルシー | ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 |
US11200893B2 (en) * | 2018-05-07 | 2021-12-14 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
US11347801B2 (en) * | 2018-05-07 | 2022-05-31 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
US10970048B2 (en) * | 2018-09-17 | 2021-04-06 | Servicenow, Inc. | System and method for workflow application programming interfaces (APIS) |
US11042361B1 (en) * | 2019-12-18 | 2021-06-22 | The Boeing Company | Multi-language model processing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4827404A (en) * | 1986-04-14 | 1989-05-02 | Schlumberger Technology Corporation | Method and system for computer programming |
US5497500A (en) * | 1986-04-14 | 1996-03-05 | National Instruments Corporation | Method and apparatus for more efficient function synchronization in a data flow program |
CN1359489A (zh) * | 1998-10-16 | 2002-07-17 | 联合想象计算机公司 | 用于构筑建模工具的装置和方法 |
Family Cites Families (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5821934A (en) * | 1986-04-14 | 1998-10-13 | National Instruments Corporation | Method and apparatus for providing stricter data type capabilities in a graphical data flow diagram |
US4901221A (en) | 1986-04-14 | 1990-02-13 | National Instruments, Inc. | Graphical system for modelling a process and associated method |
US5286907A (en) | 1990-10-12 | 1994-02-15 | Pioneer Electronic Corporation | Apparatus for reproducing musical accompaniment information |
EP0490478A2 (en) * | 1990-12-14 | 1992-06-17 | Tektronix Inc. | Automatic compilation of model equations into a gradient based analog simulator |
US5437007A (en) | 1992-11-10 | 1995-07-25 | Hewlett-Packard Company | Control sequencer in an iconic programming system |
US5465240A (en) | 1993-01-05 | 1995-11-07 | Mankovitz; Roy J. | Apparatus and methods for displaying text in conjunction with recorded audio programs |
US5522073A (en) * | 1993-11-22 | 1996-05-28 | Hewlett-Packard Company | Method and apparatus for automating and controlling execution of software tools and tool sets via when/then relationships |
US5546519A (en) * | 1994-02-28 | 1996-08-13 | International Business Machines Corporation | System and method for visually programming iteration |
KR0138334B1 (ko) | 1994-06-22 | 1998-05-15 | 김광호 | 영상노래반주용 기록매체 및 이에 적합한 영상노래 반주장치 |
US5850548A (en) | 1994-11-14 | 1998-12-15 | Borland International, Inc. | System and methods for visual programming based on a high-level hierarchical data flow model |
US5902115A (en) | 1995-04-14 | 1999-05-11 | Kabushiki Kaisha Toshiba | Recording medium on which attribute information on the playback data is recorded together with the playback data and a system for appropriately reproducing the playback data using the attribute information |
JPH10171049A (ja) | 1996-12-06 | 1998-06-26 | Fuji Photo Film Co Ltd | ハロゲン化銀写真感光材料およびそれを用いた写真組体 |
DE19715344A1 (de) | 1997-04-12 | 1998-10-15 | Hettich Andreas Fa | Haematokrit-Zentrifuge mit Ablesedeckel |
US5980262A (en) | 1997-06-02 | 1999-11-09 | Mitac, Inc. | Method and apparatus for generating musical accompaniment signals at a lower storage space requirement |
US6802053B1 (en) | 1997-08-18 | 2004-10-05 | National Instruments Corporation | Graphical programming system with distributed block diagram execution and front panel display |
US6526566B1 (en) | 1997-11-14 | 2003-02-25 | National Instruments Corporation | Graphical programming system and method including nodes for programmatically accessing data sources and targets |
US7152027B2 (en) | 1998-02-17 | 2006-12-19 | National Instruments Corporation | Reconfigurable test system |
AU1435299A (en) | 1998-03-11 | 1999-09-27 | Swisscom Ag | Method for random-access communication with binary feedback |
WO1999046689A1 (en) * | 1998-03-12 | 1999-09-16 | Crossworlds Software, Inc. | Execution of extended activity diagrams by code generation |
JP2000122756A (ja) | 1998-10-19 | 2000-04-28 | Fujitsu Ltd | 電子機器 |
JP2000305961A (ja) | 1999-04-16 | 2000-11-02 | Matsushita Electric Ind Co Ltd | セルライブラリデータベースおよび設計支援装置 |
DE60011958T2 (de) | 1999-04-28 | 2005-08-25 | Matsushita Electric Industrial Co., Ltd., Kadoma | Optische Platte, optisches Plattenaufzeichnungs- und wiedergabegerät, und Verfahren zur Aufzeichnung und Wiedergabe |
CN1275035A (zh) | 1999-05-19 | 2000-11-29 | 邦毅科技股份有限公司 | 无线播音显示***及方法 |
US6820042B1 (en) * | 1999-07-23 | 2004-11-16 | Opnet Technologies | Mixed mode network simulator |
US7043693B2 (en) * | 1999-08-19 | 2006-05-09 | National Instruments Corporation | System and method for programmatically generating a second graphical program based on a first graphical program |
JP2001075619A (ja) | 1999-09-06 | 2001-03-23 | Toshiba Corp | 機構制御システム及びその開発方法 |
JP3974300B2 (ja) | 1999-11-18 | 2007-09-12 | 松下電器産業株式会社 | Ipベースlsi設計システムおよび設計方法 |
US7505817B2 (en) | 2000-03-06 | 2009-03-17 | Siemens Technology-To-Business Center, Llc | Programming automation by demonstration |
US7158926B2 (en) * | 2000-05-05 | 2007-01-02 | Sun Microsystems, Inc. | Cluster availability model |
US7047176B2 (en) * | 2000-05-05 | 2006-05-16 | Fujitsu Limited | Method and system for hardware simulation |
US6976246B1 (en) * | 2000-05-26 | 2005-12-13 | Microsoft Corporation | Finite state model-based testing user interface |
JP2002101087A (ja) | 2000-09-21 | 2002-04-05 | Hitachi Ltd | 情報保管システム及び情報移動システム並びにそれらに用いる記憶媒体 |
FR2816730B1 (fr) * | 2000-11-13 | 2004-10-15 | Commissariat Energie Atomique | Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur |
US7020850B2 (en) * | 2001-05-02 | 2006-03-28 | The Mathworks, Inc. | Event-based temporal logic |
US7275235B2 (en) | 2001-08-29 | 2007-09-25 | Molinari Alfred A | Graphical application development system for test, measurement and process control applications |
US7849394B2 (en) | 2001-10-25 | 2010-12-07 | The Math Works, Inc. | Linked code generation report |
US7139692B2 (en) * | 2001-12-21 | 2006-11-21 | Opnet Technologies, Inc. | Flow propagation analysis using iterative signaling |
US20030177014A1 (en) | 2002-02-13 | 2003-09-18 | Crawford Robert E. | System and method for displaying multiple language text during performance or play of a musical work |
JP2003241965A (ja) | 2002-02-18 | 2003-08-29 | Toshiba Corp | プログラム作成支援方法、プログラム作成支援プログラム及びプログラム作成支援装置 |
US20050177816A1 (en) | 2002-03-08 | 2005-08-11 | National Instruments Corporation | Automatic generation of graphical program code for a graphical program based on the target platform of the graphical program |
JP3869761B2 (ja) | 2002-06-05 | 2007-01-17 | 三洋電機株式会社 | コンテンツ再生装置 |
US6880130B2 (en) * | 2002-06-24 | 2005-04-12 | National Instruments Corporation | Specifying timing and triggering functionality in a graphical program using graphical program nodes |
JP3864881B2 (ja) | 2002-09-24 | 2007-01-10 | ヤマハ株式会社 | 電子音楽システムおよび電子音楽システム用プログラム |
JP3671948B2 (ja) * | 2002-09-24 | 2005-07-13 | ソニー株式会社 | 半導体集積回路とその試験方法 |
US7299458B2 (en) * | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
US20040102860A1 (en) | 2002-11-27 | 2004-05-27 | Invectec Appliances Corp. | Device of playing songs and displaying lyrics thereof and method therefor |
US7134109B2 (en) * | 2003-02-10 | 2006-11-07 | National Instruments Corporation | Parameter oriented graphical representation of hardware timing and triggering capabilities with contextual information |
US7178112B1 (en) * | 2003-04-16 | 2007-02-13 | The Mathworks, Inc. | Management of functions for block diagrams |
US7809545B2 (en) | 2003-04-16 | 2010-10-05 | The Mathworks, Inc. | System and method for using execution contexts in block diagram modeling |
TW595193B (en) | 2003-05-28 | 2004-06-21 | Winbond Electronics Corp | Music format detecting and decoding apparatus for mobile phone and digital music sharing method using the same |
US20040260700A1 (en) * | 2003-06-20 | 2004-12-23 | Dongwen Wang | Guideline execution engine (GLEE) |
TWI261183B (en) | 2003-06-27 | 2006-09-01 | Inventec Corp | Edit system of accompaniment lyrics and editing and displaying method thereof |
US7412366B1 (en) | 2003-07-18 | 2008-08-12 | The Mathworks, Inc. | Rate grouping during code generation for multi-rate models |
WO2005017743A2 (en) * | 2003-08-07 | 2005-02-24 | National Instruments Corporation | A graphical program which executes a timed loop |
US7801715B2 (en) * | 2003-08-11 | 2010-09-21 | The Mathworks, Inc. | System and method for block diagram simulation context restoration |
US7366993B2 (en) | 2003-08-15 | 2008-04-29 | National Instruments Corporation | Automatic graph display |
WO2005020043A2 (en) | 2003-08-26 | 2005-03-03 | Matsushita Electric Industrial Co., Ltd. | Program execution device |
JP2005156982A (ja) | 2003-11-26 | 2005-06-16 | Yamaha Corp | 電子音楽装置及びプログラム |
US7752559B1 (en) | 2003-12-05 | 2010-07-06 | The Mathworks, Inc. | Graphical model preparation for embedded deployment |
TWI227998B (en) | 2003-12-31 | 2005-02-11 | Inventec Corp | A production and play back system of music television (MTV) and the method thereof |
US8683426B2 (en) | 2005-06-28 | 2014-03-25 | The Mathworks, Inc. | Systems and methods for modeling execution behavior |
US8793602B2 (en) | 2004-01-15 | 2014-07-29 | The Mathworks, Inc. | System and method for scheduling the execution of model components using model events |
JP4182904B2 (ja) | 2004-03-10 | 2008-11-19 | ソニー株式会社 | 集積回路設計装置、集積回路設計プログラムおよび集積回路設計方法 |
US7523441B2 (en) | 2004-04-16 | 2009-04-21 | National Instruments Corporation | Implementing a synchronous reactive system in a graphical program |
US7530052B2 (en) * | 2004-05-14 | 2009-05-05 | National Instruments Corporation | Creating and executing a graphical program with first model of computation that includes a structure supporting second model of computation |
US7506304B2 (en) * | 2004-05-14 | 2009-03-17 | National Instruments Corporation | Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation |
US7774728B2 (en) | 2004-11-26 | 2010-08-10 | Apache Design Solutions, Inc. | Method that allows flexible evaluation of power-gated circuits |
US20060199161A1 (en) | 2005-03-01 | 2006-09-07 | Huang Sung F | Method of creating multi-lingual lyrics slides video show for sing along |
US7490341B2 (en) * | 2005-06-07 | 2009-02-10 | Nokia Corporation | System and associated terminal, method and computer program product for directional channel browsing of broadcast content |
US7895597B2 (en) | 2005-09-15 | 2011-02-22 | Nokia Corporation | Method, apparatus and computer program product enabling full pre-emptive scheduling of green threads on a virtual machine |
US8775974B2 (en) * | 2005-12-21 | 2014-07-08 | International Business Machines Corporation | Multi-contextual delta navigation in a compare view |
US8046207B2 (en) * | 2005-12-27 | 2011-10-25 | The Mathworks, Inc. | Digital effects analysis in modeling environments |
US7861217B2 (en) * | 2005-12-30 | 2010-12-28 | The Mathworks, Inc. | Non-graphical model dependencies in graphical modeling environments |
US8046732B2 (en) * | 2005-12-30 | 2011-10-25 | Sap Ag | Distribution of data changes in pattern configurations |
US20080026355A1 (en) | 2006-07-27 | 2008-01-31 | Sony Ericsson Mobile Communications Ab | Song lyrics download for karaoke applications |
US7840904B2 (en) * | 2006-08-04 | 2010-11-23 | National Instruments Corporation | Execution target structure node for a graphical program |
US20080079591A1 (en) | 2006-10-03 | 2008-04-03 | Kenneth Chow | System and method for indicating predicted weather using sounds and/or music |
US9332068B2 (en) | 2007-11-29 | 2016-05-03 | Ooma, Inc. | Mechanisms for transparently converting client-server software agents to peer-to-peer software agents |
US8677336B2 (en) | 2008-01-17 | 2014-03-18 | Microsoft Corporation | Block count based procedure layout and splitting |
US8713528B1 (en) | 2008-10-06 | 2014-04-29 | The Mathworks, Inc. | Verification of computer-executable code generated from a model |
US8990783B1 (en) | 2009-08-13 | 2015-03-24 | The Mathworks, Inc. | Scheduling generated code based on target characteristics |
US9430342B1 (en) | 2009-12-01 | 2016-08-30 | Netapp, Inc. | Storage system providing hierarchical levels of storage functions using virtual machines |
KR101783312B1 (ko) | 2011-11-15 | 2017-10-10 | 삼성전자주식회사 | 클러스터 간의 통신으로 인한 오버헤드를 최소화하는 장치 및 방법 |
US9141365B1 (en) | 2013-12-20 | 2015-09-22 | The Mathworks, Inc. | Installation of a technical computing environment customized for a target hardware platform |
US9128783B1 (en) | 2014-03-04 | 2015-09-08 | The Mathworks, Inc. | Scheduling and executing model components in response to un-modeled events detected during an execution of the model |
US9329875B2 (en) | 2014-04-28 | 2016-05-03 | International Business Machines Corporation | Global entry point and local entry point for callee function |
US9536023B2 (en) | 2014-05-15 | 2017-01-03 | The Mathworks, Inc. | Code generation for using an element in a first model to call a portion of a second model |
US9767794B2 (en) | 2014-08-11 | 2017-09-19 | Nuance Communications, Inc. | Dialog flow management in hierarchical task dialogs |
US10360318B2 (en) | 2014-09-22 | 2019-07-23 | Pratt & Whitney Canada Corp. | System and method for multi-domain graphical modeling |
US10853532B2 (en) | 2015-05-27 | 2020-12-01 | The Mathworks, Inc. | Graphical modeling for accessing dynamic system states across different components |
-
2004
- 2004-01-15 US US10/759,346 patent/US8793602B2/en active Active
-
2005
- 2005-01-06 WO PCT/US2005/000390 patent/WO2005071537A1/en active Application Filing
- 2005-01-06 EP EP05705164.1A patent/EP1706818B1/en active Active
- 2005-01-06 JP JP2006549406A patent/JP2007518190A/ja active Pending
- 2005-01-06 ES ES05705164.1T patent/ES2599006T3/es active Active
- 2005-01-06 HU HUE05705164A patent/HUE031215T2/en unknown
- 2005-01-06 CN CN2005800078113A patent/CN1965293B/zh active Active
-
2008
- 2008-11-24 US US12/276,974 patent/US8458655B1/en active Active
-
2014
- 2014-07-28 US US14/444,412 patent/US20160012162A1/en not_active Abandoned
-
2015
- 2015-09-25 US US14/866,151 patent/US10157246B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4827404A (en) * | 1986-04-14 | 1989-05-02 | Schlumberger Technology Corporation | Method and system for computer programming |
US5497500A (en) * | 1986-04-14 | 1996-03-05 | National Instruments Corporation | Method and apparatus for more efficient function synchronization in a data flow program |
CN1359489A (zh) * | 1998-10-16 | 2002-07-17 | 联合想象计算机公司 | 用于构筑建模工具的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US8793602B2 (en) | 2014-07-29 |
HUE031215T2 (en) | 2017-06-28 |
EP1706818A1 (en) | 2006-10-04 |
EP1706818B1 (en) | 2016-08-24 |
US8458655B1 (en) | 2013-06-04 |
US10157246B2 (en) | 2018-12-18 |
WO2005071537A1 (en) | 2005-08-04 |
US20160012162A1 (en) | 2016-01-14 |
CN1965293A (zh) | 2007-05-16 |
US20160011919A1 (en) | 2016-01-14 |
ES2599006T3 (es) | 2017-01-31 |
JP2007518190A (ja) | 2007-07-05 |
US20050160397A1 (en) | 2005-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1965293B (zh) | 使用模型事件调度模型组件的执行的***和方法 | |
Sehr et al. | Programmable logic controllers in the context of industry 4.0 | |
US7565609B2 (en) | Synchronizing execution of graphical programs executing on different computer systems | |
US8204951B2 (en) | Deterministic communication between graphical programs executing on different computer systems using variable nodes | |
US7761847B2 (en) | Timed sequence for a graphical program | |
US7669185B2 (en) | Graphical program having a hierarchy of timed loops | |
US7802229B2 (en) | Timed loop with sequence frames structure for a graphical program | |
EP1817700B1 (en) | Method and system for transferring data between a discrete event environment and an external environment | |
WO2019024489A1 (zh) | 项目进度管理方法、装置、终端设备及介质 | |
CN1862491A (zh) | 用于时控程序执行的***和方法 | |
CN106775964A (zh) | 时间/事件混合触发的操作***架构及任务调度方法 | |
CN104809534A (zh) | 业务流程管理*** | |
US10061676B2 (en) | Remotely located timing method and device for a processing unit in an information processing system | |
CN113190427A (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
CN109213662A (zh) | 一种用户触控行为数据收集方法及终端 | |
Buck et al. | An interactive, graphical CPU scheduling simulator for teaching operating systems | |
Ludwich et al. | Proper handling of interrupts in cyber-physical systems | |
EP1787196B1 (en) | Synchronizing execution of graphical programs executing on different computer systems | |
Vopata | Distributed discrete-event simulation in Concurrent C | |
Jensen | Asynchronous Decentralized Realtime | |
Cottet et al. | Multi-Tasking Programming with a Rate-Monotonic Scheduling Based Upon a Visual Data Flow Language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |