CN107784152B - 包括多个模拟器的模拟 - Google Patents
包括多个模拟器的模拟 Download PDFInfo
- Publication number
- CN107784152B CN107784152B CN201710730922.1A CN201710730922A CN107784152B CN 107784152 B CN107784152 B CN 107784152B CN 201710730922 A CN201710730922 A CN 201710730922A CN 107784152 B CN107784152 B CN 107784152B
- Authority
- CN
- China
- Prior art keywords
- simulator
- simulation
- model
- execution
- parameter
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及包括多个模拟器的模拟。在一些示例中,网络上的一个或多个计算设备可以从客户端计算设备接收配置模拟的一个或多个输入,该模拟至少包括第一模拟器和第二模拟器。一个或多个计算设备可以分配至少包括第一虚拟机的计算资源,第一虚拟机用于执行第一模拟器和第二模拟器中的至少一个。一个或多个计算设备可以配置在第一虚拟机上可执行的第一模拟控制器,用于控制第一模拟器和第二模拟器中的至少一个的执行。第一模拟控制器可以启动第一模拟器和第二模拟器中的至少一个的执行,作为协同模拟的执行的一部分。在一些示例中,协同模拟的结果可被发送到客户端计算设备。
Description
背景技术
在过去的几十年,汽车已经从基本的机械设备转变为在诸如引擎控制、动力传动、悬架、制动、安全以及娱乐的主要系统中嵌入软件的集成机电设备。作为一个示例,现在的车辆包括电子控制单元(ECU)的复杂网络,这些电子控制单元使用一些不同的网络实现中的任何一种来进行连接用于相互通信,诸如控制器局域网络(CAN),其包括高速CAN和低速或容错CAN。车辆中存在大量的ECU,将特定的ECU编程用于特定应用,诸如引擎、传动、车体、转向、制动、信息娱乐/导航等。例如,车辆可以包括50至多于100个ECU,共同执行多于5000万行软件代码。此外,随着车辆变得越来越自主,这些数字有望在未来几年内显著增加。
这样复杂的电气/电子(E/E)架构和软件需要广泛、灵活且系统的开发和验证环境,尤其对于系统级别或车辆级别的开发。例如,为了保持有竞争力,制造商通常期望减少开发周期来缩短进入市场的时间,并且为了实现规模经济,进一步期望使用共用平台。电子部件在现代车辆中的使用增加引入了复杂性,如果在设计阶段不进行测试和验证,可能导致可靠性降低和召回发生率更高,如果在多个不同车辆模型所使用的共用平台上发生会尤其麻烦。因此,期望在所有电子系统的开发过程期间进行软件测试。
此外,机动车设计工程团队的任务是在集成环境中执行越来越复杂的测试和模拟,但是现有的工具无法赶上这个挑战。例如,简单、同构的协同模拟可以使用来自一个模拟器供应商的多个工具来完成,或者在选择的情况下,使用来自多个模拟器供应商的多个工具来完成。在协同模拟中,形成耦合问题的多个不同的组件或子系统以分布式的方式进行建模和模拟。建模可以在不依赖于任何特定耦合问题的组件或子系统级别进行。在协同模拟期间,模型可以向其他模型发送或者从其他模型接收数据,从而模拟不同组件或子系统之间的相互作用。然而,这样的协同模拟经常是在并不是最佳地用于执行模拟处理的个人计算机(PC)上执行。另外,执行包括不同类型的多个模拟的异构协同模拟的输入录入和设置需要通常费力且费时。因此,常规的协同模拟选项趋于在能够使用的模拟器的数量上受限,并且进一步被限制到低保真度模拟和/或简单的系统设计。
发明内容
一些实施方式包括用于执行模拟的配置和技术,诸如包括多个模拟器并行执行的协同模拟。例如,网络上的一个或多个计算设备可以从客户端计算设备接收对于模拟进行配置的一个或多个输入,该模拟至少包括第一模拟器和第二模拟器。该一个或多个计算设备可以分配计算资源,计算资源至少包括用于执行第一模拟器或第二模拟器中的至少一个模拟器的第一虚拟机。第一虚拟机上可执行的第一模拟控制器可以用于控制第一模拟器或第二模拟器中的至少一个模拟器的执行。第一模拟控制器可以启动第一模拟器或第二模拟器中的至少一个模拟器的执行,作为执行协同模拟的一部分。协同模拟的结果被发送到客户端计算设备。
作为另一示例,该一个或多个计算设备可以从客户端计算设备接收指令以创建包括第一模拟器、第二模拟器和第三模拟器的模拟。另外,该一个或多个计算设备可以从客户端计算设备接收第一模拟器上可执行的第一模型文件、第二模拟器上可执行的第二模型文件以及第三模拟器上可执行的第三模型文件的指示。该一个或多个计算设备可以确定第三模型文件在第一模拟器上可执行,并且可以将第一模型文件和第三模型文件合并到已合并的模型文件中。该一个或多个计算设备可以通过在第一模拟器上执行已合并的模型文件并且在第二模拟器上执行第二模型文件来执行模拟。
附图说明
参照附图来阐述详细的描述。在附图中,附图标记最左侧的数字表示附图标记首次出现在的附图。不同的附图中相同附图标记的使用表示相似或相同的项目或特征。
图1示出根据一些实施方式的针对可扩展模拟的系统的示例架构。
图2示出根据一些实施方式的用于执行模拟的组件和操作的框图。
图3示出根据一些实施方式的用于创建模拟作业的示例GUI。
图4示出根据一些实施方式的用于创建新模拟所呈现的示例GUI。
图5示出根据一些实施方式的用于选择模拟应用类型所呈现的示例GUI。
图6示出根据一些实施方式的用于选择模型和定义模拟连接所呈现的示例GUI。
图7示出根据一些实施方式的用于选择模型文件所呈现的图6的GUI的示例。
图8示出根据一些实施方式的用于选择模型文件所呈现的图6的GUI的示例。
图9示出根据一些实施方式的用于核实端口配置所呈现的图6的GUI的示例。
图10示出根据一些实施方式的用于设置模拟时间所呈现的示例GUI。
图11示出根据一些实施方式的用于确认模拟所呈现的示例GUI。
图12示出根据一些实施方式的用于选择模型文件所呈现的图11的GUI的示例。
图13是示出根据一些实施方式的用于配置模拟的示例过程的流程图。
图14示出根据一些实施方式的示例协同模拟。
图15示出根据一些实施方式的电机控制器与高保真变换器/电机模型之间的相互作用的示例。
图16示出根据一些实施方式的图14的协同模拟中的CAN路由器和虚拟CAN总线的操作的示例。
图17示出根据一些实施方式的用于在多个物理计算设备上执行而配置的图16的协同模拟配置的示例。
图18示出根据一些实施方式的包括多个vECU的示例协同模拟。
图19示出根据一些实施方式的网络计算资源的物理层的示例架构。
图20示出根据一些实施方式的示例计算设备的选择组件。
图21是示出根据一些实施方式的用于执行模拟的示例过程的流程图。
图22示出根据一些实施方式的包括模拟管理计算设备和模拟计算设备的示例配置。
图23示出根据一些实施方式的与参数测试组相关的参数扫描信息的示例。
图24是示出根据一些实施方式的执行包括参数扫描的模拟的示例过程的流程图。
图25示出根据一些实施方式的模型合并的示例。
图26是示出根据一些实施方式的模型合并的示例过程的流程图。
图27是示出根据一些实施方式的用于执行模拟的示例过程的流程图。
具体实施方式
这里的一些实施方式涉及用于基于网络的模拟平台的技术和配置,该基于网络的模拟平台能够模拟实际的基于硬件的车载嵌入式系统。例如,模拟平台包括图形化用户界面,其使得用户能够配置在多个计算设备上协同执行的模拟器,诸如配置在网络计算资源上的多个虚拟机。在一些示例中,模拟器的并行执行可以由管理工人的模拟控制器来控制,其中的工人在模拟节点上执行对应的模拟器。在模拟管理节点上执行的模拟执行工人可以横跨一个或多个参与模拟节点来协调模拟过程。
此外,在一些示例中,在执行模拟之前,模拟中所使用的多个节点可以自动进行合并。例如,模拟平台使得需要支付不重要的许可费用的专属模拟器能够使用。因此,这里的实施方式可以执行多个小模型到单个较大模型的合并从而减少模拟中所用的许可的数量。模型合并控制程序可以确定使用相同许可的模型,可以从模型移除报头,并且可以生成多个模型的相应核心定义的包装,诸如使得多个模型在模拟期间能够顺次执行。
另外,一些示例可以包括启动自动参数扫描的能力。例如,用户期望利用不同的参数集合来测试系统,诸如为了确定系统的最优性能。因此,这里的模拟平台可以使得用户想要应用于模拟的一个或多个参数中的每个参数的参数集合能够自动生成。模拟平台可以利用所生成的参数集合来具体化所选择的模型,以提供模拟期间的特定参数的自动参数扫描,诸如基于具有增加步长的最小至最大范围或者基于分离值列表。此外,模拟平台可以通过配置在不同的虚拟机上使用不同参数的模拟,来并行地运行利用不同参数集合进行具体化的模型。另外,模拟平台可以使得多模型和多参数的参数扫描,诸如用于测试多参数的各种组合。
一些情况下,模拟平台可以用于配置和执行包括多种类型的多个模拟器的并行执行的模拟。例如,模拟平台启动模拟单独组件的功能,模拟多个不同组件的相互作用,模拟系统,模拟多个系统,模拟整个车辆等。模拟平台可以建立所选择的模拟器之间的合适的连接类型,这些所选择的模拟器用于模拟对应的现实世界组件之间的现实世界连接。此外,模拟平台可以提供预先配置的模拟,用户利用由用户所准备的一个或多个模型来使用该预先配置的模拟,用于实现测试目的、验证等。
在一些示例中,模拟平台启动创建多个ECU的协同模拟,以及用于在车辆级别上产生模拟的相关联的组件和系统。模拟平台通过允许针对多个虚拟ECU(vECU)和其他模拟的组件或系统的不同E/E架构的虚拟实验、测试和比较,来进行车辆系统的设计优化。这里的模拟平台进一步启动测试和比较微处理器和硬件组件的性能。这里的模拟平台可以用于支持车辆级别的模拟,这使得能够在车辆的设计阶段非常早地进行组件级别、系统级别以及车辆级别的软件开发,并且可以明显地减少车辆的总体开发时间。
在一些示例中,虚拟CAN总线可以配置为建立在TCP/IP(传输控制协议/互联网协议)上的协同模拟总线。因此,多个不同的vECU和其他的模拟器模型可以配置在多个不同的虚拟/物理计算设备上,并且尽管配置在不同的虚拟和/或物理计算设备上,但是能够使用虚拟CAN总线上的CAN协议进行通信。此外,这里的实施方式包括用来管理虚拟CAN总线上的一些CAN通信量的虚拟CAN路由器。例如,虚拟CAN路由器可以在分开的vECU上执行,并且可以在包括以太网、光纤等的各种网络配置上接收和发送车辆级别的CAN业务。作为一个示例,执行CAN路由器的vECU可以连接到模拟的两个不同层,一个在车辆级别上具有较低保真度,而一个在系统级别上具有较高保真度。
这里的模拟平台可以使用多个计算设备来实施,诸如配置在互联网或其他网络上进行访问的网络计算资源(有时称为云计算资源)上的多个物理机和/或多个虚拟机。例如,如在网络计算资源上进行实现的,这里的模拟平台能够虚拟地扩展至任意期望的规模,因此可以用于模拟车辆中的一些或所有ECU,以及其他的车辆组件和子系统。因此,模拟平台使得诸如设计团队的用户能够进行复杂、高保真度、大规模、系统级别和车辆级别的协同模拟。
此外,这里的模拟平台包括启动大规模高保真度的协同模拟的简化模拟设置、发起和输出的功能性。例如,用户可以经由门户网站来访问模拟平台,并且使用图形化用户界面(GUI),该GUI向用户提供用于创建模拟的逐个步骤的指令。因此,门户网站可以提供任何时间任意地点的对于高性能计算(HPC)能力的访问,用于运行模拟。此外,用户可以不在他们自己的计算机上安装任何专门的软件来运行模拟,而是使用浏览器来访问模拟平台。这里的实施方式可以支持各种不同的模拟器和语言,特定模拟器内的多个求解器,多个域和物理,以及多个抽象级别。在这里的示例中,该功能性在HPC云环境中可用,为异构协同模拟提供可量测性、性能和模拟软件许可管理。
另外,用户能够以不同的抽象级别来并行地测试模型,包括基于多个高保真度的微控制器模型的vECU的测试。这种抽象级别能够进行复杂虚拟的系统级别和车辆级别的模拟的大规模测试。另外,网络计算资源的使用可以向用户提供对于HPC能力的访问,并且能够进行工作负荷在虚拟机上的分配,这进一步提高了系统级别和车辆级别的模拟的效率。
随着模拟的建立,用户可以一次性输入模拟结束时间和模拟步长大小,并且该信息可以作为全局设置应用于模拟中所使用的所有模拟器。提供并入模拟平台中的自动化的GUI可以显著地简化设置并且为用户节省相当多的设置时间,特别是对于更复杂的模拟。因此,针对模拟平台提供的GUI可以显著的减少执行模拟所需的数据输入量,因此减少引起返工的输入错误的可能性。此外,云环境或其他网络计算环境的使用提供了对于可扩展的高性能计算资源的访问,可扩展的高性能计算资源使得设计团队能够运行大型且更复杂的模拟。例如,这里的实施方式可以在多个虚拟机上分配模拟器和工作负荷从而提高系统级别和车辆级别的模拟的效率。因此,由于自动设置所提供的节约时间,并且进一步由于网络计算基础设施的可扩展资源和高性能计算能力,这里的模拟平台能够创建常规系统无法实现的高保真度、大规模、复杂的系统级别和车辆级别的协同模拟。
另外,这里的平台除了硬件在环仿真(HILS)之外,还提供虚拟硬件在环仿真(vHILS)能力。例如,HILS可以包括将真实的微控制器硬件连接到模拟被测系统的行为的模拟器。然而,真实硬件的使用会限制模拟系统的灵活性和实用性。因此,这里的示例也能够使用包括模拟的vHILS,其中的模拟包括虚拟微控制器或其他处理器模拟器和被测系统的模型。vHILS的使用让设计工程师在设计过程中比利用HILS测试技术更早地快速测试包含大量vECU的复杂虚拟系统设计。这样的测试可以显著提高产品质量、使得设计和产品开发返工最小化,并且可以加快进入市场的时间。因此,这里的模拟平台可以启动在开发过程中提早进行模拟和测试。
这里的模拟平台使得用户能够一次操作大量的异类模型。GUI所提供的自动设置和模拟初始化能力使得大规模、复杂、混合域和物理的协同模拟成为可能。例如,模拟平台可以将传统的模型划分技术与高性能基于网络的计算资源的自动分配耦合,从而减少模拟执行的时间。因此,用户可以进行与利用常规方案相比更大且更复杂的异类协同模拟。例如,设计团队能够添加来自更多功能性的区域和组织的更多的模型,例如引擎、制动、机架、燃料、安全以及任何其他内部和外部的团队。
为了论述的目的,在网络计算资源上协同模拟多个ECU的环境中描述一些示例实施例。然而,正如根据在此的公开对于本领域技术人员是明显的,这里的实施方式不限于所提供的特定实施例,并且可拓展至其他类型的计算环境、其他的系统架构、其他类型的模拟等,。
图1示出根据一些实施例的用于可扩展模拟的系统100的示例架构。在该示例中,网络计算资源102可以包括多个计算设备104和相关联的存储器106。如下面另外所述,多个计算设备104可以包括一个或多个服务器,或者以任意多种方式嵌入的其他类型的计算设备。例如,虽然可以另外或者替换地使用其他的计算机架构,在服务器的情况下,应用、程序、模块或其他的功能组件,以及数据存储的至少一部分可以在至少一个服务器上实现,诸如在服务器集群、服务器场或数据中心、云主机的计算服务等。此外,存储器106包括存储器阵列、网络附加存储器、存储器局域网、RAID存储系统、精简预先配置的存储系统等。
网络计算资源102可以用于提供模拟平台108,该模拟平台108包括通过虚拟机资源管理器114从资源库112进行分配的多个虚拟机110。如下另外所述,虚拟机资源管理器114可以从资源库112分配资源,用于提供执行特定模拟作业的模拟平台108。例如,可以针对模拟中所包括的每个vECU来分配分离的虚拟机。
另外,数据库管理器116可以访问包括数据库的存储器118,其中的数据库用于存储和提供用于模拟平台108的信息。存储器118中保存且由数据库管理器116进行管理的信息的示例可以包括模拟模型、用户信息、许可信息、模拟日志、模拟结果等。网络计算资源102可以进一步包括能够与一个或多个客户端计算设备122(诸如用户设备等)在一个或多个网络124上通信的网络接口120。
一个或多个网络124可以包括任意类型的网络,包括局域网(LAN),诸如内联网;广域网(WAN),诸如互联网;无线网络,诸如蜂窝网络;局域无线网,诸如Wi-Fi,和/或短距离无线通信;包括光纤的有线网络、以太网、光纤信道或任何其他这样的网络,直接的有线连接,或者它们的任意组合。因此,一个或多个网络124可以包括有线和/或无线通信技术。针对这样的通信所使用的组件能够至少部分地依赖于网络的类型、所选择的环境或者两者。用于在这样的网络上进行通信的协议是众所周知的,将不在此进行详细描述。因此客户端计算设备122和管理计算设备132能够使用有线或无线连接及其组合,在一个或多个网络124上与网络计算资源102进行通信。
此外,模拟管理器126可以管理模拟平台上的模拟的执行。例如,模拟管理器126可以确保用户具有执行特定模拟的充分许可。此外,模拟管理器126可以控制模拟的执行的定时。作为一个示例,如果用户正在执行第一模拟,并且同时提交执行第二模拟,模拟管理器126可以检测用户是否具有可用的充分许可,如果没有,可以将第二模拟的执行延迟直到在第一模拟的执行完成后而释放充足数量的许可为止。
另外,系统管理器128、管理员等可以使用管理计算设备132上的应用130向网络接口120发送管理输入134,用于控制模拟平台108的各个方面,诸如用于确保模拟平台108的正常运行。在一些示例中,应用130可以是浏览器,而在其他示例中,应用130可以是用于控制模拟平台108的专用应用。
另外,用户136可以与客户端计算设备122相关联,并且可以使用客户端计算设备122上的浏览器138,用于通过网络接口120来访问模拟平台108。例如,用户136可以登录网络接口120,并且接收由浏览器138所使用的用于向用户136呈现GUI的GUI信息140,诸如网页、可执行脚本等。例如,用户136可以与浏览器138进行交互从而向网络接口120提供用户输入142,诸如用于配置模拟平台108上执行的期望模拟。此外,在一些示例中,用户136可以上传一个或多个模型114,其可以存储在存储器和/或数据库118中。另外或者替代地,用户136可以使用存储器和/或数据库118中已经存在的一个或多个模型,如下另外论述。虚拟机资源管理器114、数据库管理器116、网络接口120、以及模拟管理器126中的每一个可以对应于一个或多个计算机程序、其部分,或者可以在一个或多个物理计算设备104上执行的其它可执行代码。在一些示例中,这些计算机程序中的一些或者全部可以在相同的物理机104和/或相同的虚拟机110上执行,而在其他的示例中,这些计算机程序中的一些或者全部可以在分开的物理机、分开的虚拟机110等上执行。
在一些示例中,用户136可以使用浏览器138所呈现的GUI来配置期望的模拟,该模块可以包括多个模拟器148,诸如处理器模拟器(vECU)、设备模拟器和/或其他类型的模拟器。每个模拟器可以用于模拟现实世界的组件,诸如用于生成或者接收通过现实世界组件分别生成或接收的一个或多个信号。
作为一个示例,在模拟器148中的一个或多个是vECU的情况下,vECU可以用于模拟真实的ECU。ECU(电子控制单元)是针对控制车辆中的一个或多个系统、子系统或组件的任何嵌入式系统的通用术语。根据安装在ECU上的软件和ECU的指定目的,ECU可以被分类成各种不同的类型,诸如电池管理单元(BMU)、车体控制模块(BCM)、制动控制模块(BCM或EBCM)、中央控制模块(CCM)、中央定时模块(CTM)、车门控制单元(DCU)、电子/引擎控制模块(ECM)、通用电子模块(GEM)、人机接口(HMI)、电机控制单元(MCU)、动力转向控制单元(PSCU)、动力系控制模块(PCM)、座椅控制单元(STCU)、速度控制单元(SCU)、悬架控制模块(SCM)、远程信息处理控制模块(TCU)、传动控制模块(TCM)、以及各种其他类型的模块或控制单元。这些ECU有时统称为车辆的计算机;然而,如上面提到的,在车辆中存在50、100或更多的ECU。此外,在一些情况下,一个组件可以包含几个单独的ECU。例如,PCM可以包括针对引擎和传动的ECU。
每个ECU可以包括处理器、存储器、以及数字和/或模拟的通信接口。特定ECU执行的软件可以与相应的ECU相关联地存储到存储器,使得ECU能够作为嵌入式系统而运行。ECU可以通常在根据车辆总线协议的车辆总线上相互通信。作为示例,控制器局域网总线(CAN总线)协议是允许ECU和其他设备在没有主机的情况下进行相互通信的车辆总线协议。CAN总线可以包括至少两个不同的类型。例如,高速CAN可以用在总线从环境的一端运行至另一端的应用中,而容错CAN经常用在节点群组连接在一起的情况下。
在这里的模拟中,vECU可以是由计算设备可执行的处理器模拟器,诸如物理计算设备上执行的虚拟机或物理计算设备。因此,如在此所使用,vECU可以包括任意上述类型的ECU或任意各种其他的车辆控制单元、控制模块等的处理器模拟器。此外,由于vECU是模拟真实的ECU处理器的实际功能的处理器模拟器,诸如模拟特定的制造商所提供的真实的ECU处理器,用户可以提供软件,诸如旨在安装在真实ECU上的控制软件,并且可以在vECU上执行该控制软件,从而确定控制软件是否按照期望的执行。此外,如下面所述,这里的实施方式可以提供虚拟CAN总线和虚拟CAN路由器,这使得多个vECU能够针对相互通信进行连接,用于模拟真实车辆中的CAN总线上的ECU之间的通信。另外,其他类型的模拟器可以连接到vECU和/或其他类型的模拟器通过其他类型的连接(例如,虚拟信号总线),诸如用于提供模拟的传感器输入,从而模拟真实世界中这些真实的ECU或其他组件将要连接到的系统(即,装置)。
在该示例中,假设用户已经配置用于模拟的多个模拟器148(1)、……148(M)。作为响应,虚拟机资源管理器114可以分配多个虚拟机110(1)、……110(M)用于执行模拟平台108中的特定模拟器148。在一些示例中,可以针对每个模拟器148分配分开的虚拟机110,而在其他的示例中,可以在相同的虚拟机上执行多个模拟器。另外,虚拟机资源管理器114可以分配另外的虚拟机……110(N)用于执行其他的模拟器和/或模拟数据收集器150。例如,模拟数据收集器150可以管理模拟的执行,接收模拟进度的日志/或报告,并且可以将模拟的结果发送到用于在存储器118上存储数据的数据库管理器116和/或用于向客户端计算设备122发送该结果的网络接口120。
虚拟机110能够通过物理连接152相互通信,物理连接152可以是局域网,诸如以太网或光纤,或者在相同的物理机器上存在多个虚拟机的情况下,可以包括物理计算设备的内部总线。例如,虚拟机可以使用TCP/IP或其他适合的通信协议进行通信。如下面另外所述,在一些示例中,模拟器148中的一个模拟器可以是用于作为CAN路由器的vECU,其用于沿着连接152控制模拟器148之间的通信。因此,该CAN路由器可以通过启动虚拟机110之间的通信来在多个虚拟器(诸如多个vECU)之间提供虚拟CAN总线,由此启动创建附着的系统级别和车辆级别的模拟,该模拟中包括能够相互通信的多个vECU和/或其他模拟器。
图1的模拟平台108可以用于模拟车辆组件、车辆系统或整个车辆。基于期望的模拟,附加的虚拟机110可以被分配到虚拟平台108或被释放回到资源库112。因此,车辆设计团队或其他用户可以使用虚拟平台108来通过测试先前不可能的复杂性、保真度和抽象级别,以减少集成系统可靠性的担心。例如,模拟平台108使得设计团队能够并行地测试和验证多个高保真度虚拟微控制器ECU,并且与现有工具相比,将端对端模拟处理时间减少高达80%。另外,模拟平台108能够以远远短于利用当前工具的时间进行大规模复杂的协同模拟的初始化,可以显著地减少模拟有关的日常费用和资本费用,并且可以使极为重要的模拟模型知识产权保持安全和牢靠。利用这些模拟性能的改进,设计工程团队可以显著地加速进入市场的时间性能,提高产品质量,并且减少成本。
模拟平台108能够在各种域、物理和抽象水平上进行高保真度、大规模、复杂的系统水平和车辆水平设计的例程测试,诸如利用多个高保真度的虚拟微处理器ECU和各种模拟工具。如下面另外所述,模拟平台108可以提供自动的模拟设置、初始化、监视和报告,从安全的网络连接上的任何位置可访问的简化、时效性的模拟过程;易于使用、提供信息的GUI;HPC云可量测性、可靠性和灵活性;测试多个高保真虚拟ECU和其他组件的能力;增强的协同工具;以及工业测试的安全性能。
图2示出根据一些实施例的用于执行模拟的组件和操作的框图200。图2包括用于执行模拟作业并且向用户136提供结果所包括的十三个示例操作201-213的描述。例如,可以使用上面关于图1描述的系统100中的模拟平台108来执行模拟作业。此外,可以在硬件、软件或其组合中实现一些或所有的操作。在软件的背景下,这些操作可以表示存储在一个或多个计算机可读介质上的计算机可执行指令,当通过一个或多个处理器来执行该指令时,对于处理器进行编程以执行所述的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据结构的例程、程序、对象、组件、数据结构等。描述该操作的顺序不应当被理解为限制。在一些情形下,所描述的操作能够以其他的顺序来组合和/或并行执行以实现过程或替代过程,并且不需要执行所有的操作。
在201中,网络服务器214从与用户136相关联的客户端计算设备122接收作业信息,诸如用户作业输入216。例如,网络服务器214可以在网关计算设备218上执行。网络服务器214可以提供上面关于图1所述的网络接口120,并且用户136可以使用网络接口来配置由模拟平台108执行的模拟作业。
在202中,一个或多个模型文件220可以由用户来提供或者由用户来选择并且由文件服务器222来管理。在一些示例中,文件服务器222可以是与存储器和/或数据库118相关联的存储器控制器。在其他示例中,文件服务器222可以是运行在网关计算设备上或者上面所述的系统100的其他计算设备上的软件。作为另一替代,文件服务器222和数据库管理器116可以是相同的功能组件的一部分。
在203,模拟元数据224可以存储在存储器和/或数据库118中。例如,网络服务器214可以接收作为用户作业输入216的与模拟配置有关的信息,并且数据库管理器116可以将配置信息作为模拟元数据234存储在存储器和/或数据库118中。在一些示例中,存储器和/或数据库118可以是任意类型的对象存储器,而在其他示例中,存储器和/或数据库118可以包括真实的数据库结构和组件,诸如面向文档的数据库或其他类型的数据。
在204中,作业队列管理器计算设备226可以从存储器118获得模拟作业信息228,诸如通过从数据库管理器116请求作业信息228。例如,模拟作业信息228可以包括由用户136设置的模拟作业的配置细节,并且可以识别出将要在模拟作业中使用的模型文件220。作业队列管理器计算设备可以包括控制模拟平台108的作业队列的作业队列管理器程序230,并且还可以包括用作模拟平台108的作业队列的作业缓冲器232。
在205,作业队列管理器230可以将新作业234从队列缓冲器232发送到模拟管理器计算设备237上的作业路由器236。例如,作业队列管理器230可以响应于从工作路由器236接收到针对工作缓冲器232中的下一作业的请求来发送新作业234。
在206,作业路由器236可以至少部分基于作业类型或参数,并且进一步基于可用的计算资源来转发新作业234。例如,新作业234可以被转发到模拟执行主机238、参数扫描主机240、和/或模型合并主机242中的至少一个。
在207,模拟执行主机238可以将作业委托给模拟执行人员224。在一些示例中,用户可能期望执行在模拟期间应用于一个或多个模型参数的多个参数值的参数扫描。在这样的情况下,参数扫描主机240可以在将新作业提供该模拟执行人员244之前确定与新作业相关联的参数。另外,或者可替换地,模型合并主机242可以合并通过模拟作业234所识别的一个或多个模型,诸如以便在模拟期间的执行之前减少模型的数量,诸如用于减少执行模拟所需要的许可数量。
在208,模拟执行人员244可以分配资源,并且可以使用作业信息246来设置通过一个或多个模拟计算设备252执行的一个或多个模拟控制器248,该一个或多个模拟控制器248分别用于控制每个模拟计算设备252上的模拟作业。例如,模拟执行人员244可以分配多个模拟计算设备252(1)-252(K)来执行模拟作业的模拟器254(1)-254(J)。每个模拟器254可以包括或者可以获取一个或多个模型文件。在每个模拟计算设备252(1)-252(K)上可以设置模拟控制器248(1)-248(K)。此外,每个模拟计算设备252(1)-252(K)上可以具有一个或多个模拟器254(1)-254(J)。此外,如上面所提到的,模拟计算设备252和/或模拟管理器计算设备237和/或作业队列管理器计算设备226和/或网关计算设备218和/或文件服务器222中的一些或者全部可以是虚拟机,或者,这些计算设备中的一些或者全部可以是分开的物理机。
在209,模拟控制器248(1)-248(K)可以从文件服务器222取出模型文件256。例如,模拟控制器248(1)-248(K)可以请求在被分配给模拟控制器所控制的对应模拟器254的当前模拟作业时在作业信息246中识别出的模型文件256。
在210,每个模拟控制器248可以初始化模型/模拟器,启动模拟,在执行模拟期间对于模拟进行监视,以及在完成模拟后执行后处理。模拟执行人员244可以协调相应的模拟控制器248(1)-248(K)的操作,诸如用于指示模拟的初始化和启动。因此,模拟执行人员244可以管理在所有参与的模拟计算设备252(1)-252(K)上进行的模拟。
在211,模拟作业完成期间或者在模拟作业完成后,模拟控制器248和/或模拟执行人员244可以将更新258推送到数据库管理器116和存储器118和/或到文件服务器222。例如,模拟状态或结果可以存储在存储器和/或数据库118中。如上所述,在一些情况下,文件服务器222可以用作除数据管理器116以外或其一部分的存储器和/或数据库118的控制器。
在212,网络服务器214可以诸如基于更新258向客户端计算设备122提供模拟配置信息260、模拟状态信息262和/或模拟结果264。
在213,用户136可以在客户端计算设备122接收模拟结果264。在一些情况下,这些结果可以是图表或其他的人可读的信息的形式。例如,网络服务器214可以向客户端计算设备122发送模拟结果264和/或模拟状态信息262和/或模拟配置信息260。此外,虽然上述描述阐述了用于在模拟平台108上执行模拟作业所进行的操作的一个示例,但是利用在此的公开内容,本领域技术人员将清楚很多其他可能的变型。
图3示出根据一些实施方式的用于创建模拟作业的示例GUI 300。在该示例中,GUI300示出可以通过网络接口呈现给用户的控制面板302,使得用户能够确定任何现有或先前提交的模拟作业的状态。例如,控制面板302可以指示当前或者已完成的模拟304、活跃的虚拟机306、服务器CPU 308和/或服务器RAM 310的状态。另外,控制面板302可以提供关于特定参数的更多详细信息,诸如模拟状态312和/或虚拟机状态314。在该示例中,控制面板指示出当前的模拟完成97%,活跃的虚拟机的百分比是可用虚拟机的75%,所使用的服务器CPU的百分比为42%,并且所使用的服务器RAM的百分比是33%。
另外,如在316所示,可以提供多个虚拟控制用于向用户呈现GUI 300的不同部分。例如,控制面板虚拟控制318被突出显示以指示已经选择控制面板302用于显示。虚拟控制316还可以包括用于创建新模拟的控制320、用于确定模拟状态的控制322、用于访问当前项目的控制324、用于确定虚拟机状态的控制326、以及用于执行用户管理的控制328。作为一个示例,假设用户想要创建新的模拟。因此,用户可以点击或者选择创建模拟虚拟控制320,作为响应,呈现下面关于图4讨论的GUI。
图4示出根据一些实施例的用于创建新模拟所呈现的示例GUI 400。如上所述,假设用户已经选择用于创建模拟的虚拟控制320。作为响应,GUI 400可以呈现出三个附加的虚拟控制,也就是用于选择组件级别模拟的创建的组件级别虚拟控制404,用于选择系统级别模拟的系统级别虚拟控制404,以及用于选择车辆级别模拟的车辆级别虚拟控制406。例如,组件级别的模拟可以使用一个或多个模拟器,用于模拟车辆的特定组件的行为;系统级别的模拟可以使用多个模拟器来模拟包括多个组件的系统;车辆级别的模拟可以使用多个模拟器来模拟车辆中所包括的多个不同组件和/或系统。对于这三个选择中的每个,当用户进行选择时,可以呈现出不同的选项用于创建不同类型的模拟。在该示例中,假设用户已经选择用于创建系统级别的模拟的系统级别虚拟控制404。因此,如408所示,GUI 400可以指示所创建的模拟是系统级别的模拟。
此外,GUI 400可以包括模拟创建流程图410,以在模拟的创建中帮助引导用户。在该示例中,流程图410包括介绍阶段412,“选择模拟类型”阶段414,“定义连接和上传文件”阶段416,“设置模拟时间”阶段418,以及“确认模拟”阶段420,下面将对每个进行描述。
最初,如图4中所示,在介绍阶段412期间,GUI 400可以呈现介绍页面,其描述用于创建系统水平的模拟的概述422,并且进一步在424描述针对系统级别的模拟的需要。另外,GUI 400可以包括用于创建系统级别的模拟的多个可选选项,诸如用于创建一次性模拟的选项426,用于创建工作流模拟的选项428,用于创建第一类型的ECU模拟的选项430,用于创建第二类型的ECU模拟的选项432,以及用于创建第三类型的ECU模拟的选项434。例如,工作流模拟可以包括在较晚模拟接收较早模拟的输出的连续模拟。另外,用户可以向下滚动来选择该示例中未示出的其他选项。当用户已经选择期望的选项时,用户可以选择下一步按钮436以推进到用于进一步选择模拟类型的下一阶段。
图5示出根据一些实施例的用于选择模拟应用的类型所呈现的示例GUI500。假设在图4的GUI 400中,用户已经选择创建一次性模拟的选项,并且随后推进到GUI 500来选择模拟类型,如流程图410中被突出显示的阶段414所指示。如在502中所示,GUI 500可以呈现用于选择模拟类型的多个选项。在该示例中可以选择的模拟的示例包括ECU模拟504、电磁兼容性(EMC)模拟506,信号流模拟508,机械系统模拟510,机电模拟512以及网络模拟514。此外,虽然在本示例中示出了几个示例普通模拟使用情况,本领域技术人员利用在此的公开文本将清楚的是在其他示例中可以包括的其他类型的模拟。此外,用户可以将更多的模拟器添加到所选择的模拟配置,诸如使用附加模拟器的拖拽和放下,其中的附加模拟器例如可以从模拟器数据库等来选择。
另外,每个模拟类型502可以指示模拟类型的相关联保真度。例如,模拟的保真度可以指示模型或模拟再现现实世界组件、系统或处理的状态和行为的程度。因此,保真度可以被视为特定模型或模拟的现实性的指示。例如,假设用户按下或者选择机械系统模拟510。如在516所示,GUI 500可以呈现所选择的机械系统模拟510的保真度有关的信息,其示出在该示例中保真度是混杂的。当用户已经选择期望的模拟类型时,用户可以选择下一步按钮436来推进到下一阶段。
图6示出根据一些实施例的用于选择模型和定义模拟的连接所呈现的示例GUI600。假设在图5的GUI 500中,用户已经选择机械系统模拟510作为模拟应用类型,并且随后进行到GUI 600来定义连接、选择模型和上传文件,如流程图410中的突出显示的阶段416所示。如在602所示出,GUI 600使得用户能够对于模拟进行配置。在该示例中,已经添加了两个模拟器表示602和604。在一些情况下,模拟器表示602和604可以基于所选择的模拟应用来默认添加,而在其他的情况下,用户可以访问库来添加一个或多个模拟器。例如,第一模拟器602可以称为“设备模拟器”,第二模拟器604可以称为“处理器模拟器”或者用户所选择的任意其他的名字。因此,第一模拟器602可以被配置为虚拟“设备”,即由ECU控制的组件或系统,并且第二模拟器604可以被配置为处理器模拟器,即控制该设备的vECU。
模拟器602和604可以通过与真实世界连接的模拟对应的连接606来进行连接。例如,与实际的车辆组件和系统相似,一些种类的模拟器可以不进行连接,一些模拟器可以通过CAN总线来连接,一些通过信号总线,而一些通过其他类型的连接。在一些示例中,基于所选择的模拟应用,可用的连接类型可以限制到真实世界中可行的连接类型。例如,在该示例中,该选择限于无608、CAN总线610以及信号总线612。在该示例中,假设用户已经选择适合该模拟中的连接的信号总线612。
作为一个示例,假设模拟器602将用于模拟传动(即,机械系统),并且模拟器604可以是用于模拟传动控制单元(TCU)ECU的vECU。例如,现实世界的传动包括在信号总线上向现实世界TCU发送信号的一个或多个传感器,而不是在CAN总线上。因此,对于当前的模拟,选择虚拟信号总线612作为模拟器602和模拟器604之间的连接类型。另一方面,如果用户决定将另一vECU添加到该模拟,用户可以使用虚拟CAN总线610作为选择的连接来将模拟器604连接到添加的vECU。在一些示例中,GUI 600可以提示用户基于模拟器选择来选择何种连接类型。
另外,在此时,模拟器被标记为未完成,其可以指示用户尚未提供或选择模型文件以供GUI 600中呈现的每个模拟器602、604使用。可以针对每个模拟器602、604在GUI 600中呈现信息框。因此,针对第一模型602呈现第一信息框614,针对第二模型604呈现第二信息框616。每个信息框可以包括由用户进行选择的可选控制618,使得用户能够浏览和选择对应的模拟器所使用的一个或多个模型文件。另外,GUI 600可以包括总结区域620,其示出针对特定的模拟已经选择的所有模拟器,并且还可以包括返回按钮622,在用户想要返回到先前的界面,诸如用于改变在前的选择。
图7示出根据一些实施方式的用于选择模型文件所呈现的图6的GUI 600的示例。在该示例中,假设用户已经选择上述的可选控制618,用于选择一个或多个模型文件以添加到第一模拟器602。作为响应,在GUI 600中可以向用户呈现弹出窗口702等。用户可以使用弹出窗口702来浏览或者定位可以添加到模拟器602的一个或多个文件。在该示例中,假设用户选择了标题为“Transmission.xcn”的模型文件。用户可以选择该模型文件,点击“打开”将所选择的模型文件添加到模拟器602。在一些示例中,模型文件可以从用户的计算设备上传,而在其他的示例中,用户可以选择已上传并且与上述的模拟平台相关联地存储在存储区域或数据库中的模型文件。用户可以重复该过程,将多个模型文件添加到模拟器602。
图8示出根据一些实施例的用于选择模型文件所呈现的图6的GUI 600的示例。在该示例中,假设用户已经选择可选控制618,用于将一个或多个模型文件添加到第一模拟器602。作为响应,在GUI 600中可以向用户呈现弹出窗口802等。用户可以使用弹出窗口802来浏览或者定位可以添加到模拟器602的一个或多个文件。在该示例中,假设用户选择了标题为“mEngine_eclass.m”、“Pt_Transmission.ixd”、“PT_Transmission.mdl”、“Run_ft4wd_eclass.m”和“torq_conv_eclss.M”的五个模型文件804。在该示例中,用户可以通过选择在806处的“打开”,将所有已选择的模型文件添加到模拟器602。用户可以类似地将一个或多个模型文件添加到第二模拟器604。当一个或多个模型文件已经添加到模拟器602、604时,可以移除“未完成”指定。
图9示出根据一些实施例的用于验证端口配置所呈现的图6的GUI 600的示例。作为一个示例,假设针对第一模拟器602和第二模拟器604进行模型文件的下面的选择,用户选择下一步按钮436。作为响应,系统确定是否已经针对模拟器602和604配置端口。例如,当在模拟中使用虚拟的CAN总线时,通过限定方向和数据类型可以配置端口。因此,如果使用虚拟的CAN总线并且未配置端口,则系统可以呈现弹出窗口902来提示用户配置模拟器602和604的端口。如果用户已经配置端口,则用户可以选择虚拟控制940进行到下一步;另一方面,如果用户未配置端口,用户可以选择“配置端口”虚拟控制906来启动端口配置功能,诸如在新的浏览选项卡中。例如,如下面另外所述,对于包括多个vECU的模拟,虚拟CAN总线可以被配置并且可以使用TCP/IP等来启动多个vECU之间的通信。当用户已经完成配置这些端口时,用户可以进行到模拟创建的下一阶段。
图10示出根据一些实施例的用于设置模拟时间所呈现的示例GUI 100。在用户已经结束限定连接和上传模型文件之后,用户可以推进到如418所示的用于设置模拟时间的下一阶段,并且可以利用GUI 1000进行呈现。如1002所示,用户可以设置模拟的步长,例如以微秒或其他可选单位的数量。此外,用户可以选择模拟的结束时间,该结束时间可以控制执行模拟的全部时间。在该示例中,用户可以选择30秒的时间,如1004所示,但是对于其他类型的模拟可以使用其他单位的时间。通常,结束时间1004与模拟的执行时间不一致。例如,30秒的结束时间1004可以对应于实质上更长的模拟执行时间,例如分钟、小时或者更长。
在一些示例中,通过在指定的时间范围内以连续的时间步长来计算系统的状态,可以模拟动态的系统。因此,步长1002指示该状态应当多久计算一次,而结束时间1004指示计算模拟状态的时间范围。通常,步长越小,模拟更准确,但是取舍在于步长越小的模拟消耗更多的计算时间和/或更多的计算资源。此外,虽然在本示例中示出固定的步长,但是在其他示例中,用户可以针对一些类型的模拟来设置可变的步长。当用户已经完成设置步长和结束时间时,用户可以选择下一步按钮436来进行到下一阶段。
图11示出根据一些实施例的用于确认模拟所呈现的示例GUI 1100。在用户结束设置模拟结束时间和步长时间后,用户可以进行到如420所示的下一阶段,用于确认模拟并且提交模拟用于执行。可以利用GUI 1100向用户进行呈现,其可以向用户提供机会以检查和确认该模拟如用户所期望的进行配置。例如,用户可以确认所配置的模拟是如1102所示的混合保真度的机械系统模拟,如1104所示配置有两个模拟器,并且如1106所示该模拟被设置为特定的结束时间和步长。当用户确认模拟被适当地配置时,用户可以选择“执行模拟”虚拟控制1108。另一方面,如果用户期望进行变更,用户可以选择返回按钮622。另外,在一些情况下,用户可以提供或者已经提供参数扫描信息来启动自动进行经过多个参数的模拟,诸如以增量的方式。用户可以如下面关于图23至图24另外所述提供参数扫描信息,并且模拟平台可以用于利用所指示的参数来执行模拟。
图12示出根据一些实施例的用于选择模型文件所呈现的图11的GUI 1100的示例。在该示例中,假设用户已经选择执行模拟控制1108来执行模拟。在一些示例中,在GUI 1100中可以向用户呈现弹出窗口1202等。用户可以使用弹出窗口1202来选择执行类型1204,诸如“模拟”、“利用模型合并来模拟”、“保存(无模拟)”。例如,如果用户选择“利用模型合并来模拟”,模拟平台可以尝试将能够被合并的模型进行合并,诸如为了最小化执行模拟的许可需要。当用户已经做出执行类型1204的选择时,用户可以选择确定按钮1206来提供模拟用于执行。另一方面,如果用户决定不执行,或决定修改模拟,用户可以选择取消按钮1208。
上述示意图和描述提供了用于设置和连接模拟器的工具,可以将所有的模拟器自动汇集在具有模拟结束时间和模拟步长的一个全局入口的模拟中。例如,用户必须使用呈现出的GUI一次性地限定模拟时间,系统就可以自动并且全局地将定时数据添加到模拟中使用的所有模拟器。因此,诸如设计工程师的用户不必打开每个模拟器来将数据手动地输入到每个模拟工具中,这显著地节省了时间,尤其是当模拟中使用的模拟器数量增加时。
此外,GUI可以用于创建和保存模拟模板,这些模拟模板能够由原始的模板创建者重复使用或者与团队人员进行分享来改进整个团队的生产率。例如,在此的GUI中使用的预先添加的模板提供了设置模拟的有效技术,并且有助于设置对于复杂的汽车设计进行测试所使用的高保真度大规模模拟。另外,一些示例向用户提供在初始化模拟之前合并模型的选项。例如,通过将多个模型合并成一个模型,该模拟可以使用更少的软件许可来运行大型的模拟。虽然这样的合并会延长完成模拟的时间,但是这里网络计算资源的使用可以减少很多的性能损耗。另外,这里的实施方式可以在模拟开始之前执行对于所有输入数据和文件的全面检查,因此节省了时间、许可以及计算能力防止应用于可能失败的模拟。
此外,不是必须分别打开每个模拟器并且手动激活每个工具,这里的GUI将整个过程自动化,使得用户能够利用单个输入启动协同模拟,而不管复杂性。另外,原始数据和来自协同模拟中所使用的所有模拟器的图表测试结果可以合并在一个位置中。可以排除多个模拟器所产生的任何冗余的数据和图表。这种自动化而且流水线式的输出方法可以简化数据的分类和可视化,使得用户能够易于确定设计理念。该结果被下载用于另外的分析。另外,由于模拟平台是基于网络的,所以该模拟平台可以由用户从任何方便的位置获取到。
在此的模拟平台和GUI可以提供流水线式的模拟配置过程,其包括:将模拟器拖拽并放入模拟工作区;将模拟器进行连接以限定工具之间的模拟关系;选择连接器之间的连接类型;上传模拟设计配置;加载模拟模型;设置全局模拟时间和步长;以及利用单个按键动作或其他用户输入来初始化模拟。这里的GUI简化模拟过程,利用直接的指令来引导用户,启动拖拽和放下功能性,并且提供用户在配置过程中所处位置的可视化指示。用户能够通过在队列中查看他们的模拟并且监视启动时的完成百分比来跟踪过程。另外,用户能够回顾已合并的日志和结果,并且可以初始化参数扫描和重新运行。
这里的模拟平台能够即时地缩放,从而提供能够容纳复杂的协同模拟的基本不受限的计算资源。用户可以使用现有的模拟器软件许可或者可以通过模拟平台来支付许可。另外,如果用户的许可在由与用户相关联的其他设计者/模拟所使用,那么用户可以安排模拟作业在其他的作业完成并且许可变为可用之后稍后运行。
另外,这里的模拟平台启动测试多个高保真度的虚拟ECU,并且能够用于一次性验证多个基于高保真微处理器模型的虚拟ECU。在一些示例中,可以创建虚拟HILS(vHILS)环境,该虚拟HILS(vHILS)环境不仅启动更复杂的模拟,而且使得设计团队在开发过程中更早地测试大规模的系统配置,即在物理原型试验之前。因此,用户可以在车辆开发过程的架构和设计阶段测试高保真度、复杂的系统,并且可以避免原型试验开始之前的高成本的重复工作。另外,vHILS能力也能够使得用户显著地减少执行模拟的测量和分析阶段所需要的时间。例如,不像HILS方法需要大量的人力来使用示波器、通用测量表、以及其他测量设备,这里提供的vHILS方法包括虚拟的测量和分析设备(例如,镜、显示器等),这些虚拟的测量和分析设备可以自动地生成认识作为测量过程的部分,这可以显著减少时间、人力和错误的风险,即使随着模拟中的ECU数量增加。
这里的模拟平台提供了进行大规模协同模拟的标准格式和方法,其建立一致性,增强协同性并且提高了模拟结果的质量。例如,诸如设计团队的多个相关用户可以使用模拟平台来协同用于创建跨越不同群组的工程师的集成模拟,包括电气、机械、嵌入式计算、电磁、和/或NVH(噪声、振动、粗糙度)领域;引擎、制动、燃料组分、机架和/或传动系;设计、生产和或制造功能;OEM(原始设备制造商)、一级供应商和/或二级供应商。此外,用户可以从他们自己的团队和/或从供应商团队或消费者团队邀请同事来参与模拟。模拟平台启动跨域分享设置、工作流和结果。另外,用户可以创建能够由用户和他们的同事使用的模拟模板和模型的库。
图13、图21、图24、图26和图27是示出根据一些实施方式的示例过程的流程图。这些过程示出为逻辑流程图中的块的集合,这些块表示一系列的操作,一些或者所有块可以在硬件、软件或其组合中实施。在软件的背景中,块可以表示存储在一个或多个计算机可读介质上的计算机可执行指令,当由一个或多个处理器进行执行时,将处理器编程为执行所述的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述块所采用的顺序不应当理解为限制。任意数量的被描述的块能够以任何顺序和/或并行地组合来实施过程或者替换的过程,并且不需要执行所有的块。为了论述的目的,虽然这些过程可以在各种其他的环境、框架和系统中实施,参考在此的示例中所描述的环境、框架和系统来描述这些过程。
图13是示出根据一些实施方式的用于配置模拟的示例过程1300的示意图。在一些示例中,过程1300可以由网络计算资源102中所包括的一个或多个计算设备104或者其他合适的计算设备来执行。
在1302,一个或多个计算设备可以接收来自客户端计算设备的用户登录,并且可以向客户端计算设备发送引起控制板GUI的呈现的信息。例如,控制板可以示出与用户相关联的任何当前模拟作业的状态。
在1304,一个或多个计算设备可以从客户端计算设备接收模拟级别的选择(例如,组件级别、系统级别、车辆级别)。
在1306,一个或多个计算设备可以从客户端计算设备接收模拟类型的选择(例如,一次性模拟,工作流模拟)。
在1308,一个或多个计算设备可以从客户端计算设备接收应用类型的选择(例如,ECU、机械、电路、状态流)。
在1310,一个或多个计算设备可以从客户端计算设备接收模拟器的选择的指示和模拟器之间的连接类型的指示。
在1312,一个或多个计算设备可以针对所选择的模拟器来配置虚拟总线和/或其他虚拟连接,如上面参考图6所述。
在1314,一个或多个计算设备可以从客户端计算设备接收用于配置所选择的模拟器的模型文件的选择。
在1316,一个或多个计算设备可以检查接口一致性。
在1318,一个或多个计算设备可以从客户端计算设备接收模拟时间信息,诸如结束信息和步长。
在1320,一个或多个计算设备可以确认模拟设置。另外,在一些示例中,用户期望执行包括参数扫描的模拟,其中多个不同的参数自动地应用于模型。因此,用户可以提供参数扫描信息,如下面关于图23至图24另外所述,并且一个或多个计算设备可以用于使用所指示的参数来执行一个或多个模拟。
在1322,一个或多个计算设备可以确认许可并且执行模拟。例如,模拟管理者可以检查用户具有用于执行所选择的充足数量的模拟器的许可。如果用户具有充足数量的许可,但是一些当前用于另外的模拟,模拟管理者可以将作业延迟直到充足数量的许可可用为止。如果用户不具有充足数量的许可,那么模拟管理者可以使得网络接口发送消息到影响与用户相关联的客户端计算设备。另外,诸如基于“利用合并来执行”的用户选择,或者预设,一个或多个计算设备可以尝试合并能够进行合并的模型,诸如为了使得许可需要最小化和/或减少模拟执行的模型的数量。如下面关于图25和图26另外所述,使用相同许可和/或相同的模拟器的模型在一些情况下可以进行合并以减少执行模拟所需要的许可的数量。此外,模拟的执行可以至少部分地基于由用户指定的接收到的结束时间和步长,并且还可以基于针对参数扫描(如果适用)所提供的参数扫描信息。
在1324,在模拟的执行后,一个或多个计算设备可以将模拟结果存储在存储器中和/或发送该结果用于在客户端计算设备上进行呈现。
在一些示例中,上面的过程可以包括:通过一个或多个处理器向客户端计算设备发送信息,以使得客户端计算设备能够呈现图形化用户界面(GUI),并且经由GUI从客户端计算设备接收第一用户输入,该第一用户输入指示创建包括多个模拟器的模拟的指令,该多个模拟器在一些示例中可以包括至少两个处理器。该过程还可以包括:经由GUI从客户端计算设备接收模拟器之间的连接类型的指示;经由GUI从客户端计算设备接收与每个模拟器相关联的相应的模型文件的指示;分配用于执行模拟的计算资源;以及通过执行每个模拟器以执行与每个模拟器相关联的响应的模型文件来执行模拟。此外,分配用于执行模拟的计算资源可以包括分配每个模拟器的相应的虚拟机,还可以包括分配用于执行模拟控制器的虚拟机,其中模拟控制器用于进行以下中的至少一个:监视模拟的执行;或者使得模拟的结果发送到客户端计算设备。
因此,这里的模拟平台可以实质地减少总模拟处理时间(例如,在一些情况下高达80%)。此外,用户能够使用GUI来设置和初始化具有自动化过程和模板使用的大规模复杂的协同模拟。因此,这里的模拟平台通过使得大规模系统的模拟能够在开发过程中比利用在常规系统中更早地进行,来减少设计重复工作。此外,如上面所提到的,模拟平台可以在运行模拟之前合并模型,并且可以基于自动的许可分配来管理模拟器软件许可,从而监督多个模拟作业上的软件许可的有效使用。另外,模拟平台按需要来自动改变计算资源的大小从而满足不同大小的模拟作业的要求。模拟平台可以管理用户许可、虚拟机(VM)分配、存储器分配等。例如,用户可以利用在物理原型试验之前启动协同模拟大规模虚拟系统的vHTLS方法,在设计过程中较早地检测产品质量问题。此外,这里的模拟平台可以通过使用建立团队一致性和协作的标准模拟方法,来增强跨越团队、端对端模拟实践,同时通过显著地减少数据输入需要来减少人的错误。此外,模拟平台可以利用加密和多因素认证的能力来保护用户上传到平台的模拟模型数据和其他的信息。另外,网络计算资源提供的存储器可以采用企业级安全、灾难恢复和备份能力。
图14示出根据一些实施方式的示例协同模拟1400。例如,可以使用上面关于图3至图13所描述的GUI,在上面关于图1所述的模拟平台上配置协同模拟1400。图14的示例表示虚拟的多ECU高保真网络物理的多速协同模拟,其与实际的基于硬件的机动车嵌入式系统密切相似。该示例包括两个转换器/电机控制vECU1402和1404,和与仿真器1408耦合的CAN路由器vECU1406,其中的仿真器1408能够提供抽象的车辆级别的仿真CAN流量。例如,如下面另外所述,仿真器1408可以生成在模拟期间占据通信网络的仿真CAN通信量1410,与真实世界的系统类似。
诸如图14中所示包括多个ECU的模拟可以通过允许关于多个ECU、系统性能和所选择的微控制器和硬件组件的不同的E/E架构的比较和虚拟实验,来使能系统设计优化和车辆级别的设计优化。上面关于图1至图13所述的模拟创建方法和GUI可以用于创建协同模拟1400和/或其他期望的模拟。上面讨论的网络计算资源可以自动地改变大小以支持所创建的模拟启动在设计阶段早期进行组件级别、系统级别以及车辆级别的软件开发,从而显著地减少车辆的整体开发时间。
图14的模拟可以采用处理器模拟器,即如上所述(诸如关于图1)在此被称为vECU的ECU模型,其用于执行真实的二进制软件,该软件在其他情况下在真实世界的ECU中在真实的芯片上执行。这些vECU可以是对应的真实世界的ECU的非常准确、更低抽象度的表示,并且可以对应于特定品牌或类型的ECU。作为一个示例,各种不同ECU制造商的ECU的合适的vECU模型可以从位于加利福尼亚州山景市的新思公司(Synopsys Inc.)购得。例如,在一些情况下,vECU 1402和vECU 1404可以对应于从第一制造商可获得的第一品牌的ECU,vECU1406对应于从不同于第一制造商的第二制造商可获得的第二品牌的ECU。因此,在一些情况下,vECU 1402和vECU 1404具有不同于vECU 1406的至少一个性能参数。可替换地,在其他情况下,vECU 1402、vECU 1404、vECU 1406都使用相同的处理器模拟器。
图14的示例将多个vECU合并在一起,并且使用虚拟的控制器局域网(CAN)总线将这些vECU整合起来,与在车辆中真实世界的ECU被整合用于相互通信的方式相似。通过模拟这样的虚拟的多ECU框架,图14的示例可以用于执行针对速度和性能的E/E设计优化,以及硬件的选择。此外,使用在此的模拟平台,图14的示例可以扩展至包括附加系统的并行协同模拟和/或整个车辆级别的多ECU协同模拟。例如,如下面关于图18另外所述,该示例中的仿真器1408可以由一些示例中的多个附加vECU来代替。
在该示例中,通过虚拟的CAN总线1412来启动多个vECU之间的模拟通信。例如,协同模拟1400中在vECU 1404上执行的虚拟CAN路由器1414可以管理虚拟CAN总线1412上的多个车辆级别的vECU通信。此外,vECU1402和vECU 1404之间的系统级别的vECU通信可以基于协同模拟通信的配置,诸如可以从位于伊利诺伊州的芝加哥市ChiasTek公司购得。例如,协同模拟总线的第一示例1416可以利用vECU 1402来实施,协同模拟总线的第二示例1418可以利用vECU 1404来实施,而协同模拟总线的第三示例1420可以利用仿真器1408来实施。
vECU 1402可以被连接用于与第一设备模拟器进行通信,在本示例中是高保真度转换器/电机模型的第一示例1422。另外,vECU 1404可以被连接用于与第二设备模拟器进行通信,其可以是高保真度转换器/电机模型的第二示例1424。例如,如1426和1428分别所示,高保真度转换器/电机模型1422和1424可以通过与上述信号总线连接(例如,关于图6)对应的直接的协同模拟,与对应的vECU 1402和vECU 1404进行通信。作为直接的协同模拟的示例,高保真转换器/电机模型1422可以在与vECU 1402相同的虚拟机上执行,而高保真转换器/电机模型1424可以在与vECU 1404相同的虚拟机上执行。下面关于图15讨论直接的协同模拟的附加细节。
此外,vECU 1402可以执行第一电机控制器1426的软件,而vECU 1404可以执行第二电机控制器1428的软件。因此,例如,协同模拟1400可以用于测试电机控制器1426和1428,诸如用于确定电机控制器1426和1428对于外部控制信号如预期做出响应,如预期进行相互作用,并且如预期向相应的高保真转换器/电机模型输出控制信号。
如上所述,在一些示例中,vECU 1402、vECU 1404和vECU 1406中的每个可以在由图1的模拟平台108所提供的分开的虚拟机上执行。例如,vECU 1402、协同模拟总线示例1416和高保真度转换器/电机示例1422可以在第一虚拟机110(1)上执行;vECU 1404、协同模拟总线示例1418和高保真度转换器/电机模型示例1424可以在第二虚拟机110(2)执行;vECU 1406可以在第三虚拟机110(3)上执行;并且仿真器1408和协同模拟总线示例1420可以在第四虚拟机110(4)上执行。在其他的示例中,可以使用虚拟机和/或物理机的其他配置。
如上所述,仿真器1408可以是用于模拟在CAN总线1432上进行通信的多个ECU1430(1)、1430(2)、……1430(H)的车辆级别的CAN流量的模拟器。作为一个示例,仿真器1408可以从位于密歇根州的特洛伊市的Symtavision公司获得。仿真器1408可以经由协同模拟总线1420在虚拟的CAN总线1412上传递车辆级别的仿真CAN通信量。另外,仿真器1408可以用于在虚拟的CAN总线1412上发送用于控制高保真度转换器/电机模型1422、1424的虚拟速度的一个或多个速度设置点1434。虚拟CAN路由器1414可以将速度设置点1434作为有效载荷从仿真器1408接收CAN消息,并且将该CAN消息传播到具有相应的CAN标识符(ID)的vECU 1402和vECU 1404中的每一个。例如,虚拟CAN总线1412上的每个vECU可以被指定关于虚拟CAN总线1412唯一的或者单独可区分的CAN ID。在该示例中,vECU 1402与CAN ID 0x74相关联,vECU 1404与CAN ID 0x75相关联,并且vECU 1406与CAN ID 0x30相关联。
虚拟CAN总线1412和虚拟CAN路由器1414可以根据连接虚拟机110(1)-110(4)的网络类型,使用TCP/IP协议来传递CAN通信,诸如在以太网、光纤等上。在该示例中,仅使用一个虚拟的CAN总线;然而,在其他的示例中,路由器可以用于模拟多个CAN总线。此外,在图14中,在CAN路由器vECU1406和虚拟CAN总线1412之间示出直接连接,而其间不存在协同模拟总线。这可以通过使用vECU 1406本身来托管其他的vECU 1402和vECU 1404以及仿真器1408经由相应的协同模拟总线1416、1418和1420进行接口的CAN总线1412来完成。当虚拟CAN路由器1414从仿真器1408接收到速度设置点1434,虚拟CAN路由器1414可以使用它们相应的CAN ID来将该通信传播到vECU 1402和vECU 1404两者。协同模拟1400的一个示例输出可以是示出每个设备模拟器1422、1424的三相转换器/电机速度控制输出。
图15示出根据一些实施方式的电机控制器1426和高保真度转换器/电机模型1422之间的交互的示例1500。例如,设备模型可以具有来自真实的转换器/电机产品的数据的特征,诸如可以从位于肯塔基州哈罗兹堡市的日立汽车系统美国公司可获得。在该示例中,第一组信号1502可以是由vECU 1402上执行的电机控制器1426生成的中心对准的脉宽调制(PWM)输出。此外,第二组信号1504可以是到达电机控制器1426的三相电流和受控速度(反馈)的模数转换器(ADC)输入信号。
在该示例中,使用共享存储器的直接的协同模拟的接口可以用于以点对点的方式启动连接和协同模拟处理器模拟器、vECU 1402和设备模拟器1422。在所示示例中,该共享存储器的直接的协同模拟的接口可以呈现为虚拟机系统接口1506。可以相似地配置vECU 1404与高保真度转换器/电机模型1422之间的直接的协同模拟。
图16示出根据一些实施方式的图14的协同模拟中的CAN路由器和虚拟CAN总线的操作的示例1600。如上所述,vECU 1402和vECU 1404各自具有相应的静态指定的CAN ID,即分别为0x74和0x75。另外,vECU 1406也具有静态指定的CAN ID,0x30。虚拟CAN路由器1414可以将速度设置点1434作为有效载荷从仿真器1408接收CAN消息,并且可以将该消息传播到具有相应的CAN ID的vECU 1402和vECU 1404。CAN路由器vECU 1406可以连接到模拟的两个不同的层,一个在车辆级别具有低保真度,一个在系统级别具有高保真度。这可以提供汽车E/E架构的一部分的非常实际的使用情况。另外,在该示例中的车辆级别的模拟可以是抽象多ECU车辆级别CAN通信量仿真器1408,而系统级别模拟包括高保真度转换器/电机模型1422、1424和工作在较低抽象水平且高保真度的电机控制器1426和1428。
CAN路由器在静态定义的路由器CAN ID 0x30处接收发送到虚拟CAN总线1412的CAN消息,将消息进行复制,并且将消息在虚拟CAN总线1412上发送到vECU 1402和vECU1404。各个vECU 1402和vECU 1404接收相应的消息,并且利用从CAN消息有效载荷获得的目标速度设置点来执行相应的电机控制器1426和1428。
另外,对于车辆级别的仿真CAN流量1410,协同模拟期间产生的大多数的帧不包含实际的信号数据。相反,有效载荷的规格可以通过仅定义包含在每个帧中的最小和最大量的数据(例如,以字节)来以更抽象的水平实现。另外,帧可以被指定正确的CAN ID和精确的激活图案,因此可以在模拟期间占据包括虚拟CAN总线1412的通信网络,正如在真实世界系统中。在仿真器1408中,所有的ECU 1430可以是黑箱容器,使得仅仅它们联网接口处的行为包括在仿真器模型中。因此,黑箱容器所采用的建模方法可以不使用真实的帧有效载荷的规格,而只是最小和最大有效载荷大小的定义。为了将这些黑箱模型与功能性的vECU1402、1404和1406进行接口,使用CAN ID的专用接口帧可以被指定特定的帧,或者一系列值,以及传送图案(如每10ms一次)。这提供了从不是高保真度模型的一部分的车辆中的ECU引发设置值的能力。相反地,由vECU 1402、1404和1406发送的帧可以通过仿真器1408来消耗。
如图16所示,电机速度设置点1434通过虚拟CAN总线1412从仿真器1408发送到虚拟CAN路由器1414。虚拟CAN路由器1414接收该电机速度设置点1434,对该消息进行解码,并且生成在虚拟CAN总线1412上发送回去的具有相同有效载荷的两个复制的输出CAN消息。第一电机速度设置点消息1602使用CAN ID 0x74,因此在vECU 1402被接收到,并且第二电机速度设置点消息1604使用CAN ID 0x75,因此在vECU 1404被接收到。
图17示出根据一些实施方式的包括多个物理计算设备的系统1700上配置的图16的协同模拟配置的示例。例如,系统1700可以至少包括第一计算设备1702和第二计算设备1704。vECU 1402和vECU 1406、仿真器1408、虚拟CAN总线1412、以及转换器/电极模型1422可以用于在第一计算设备1702上执行,而vECU 1428和转换器/电机模型1424可以用于在第二计算设备1704上执行。第一计算设备1702和第二计算设备1704可以用于通过连接1706进行通信,其中的连接1706可以是直接连接、LAN或上述一个或多个网络124中的任意网络。例如,连接1706可以是以太网连接,并且协同模拟总线1418可以在连接1706上与虚拟CAN总线1412和协同模拟总线1416和1420相互通信。因此,速度设置点1604可以通过连接1706如同通过CAN总线发送到vECU 1404,如下面关于图16所述。
计算设备1702和1704可以是各种物理计算设备中的任何设备,诸如个人计算机、服务器、工作站、膝上型计算机等。在一些示例中,模拟器和仿真器可以直接在计算设备1702和1704上执行。在其他的示例中,计算设备1702和/或1704可以实现虚拟机,并且模拟器和仿真器可以在虚拟机上执行。此外,作为另一替代,vECU 1406和/或仿真器1408可以在与vECU 1402分开和/或相互分开的一个或多个附加的物理计算设备上执行。利用在此的公开内容,本领域技术人员将清楚各种其他的变型。
图18示出根据一些实施方式的包括多个vECU的示例协同模拟1800。在该示例中,上面关于图14所描述的协同模拟被改变为移除仿真器1408,并且添加多个vECU 1802(1)-1802(N),其中每个vECU可以在分开的虚拟机110(4)-110(J)上实现。此外,每个vECU 1802(1)-1802(N)可以具有协同模拟内唯一的或者单独可区分的相关联的CAN ID。另外,多个vECU 1702(1)-1802(N)中的一些或者全部可以具有安装在其上用于执行的设备控制器,诸如设备控制器1804(1)-1804(N)。另外,vECU 1802(1)-1802(N)中的一些或者全部可以具有连接的设备模拟器,诸如设备模拟器1806(1)-1806(N)。此外,vECU 1802(1)-1802(N)中的一些或者全部可以进行连接用于与虚拟CAN总线1412、或另一虚拟CAN总线、协同模拟总线的示例多个1808(1)-1808(N)进行通信。
使用图3至图12中所述的GUI如上面所述可以创建协同模拟1800。另外,vECU 1802中的一个或多个可以执行控制器,该控制器用于将速度设置点1434发送到诸如用于转发到vECU 1402和1404的虚拟CAN路由器1414。另外,其他的vECU 1802可以执行其上安装的控制器软件等来模拟车辆中的系统的其他组件。因此,当执行协同模拟1800时,实际的车辆级别CAN通信量1810遍历虚拟CAN总线1412,提供车辆级别的协同模拟。协同模拟1800的一个输出示例是示出三相转换器/电机速度控制输出的图表,但是根据安装的软件类型和连接到的设备模拟器的类型,可以从其他的vECU 1802(1)-1802(N)生成多个其他的输出。
图19示出根据一些实施方式的网络计算资源的物理层的示例架构1900。架构1900包括能够在一个或多个网络1902上相互通信的多个物理计算设备104。在一些示例中,一个或多个网络1902可以是LAN,而在其他的示例中,该一个或多个网络可以是上面关于一个或多个网络124所述的任意类型的网络。计算设备104可以可选择地用于执行一个或多个指定的功能作为网络计算资源102的一部分。例如,一个或多个联网计算设备1904可用于在一个或多个网络124上发送和接收通信;一个或多个管理计算设备1906可以用于管理全部的网络资源;一个或多个存储计算设备1908可以用于管理存储器106上的数据的存储;并且多个工作者计算设备1910(1)-1910(L)可配置用于执行各种功能,诸如用于提供作为分配的网络计算资源来使用的虚拟机或物理机。
另外,在可替换的配置中,联网计算设备1904、管理计算设备1906、和/或存储计算设备1908中的一些或者全部可以作为虚拟机来实现。此外,虽然在此已经讨论的几个示例系统架构,但是利用在此的公开内容,本领域技术人员将清楚许多其他的系统架构。
存储器106可以包括用于信息存储的任意类型的技术并且可以包括多个存储设备1912。例如,存储设备1912可以包括但不限于闪速存储器或其它的存储器技术、光存储器、固态存储器、磁带、磁盘存储器、RAID存储系统、存储阵列、附接网络的存储器、存储局域网络、或者能够用于存储信息并且能够通过计算设备进行访问的任意其他的介质。根据存储器106的配置,存储器设备1912可以是有形的非瞬态计算机可读介质,当提及时,非瞬态计算机可读介质排除诸如能量、载波信号、电磁波和/或每秒的信号的介质。
图20示出根据一些实施方式的示例计算设备104的选择组件。在一些示例中,计算设备104可以包括一个或多个服务器,或者可以以任意多种方式嵌入的其他类型的计算设备。例如,在是服务器的情况下,虽然可以另外地或替代地使用其他的计算架构,模块、其他功能组件以及数据存储器可以实施在单个服务器、服务器集群、服务器场或数据中心等。在所示的示例中,计算设备104可以包括或者关联一个或多个处理器2002、存储器2004、一个或多个通信接口2006、存储器接口2008、一个或多个本地存储设备2010以及总线2012。
每个处理器2002可以是单个处理单元或者多个处理单元,并且可以包括单个或多个处理单元,或者多个处理核。处理器2002能够实现为一个或多个中央处理器、微处理器、微计算机、微控制器、数字信号处理器、状态机器、逻辑电路、和/或基于操作指令来操纵信号的任何设备。例如,处理器2002可以是特定编程或配置为执行在此所述的处理和算法的任意合适类型的一个或多个硬件处理器和/或逻辑电路。处理器2002能够用于取出和执行存储器2004中所存储的计算机可读指令,该计算机可读指令能够将处理器2002编程为执行在此所述的功能。处理器2002和其他示出的组件之中的数据通信可以经由总线2012或其他合适的连接来发送。
本地存储设备2010可以处于与计算设备104相同的位置,并且可以用于至少暂时地存储数据。在一些示例中,除了本地存储设备2010之外或者代替本地存储设备2010,计算设备104可以使用上面所述的存储器106。存储器接口2008可以提供原始数据存储,以及到本地存储设备2010和/或存储器106的读取/写入接入。
上面所述的存储器2004、本地存储设备2010、以及存储器106(在图20中未示出)是计算机可读介质2014的示例。这样的计算机可读介质2014可以包括以用于存储信息的任意类型的技术来实现的易失性和非易失性存储器和/或可移除和不可移除介质,诸如计算机可读指令、数据结构、程序模块或其他数据。例如,计算机可读介质2014可以包括,但不限于RAM、ROM、EEPROM、闪速存储器技术、光学存储器、固态存储器、磁带、磁盘存储器、RAID存储系统、存储阵列、附接网络的存储器、存储局域网络、或者能够用于存储信息并且能够通过计算设备进行访问的任意其他的介质。根据计算设备104的配置,计算机可读介质2014可以是计算机可读存储介质的类型和/或可以是有形的非瞬态计算机可读介质,当提及时,非瞬态计算机可读介质排除诸如能量、载波信号、电磁波和/或每秒的信号的介质。
计算机可读介质2014可以用于存储通过处理器2002可执行的任意数量的功能组件2016。在一些实施方式中,这些功能组件2016包括指令或程序,这些指令和程序通过处理器2002可执行,并且当被执行时,特别地将处理器2002配置为执行在此所归属到计算设备104的动作。另外,在一些示例中,计算机可读介质2014可以包括虚拟机软件2018,诸如可从加利福尼亚州的帕罗奥多的VMware公司获得,使得能够在计算设备104上实现一个或多个虚拟机。此外,计算机可读介质2014可以包括用于控制和管理计算设备104的各种功能的操作系统2020。
另外,计算机可读介质2004可以存储用于执行在此所述的功能和服务所使用的数据和数据结构。计算设备104也可以包括或者保存其他组件和数据,其中可以包括程序、驱动器等以及相关联的数据。此外,计算设备104可以包括许多其他的逻辑的、编程的和物理的组件,其中上面所述的那些仅是与在此进行的讨论相关的示例。
通信接口2006可以包括用于启动与各种其他的设备诸如在一个或多个网络124上进行通信的一个或多个接口和硬件组件。例如,通信接口2006可以通过一个或多个LAN、WAN、互联网、线缆网络、蜂窝网络、无线网络、有限网络(例如,光纤、以太网、光纤信道)、直接连接等来启动通信,如在此其他位置另外列举。
此外,虽然图20示出存在于单个位置的计算设备的数据和组件,这些组件和数据可替换地以任何方式在不同的计算设备和不同的位置进行分配。因此,这些功能可以通过一个或多个计算设备来实现,上述各种的功能性以各种方式在不同的计算设备进行分配。所描述的功能性可以通过单个实体或企业的服务器来提供,或者可以通过多个不同企业的服务器和/或服务来提供。另外,客户端计算设备122、管理计算设备132、和/或计算设备1702和1704可以包括与上面描述的那些相似的硬件配置,但是可以包括不同的功能组件、软件等。
图21是示出根据一些实施方式的用于执行模拟的示例过程2100的流程图。在一些示例中,过程2100可以由与网络计算资源相关联的一个或多个计算设备来执行,或者其他合适的计算设备。
在2102,一个或多个计算设备可以从客户端计算设备接收用于配置协同模拟的一个或多个输入,该协同模拟至少包括第一处理器模拟器和第二处理器模拟器。
在2104,一个或多个计算设备可以分配计算资源,包括用于执行第一处理器模拟器的第一虚拟机和用于执行第二处理器模拟器的第二虚拟机。
在2106,一个或多个计算设备可以基于连接类型的用户选择,来配置第一处理器模拟器与第二处理器模拟器之间的虚拟总线,从而确定第一处理器模拟器与第二处理器模拟器之间的通信。
在2108,一个或多个计算设备可以接收第一处理器模拟器将要执行第一模型文件和第二处理器模拟器将要执行第二模型文件的指示。
在2110,一个或多个计算设备可以在第一虚拟机上执行第一处理器模拟器和第一模型文件。
在2112,一个或多个计算设备可以在第二虚拟机上执行第二处理器模拟器和第二模型文件。
在2114,一个或多个计算设备可以使得模拟的结果被发送到客户端计算设备。
在一些示例中,诸如图1中所述的系统可以包括用于执行上述处理的一个或多个处理器,并且可以执行包括第一处理器模拟器和第二处理器模拟器的协同模拟,使得至少一个通信在第一处理器模拟器和第二处理器模拟器之间通过。在一些示例中,协同模拟还可以包括第一设备模拟器和第二设备模拟器,并且一个或多个处理器可以在第二设备模拟器和第二处理器模拟器之间配置第二虚拟连接。另外,虚拟总线可以是虚拟控制器局域网总线,其用于使用TCP/IP协议进行来操作,并且第一虚拟连接和第二虚拟连接可以配置为使用共享存储器的直接的协同模拟接口。此外,一个或多个处理器可以在用于执行虚拟路由器的第三虚拟机上配置第三处理器模拟器,用于经由虚拟总线接收通信并且用于向第一处理器模拟器或第二模拟器中的至少一个处理器模拟器发送通信。
另外,一个或多个处理器可以配置能够与虚拟总线进行通信的第四虚拟机。第四虚拟机可以用于执行以下中的至少一个:用于发送控制信号的第四处理器模拟器,其中的控制信号用于控制第一设备和第二设备中的至少一个设备,其中路由器用于接收控制信号并且将控制信号发送到第一处理器模拟器或第二处理器模拟器中的至少一个;或者用于经由虚拟总线发送虚拟总线通信量的仿真器。
另外,在从客户端计算设备接收一个或多个输入之前,一个或多个处理器可以向客户端计算设备发送用于在客户端计算设备上呈现GUI的信息,GUI包括启动协同模拟的配置的选择的虚拟控制。一个或多个处理器可以经由GUI从客户端计算设备接收用于配置模拟的一个或多个输入。此外,一个或多个处理器可以经由GUI从客户端计算设备接收时间信息,该时间信息指示用于协同模拟的至少一个结束时间;可以经由GUI从客户端计算设备接收请求执行协同模拟的指示;并且至少部分响应于接收到该指令,可以根据时间信息来执行协同模拟。另外,一个或多个处理器可以在计算设备中的一个计算设备上分配附加的虚拟机,并且可以在附加的虚拟机上执行模拟器控制器。例如,模拟控制器可以用于以下的至少一个:监视模拟的执行;或者使得模拟的结果发送到客户端计算设备。
另外,该系统可以包括多个物理计算设备和存储器。一个或多个物理设备可以被编程为:从客户端计算设备接收包括第一处理器模拟器和第二处理器模拟器的模拟的指示;在一个或多个物理设备上分配用于第一处理器模拟器的第一虚拟机和用于第二处理器模拟器的第二虚拟机;配置第一处理器模拟器和第二处理器模拟器之间的虚拟连接;接收第一处理器模拟器将要执行第一模型文件和第二处理器模拟器将要执行第二模型文件的指示;在第一虚拟机上执行第一处理器模拟器和第一模型文件;以及在第二虚拟机上执行第二处理器模拟器和第二模型文件。该系统可以包括配置在虚拟机中的一个虚拟机上的设备模拟器,并且一个或多个物理计算设备可以编程为配置设备模拟器与第一处理器模拟器之间的虚拟连接,使得虚拟连接是采用共享存储器的直接协同模拟连接。一个或多个物理计算设备还可以被编程为将处理器模拟器之间的虚拟连接配置为使用TCP/IP的协同模拟总线。
图22示出根据一些实施方式的包括模拟管理计算设备和多个模拟计算设备的示例配置2200。此外,如上面所提及,模拟计算设备252和/或模拟管理计算设备237中的一些或者全部可以是虚拟机,或者这些计算设备中的一些或者全部可以是分开的物理计算设备。作业路由器236可以部分基于作业类型、作业参数、可用许可、和/或可用的计算资源,将新模拟作业转发到模拟执行主机238。
模拟执行主机238可以作业委托给模拟执行工作者244(1),其可以是各自用于执行分开的模拟作业的多个模拟执行工作者中的一个。在一些示例中,参数扫描主机240可以在模拟执行主机238将模拟作业提供给模拟执行工作者244(1)之前确定模拟作业所使用的参数。另外,或者可替换地,模型合并主机242可以在在模拟执行主机238将模拟作业提供给模拟执行工作者244(1)之前合并模拟作业将要使用的一个或多个模型。
模拟执行工作者244(1)可以分配一个或多个模拟计算设备252作为执行模拟所使用的计算资源,诸如基于模拟所需要的模拟器的数量。此外,模拟执行工作者244(1)可以分别在每个分配的模拟计算设备252上设置模拟控制器248,用于控制相应的模拟计算设备252上的模拟作业。例如,模拟执行工作者244可以分配多个虚拟机作为模拟计算设备252(1)-252(K)来执行模拟作业的模拟器254(1)-254(J)。每个模拟器254可以包括或者获取一个或多个模型文件(在图22中未示出)。因此,在该示例中,假设模拟器254(1)、254(2)、……将要在模拟计算设备252(1)上执行,并且模拟器254(H)-254(J)将要在模拟计算设备252(K)上执行。当参与模拟时,每个模拟控制器248向模拟执行工作者244(1)报告并且从其接收命令。
每个模拟计算设备252上的模拟控制器248可以针对将要在相应的模拟计算设备252上执行的每个分开的模拟器254来设置分开的工作者过程2202。因此,模拟器控制器248(1)可以分别针对模拟器254(1)、254(2)、……来设置工作者过程2202(1)、2202(2)、……。模拟控制器248(K)可以分别针对模拟器254(H)、……254(J)来设置工作者过程2202(H)、……2202(J)。另外,模拟控制器248可以从存储位置获得一个或多个模型文件,用于由模拟控制器248控制的每个相应的模拟器254来执行。例如,模拟器控制器248(1)-248(K)可以从特定的存储器位置请求在模拟作业信息中识别出的模拟文件。在工作者过程2202中,模拟控制器248可以在模拟期间发起、监视、终止和清除相应的模拟计算设备252上执行的所有模拟的工作区。另外,在模拟器254的启动、监视和终止期间,每个模拟控制器器248可以向模拟执行工作者244(1)发送报告,模拟执行工作者244(1)协调或者指示跨越所有参与的模拟计算设备252的模拟处理。
作为一个示例,如果模拟器中的一个失败,对应的模拟控制器248可以向模拟执行工作者244(1)通知该失败,使得模拟执行工作者244(1)可以关闭模拟的剩余部分并且为其他用户释放计算资源直到该模拟能够被修正、重启等。可替换地,模拟执行工作者244(1)可以确定失败发生在特定的模型在失败的模拟器上的执行完成之后,并且可以继续模拟的其他部分的执行。因此,模拟执行工作者244(1)可以跨越所有参与的模拟计算设备252(1)-252(K)来管理模拟的执行。
图23示出根据一些实施方式的关于参数测试组有关的参数扫描信息的示例2300。在该示例中,假设用户想要使用不同的参数组来测试模拟系统,用于确定例如模拟系统的最优性能。例如,假设用户想要建立针对多个模型的参数组,其中的多个模型针对不同模拟器供应商所提供的多个不同的模拟器二建立。因此,用户可以针对特定模拟器上执行的特定模型来指定模拟可以扫描或者穿过的参数组。例如,用户可以设置参数扫描,该参数扫描将利用给定的参数组,以(1)具有递增步长的范围或(2)待测试的分立的值列表中的至少一个形式来将模型实例化。
在图23的示例中,假设用户已经针对模拟中所包括的模型A和模型B设置参数扫描配置2302,其中的模拟可以或者可以不包括其他的模型和模拟器。例如,模型A可以包括两个或更多个参数。这些参数中的两个被配置用于参数扫描,也就是R1被配置为以10kΩ的增量从5kΩ扫描到15kΩ,而参数L1被配置为以10mH的增量从10mH扫描至20mH。另外,模型B可以包括一个或多个参数。这些参数中的一个参数C2被配置为以1μF的增量从1μF扫描至2μF。基于这些来自用户的输入,模拟平台可以确定基于不同范围和不同增量的多个参数测试组。在所示示例中,八个测试组2304(1)-2304(8)被确定,每个测试组包括在模拟中进行测试的不同组数据。在其他的示例中,诸如在更小增量或更大范围的情况下,更大量的测试组可以被确定用于测试参数R1、L1和C2的所有可能组合。
此外,在一些情况下,这里的模拟平台可以自动地执行利用不同的参数组进行并行地实例化的模型,诸如通过将这些不同的参数应用在不同虚拟机上实例化的模拟器上。另外,模拟平台可以支持交叉供应商,协同模拟期间执行的多模型参数扫描。例如,模拟平台可以使得第一模拟器进行模型A的第一参数的X值的扫描,第二模拟器进行模型B的第二参数的Y值的扫描,以及第三模拟器进行模型C的第三参数的Z值的扫描等。因此,模拟平台可以生成X×Y×Z个执行来测试出待扫描的三个参数的可能组合。此外,如图23所示,模拟平台可以执行每个模型中多于一个参数的扫描和/或协同模拟中的多个模型的参数的扫描。
图24示出根据一些实施方式的用于执行包括参数扫描的模拟的示例过程2400的示意图。过程2400可以通过与网络计算资源相关联的一个或多个计算设备或者其他适合的计算设备来执行。例如,至少一部分过程2400可以通过上面关于图2和图22所述的参数扫描主机240的执行来进行。
在2402,一个或多个计算设备可以接收模拟的执行所使用的参数扫描信息。例如,参数扫描信息可以针对被选择进行扫描的每个参数,包括以下的至少一个:参数的范围和增量;或者参数值的集合。
在2404,一个或多个计算设备可以初始化并且进行索引,诸如N=1。
在2406,一个或多个计算设备可以读取所选择的模型N的扫描信息,并且假设在模型N中扫描K个参数,扫描的每个参数可以具有以(范围&增量)或分立的列表给出的Xk个可能的值。
在2408,一个或多个计算设备可以生成参数P的参数值的X列表,诸如基于可用的(范围&增量)或分立的列表。
在2410,一个或多个计算设备可以摆脱并且在X列表之外进行组合,并且生成模型N的MN=X1×X2×...×XK参数集合。
在2412,一个或多个计算设备可以创建模型N的MN个副本,并且利用不同的参数集合来进行实例化。
在2414,一个或多个计算设备可以确定是否已经接收到参数扫描信息的所有模型是否已经被处理。
在2416,如果已经接收到的参数扫描信息所针对的所有模型尚未被处理,一个或多个计算设备可以将索引N增加进行到下一模型。
在2418,另一方面,如果已经接收到参数扫描信息所针对的模型已经被处理,一个或多个计算设备可以打乱来自所有模型的所有参数集合并且在之外进行组合,并且创建M1×M2×...×MN协同模拟用于测试。
图25示出根据一些实施方式的模型合并的示例2500。如上所述,这里的一些实施方式可以启动需要支付许可费用的专属模拟器的使用,诸如针对模拟器的每次使用进行支付,对于模拟器在特定时期的使用等。例如,当执行模拟时,模型可以在模拟器上执行一段时间直至生成最后的结果。在该执行期间,执行的模拟器可以专门占用对应的许可。此外,其他用户在能够执行他们自己的模拟之前,必须等到许可变为可用。此外,当执行协同模拟时,可以使用多个类型的模拟器和副本,并且可以发生诸如个体、公司、用户群组或其他实体的用户可以不具有足够大量的许可来执行大规模和其他期望的逻辑。在这里的一些示例中,不是必须购买额外的许可,用户能够将多个较小的模型结合或者合并成单个较大的模型,由此减少执行模型所需要的许可的数量。因此,即使仅有一个许可可用,合并使得能够使用相同的模拟器,利用多个模型来执行大型的协同模拟。另外,即使在可用许可的数量充足时,模型合并可以通过使得不必要消耗的许可对于其他用户可用,来减少许可的不必要消耗并且有助于提高整体效率。
如图25所示,假设针对特定模拟已经配置第一模型2502和第二模型2504,并且第一模型2502和第二模型2504使用相同的模拟器A。因此,第一模型2502和第二模型2504都需要许可来使用模拟器A用于执行。如果未执行模型合并,第一模型2502可以由第一模拟器A示例2506来执行,并且可以使用第一许可2510用于第一模拟器A示例。类似地,第二模型2504可以由第二模拟器A示例2508来执行并且使用第二许可2512用于第二模拟器A示例。
在一些示例中,第一模型2502和第二模型2504可以合并为已合并的第三模型2514。例如,该合并可以包括识别能够使用相同许可的模型,诸如通过使用相同的模拟器用于执行。标头可以从被合并的模型移除,并且模型核可以放置在能够执行多个模型的包装2516中,顺次地、可替换地或并行中的至少一个,这可以至少部分根据模拟器的能力。
图26是示出根据一些实施方式的用于模型合并的示例过程2600的流程图。过程2600可以由与网络计算资源相关联的一个或多个计算设备或者其他合适的计算机设备来执行。例如,过程2600的至少一部分可以通过上面关于图2和图22所述的模型合并主机242的执行来进行。
在2602,一个或多个计算设备可以识别使用相同的许可或相同的模拟器的模型的群组。例如,计算设备可以确定使用第一许可和/或第一模拟器的两个或多个模型的第一群组,使用第二许可和/或第二模拟器的两个其他的模型的第二群组等。作为一个示例,模型本身可以包括每个模型兼容的模拟器版本的信息,并且与相同的模拟器版本兼容的模型通常被假定能够进行合并。
在2604,一个或多个计算设备可以初始化索引N=1。
在2606,一个或多个计算设备可以扫描模型N的模型文件从而:(1)移除标头,(2)将模型核心定义打包为已合并的模型的模块,并且(3)保存模块N,诸如在缓存中。在一些示例中,扫描模型文件可以包括确定每个模型的组件和连接的列表,以便在已合并的模型内到每个模型的输入和来自每个模型的输出可以被适当地导向。
在2608,一个或多个计算设备可以确定相同许可的所有模型是否已经被处理。
在2610,如果相同许可的所有模型尚未被处理,一个或多个计算设备可以将索引N增加一从而进行到下个模型N。
在2612,如果相同许可的所有模型已经被处理,一个或多个计算设备可以将所有已保存的模块1至N移动到已合并的模型文件中以供协同模拟使用。
在2614,一个或多个计算设备确定是否存在可以针对其他许可和/或模拟器进行合并的其他模型群组。
在2616,如果存在可以针对其他许可和/或模拟器进行合并的其他模型群组,一个或多个计算设备可以针对下一个模型群组重复块2602-2610。
在2618,如果不存在可以针对其他许可和/或模拟器进行合并的其他模型群组,一个或多个计算设备可以利用一个或多个已合并的模型来执行协同模拟。
图27是示出根据一些实施方式的用于执行包括多个模拟器的模拟的示例过程2700的流程图。过程200可以由与网络计算资源相关联的一个或多个计算设备或者其他合适的计算设备来执行。
在2702,一个或多个计算设备可以从客户端计算设备接收用于配置协同模拟的一个或多个输入,该协同模拟至少包括第一模拟器和第二模拟器。例如,一个或多个输入可以经由呈现在客户端计算设备上的GUI来接收。
在2704,一个或多个计算设备可以分配计算资源,包括用于执行第一模拟器的第一虚拟机和用于执行第二模拟器的第二虚拟机。在其他的示例中,为第一模拟器和第二模拟器两者分配单个虚拟机。
在2706,一个或多个计算设备可以配置第一虚拟机上可执行的第一模拟控制器用于控制第一模拟器的执行,以及第二虚拟机上可执行的第二模拟控制器用于控制第二模拟器的执行。可替换地,如果分配单个虚拟机,第一模拟控制器可以控制第一模拟器和第二模拟器两者的执行。
在2708,一个或多个计算设备可以在第三虚拟机上配置模拟管理器,通过命令通过第一虚拟机上的第一模拟控制器来执行第一模拟器,并且通过第二虚拟机上的第二模拟控制器来执行第二模拟器,用于命令协同模拟的执行。例如,模拟管理器可以包括协调、管理或者命令模拟的执行的模拟执行工作者。通过具有多个模拟执行工作者,多个不相关的模拟可以由模拟平台并行执行。
在2710,第一模拟控制器可以启动第一模拟器的执行作为协同模拟的执行的一部分。
在2712,第二模拟控制器可以启动第二模拟器的执行作为协同模拟的执行的一部分。
在2714,第一模拟控制器可以向模拟管理器发送与第一模拟器的执行有关的信息。
在2716,第二模拟控制器可以向模拟管理器发送与第二模拟器的执行有关的信息。
在2718,模拟管理器、第一模拟控制器或第二模拟控制器中的至少一个可以向客户端计算设备发送与协同模拟的执行相关的信息。
在此所描述的示例过程只是为了论述的目的所提供的过程的示例。鉴于在此的公开内容本领域技术人员将清楚各种其他的变型。此外,虽然这里的公开内容公开了用于执行过程的适当的框架、架构和环境的一些示例,但是这里的实施方式不限于所示和讨论的特定示例。此外,公开内容提供了各种示例实施方式,如附图中所描述和示出。然而,本公开文本不限于在此所描述和示出的实施方式,而是能够扩展至其他的实施方式,如本领域技术人员所熟知或变为熟知的。
在此描述的各种指令、过程和技术可以被认为在计算机可执行指令的一般背景中进行描述,诸如存储在计算机可读介质并且由在此的处理器进行执行的程序模块。通常,程序模块包括例程、程序、对象、组件、数据结构、可执行代码等,用于执行特定任务或实现特定的抽象数据类型。这些程序模块等可以作为本地代码来执行,或者可以被下载并且执行,诸如在虚拟机中或者其他的即时(just-in-time)汇编执行环境。通常,程序模块的功能性可以在各种实施方式中按照期望进行组合或分发。这些模块和技术的实施方式可以存储在计算机存储介质上或者在通信介质的一些形式上进行发送。
虽然以特定于结构特征和/或方法动作的语言来描述主题,但是应当理解的是,所附权利要求中所限定的主题不必限于所描述的特定特征或动作。而是,特定的特征和动作被公开为实施权利要求的示例形式。
Claims (20)
1.一种系统包括:
一个或多个处理器;以及
保持可执行指令的一个或多个非易失性计算机可读介质,当通过所述一个或多个处理器执行该可执行指令时,将所述一个或多个处理器编程为执行包括如下的操作:
从客户端计算设备接收配置协同模拟的一个或多个输入,所述协同模拟至少包括第一模拟器和第二模拟器;
分配至少包括第一虚拟机的计算资源,第一虚拟机用于执行第一模拟器和第二模拟器中的至少一个;
配置所述第一模拟器和所述第二模拟器之间的虚拟控制器局域网络;
配置在第一虚拟机上可执行的第一模拟控制器,用于控制第一模拟器和第二模拟器中的至少一个的执行;
通过第一模拟控制器,启动第一模拟器和第二模拟器中的执行,作为所述协同模拟的执行的一部分;以及
将所述协同模拟的结果发送到所述客户端计算设备,其中虚拟控制器局域网络总线使用控制器局域网络协议来启动所述第一模拟器和所述第二模拟器,以进行模拟通信。
2.根据权利要求1所述的系统,其中分配计算资源包括分配用于执行第一模拟器的第一虚拟机和用于执行第二模拟器的第二虚拟机,所述操作还包括:
配置在所述第一虚拟机上可执行的第一模拟控制器,用于控制所述第一模拟器的执行;以及
配置在所述第二虚拟机上可执行的第二模拟控制器,用于控制所述第二模拟器的执行。
3.根据权利要求2所述的系统,所述操作还包括通过第一模拟控制器配置至少一个工作器过程,用于控制第一虚拟机上的第一模拟器的启动、执行或终止中的至少一个。
4.根据权利要求2所述的系统,还包括在第三虚拟机上配置模拟管理器,用于通过命令第一模拟器由第一虚拟机上的第一模拟控制器的执行,以及第二模拟器由第二虚拟机上的第二模拟控制器的执行,来命令所述协同模拟的执行。
5.根据权利要求1所述的系统,所述操作还包括:
接收第一参数扫描信息,该信息包括以下中的至少一个:
第一模拟器上可执行的第一模型的第一参数的范围和增量;或者
第一模拟器上可执行的第一模型的第一参数的参数值列表;
接收第二参数扫描信息,该信息包括以下中的至少一个:
第二模拟器上可执行的第二模型的第二参数的范围和增量;或者
第二模拟器上可执行的第二模型的第二参数的参数值列表;以及
确定包括第一参数的多个第一值和第二参数的多个第二值的多个组合,用于执行多个协同模拟。
6.根据权利要求5所述的系统,所述操作还包括:
分配多个虚拟机,用于执行第一模拟器的多个示例和第二模拟器的多个示例;以及
使用第一值和第二值中的至少一些的不同组合,并行执行多个协同模拟中的至少一些。
7.根据权利要求1所述的系统,所述操作还包括:
针对协同模拟,确定用于在所述第一模拟器上执行的第一模型和用于在所述第一模拟器的另一示例上执行的第二模型;
将所述第一模型和所述第二模型合并到已合并的模型中;以及
在所述第一模拟器上执行已合并的模型作为协同模拟的一部分。
8.根据权利要求1所述的系统,其中合并所述第一模型和所述第二模型包括:
确定所述第一模型和所述第二模型在相同的模拟器上可执行;
移除第一模型文件和第二模型文件的标头部分;以及
将第一模型文件和第二模型文件的剩余代码添加到已合并的模型文件中,以启动第一模型文件代码和第二模型文件代码的顺序执行、替换执行或并行执行中的至少一个。
9.根据权利要求1所述的系统,所述操作还包括:
在从客户端计算设备接收一个或多个输入之前,向所述客户端计算设备发送,用于在所述客户端计算设备上呈现图形化用户界面(GUI)的信息,该GUI包括启动对于协同模拟的配置的选择的虚拟控制;以及
经由GUI从所述客户端计算设备接收用于配置所述协同模拟的一个或多个输入。
10.根据权利要求9所述的系统,所述操作还包括:
经由GUI从所述客户端计算设备接收所述第一模拟器与所述第二模拟器之间的连接方式的指示;
基于所述连接方式,配置所述第一模拟器与所述第二模拟器之间的虚拟连接;
经由GUI从所述客户端计算设备接收用于在所述第一模拟器上执行的第一模型和用于在所述第二模拟器上执行的第二模型的指示。
11.根据权利要求9所述的系统,操作还包括:
经由GUI从所述客户端计算设备接收至少指示所述协同模拟的结束时间的时间信息;
经由GUI从所述客户端计算设备接收请求所述协同模拟的执行的指令;以及
至少部分地响应于接收到指令,根据所述时间信息来执行协同模拟。
12.一种方法,包括:
从客户端计算设备接收创建模拟的指令,该模拟包括第一模拟器、第二模拟和第三模拟器;
从客户端计算设备接收在所述第一模拟器上可执行的第一模型文件、在所述第二模拟器上可执行的第二模型文件以及在所述第三模拟器上可执行的第三模型文件的指示;
确定所述第三模型文件在第一模拟器上可执行;
将所述第一模型文件和所述第三模型文件合并为已合并的模型文件;
配置所述第一模拟器和所述第二模拟器之间的虚拟控制器局域网络;以及
通过在所述第一模拟器上执行已合并的模型文件并且在所述第二模拟器上执行所述第二模型文件来执行模拟,其中虚拟控制器局域网络总线使用控制器局域网络协议来启动所述第一模拟器和所述第二模拟器,以进行模拟通信。
13.根据权利要求12所述的方法,进一步包括:
在一个或多个物理计算设备上,分配用于所述第一模拟器的第一虚拟机和用于所述第二模拟器的第二虚拟机;
配置所述第一虚拟机上可执行的第一模拟控制器,用于控制所述第一模拟器和已合并的模型文件的执行;以及
配置所述第二虚拟机上可执行的第二模拟控制器,用于控制所述第二模拟器和所述第二模型文件的执行。
14.根据权利要求12所述的方法,进一步包括:
接收第一参数扫描信息,该信息包括以下中的至少一个:
所述第一模型的第一参数的范围和增量;或者
所述第一模型的第一参数的参数值列表;
接收第二参数扫描信息,该信息包括以下中的至少一个:
所述第二模型的第二参数的范围和增量;或者
所述第二模型的第二参数的参数值列表;以及
确定包括第一参数的多个第一值和第二参数的多个第二值的组合的多个集合,用于执行多个模拟。
15.一种系统,包括:
多个物理计算设备和存储器,其中所述物理计算设备中的一个或多个被编程为:
从客户端计算设备接收包括第一模拟器和第二模拟器的模拟的指示;
在一个或多个物理计算设备上分配用于所述第一模拟器的第一虚拟机和用于所述第二模拟器的第二虚拟机;
接收将由所述第一模拟器来执行的第一模型文件和将由所述第二模拟器来执行第二模型文件的指示;
配置所述第一模拟器和所述第二模拟器之间的虚拟控制器局域网络;
在所述第一虚拟机上执行所述第一模拟器和所述第一模型文件;以及
在所述第二虚拟机上执行所述第二模拟器和所述第二模型文件,其中虚拟控制器局域网络总线使用控制器局域网络协议来启动所述第一模拟器和所述第二模拟器,以进行模拟通信。
16.根据权利要求15所述的系统,其中一个或多个物理计算设备被编程为:
配置第一虚拟机上可执行的第一模拟控制器,用于控制所述第一模拟器和所述第一模型文件的执行;以及
配置第二虚拟机上可执行的第二模拟控制器,用于控制所述第二模拟器和所述第二模型文件的执行。
17.根据权利要求15所述的系统,基于所述第一模型文件和所述第二模型文件的指示:
所述第一模拟控制器用于从第一存储位置获取所述第一模型文件;以及
所述第二模拟控制器用于从第二存储位置获取所述第二模型文件。
18.根据权利要求15所述的系统,其中所述一个或多个物理计算设备进一步还被编程为:
接收第一参数扫描信息,该信息包括以下中的至少一个:
所述第一模拟器上可执行的所述第一模型的第一参数的范围和增量;或者
所述第一模拟器上可执行的所述第一模型的第一参数的参数值列表;并且
确定所述第一参数的多个值,用于使用该多个值中的至少一些来并行执行多个模拟。
19.根据权利要求15所述的系统,其中所述一个或多个物理计算设备进一步被编程为:
确定所述第一模拟器上可执行的第三模型和第四模型;并且
将所述第三模型和所述第四模型合并到已合并的模型中,其中所述已合并的模型是第一模型。
20.根据权利要求19所述的系统,其中所述第一模拟器和所述第一模型文件在所述第一虚拟机上的执行包括所述第三模型和所述第四模型在所述第一模拟器上以顺序、替换或者并行中的至少一种方式的执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/247,978 US11314907B2 (en) | 2016-08-26 | 2016-08-26 | Simulation including multiple simulators |
US15/247,978 | 2016-08-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107784152A CN107784152A (zh) | 2018-03-09 |
CN107784152B true CN107784152B (zh) | 2021-05-07 |
Family
ID=59738182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710730922.1A Expired - Fee Related CN107784152B (zh) | 2016-08-26 | 2017-08-23 | 包括多个模拟器的模拟 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11314907B2 (zh) |
EP (1) | EP3287901A1 (zh) |
JP (1) | JP6469187B2 (zh) |
CN (1) | CN107784152B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT519096B1 (de) * | 2016-12-23 | 2018-04-15 | Engel Austria Gmbh | Verfahren zum Einstellen einer Formgebungsmaschine |
US11462121B2 (en) | 2017-02-15 | 2022-10-04 | Cae Inc. | Visualizing sub-systems of a virtual simulated element in an interactive computer simulation system |
US20190050276A1 (en) | 2017-08-08 | 2019-02-14 | Jet Bridge LLC | Method for providing telematics service using virtual vehicle and telematics server using the same |
US10691320B2 (en) * | 2017-09-21 | 2020-06-23 | Sap Se | Simulation of cloud platform integration testing in a visual interface |
GB2584559B (en) * | 2018-04-18 | 2022-10-19 | Landmark Graphics Corp | Methods and systems to determine and optimize reservoir simulator performance in a cloud computing environment |
EP3572939A1 (en) * | 2018-05-25 | 2019-11-27 | TTTech Auto AG | Method, device and real-time network for highly-integrated automotive systems |
WO2020047016A1 (en) * | 2018-08-30 | 2020-03-05 | Karamba Security Ltd. | Virtualized controllers for in-vehicle and iot networks |
US10896116B1 (en) * | 2018-10-19 | 2021-01-19 | Waymo Llc | Detecting performance regressions in software for controlling autonomous vehicles |
JP7252332B2 (ja) * | 2018-11-21 | 2023-04-04 | アマゾン テクノロジーズ インコーポレイテッド | ロボティクスアプリケーション開発のための方法及びシステム |
US11836577B2 (en) | 2018-11-27 | 2023-12-05 | Amazon Technologies, Inc. | Reinforcement learning model training through simulation |
CN113272825B (zh) * | 2018-11-21 | 2024-02-02 | 亚马逊技术有限公司 | 通过模拟进行的强化学习模型训练 |
JP7204471B2 (ja) * | 2018-12-20 | 2023-01-16 | 日立Astemo株式会社 | 車両用電子制御装置、異常信号生成方法、異常信号生成プログラム |
US11392898B2 (en) * | 2019-02-06 | 2022-07-19 | Rolls-Royce Corporation | Secure cloud collaboration platform |
KR102456023B1 (ko) | 2019-02-13 | 2022-10-19 | 한국전자통신연구원 | 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법 |
US10958576B2 (en) * | 2019-02-14 | 2021-03-23 | GM Global Technology Operations LLC | Systems and methods for data processing and storage in vehicles having a zone-based, central computing in-vehicle communications network architecture |
US10776254B1 (en) * | 2019-04-22 | 2020-09-15 | Sap Se | Executing integration scenario regression tests in customer landscapes |
US11010510B2 (en) * | 2019-04-30 | 2021-05-18 | Disney Enterprises, Inc. | Soft-real-time hub providing data transport for processor-in-the-loop (PIL) simulations |
DE102020118563A1 (de) * | 2019-07-17 | 2021-01-21 | Steering Solutions Ip Holding Corporation | Middleware-system und -verfahren |
US11475183B1 (en) * | 2019-07-29 | 2022-10-18 | Rockwell Collins, Inc. | Simulation environment with dynamic optimization of fidelity |
JP7175858B2 (ja) * | 2019-08-07 | 2022-11-21 | 株式会社日立製作所 | 情報処理装置および正規通信判定方法 |
EP3789578A1 (en) * | 2019-09-09 | 2021-03-10 | Siemens Aktiengesellschaft | Method, device and system for managing mining facilities |
US11662985B2 (en) * | 2019-10-21 | 2023-05-30 | Woven Alpha, Inc. | Vehicle developer systems, methods and devices |
US11284234B2 (en) | 2019-11-14 | 2022-03-22 | Toyota Motor Engineering & Manufacturing North America, Inc. | Cloud-assisted virtual vehicular communication |
US11234160B2 (en) | 2019-11-21 | 2022-01-25 | Toyota Motor Engineering & Manufacturing North America, Inc. | Digital twin simulation-based vehicular communication planning |
WO2022046035A1 (en) * | 2020-08-25 | 2022-03-03 | Siemens Industry Software Inc. | SYSTEM AND METHOD FOR SIMULATION AND TESTING OF MULTIPLE VIRTUAL ECUs |
US11210138B1 (en) | 2020-09-24 | 2021-12-28 | OnScale, Inc. | Dynamic resource allocation for computational simulation |
CN113050609B (zh) * | 2021-03-30 | 2022-07-15 | 潍柴动力股份有限公司 | 一种ecu测试方法及装置 |
US20220368601A1 (en) * | 2021-05-12 | 2022-11-17 | L3Harris Technologies, Inc. | Modeling multiple hardware routers in custom hardware |
CN113608823B (zh) * | 2021-06-25 | 2024-05-17 | 天津津航计算技术研究所 | 一种用于文件描述的可重用终端模拟器 |
CN113742083B (zh) * | 2021-09-13 | 2024-06-18 | 京东科技信息技术有限公司 | 调度仿真方法、装置、计算机设备及存储介质 |
CN114157689A (zh) * | 2021-11-24 | 2022-03-08 | 江苏爱玛车业科技有限公司 | 电动车的模拟测试系统和方法 |
CN115099031B (zh) * | 2022-06-21 | 2024-04-26 | 南京维拓科技股份有限公司 | 一种实现Windows环境下仿真求解器并行计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012235260A (ja) * | 2011-04-28 | 2012-11-29 | National Institute Of Information & Communication Technology | 無線装置、無線ネットワーク、ネットワーク存在確認方法 |
US8448172B2 (en) * | 2009-12-25 | 2013-05-21 | Fujitsu Limited | Controlling parallel execution of plural simulation programs |
EP2778816A1 (en) * | 2013-03-12 | 2014-09-17 | ABB Technology AG | System and method for testing a distributed control system of an industrial plant |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060288168A1 (en) * | 2005-03-01 | 2006-12-21 | Will Stevenson | Transportable computing environment |
US7778806B2 (en) | 2006-03-29 | 2010-08-17 | Hitachi, Ltd | Method and apparatus for simulating microcomputer-based systems |
JP4987382B2 (ja) * | 2006-08-09 | 2012-07-25 | 富士通テン株式会社 | 分散型シミュレーションシステム、シミュレータ識別方法、及び、分散型シミュレーションシステムの管理装置 |
US7937256B2 (en) * | 2006-12-02 | 2011-05-03 | Altos Design Automation, Inc. | Systems and methods of efficient library characterization for integrated circuit cell libraries |
JP5153465B2 (ja) * | 2008-06-09 | 2013-02-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
US7987075B2 (en) | 2008-06-30 | 2011-07-26 | Hitachi, Ltd | Apparatus and method to develop multi-core microcomputer-based systems |
US8065126B2 (en) * | 2008-07-29 | 2011-11-22 | Mentor Graphics Corporation | GUI-facilitated change management for vehicle electrical/electronic architecture design |
WO2011016327A1 (ja) * | 2009-08-07 | 2011-02-10 | 株式会社日立製作所 | 計算機システム、プログラム及びシミュレーションに使用する計算資源を割り当てる方法 |
KR101522477B1 (ko) * | 2010-08-20 | 2015-05-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 시뮬레이션 방법, 시스템 및 프로그램 |
KR101230902B1 (ko) * | 2010-12-02 | 2013-02-07 | 현대자동차주식회사 | 차량 시뮬레이터를 이용한 차량 장치의 자동 평가 시스템 |
US20140013211A1 (en) * | 2011-04-15 | 2014-01-09 | Symmetric Co., Ltd. | Content providing apparatus compatible with various terminal devices |
JP2012234260A (ja) * | 2011-04-28 | 2012-11-29 | Hitachi Automotive Systems Ltd | 車両制御シミュレーションシステム |
JP5882052B2 (ja) * | 2011-12-28 | 2016-03-09 | 日立オートモティブシステムズ株式会社 | 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム |
US9075939B2 (en) | 2012-06-13 | 2015-07-07 | Hitachi, Ltd | Method for co-simulation of two or more mathematical models |
US9098652B2 (en) * | 2012-10-12 | 2015-08-04 | Carbon Design Systems, Inc. | Partitioning and parallel processing of a virtual prototype simulation of a hardware design |
US20140156233A1 (en) | 2012-12-03 | 2014-06-05 | Can Wang | Method and apparatus for electronic circuit simulation |
WO2014112089A1 (ja) * | 2013-01-17 | 2014-07-24 | 株式会社日立製作所 | 計算機システム、及びプログラム |
US9262299B1 (en) * | 2013-05-31 | 2016-02-16 | Cadence Design Systems, Inc. | Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system |
US9836330B2 (en) | 2013-07-16 | 2017-12-05 | Hitachi, Ltd. | Virtual resource management tool for cloud computing service |
US20150127192A1 (en) | 2013-11-06 | 2015-05-07 | Hitachi, Ltd | Wireless vehicle control system |
US9697321B2 (en) | 2014-06-23 | 2017-07-04 | Hitachi, Ltd. | Method of identifying a value of an unknown circuit component in an analog circuit |
US10303817B2 (en) * | 2015-07-21 | 2019-05-28 | Tata Elxsi Limited | System and method for enhanced emulation of connected vehicle applications |
WO2017030854A1 (en) * | 2015-08-17 | 2017-02-23 | Marvell World Trade Ltd. | Virtual controller area network |
KR101714520B1 (ko) * | 2015-10-30 | 2017-03-09 | 현대자동차주식회사 | 차량 내 네트워크 공격 탐지 방법 및 장치 |
-
2016
- 2016-08-26 US US15/247,978 patent/US11314907B2/en active Active
-
2017
- 2017-08-04 JP JP2017151444A patent/JP6469187B2/ja active Active
- 2017-08-23 CN CN201710730922.1A patent/CN107784152B/zh not_active Expired - Fee Related
- 2017-08-24 EP EP17187819.2A patent/EP3287901A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8448172B2 (en) * | 2009-12-25 | 2013-05-21 | Fujitsu Limited | Controlling parallel execution of plural simulation programs |
JP2012235260A (ja) * | 2011-04-28 | 2012-11-29 | National Institute Of Information & Communication Technology | 無線装置、無線ネットワーク、ネットワーク存在確認方法 |
EP2778816A1 (en) * | 2013-03-12 | 2014-09-17 | ABB Technology AG | System and method for testing a distributed control system of an industrial plant |
Non-Patent Citations (1)
Title |
---|
《Exploring many task computing in scientific workflows》;Ogasawara Eduardo, et al;《In Proceedings of the 2nd Workshop on Many-Task Computing on Grids and Supercomputers》;20091130;1-10 * |
Also Published As
Publication number | Publication date |
---|---|
US11314907B2 (en) | 2022-04-26 |
EP3287901A1 (en) | 2018-02-28 |
JP2018032392A (ja) | 2018-03-01 |
US20180060456A1 (en) | 2018-03-01 |
JP6469187B2 (ja) | 2019-02-13 |
CN107784152A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107784152B (zh) | 包括多个模拟器的模拟 | |
US10423571B2 (en) | Method for configuring a real or virtual electronic control unit | |
CN112602025A (zh) | 工业控制器的数字孪生的自动设置 | |
US10860467B2 (en) | Method of configuring a test device designed to test an electronic control unit, and a configuration system | |
US8930758B2 (en) | Automated testing of mechatronic systems | |
WO2022120717A1 (zh) | 仿真任务调度方法、执行方法、仿真实现方法及装置 | |
EP4002189A1 (en) | Industrial network communication emulation | |
JP2008084121A (ja) | シミュレーションシステム及びシミュレーション方法 | |
US8701079B2 (en) | Procedure and development environment for generation of an executable overall control program | |
Haberl et al. | Model-level debugging of embedded real-time systems | |
Sandmann et al. | Autosar-compliant development workflows: From architecture to implementation-tool interoperability for round-trip engineering and verification and validation | |
Nice et al. | Middleware for a heterogeneous cav fleet | |
Williams et al. | Utilizing ROS 1 and the turtlebot3 in a multi-robot system | |
Chaves et al. | KhronoSim: A platform for complex systems simulation and testing | |
WO2022123803A1 (ja) | 制御システムおよび制御方法 | |
US10488835B2 (en) | Method for configuring a tester equipped for testing an electronic control unit | |
Muli et al. | Virtual validation-a new paradigm in controls engineering | |
Liu et al. | A Co-Simulation-and-Test Method for CAN Bus System. | |
Himmler | From virtual testing to hil testing-towards seamless testing | |
Martinus et al. | Virtual test driving hardware-independent integration of series software | |
Allen | An overview of model-based development verification/validation processes and technologies in the aerospace industry | |
Halle et al. | Evaluation of the ashley seamless tool-chain on a real-world avionics demonstrator | |
Boydston et al. | Joint common architecture (JCA) demonstration architecture centric virtual integration process (ACVIP) shadow effort | |
Pagerit et al. | Complex system engineering simulation through co-simulation | |
Francois | New approaches in virtualization of ECU software development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210507 |