diff --git a/data/abstract.tex b/data/abstract.tex index e969e10..37130f1 100644 --- a/data/abstract.tex +++ b/data/abstract.tex @@ -2,9 +2,17 @@ % 中英文摘要 \begin{cabstract} -数字产品定义(Digital product definition, DPD)经历了从二维到三维的发展。业界提出了以产品设计为核心的数字仿真(DMU)、虚拟样机等技术,产品设计信息的定义和表达也越来越完善。近年来,国内外制造业的经验表明,3D数字化定义的产品模式已经成熟,其效益被反复验证。但是,目前的数字化产品定义还存在描述不涉及制造、运行和维护阶段、产品定义和过程定义之间缺乏相关性、后续模拟基于“理想定义”对真实产品的指导有限等问题。为了解决上述问题,“数字孪生”技术应运而生。数字孪生技术被誉为有望改变未来航空制造“游戏规则”的顶级技术。这项技术使用数据馈送来映射物理实体,并正在对工业的许多领域产生颠覆性的影响。德国信息技术和新媒体协会预测,在制造业市场中,数字孪生的价值是巨大的,到2025年将超过780亿欧元。Gartner已经连续两年(2016、2017)将数字孪生列为十大战略技术发展趋势之一。2017年11月,世界上最大的武器制造商洛克希德·马丁公司将数字孪生列为未来国防和航空航天工业的六大顶级技术。\par -数字孪生是真实产品的虚拟表示。它拥有产品的信息,从产品生命的开始一直到产品的处置。在网络物理系统的语境中,数字孪生可以被看作是一个网络表征,是其特征点的对象集合,泛函其物理机制、虚拟特征和与人的交互关系.\par -在真实的实践场景中,往往会遇到复杂的现实问题,如海量信息的建模、处理问题,模型的结构化专有化问题等等。单一场景都有可能面临构建几千孪生体和处理每秒几十万量级数据,如何去已有的知识去构建模型,如何去描述模型特征和状态,如何去关联、分析、响应大量数据,这就是本篇研究的内容。 +数字产品定义(Digital product definition,DPD)经历了从二维到三维的发展。业界提出了以产品设计为核心的数字仿真(DMU)、虚拟样机等技术,产品设计信息的定义和表达也越来越完善。近年来,国内外制造业的经验表明,3D数字化定义的产品模式已经成熟,其效益被反复验证。但是,目前的数字化产品定义还存在描述不涉及制造、运行和维护阶段、产品定义和过程定义之间缺乏相关性、后续模拟基于“理想定义”对真实产品的指导有限等问题。为了解决上述问题,“数字孪生”技术应运而生,被誉为有望改变未来航空制造“游戏规则”的顶级技术。\par + +数字孪生技术目前发展方向或者难点存在在数据质量和精度,可视性和交互性提升,模型和知识分析存储,数学分析和仿真技术,模型快速构建技术,多领域落地应用,实时性应用落地等方向。本论文在以下三个方面进行研究,提出性能高效、使用方便、场景构建迅速的通用数字孪生平台方案,并尝试进行实践应用。\par + +在数据质量和精度方面,探索设计了自主分布式实时消息通信网络,保证了在硬件网络内消息实时性的要求,在全系统内保证消息的发送、分发、存储、响应效率。\par + +在模型与知识分析存储方向,探索设计了了一套使用图谱或语义构建逻辑模型的体系,及其方便用户去编辑场景内各个节点交互响应逻辑以及虚拟场景内仿真分析逻辑,参数化设计模型及模型间交互逻辑,并设计合适的模型存储结构,极大方便了模型与知识在各端的存储和传输。\par + +在实时性应用方向,在前两个技术基础上,探索了系统全生命周期使用的方案技术,从历史数据分析到实时性场景内数据监控和逻辑响应再到未来部分数据推演仿真,将单个孪生场景的历史、现在、未来数据统一整合,极大拓展孪生技术应用方向范围。\par + +在真实的实践场景中,还会遇到很多复杂的现实问题,如海量信息的建模、处理问题,模型的结构化专有化问题等等。单一场景都有可能面临构建几千孪生体和处理每秒几十万量级数据,如何用已有的知识去快速推演模型,如何去关联、分析、响应海量异构数据,仍是在目前在探索研究前两个技术方向时去尝试研究和解决的现实难点。 \end{cabstract} \begin{eabstract} diff --git a/data/chapter1-intro.tex b/data/chapter1-intro.tex index 0a1f951..af9c333 100644 --- a/data/chapter1-intro.tex +++ b/data/chapter1-intro.tex @@ -6,12 +6,11 @@ 数字产品定义(Digital product definition,DPD)经历了从二维到三维的发展。业界提出了以产品设计为核心的数字仿真(DMU)、虚拟样机等技术,产品设计信息的定义和表达也越来越完善。近年来,国内外制造业的经验表明,3D数字化定义的产品模式已经成熟,其效益被反复验证。但是,目前的数字化产品定义还存在描述不涉及制造、运行和维护阶段、产品定义和过程定义之间缺乏相关性、后续模拟基于"理想定义"对真实产品的指导有限等问题。为了解决上述问题,"数字孪生"技术应运而生。数字孪生技术被誉为有望改变未来制造"游戏规则"的顶级技术。这项技术使用数据馈送来映射物理实体,并正在对工业的许多领域产生颠覆性的影响。德国信息技术和新媒体协会预测,在制造业市场中,数字孪生的价值是巨大的,到2025年将超过780亿欧元。Gartner已经连续两年(2016、2017)将数字孪生列为十大战略技术发展趋势之一。2017年11月,世界上最大的武器制造商洛克希德・马丁公司将数字孪生列为未来国防和航空航天工业的六大顶级技术。 -数孪生是物理对象、流程或服务的数字表示。它拥有产品的信息,从产品生命的开始一直到产品的处置。在网络物理系统的语境中,数字孪生可以被看作是一个网络表征,是其特征点的对象集合,其中泛函其物理机制、虚拟特征和与人的交互关系。数字孪生可以是物理世界中物体的数字映射,如发动机或电场,甚至是更大的物品,例如建筑物甚至整个城市。除实物资产外,数字孪生技术还可用于映射流程,收集数据以及预测它们将如何执行。本质上,数字孪生是一种计算机程序,它利用现实世界的数据来创建可以预测的产品或流程将如何执行。这些程序可以整合物联网(工业4.0)、人工智能和软件分析等技术来提高效率和精确度。随着机器学习和大数据等因素的进步,这些虚拟模型已成为现代工程中推动创新和提高性能的主要工具。 +数字孪生是指将物理对象、流程或服务数字化建模,并利用这些模型来推断其行为和性能的技术。它是一种全面的数字化方法,可以从产品生命周期的开始到结束对其进行全面的描述和分析,实现可视化、可交互、可预测的物理世界虚拟化。在数字孪生中,物理系统被视为网络,由一系列特征点组成的对象集合,这些特征点包括物理机制、虚拟特征和与人的交互关系。数字孪生技术可以映射物理世界中的任何物体,例如发动机、电场、建筑物和城市等。此外,数字孪生还可以用于映射流程,并通过收集和分析数据来预测它们的行为和性能。数字孪生本质上是一种计算机程序,它利用现实世界的数据来创建可以预测产品或流程行为和性能的虚拟模型。数字孪生技术可以通过整合物联网、人工智能和软件分析等技术,来提高效率和精确度,并在现代工程中推动创新和提高性能。随着机器学习和大数据等因素的进步,数字孪生技术的应用范围将会越来越广泛,为人们提供更加全面的数字化解决方案。 + 在真实的实践场景中,数字孪生往往会遇到复杂的现实问题,如海量信息的建模、处理问题,模型的结构化专有化问题等等。单一场景即有可能需要构建几千孪生体并处理每秒几十万量级的数据,如何根据已有知识构建模型,如何描述模型特征和状态,如何关联、分析、响应大量数据,是本篇文章的主要研究内容。 -鉴于以上生产需要,本文提出了一种实时分布式通信系统以及一种知识和事件模型化方法,解决大数据情况下实时响应和高效知识处理问题,并在自研的通用型数字孪生平台上进行验证。 - \section{研究背景及现状} 数字孪生(Digital Twin)的概念最早出现在2003年,由Grieves教授在密歇根大学的产品生命周期管理课程中提出。2010年,"Digital Twin" 一词在NASA的技术报告中被正式提出,并被定义为"集成了多物理量、多尺度、多概率的系统或飞行器仿真过程"。2011年起,美国国防部将数字孪生的概念引入了航天器的健康维护等问题解决中。 @@ -34,9 +33,17 @@ Grieves等人对数字孪生的定义是一组虚拟信息结构,对复杂产品 \section{研究意义} -近年来数字孪生技术在工业界得到了广泛的关注,全球最具权威的IT研究与顾问咨询公司GARTNER连续两年将数字孪生列为当年十大战略科技发展趋势之一。世界最大的武器生产商洛克希德马丁公司于2017.11将数字孪生列为未来国防和航天工业6大顶尖技术之首;2017年12月8日中国科协智能制造学术联合体在世界智能制造大会上将数字孪生列为世界智能制造十大科技进展之一。 -达索、西门子等公司已初步将数字孪生技术应用于产品设计、生产、维护过程中,NASA、美国空军研究实验室等将其运用在具体型号研发中,并获得2016年美国国防制造技术奖。 -虽然已经出现较为成熟的技术落地应用,但数字孪生技术在实际生产使用过程中还面临很多复杂的现实问题。 +数字孪生技术是近年来在工业领域和其他领域快速发展的一项技术,它将物理对象、流程或服务的数字表示与现实世界相连结,提供了一种在虚拟环境中创建、测试、优化和管理物理系统的新方法,这对于许多行业的发展具有重要的意义,在工业界得到了广泛的关注,全球最具权威的IT研究与顾问咨询公司GARTNER连续两年将数字孪生列为当年十大战略科技发展趋势之一,世界最大的武器生产商洛克希德马丁公司于2017.11将数字孪生列为未来国防和航天工业6大顶尖技术之首;2017年12月8日中国科协智能制造学术联合体在世界智能制造大会上将数字孪生列为世界智能制造十大科技进展之一,达索、西门子等公司已初步将数字孪生技术应用于产品设计、生产、维护过程中,NASA、美国空军研究实验室等将其运用在具体型号研发中,并获得2016年美国国防制造技术奖。 + +数字孪生技术在众多行业得到及其醒目的关注,并陆续将其作为未来发展技术,在于它对生产全生命周期都具有重要意义。 + +首先,数字孪生技术可以提高产品设计和生产过程的效率。通过数字孪生技术,工程师可以在虚拟环境中设计、测试和验证产品,从而减少了制造过程中的错误和重复。此外,数字孪生技术还可以用于优化生产过程,通过实时数据监测和分析来改善生产效率,降低能源消耗,减少废品率,提高产品质量和生产效率。 + +其次,数字孪生技术可以帮助企业更好地了解其产品和服务在市场上的表现。通过数字孪生技术,企业可以将现实世界中的数据和虚拟模型相结合,来模拟客户体验和产品表现。这有助于企业更好地了解客户需求和市场趋势,从而更好地调整产品和服务,提高客户满意度。 + +另外,数字孪生技术还可以用于改进运营和维护。通过数字孪生技术,企业可以利用虚拟环境中的数据和分析来监测和预测设备运行情况,并进行远程监控和维护。这可以减少设备故障和停机时间,降低维修成本,提高设备利用率和生产效率。 + +数字孪生技术在提高效率、改进产品设计和生产过程、提高客户满意度、降低成本、提高生产效率、产品运营和维护等方面具有重要的意义。随着技术的不断发展,数字孪生技术有望成为各行各业推动数字化转型和实现可持续发展的重要工具,同时在实际生产使用过程中也还面临很多复杂的现实问题。 \begin{description} \item [数据问题] @@ -53,7 +60,7 @@ Grieves等人对数字孪生的定义是一组虚拟信息结构,对复杂产品 \end{description} -针对以上四个问题,本文在结合实践形式和数字孪生技术特点,分析了相关技术理论,分别提出了相应的改进方案,探索数字孪生技术在全产品生命周期的应用前景和能力。 +针对以上三个问题,本文在结合实践形式和数字孪生技术特点,分析了相关技术理论,分别提出了相应的改进方案,探索数字孪生技术在全产品生命周期的应用前景和能力。 \section{研究目标及方案} @@ -64,12 +71,12 @@ Grieves等人对数字孪生的定义是一组虚拟信息结构,对复杂产品 \begin{enumerate} \item 数据困境: 编写设计一套自组织分布式消息网络,部分节点实现硬实时通信, 整体实现所有节点自组织形成分布式通信网络。 \item 模型困境:针对规则模型编写设计一套通用机制,物理节点、虚拟节点、服务节点可分别使用和设计不同规则,用户生成规则可以选择内置逻辑、函数、真值表、代码等实现。 - \item 实践困境:以分布式消息网络为基础,编写设计模型通用特征,在系统所有层次都有公开设计的通信接口,任何节点可以选择使用非内置节点,使用第三方或者自行编写的逻辑,提供现有主流的PLC通信协议,并提供将任何协议转内置通信协议的方案或物理节点。 + \item 实践困境:以分布式消息网络为基础,编写设计模型通用特征,在系统所有层次都有公开设计的通信接口,任何节点可以选择使用非内置节点,使用第三方或者自行编写的逻辑,提供现有主流的PLC通信协议,并提供将任何协议转内置通信协议的方案或物理节点。以上述方案为基础,构建数据推演模型,整合历史、现在、未来数据,扩充数字孪生平台应用范围、降低应用难度。 \end{enumerate} \subsection{研究方案} -本文开发的数字孪生平台主要涉及4大主体内容,包含主体平台、分布式消息网络、节点状态与事件机制,规则模型 +本文开发的数字孪生平台主要涉及4大主体内容,包含主体平台、分布式消息网络、节点状态与事件机制,规则模型。 \begin{figure}[h!] \centering @@ -79,7 +86,7 @@ Grieves等人对数字孪生的定义是一组虚拟信息结构,对复杂产品 \end{figure} \subsection{主体平台} -图1所示,A为主体平台,是数字孪生平台的主体,包含了基本的数据存储、数据分析、核心消息节点、用户交互、模型展示等等功能,其余所有一切功能都要借助主体平台得以显示和控制。 +图1所示,A为主体平台,是数字孪生平台的主体,包含了基本的数据存储、数据分析、核心消息节点、用户交互、模型展示、知识存储等等功能,其余所有一切功能都要借助主体平台得以显示和控制。 用户通过A集群查看、分析和操作所有集群。 \subsection{分布式消息网络} diff --git a/data/chapter2.tex b/data/chapter2.tex index 2be2ed1..231b953 100644 --- a/data/chapter2.tex +++ b/data/chapter2.tex @@ -2,20 +2,81 @@ \section{系统设计原则} \subsection{高可用} -高可用的衡量指标通常为几个9,它是衡量系统稳定工作的指标. 在本文中主要指系统服务的稳定性,消息网络的稳定性. + +高可用性是系统设计中的重要目标之一,旨在确保系统在面对故障、错误或意外情况时能够保持正常运行。在系统设计中要注意负载均衡、自动化任务设计、冗余备份、快速恢复、无状态设计等等问题。 + \subsection{高性能} 在本平台设计中,核心性能指标有消息网络的分发能力,硬实时消息的响应速度,主体平台对多种规则模型的处理速度,海量消息的存储能力,用户访问时模型的操作性能、仿真性能等。 \subsection{可扩展性} 可扩展性是本平台设计中核心设计的一点,不单单指服务的可扩展性,比如服务节点可以水平扩增等,还指集群网络的开放程度,能对接现有消息协议,开放消息网络对接和规则模型设计。 + \subsection{安全性} 在保持消息网络的开发性上去保证整体平台、节点的安全性,在实践中,消息网络如何在开放协议的基础上保证通信安全。 + \subsection{单一职责原则} -任何模块保持职责和功能的最小化,专一化,模块之间不含功能交集。 +任何模块保持职责和功能的最小化,专一化,模块之间不含功能交集,这有助于确保系统的模块化和可维护性,并减少模块之间的依赖性和耦合度 \section{整体结构设计} -\section{功能设计} +在设计数字孪生整体结构时,需要考虑用户使用、硬件通信、云服务特性去考虑设计,同时考虑平台的通用性,可扩展性,容灾恢复,安全性等等。 + +在整体上采用微服务架构。将系统按照业务功能模块拆分成若干个独立的微服务,每个微服务都能够独立部署和扩展。微服务架构可以提高系统的可伸缩性和可用性,并且可以降低系统的维护成本。 + +前端采用前后端分离的架构,使用现代化的前端框架vue,通过API连接到后端服务,从而实现前后端分离,提高系统的可维护性和可伸缩性。 + +后端采用分布式架构,将不同的业务模块拆分成独立的微服务,通过API或消息队列进行通信,提高系统的可伸缩性和可用性。同时,采用缓存技术,如Redis等,提高系统的性能。 + +数据库采用分布式数据库架构,将不同的数据拆分到不同的数据库实例中,通过数据分片技术进行分布式存储,提高系统的可伸缩性和性能。同时,采用读写分离技术,将读操作和写操作分别路由到不同的数据库实例中,从而提高系统的性能。根据数据的特点,分别选用不同类型的数据,主体结构数据存入mysql中,时序数据存入es中,非参数化模型存入文本或oss中。 + +在安全设计中需要采用统一的非对称秘钥认证机制,用户访问和节点通信皆使用私人秘钥本地解密远程密文进行认证,例如身份验证、访问控制、节点接入、数据加密等,保障系统的安全性。 + +如下图所示,为云平台主体结构,通用数字孪生平台的架构设计需要考虑多方面因素,通过采用现代化的架构技术和安全机制,实现高性能、可伸缩、可用和安全的系统。 + +\begin{figure}[h!] + \centering + \includegraphics[width=0.8\textwidth]{figure/f8.png} + \caption{平台主体结构} + \label{fig-f8} +\end{figure} + + +\section{功能设计}\ + +在设计该平台功能时,重点考虑其通用性和扩展性后,将平台功能点分为基础功能和拓展功能,拓展功能以本文提供的数据通信方案和规则模型方案为基础构建,由基础功能和额外编写的逻辑规则拓展而成,用户也可以此设计拓展功能。 + +\begin{enumerate} + \item 数字孪生建模功能:提供用户友好的建模工具,支持各种模型类型和复杂性。用户可以通过可视化界面创建、编辑和删除模型。同时,平台应该提供模型验证、合法性检查、版本管理等功能。 + +\item 规则编写:提供多种方式的规则输入体系,使得用户方便的去构建场景和节点交互逻辑和内置规则。 + +\item 数据采集和集成功能:数字孪生平台需要支持各种数据源的集成,包括传感器、设备、网络、云服务等等,提供丰富的API和数据连接功能,以便数据源的快速接入和管理。 + +\item 数据分析和可视化功能:数字孪生平台需要提供数据分析和可视化工具,以便用户对数字孪生系统中的数据进行分析和探索。平台提供可视化工具和分析功能,支持数据探索、数据可视化和可视化交互等等。 + +\item 仿真和预测功能:数字孪生平台需要支持仿真和预测功能,以便用户可以基于数字孪生系统中的数据进行模拟和预测分析。平台应该提供各种仿真和预测工具,包括数据建模、算法开发和模型训练等等。 + +\item 安全性和可扩展性:数字孪生平台需要具备高可靠性和可扩展性。平台应该提供安全保障机制,包括数据安全、身份认证和访问控制等等。同时,平台应该具备可扩展性,以便用户可以轻松地扩展数字孪生系统的功能和规模。 + +\item API和开放平台:数字孪生平台需要提供API和开放平台,以便用户可以轻松地开发自己的应用程序和服务。平台应该提供完整的API文档和示例代码,同时支持第三方开发者的集成和扩展。 + +\end{enumerate} \section{数据库设计} -\section{UI设计} +在设计该平台数据库时,需要考虑以下几个方面: + +\begin{enumerate} + +\item 数据库的范围和目的:数字孪生平台通常需要处理大量的数据,包括实时数据、历史数据、静态数据等。因此,需要确定数据库的范围和目的,包括存储数据的类型、数据的来源和流向、数据的格式等。 + +\item 数据库的结构和模式:为了支持数字孪生平台的多样化需求,数据库需要具有灵活的结构和模式。可以采用关系型数据库或非关系型数据库,或者二者结合使用。同时,需要确定数据库的表结构、字段类型、主键、外键等。 + +\item 数据库的安全性和可靠性:数字孪生平台通常涉及到重要的实时数据和设备信息,因此需要确保数据库的安全性和可靠性。可以采用多重备份、加密、权限控制等方式来保证数据的完整性和保密性。 + +\item 数据库的性能和扩展性:数字孪生平台需要支持高效的数据处理和分析,因此需要考虑数据库的性能和扩展性。采用分布式数据库、内存数据库等技术来提高性能,并采用分区、分片等方式来实现扩展性。 + +\item 数据库的数据采集和清洗:数字孪生平台需要从多个来源获取数据,并进行数据清洗和处理。因此需要设计适合的数据采集和清洗模块,确保数据的准确性和一致性。 + +\end{enumerate} +综上所述,数字孪生平台的数据库设计需要考虑多个方面,包括数据库的范围和目的、结构和模式、安全性和可靠性、性能和扩展性以及数据采集和清洗等。在设计过程中需要综合考虑各个方面的需求,灵活应用不同的技术和方法,确保数字孪生平台的高效、安全、可靠运行。 + diff --git a/data/chapter3.tex b/data/chapter3.tex index e76f0eb..b120da5 100644 --- a/data/chapter3.tex +++ b/data/chapter3.tex @@ -2,7 +2,16 @@ \chapter{分布式消息网络设计} \section{概述} -现代软件应用程序很少孤立存在,而现在通常的做法是依赖服务或使用远程实体提供的信息。在这种分布式架构中,集成是关键。近年来,消息传递是解决分布式性质挑战的参考解决方案,例如网络不可靠性,生产者和消费者的强烈耦合以及应用的异质性。由于强大的社区以及对标准和整合的共同努力,消息代理如今已成为许多项目和服务的传输层构建块,近年来出现了很多的消息服务,如MQTT,RabbitMQ,RocketMQ, Kafka等. 这些消息框架现在已经发展的非常成熟,但是不太适合本文的使用场景,单纯工控用的PLC通信又十分的僵硬,适合构建信息物理系统(CPS)使用,涉及到大量设备、服务、人和虚拟实体四方消息互动目前来看没有适合的通信方案,在这四方之间消息传递的需求和性能要求皆不同,所以尝试去设计一套新的消息网络去解决数字孪生下的数据困境。 +现代软件应用程序很少孤立存在,而现在通常的做法是依赖服务或使用远程实体提供的信息。在这种分布式架构中,集成是关键。近年来,消息传递是解决分布式性质挑战的参考解决方案,例如网络不可靠性,生产者和消费者的强烈耦合以及应用的异质性。由于强大的社区以及对标准和整合的共同努力,消息代理如今已成为许多项目和服务的传输层构建块,近年来出现了很多的消息服务,如MQTT,RabbitMQ,RocketMQ, Kafka等。 + +现代分布式消息网络是一种基于分布式系统和消息传递模式的网络架构,它支持高可用性、可扩展性和可靠性的通信。它通常由多个节点组成,这些节点可以是物理机器、虚拟机或容器。 + +消息网络的核心是消息队列,它是一种异步通信模式,可以在多个节点之间传递消息。消息队列通常包括生产者、消费者和代理(broker),生产者可以将消息发送到队列中,消费者可以从队列中接收消息进行处理,代理则是消息队列的中心节点,负责维护队列、路由消息和确保消息的可靠性传递。 + +现代分布式消息网络通常采用发布/订阅模式或点对点模式进行消息传递。在发布/订阅模式中,消息生产者发布消息到主题(topic),消费者订阅感兴趣的主题并接收相应的消息。在点对点模式中,消息生产者发送消息到队列,只有一个消费者能够接收和处理该消息。 + +这些消息框架现在已经发展的非常成熟,但是不太适合本文的使用场景,通常用于云服务之间的消息通信,单纯工控用的PLC通信又十分的僵硬,适合构建信息物理系统(CPS)使用,涉及到大量设备、服务、人和虚拟实体四方消息互动目前来看没有适合的通信方案,在这四方之间消息传递的需求和性能要求皆不同,所以尝试去设计一套新的消息网络去解决数字孪生下的数据困境。 + \section{通讯机制} @@ -115,6 +124,8 @@ void MyTask (void) \section{终端通信} +在上述协议下可以实现在场景内部的毫秒级实时通信需要,对于已有的不同终端,根据通信协议和线材不同可连入已有的物理节点进行消息转发,同时目前已开发了c/rust通信依赖库可供开发使用,直接在设备内嵌入通信逻辑。用户可以选择是外接设备还是内嵌代码接入到整个数字孪生平台,该物联终端接口可同样应用于自定义仿真算法和逻辑算法节点通信接入。 + \section{性能分析} 以下性能测试皆使用 2.4 GHz 八核Intel Core i9 作为测试芯片,并进行相关内核性能调优后得到的测试结果。 @@ -161,4 +172,4 @@ void MyTask (void) \label{fig-f6} \end{figure} -由图6可以看出,消息分发在未绑定任何响应函数的情况下单机可以达到每秒157651条,在未读取数据库情况下消息分发延迟6.33ms。 +由图6可以看出,消息分发在未绑定任何响应函数的情况下单机可以达到每秒157651条,在未读取数据库情况下消息分发延迟6.33ms,以上数据目前满足数字孪生平台要求。 diff --git a/data/chapter4.tex b/data/chapter4.tex index 9563486..a34d825 100644 --- a/data/chapter4.tex +++ b/data/chapter4.tex @@ -13,10 +13,27 @@ \item[虚拟类规则]该类规则其输出域仅能作用于虚拟世界。 \end{description} - 基本模型内部求解过程可以根据类型和功能特点选择提交公式或算法代码,或直接运行独立的求解程序。 - 本章以构建碰撞检测和刚体运动力学规则为例讲解代码和公式确定规则模型。 + 如图8所示,基本模型内部求解过程可以根据类型和功能特点选择提交公式或算法代码,或直接运行独立的求解程序。 + 本章后面以构建碰撞检测和刚体运动力学规则为例讲解代码和公式确定规则模型。 -\section{公式解析} +\begin{figure}[h!] + \centering + \includegraphics[width=0.8\textwidth]{figure/f9.png} + \caption{规则模型上传过程} + \label{fig-f9} +\end{figure} + + +\section{程序接入机制} + +如图8所示,用户仅需要申请访问秘钥,调用本平台开发的依赖库即刻纳入到通信网络中作为一个计算节点执行计算任务,与内部的计算节点无任何差别,唯一要考虑的是跨地区网络后消息实时性无法满足要求,不适合去做实时性分析人物。目前支持的依赖库python/go/c/rust。 + + +\section{代码解析机制} + +如图8流程所示,代码在用户上传完毕后会根据需要在平台上生成运行环境,并根据需要提供一定的运算资源和数据背景,提供更高阶的数据查询和接入方法。目前代码解析部分采取现成的语法,根据语言特性和场景需要,目前仅支持js和python,尽管采用了一定的沙盒机制去运行,但是仍然面临很大的安全问题,所以现在的代码机制仅供内部使用,后续根据需要开放出自定义代码或者代码检查。 + +\section{公式解析算法} 在构建规则模型其中很重要的一步是支持公式输入,对于一条规则,我们可以提供节点数据并转换成合适的格式,比如对于某一理想形状体,我给予100N的力10s,如何通过规则模型解析公式获得该物体10s内的运动状态,首先我们需要去解析公式,确定输入变量数量和格式,在确定输出变量数量和格式,根据公式以一定的频率去输出结果。 在公式撰写规则上直接采用先用的latex语法去语义化编写公式,采用AST算法去解析公式结构. 以该公式为例: @@ -53,7 +70,7 @@ -\section{碰撞检测} +\section{代码规则案例-碰撞检测} 碰撞检测目前定义为虚拟类规则,暂时其输出域数据无法作用于现实世界,主要用于虚拟世界用户交互检测。 为了简化物体之间的碰撞检测运算,通常会对物体创建一个规则的几何外形将其包围。在本系统中,碰撞检测中将物体分为三种检测模型,点、AABB、球体。其中,AABB(axis-aligned bounding box)包围盒被称为轴对齐包围盒。 @@ -61,8 +78,10 @@ 由于性能原因,轴对齐是有一些约束的。两个非旋转的盒子之间是否重叠可以通过逻辑比较进行检查,而旋转的盒子则需要三角运算,这会导致性能下降。如果你有旋转的物体,可以通过修改边框的尺寸,这样盒子仍可以包裹物体,或者选择使用另一种边界几何类型,比如球体 (球体旋转,形状不会变)。 +在该例中,根据不同需要适合使用代码片段去定义该规则。 + \subsection{点与AABB} -如果检测到一个点是否在 AABB 内部就非常简单了 — 我们只需要检查这个点的坐标是否在 AABB 内; 分别考虑到每种坐标轴。如果假设 $P_x$, $P_y$ 和 $P_z$ 是点的坐标, $B_{minX} - B_{maxX}$, $B_{minY} - B_{maxY}$, 和$B_{minZ}–B_{maxZ}$ 是 AABB 的每一个坐标轴的范围,我们可以使用以下公式计算两者之间的碰撞是否发生: +如果检测到一个点是否在 AABB 内部就非常简单了 — 我们只需要检查这个点的坐标是否在 AABB 内; 分别考虑到每种坐标轴。如果假设 $P_x$, $P_y$ 和 $P_z$ 是点的坐标, $B_{minX} - B_{maxX}$, $B_{minY} - B_{maxY}$, 和$B_{minZ}–B_{maxZ}$ 是 AABB 的每一个坐标轴的范围,我们可以使用以下代码计算两者之间的碰撞是否发生: \begin{lstlisting}[ language={}, @@ -91,9 +110,9 @@ function intersect(a, b) { \end{lstlisting} -\section{刚体运动力学模型} +\section{公式规则案例-刚体运动力学模型} - 在虚拟世界中为关联现实设备运动状态,需要根据已有的传感器数据,如加速度、里程信息等估计实体对象运动姿态,或者由虚拟对象指导影响实体对象运动,两者相互作用皆需要实现基本的刚体运动。 +在虚拟世界中为关联现实设备运动状态,需要根据已有的传感器数据,如加速度、里程信息等估计实体对象运动姿态,或者由虚拟对象指导影响实体对象运动,两者相互作用皆需要实现基本的刚体运动。刚体运动的典型计算特征可用于验证公式规则模型,其评估效率和验证性能直观有效。 刚体的运动主要基于牛顿三大定律来模拟: \begin{itemize} @@ -103,7 +122,7 @@ function intersect(a, b) { \end{itemize} -基于牛顿三大定律,在计算机中来模拟刚体的运动,物理引擎来模拟的流程大致都是这样的: +基于牛顿三大定律,在计算机中来模拟刚体的运动流程如此: 对于每个物体,使用循环的方式来模拟: @@ -141,7 +160,9 @@ function intersect(a, b) { \end{tikzpicture} \end{center} -\subsection{理想粒子的运动} +最后将所有运动分解为粒子运动和旋转运动,每秒以一定频率分别计算其空间位置和空间姿态,最终合成为完整运动分析过程。 + +\subsection{空间位置} 先不考虑物体的形状和旋转,把物体当成理想粒子来对待,根据牛顿定律来循环计算物体的速度和位置: \[ dt = t_{i+1} - t_{i} \] @@ -165,7 +186,8 @@ function intersect(a, b) { -\subsection{3d物体旋转运动} +\subsection{空间姿态} +要计算物体的空间姿态,即物体绕某一定点在三自由度上的旋转量,可以用四元数q来表示刚体在极短时间内的旋转量, 惯性张量 diff --git a/data/chapter5.tex b/data/chapter5.tex index cb9c398..766c87e 100644 --- a/data/chapter5.tex +++ b/data/chapter5.tex @@ -41,7 +41,11 @@ "event": "", "properties": { "ip" : "180.79.35.65", - "data": "demo" + "data": { + "demo1": test_data, + "demo2": ...., + ..... + } } } \end{lstlisting} @@ -49,6 +53,7 @@ \section{时序模型} 时序模型是本平台最为核心的一个基础功能和分析手段。在已经运行的集群网络,会收集所有的历史事件,这些历史数据是所有数据分析的基础。整个集群会包含三个状态,过去,现在,未来。现在状态 就是物理集群目前的状态,会按照设定好的规则和节点逻辑运行。过去和未来状态皆是模拟场景,发生在用户端,用户在客户端可以自由的调整时间进度条,往前拉,虚拟场景会自动重新模拟当时的事件数据并按照当时的逻辑规则运行,往后拉,会根据历史的事件数据进行拟合,去预测未来的集群状态和数据。相当于在虚拟世界可以自由的调整时间线,平台会根据时间戳自动重播历史事件消息或者预测未来数据。 + 本文采用时序分解法去预测未来数据,一个时间信号主要有四部分趋势影响叠加合成: \begin{description} diff --git a/data/com_info.tex b/data/com_info.tex index 3e0677e..43746f3 100644 --- a/data/com_info.tex +++ b/data/com_info.tex @@ -39,7 +39,7 @@ \defense{(年)}{(月)}{(日)} % 中文摘要关键字 -\ckeyword{数字孪生, 分布式} +\ckeyword{数字孪生, 分布式消息网络,知识模型,数据推演} % 英文摘要关键字 -\ekeyword{digital twins, message queue} +\ekeyword{digital twins} diff --git a/figure/f8.png b/figure/f8.png new file mode 100644 index 0000000..6c4ec39 Binary files /dev/null and b/figure/f8.png differ diff --git a/figure/f9.png b/figure/f9.png new file mode 100644 index 0000000..edf687f Binary files /dev/null and b/figure/f9.png differ diff --git a/main.pdf b/main.pdf index 096a10c..3acd565 100644 Binary files a/main.pdf and b/main.pdf differ