【论文-笔记】复杂电子系统标准化仿真平台设计与实现

摘要

随着电子科学技术研究的不断深入,实体电子系统的搭建难度越来越高,尤其是对于雷达、通信等复杂电子对抗系统的构建,技术要求更为严苛,一方面场外实际操作的难度较大,系统建成后实验次数有限,另一方面,搭建战场上覆杂的电磁环境不仅有很大的技术风险,也会给实际项目带来巨大的经济负担,因此复杂电子仿真系统的设计和开发对电子元件性能评估、系统模拟测试有着重大意义。现今电子建模仿真技术虽已得到了飞速的发展,但也存在诸多问题:没有规范化统一的系统框架,导致模型的复用性差,开发时存在大量的重复性工作;SystemVue,Simulink 等人机交互良好的可视化建模软件只能进行仿真模拟却不能生成可执行的工程代码;手动的模型代码的编写不仅过程繁琐而且工作效率低。

本文针对复杂电子建模仿真系统存在的问题,给出了可视化建模仿真集成开发平台的设计与实现方法。**该平台可通过拖拽操作新建模型,将模型信息及拓扑结构统一存储,通过模型输入输出端口连线生成仿真场景,并通过运行仿真批处理文件自动生成工程代码,得到仿真结果及波形绘制图。**模型的设计时借鉴了面向对象的思想,从标准化、层次化、可复用的角度,采用 XML 标记语言并用五个关键字段对模型建立了统一、规范的描述。在此基础之上应用了基于模型驱动的代码生成技术,用户可根据自身需求自定义模型并由系统自动生成 C++可执行代码框架;在仿真逻辑控制设计时,采用了基于图论的拓扑排序来决定模型串行仿真的先后顺序,并从四个层面设计了仿真计算速率提升的方案:①以高效的基本线性代数操作库作为底层的矩阵运算支撑,②通过显式添加 OpenMP 指令代码进行多核并行计算加速,③对可视化仿真场景中多连通分量分配多线程进行并行仿真,④以消息通信接口 MPI 为标准的多机并行来实现系统级的联合仿真。

本电子仿真平台具有良好的通用性和移植性,交互环境友好,将系统建模和代码生成功能集成在一起,使操作更加简洁高效。可视化建模仿真模块现已投入项目的实际应用,运行稳定流畅,性能测试良好,给建模仿真工作提供了一定的便利,在未来也具有很大的应用价值。

关 键 词:电子系统, 建模仿真, 标准化, XML, 并行计算

第一章 绪论

1.1 电子系统建模仿真背景与意义

当前的电子技术已经全面进入了数字化时代,发展速度空前,对功能完备性要求的增高导致系统构建的难度也越来越大,尤其是对于雷达、通信等复杂电子系统的构建,技术要求更为严苛,一方面,搭建战场上覆杂的电磁环境不仅有很大的技术风险,也会给实际项目带来巨大的经济负担;另一方面场外实际操作的难度较大,系统建成后实验次数有限,而硬件系统的实现需要反复调试、修改才能成型,无限拉长了整个仿真周期,最后得不偿失。计算机技术的飞速发展给电子仿真带来了革命性的变革,用数学模型对器件的功能和特性进行模拟,计算机虚拟制造出环境,最后将复杂的计算过程交由程序来处理求解。系统建模仿真解决了真实模拟时成本大、风险高、不易于控制的问题,并且可以手动方便地对参数变量进行修改,不断调整方案直到获得满意的结果,保证电路级仿真试验的成功率,大大缩短了研发电子系统的所耗费的时间周期。

建模简单来讲即是对系统的抽象,系统有哪些特性,建立一个怎样的数学或者物理模型才能合理地描述这个系统,用怎样的方式如何表达出它的特性,都是建模时需要考虑的问题。而仿真恰好是一个相反的过程,它是一个将模型通过计算机硬件或
者软件具象的过程,直观的展现出模型所表达的含义。但建模和仿真并不是一个对立的存在,合理的模型可以做到更好的描述使仿真的过程更真实,而优秀的仿真会对模型实现最好的表达,它们是相辅相成的两部分,最终的目的是对系统作出合理的性能评估和在实际应用设计规划时提出指导性意见。

建模仿真技术是一门依附于计算机基础的新兴学科,尤其在设计结构复杂、数量庞大的电子系统时,计算机凭借自身优良的计算能力、直观的显示效果展现出了卓越的优势。近年来建模仿真技术的应用越来越广泛,模型建立算法也日趋成熟完备,
但对仿真系统整体构建的研究还不够深入,没有一个标准化的建模规范和系统架构,导致每次新模型的开发都需要从最底层的模型重新做起,模型和代码的复用率都很低,不仅浪费了大量的时间在重复的工作上面,也降低了模型间的互操作性,因此构建标准化、层次性、可移植的建模仿真系统的工作迫在眉睫。

1.2 相关技术发展现状

1.2.1 电子系统概述

电子系统是指可以完成一个特定功能的完整的电子装置,通常是由若干电子元器件或部件相互连接而成,宏观的看是能够独立完成某些功能的电子设备的总和,这些电子单元在物理结构形式上可以是单独存在的,也可以是多个功能模块分离的,而在功能逻辑上往往具有层次的特点。

电子系统涉及范围广,功能模块多,所以不可避免地会给系统的设计和管理带来复杂性,因此只有对一个复杂的电子系统进行合理的功能结构层次划分,才能有效、成功地构建出模型系统。

电子系统从功能和结构上通常有自顶向下、自底向上、自顶向下为主导结合自底向上三种设计方法。自顶向下强调从整体出发,根据原始设计需求按系统的功能和性能进行合理规划,将庞大复杂的模块独立为规模较小、功能模块单一的子系统,并确立它们之间的相互联系,以此来减少模块间的耦合。自底向上的设计和自顶向下刚好相反,设计者可从现有的可用的部件中选择出最合适的来实现系统的某个特定功能,当没有可以满足需求的部件存在时,则用多个部件组合设计出子系统来满足该功能。该方法继承了面向对象可复用的思想,可以直接使用已经成熟的、经过验证的子系统而无需重新设计,提高了效率,但也可能会让设计人员受限于已有的元件,对系统整体的把握和宏观理解不够全面。自顶向下为主导结合自底向上的方法是对前两种方法的结合,它不仅可以保证整体的系统化、结构的清晰性,又能充分利用现有成熟模块,减少了设计的重复工作,提高了设计生产率,因此也是目前最普遍采用的一种设计方法。

1.2.2 建模仿真技术发展现状

在仿真技术的发展历程中,先后经历了硬件建模仿真与软件建模仿真两个过程。硬件仿真起源比较早,它是先用传统的仿真器件进行系统搭建构成系统然后进行模拟仿真,不具备扩展性和维护性,而软件建模仿真是以数学建立理论模型为基础然后在计算机系统上进行软件的仿真模拟,可以实现高复杂,可扩展,易维护,易修改的建模系统。

在软件仿真系统中,人们在充分研究数学建模算法的同时,也引入了许多标准化的系统建模思想,使得软件仿真系统更易于构建。软件仿真的优越性使得硬件仿真逐步被软件仿真所取代。

早期电子建模仿真系统的设计借鉴了计算机软件面向过程的设计思想,它对系统的整体功能进行比较明确的划分,组织成模块的集合,模块内实现某特定的功能,聚合性高,模块间通过数据的传输或消息进行交互,耦合性低。过程化的构建思想一般来说比较容易理解,也很好掌握,但存在自身的缺陷:自顶向下的方案要求在最初设计时就对系统有全面宏观的认识,对设计者的要求高,另一方面,系统的需求在项目推进时总是在不断变化,很难从一开始就有一个固定的框架,尤其在设计高度复杂、需求多变的建模系统时面向过程的软件设计方法就会暴露更多的弊端。

二十世纪八十年代到九十年代,面向对象的建模思想在计算机领域兴起,也从另一个角度对电子仿真系统的建模过程进行了阐述。和面向过程的思想相反,它是一种自底向上、从局部到系统的建模过程,它从独立的事物出发抽取其特性来对一类事
物进行总结形成特定的对象,面向对象的电子建模系统强调从模型出发,提供标准化、层次化、可视化的系统模型,大大提高了模型的可复用性和可扩展性。

SystemVue 是 ELANIX 公司于 1995 年推出的一套用于通信、雷达与电子电路系统等领域的仿真分析工具,SystemVue 最大的特点就是可视化,它提供了丰富的模型资源和强大的分析功能,它的可视化开放体系结构让用户不需要编写复杂的代码,简化了用户的操作,降低了系统编写人员的要求与负担。SystemVue 通过提供图符的方式,可以让系统编写人员直接通过界面操作来完成系统的搭建与运行,极具便利性。SystemVue 主要提供了三类库,main(主库)包括了基本的加法器、乘法器和信号发生等基本模型;Optional(可选库)提供了专业的模型库,比如信号处理库、逻辑库等;Custom(自定义库),也是特殊的可选库,用户可以根据自身需求扩展出附加的功能。它的缺点是只完成模型的仿真工作并不能生成实际的数字信号处理程序,不能满足在工程应用中对信号处理程序要求的高效性,而且缺乏灵活性,不能根据用户及系统需求定制出具有针对性的模型系统。

现今电子建模中使用比较广泛的就是 MATLAB 下的 Simulink 组件,它是一种基于数字信号的动态仿真、建模和分析包,支持线性、非线性、离散、连续各类系统仿真。和 MATLAB 语言不同,它提供了一种图形可视化的建模方法,模型为外界提供基本的输入输入、参数等信息,将内部实现封装起来,用户在使用时可以直接通过对模型的拖拽、连线和显示的参数修改配置就可以对仿真场景进行搭建,使用户可以将主要的精力放在系统的构建上,避免了传统建模时进行大量的代码编写工作。同时它也为用户提供了一套完备的模型库,从基本的信号产生到针对特定的专业模块,支持动态的系统模型搭建,集成了综合仿真分析平台,即使是新手使用起来也比较方便直观。Simulink 建模过程如下所示:(1) 从模型库中找到所需建模组件并且通过复制操作添加到建模主窗口;(2)填写并修改模型的接口及参数信息;(3)通过线段连接所需模型组件来得到更高级的系统模型。在功能模块方面它提供了将模型系统组合封装成子模型的功能,正是由于它以上的诸多特性使它广泛应用于各种建模仿真系统,但它也存在和 SystemVue 一样的一些缺点,所以在工程应用中无法达到广泛的适用性。

电子建模仿真系统发展到今天已经有了比较好的技术积累,但同时也存在许多亟需解决的问题:基于 C++,Java 语言的建模系统虽然具有良好的通用性,方便工程应用开发的扩展,但现今并没有成熟的软件平台,而且缺乏像 Simulink,SystemVue 之类的基于图形可视化的人机操作界面;另一方面由于电子建模方面没有统一的框架,软件开发人员水平参差不齐、编程风格各异,导致开发的模型兼容性差,经常存在一个系统设计的模型拿到另一个系统就不能使用的情况,可复用性差,而且浪费了大量的时间在重复的代码编写工作上面。本文针对上述存在的问题,下面分别从标准化、可视化、高效率等方面对电子系统进行分析和设计。

1.3 本文结构

本文借鉴面向对象的设计思想并结合实际情况,从标准化、可复用、可视化等规范角度对复杂电子建模仿真系统框架进行合理设计与实现,提供了基于模型模板的代码自动化生成技术,并对仿真控制过程中的逻辑顺序控制及仿真速率提升问题进行研究并给出系统设计方案。在实现可视化建模平台人机交互界面时采用了基于图形图像的 Qt 编程框架,模型数据及建模场景统一采用易于描述并且与模型契合的 XML 数据作为标准格式。模型仿真逻辑控制采用基于图论的拓扑排序决定仿真先后顺序,为提高计算速度提出了 BLAS、线程并行、多核单机并行、多机并行四层加速模型。

本文的主要结构如下:

  1. 第一章对电子系统建模仿真的研究背景及意义进行扼要描述,其次介绍了电子技术的概念及建模仿真技术的发展现状,然后阐述了建模仿真系统存在的必要性以及进行标准化、可复用软件系统开发的迫切性,最后描述了针对现今建模仿真系统存在的主要问题及本文后续展开的工作内容。
  2. 第二章从功能性及交互性两方面对系统进行了需求分析,并介绍了本建模仿真平台在设计实现时采用的一些关键技术。
  3. 第三章首先描述了本系统的结构框架设计,并且将系统按通用模型库管理、可视化场景建模平台、模型代码自动生成、仿真结果反馈显示器、仿真与评估管理、综合管理六大模块进行划分,然后借鉴面向对象思想从标准化、层次化、复用化的角度来对模型系统进行了设计,以此来解决实际中存在的模型兼容性差、不可移植的问题。
  4. 第四章给出了系统的详细设计与实现,首先给出了基于 XML 语言的模型标准数据描述格式以及子模型的具体封装,介绍了 XML 解析方法及自定义场景拓扑描述的树形数据结构以及主要的可视化编辑模块的具体设计与实现;然后介绍了本系统中所使用的代码生成技术的基本原理、具体的框架与流程;最后给出了仿真顺序的控制以及后期仿真计算速率优化方案,并以复杂的侦察电子系统的测频、测向、测角功能模块为例,对系统流程进行仿真演示及测试。

第二章 系统需求分析及关键技术

2.1 需求分析

电子系统建模仿真就是基于数学建模的基本原理,利用计算机模拟现实环境,进一步再现一个真实的硬件环境和电路场景,从而对元件性能、系统的可行性做出一定的分析与评估,对实际的硬件搭建和系统测试有着重要的参考价值。标准化的建模过程不仅具有一致性、模块性、独立性的特点,也有复用性高,通用性强的好处,在建模仿真过程中更加经济、高效。本系统集成了场景建模、用户自定义建模、模型代码生成、仿真数据结果显示等模块,下面分别从系统的功能性需求和非功能性需求的角度作出分析。

2.1.1 功能性需求分析

本系统前台主要是完成用户交互、数据显示等工作,其功能性需求主要有:
(1)可视化场景建模:提供可视化的图形进行模型搭建,用户可通过鼠标拖动、模型连线来构建场景,达到更直观便捷的效果;提供场景的基本编辑操作,包括移动模型,删除模型,复制和粘贴模型等;提供对当前可见范围的扩大和缩小的显示功能;可通过对模型参数进行设置与修改满足不同的参数要求;支持子模型的构建和展开;可编译、运行工程文件,并且可将工程文件运行结果与错误状态信息显示返回给用户。
(2)用户自定义模型:用户可根据自己的需求定义模型,并设置基本的输入、输出、参数等信息;计算机根据创建的模型自动生成工程代码框架,由用户手动填写核心建模代码,减少工作的重复性和用户的操作负担。
(3)仿真结果显示:通过 PPI、AR 显示器实时展现当前场景的状态。
(4)逻辑控制模块:提供逻辑控制流程监控功能,显示当前的仿真进度和实时状态。(5)结果评估与分析模块:用来存储仿真结果并对仿真数据进行比对与分析,并得到仿真评估结果。

系统后台模块需要实现对模型的抽象、操作、管理以及对模型数据生成、处理等,主要功能包括:
(1)模型库的管理:根据功能对系统的各类模型进行合理划分并按类入库,提供基本模型库及库上的添加、删除、移动等功能,并支持用户利用基本模型组建可复用的新模型,用户可根据需求建立自定义模型库,方便下次直接使用。
(2)层次化设计:按照模块粒度和功能类别将系统划分为若干层,同层次模块之间相互独立,相邻的高层模块可复用低层模块,组织结构清晰且容易维护。
(3)代码生成:系统需要对系统自带基本模型与用户自建模型自动化生成代码,减轻用户负担。

2.1.2 非功能性需求分析

系统设计的完整、规范是软件工程的核心,在此基础上快捷的操作、友好的交互等非功能性的原则在需求分析中也是必须要考虑的部分,在本系统中主要体现在如下
几个方面:
(1)便捷合理的用户操作:对于合理的用户操作如粘贴、放大等编辑操作的设计要合理并且尽量便捷易操作,同时符合用户的使用习惯;
(2)交互界面美观且操作友好:从操作的角度讲,各个显示窗口的放置应该参考主流的仿真软件,方便用户上手使用,从美观的角度,窗口大小的设置、图标的放置、颜色的搭配都需要合理选择,保证外观大方整洁,不会带来视觉的不适感;
(3)健壮性:软件的使用者专业水平层次不齐,当存在非法的输入、不合理的操作时应提供一定的反馈信息,保证不
会造成数据的丢失或者系统的崩溃。
(4)兼容性:建模系统应该具有平台无关特性,不依赖特定的操作系统并具有可移植性。

2.2 关键技术

有别于现有的电子建模仿真系统,本系统用可视化的模型编辑替代了传统的手工代码编程,用户在建模过程中只需要考虑模型的构建而不需要过多的关注模型连接和接口的代码实现,使用起来更加便捷、高效。

从宏观的角度看,系统设计可以大致分为前端和后台两个层面,相互间的数据传递统一用一张完整的 XML 文件,如图 2.3 所示。前端主要负责如何将模型描述为XML 文件,后台则刚好相反,需要把相应的 XML 文件翻译为可以运行的实际代码。
在这里插入图片描述

2.2.1 XML 文件语法结构及介绍

XML 又称为可标记扩展语言,全名为 ExtensibleMarkup Language。XML 广泛应用于互联网领域内数据的表示、传输与存储,它的语言优点是语法简洁明了,表示能力强又易于理解。

XML 文档主要包括头部信息与主体信息,头部信息又包括版本声明与编码格式,主体信息主要用来描述各种元素以及元素所具有的属性,并且只有一个文件根节点。在 XML 文件中一个元素表示一个实体,XML 采用标签来标记一个元素,标签又分为起始标签和结束标签,并且不同的一个元素可以通过标签来包含其他的元素,而属性用来描述元素本身的特点。

主流的解析方法有两种:Dom(Document Object Model)和 Sax(SimpleAPIfor Xml)。Dom 表示文档对象模型,顾名思义就是将 XML 文件中的元素映射为文档节点对象,对文档节点对象的处理即为对 XML 文件中元素的处理。Dom 在进行解析
时需要将 XML 文件一次性完整的装入内存,通过节点与节点间的关系来进行解析工作,方便编程,但是占用空间过大。Sax 有别于 Dom 的是它是事件驱动型的,类似于流式的处理,即仅当检测到一个特定的事件(也就是标签)后然后才执行相应的回调函数。它的解析是从刚开始就进行的,而不是一次处理所有数据,所以不会像 Dom一样一次消耗巨大的内存,对于处理较大的 XML 文档来说是一个很大的优点。

2.2.2 标准化建模

本系统采用面向对象方法来对建模系统进行了设计与实现:通过建立基本模型库及模型组件间的操作实现了可视化建模;将功能相同的模型作为一个“类”来看待,通过建立“类”的实例来添加模型;封装子模型并在后期建模中直接使用,达到较高的重
用性。在除了模型设计标准化,在建模过程中也要从以下几个角度考虑:
(1)模型分类:根据模型的功能和结构完整性,将模型分类研究入库,方便管理且易于使用;
(2)共有属性提取:可以先建立基础类,在此之上扩展其它类,如基本的输入输出;
(3)结构和参数分离:将模型的结构框架和参数进行分离,方便用不同参数初始化同一模型;
(4)对象模型模板化:即为每个模型类建立一个模板,用户在使用时直接调用模板修改参数即可,模型内部实现封装对用户不可见。

2.2.3 仿真并行计算

电子建模仿真系统结构复杂、信息量多导致计算规模巨大,所以运行速度成为了电子系统亟需解决的主要问题之一。随着近代计算机技术的不断进步,并行计算技术的提出和应用为仿真计算加速带来了新的革命。并行计算(ParallelComputing)是多核多主机时代的新的数据处理方式,与串行计算不同,我们可以将一个任务划分成多个部分,利用现代计算机上的多核或者同时利用多台计算机来并行处理这个任务的多个部分,进而提高计算效率。从微观的角度讲它是一次执行多条指令的算法,从宏观的角度讲它将初始问题分解为若干子任务,各个部分运行在独立的处理机上以达到并行的效果。

与传统串行计算相区别,并行计算有自己独特的特点:
(1)将工作分解成多个离散部分,有助于同时解决;
(2)随时并及时的执行多条指令;
(3)因为可以同时计算一个任务的多个部分,所以采用多个处理器对一个任务并行处理的速度要远快於单个处理器的处理速度。正是并行计算的上述特点使它不仅在运算速度上有了很大的提升,解决了更多复杂的问题,同时也有效的利用了计算资源,克服了单个硬件运行速率上限。现今的并行计算主要分为单指令多数据(SIMD),多指令多数据(MIMD),单程序多数据(SPMD)和 MPMD(多程序多数据)。

本建模仿真系统的计算速度自底向上主要从以下三个层面进行优化:
(1)底层矩阵运算加速采用高性能多核BLAS(BasicLinear AlgebraSubprograms)库;
(2)利用建模场景拓扑图连通信息将串行结构转化为并行结构,采用多线程并行加速;
(3)本地仿真系统采用 OpenMP 编程框架以共享内存的方式对任务进行并行处理;
(4)多机之间任务的分解、计算资源的分配、结果的回收、消息的传递采用 MPI 并行编程框架来实现。

2.2.4 Qt 开发框架

Qt 是一套通用的可移植的 C++图形图像用户界面编程框架,诞生于 1991 年历经多个版本依旧是业界最流行跨平台的图形界面编程框架。

下面简单介绍在开发过程中用到的 Qt 相关的几个关键技术:
(1)信号槽机制:信号槽和信号是 Qt 中实现图形界面编程的基本机制,弥补了C++语言中没有回调功能的缺点。Qt 通过信号和槽可以将两个不相干的对象通过信号绑定在一起,并且进行通信。一个对象可以通过槽绑定到某个信号,当另外一个对象发出该信号之后,与该信号绑定的对象就会执行相应的信号处理函数。

(2)布局管理器:布局管理器是 Qt 用来实现对不同组件之间 Layout 的方式。最原始的绝对位置布局是通过对窗体内的每个子窗口设置固定的位置和大小来实现的,所以其缺点显而易见:无法改变窗口的大小,在布局时人工计算复杂枯燥且容易出错,而且不利于后期的修改维护,格式和平台的变化也会引起窗口部件的失调。后来的人工布局可以让子窗口大小自适应外部窗体大小,虽然从一定程度上优化了绝对布局的问题但仍需要程序员手动计算位置。布局管理器的作用就是会对其内部包含的部件进行自动管理,当需要调整大小或者位置的时,布局管理器会充分考虑其最大最小尺寸,并且会自动调整布局来适应窗口大小的调整、字体的改变。
(3)GVF 框架:图形视图框架(GraphicsViewFramework)是基于元素(item)的 MV 架构的框架,它将每一个组件都看作是一个独立的元素。有别于 OpenGL 面向过程的绘制方式,GVF 框架首先创建一个场景(scene),然后创建各个元素(item),再使用 add 函数,将元素逐个添加到场景中,最后通过视图(view)进行观察。GVF对图形对象的处理更加符合面向对象的设计要求,而且当场景中存在大量元素时,管理起来更加容易,同时一个很复杂的图形也可以很方便的复用。

2.3 本章小结

本章在前一节研究了课题背景和发展状况的基础上,从功能性和非功能性两个角度对本电子建模仿真系统进行了需求分析,并介绍了本系统设计实现时用到的几个关键技术,主要为模型存储时采用的 XML 标准规范、标准化建模思想、仿真并行计算
的概念,以及采用 Qt 编程框架实现可视化仿真平台的实现原理。

第三章 系统框架与标准化模型系统设计

3.1 系统设计

3.1.1 系统结构设计

用户可通过模型自定义或者可视化建模平台实现对场景的搭建,配置好相关参数信息后统一存为标准的 XML 格式,这样方便系统间的移植和网络传输。电子建模库存放大量已经定制好的基本的电子模型的模板,依据模板进行实例化并利用 XML 中的数据信息将参数重新设置就可完成建模的工作。系统本身会将不同的仿真数据传递给对应的模块,仿真控制模块负责对仿真流程和状态的监控,显示终端会实时反馈探测情况,而仿真过程中的关键性的数据则会被用来进行参数计算,并将重要结果放回数据库。
在这里插入图片描述
功能模块划分:
(1)通用基本模型库,提供通用的基本模型及模型的分类管理,可以手动添加、删除、移动模型,也可自定义模型并加入到库中,统一用 XML表格来表示;
(2)可视化场景建模平台,可以利用基本模型搭建所需的仿真场景,也可以将已经搭建好的模型场景封装为子模型,并添加到模型库中,方便用户以后直接使用;
(3)模型代码生成,用户搭建好仿真场景并检测各个模块有效性和场景连接正确性后,生成相应的代码及动态链接库等;
(4)仿真结果反馈和显示器,包括 AR 显示器和相关仿真结果显示平台,提供直观的仿真结果表示;
(5)仿真与评估运行管理模块,显示仿真逻辑顺序及运行进度,完成仿真过程运行管控和系统性能评估运行管理功能;
(6)综合管理模块,用来完成模型仿真数据存储与处理、模型库管理、实现用户操作与日志存储等功能。
在这里插入图片描述
在图中系统的各个模块相互独立,却又存在信息、数据的相互传递。首先用户可以利用系统提供的通用基本模型在可视化编辑平台搭建仿真场景,也可以根据自己的需求自定义模型、封装子模型;其次确保仿真场景各个模型以及连接关系有效性后将其保存为项目文件,在本系统中底层统一用 XML 文件表示;然后后台拿到 XML 工程文件后进行解析并自动生成模型代码,由仿真与评估运行管理模块实现仿真过程的管控,显示器输出仿真结果;最后由综合管理模块来完成对建模数据的处理,传送及存储等功能。

3.1.2 人机交互界面设计

友好、快捷的交互界面设计不仅会给用户带来视觉的美感、使用的舒适,更重要的是提高了使用软件的效率。
在这里插入图片描述
参考了 VS,Simulink 等主流集成开发软件,采用了相似的窗体布局方式:与用户交互最频繁的可视化编辑窗口位于平台
的中心区域,左侧放置了模型管理器、工程文件管理器相关的管理控件,右侧窗体提供模型属性显示,底部放置了编译及运行输出结果信息。

3.2 模型系统标准化设计

面向对象建模仿真所具有的封装性特点使得各个开发组件之间具有模块性,并且相互之间耦合性低,增强了建模仿真系统的灵活性与可扩展性。

3.2.1 标准化设计

模型的标准化设计可以很好的解决模型结构复杂度各异,设计人员水平参差不齐,很难做到体系结构的规范化这一问题,所谓标准化即是在模型设计、模块划分时,建立的一套规范规则,其中包括对模型的统一化标准描述,规定接口的互操作性,代码框架的标准化,甚至编程风格的约束。仿真模型数量庞大,功能各异,采用一种怎样的格式对所有的仿真模型进行统一
的描述,这是标准化首先需要解决的问题
。全面描述一个模型需要模型名、模型类、输入输出数据、参数属性等各种信息但忽略模型内部功能实现机理,仅从模型外部接口着眼,则所有类型的模型均需要用五个字段进行描述:**基本信息、输入信息、输出信息、参数信息、内部连线信息。**其中基本信息描述该模型所述模型类、模型名、创建日期等最基本的模型信息,输入信息描述该模型各个输入接口及接口上的数据类型、输入值等,输出信息描述该模型各个输出接口及接口上的数据类型、输入值等,参数信息描述改模型各项参数及参数上的属性数据,连线信息主要针对基本模型封装而成的非原子的子系统模型,使用该项可以详细记录其内部基本模型的拓扑结构。

3.2.2 层次化设计

层次化是指在设计系统时按照功能模块将系统划分为若干个层次,划分的原则是每层都有明确的功能特性和相对独立的结构,而且还要有简单、统一的接口便于模块间的连接。分层设计的目标是设计高内聚、低耦合的系统,高内聚是指模块化程度高一个模块只实现一个功能实现功能内聚,低耦合是指模块之间没有功能上的重叠且相互间作用少,仅存在数据层面的联系。
在这里插入图片描述

本节从层次化的设计角度出发,从底层基本模型到高级模型实现逐层的包含调用,模型粒度由细到粗。

  • 基本支撑层:基本支撑层作为整个电子建模仿真的最底层,提供了系统主要的矩阵型运算数据接口——矩阵的操作库,和系统主要数据驱动格式——XML 的解析功能。为了达到良好的兼容性和移植性,矩阵操作库采用 C 语言进行实现,克服了 matlab 不易扩展、不灵活的使用缺点,同时我们采用面向对象的设计思想对矩阵求逆、矩阵相乘等基本操作进行了封装,方便上层模型的调用。考虑到整个系统的基本模型、子模型均采用 XML 规范来描述的设计,系统支撑层也提供了XML 的操作库,其中包括 XML 解析操作,以及对相应的文件内容进行的存储和修改。
  • 基本模型层:提供了建模仿真系统中的基本数字信号处理模型,它是系统模型库中最基本也是最原始的模型。通过研究现有的电子通信理论知识并结合自身需求,本系统设计了一系列功能全面、覆盖广泛的基本模型组件,它是原子的不可再分
    的,是模型库的最小的基本单元。比如基本的信号发生器模型、线性放大器模型、混频器模型等等。我们可以通过基本模型层组件的相互组合构建出具有各种功能子模型。
  • 子系统层:利用下层多个基本模型组合而成的高层模型,具有可再分性,例如由信号发生器、混频器等封装成的发射机模型,由变频器、限幅放大等封装成的接收机模型。
  • 系统组件层:系统组件层是由若干特定子系统层模型搭建而成的一套最高级的完整系统组件,如在图 3.7 的侦察系统模型主要由接收机、侦收天线和信号处理终端等子系统组成。
  • 应用层:是整个系统的最顶层,主要负责仿真数据结果展示,针对不同功能的电子系统可根据需求设计不同的应用程序,如在图 3.7 的通信电子系统涵盖到的 PPI显示器、AR 显示器、地图仿真等应用软件,它们提供用户交互模块,如参数修改、数据评估。本层中的数据通信主要通过内存共享、消息传递等方法实现。

3.2.3 复用化设计

复用化是指在构建结构时可以把之前已经构建好的、经过测试验证的模型简单修改后,无需针对平台重新开发,直接加以利用的体系结构。本系统设计了一套数目庞大、功能完备的基本模型模板,在实际使用时可以通过拖拽到可视化编辑区进行实例化,用户只需要简单的修改参数即可反复使用。

除了提供基本模型模板库外,本系统还支持嵌套生成子模型,子模型的内部包含了多个基本模型以及它们的连接关系,但通过封装后对外仅提供模型的输入输出接口而屏蔽了其内部的构造和实现。

3.2.4 可视化设计

电子系统的建模仿真过程是一个复杂、繁琐的过程,可视化系统建模仿真方法时以层次化为原则,利用界面鼠标拖拽、模型连线来完成这个系统的搭建。可视化的原则就是为用户提供友好方便的交互,它操作简单,容易理解且便于上手,同时具有
更直观、更人性化的理念为用户提供数据信息和展示的特点。

可视化的仿真系统将每个模型用一个具体的图符来表示,然后用户通过图符输入输出接口的连线,完成仿真场景的搭建工作。传统的手动修改模型的配置数据繁琐、容易出错,而且使用起来也很不方便,对模型管理、数据回放的功能也不够直观。可视化的仿真允许用户可以直接对图符进行点击、拖动、修改参数操作就可以快速完成建模的工作,这样可以将设计的重心放在模型的组建上面而不必过分关注其功能实现,模型间的数据传递只需要简单的连线就可以表示,可视化的设计降低了建模过程的难度,同时也降低了对操作人员的能力需求,提升了设计人员的开发效率。

3.3 本章小结

系统的框架结构设计,将系统按通用模型库管理、可视化场景建模平台、模型代码自动生成、仿真结果反馈显示器、仿真与评估管理、综合管理六大模块进行划分。针对实际建模仿真中存在的众多问题,从标准化、层次化、复用化、可视化四个角度对模型进行设计,提高模型系统的工作效率和后期扩展性。

第四章 系统详细设计与实现

本系统为用户提供了数量庞大、功能完备的基本信号处理模型库,用户可以根据实际系统需求利用基本模型来搭建更高级的子模型系统对象,并依照模板对对象模型进行转换。在这里所有的模型均采用可扩展标记语言 XML 标准来进行模型描述,后台对模型描述文件进行 XML 解析后自动生成 C++代码和目标代码,接入通信数据等进行链接就可以生成仿真进程并显示输出仿真运行结果。
在这里插入图片描述

4.1 模型 XML 标准化描述

本建模仿真平台采用 XML 标记语言来对模型进行统一、规范的描述,从而达到模型的标准化设计。属性是模型的重要标签,只有通过某些属性共同的联合、作用才能完成模型特有的功能,换句话说撇开属性不谈的模型也是完全没有意义的。XML
语言本身具有定义数据并且提供描述数据属性、数据类型的能力,同时 XML 语言作为一种独立的标准完全独立于操作系统与操作平台,便于软件的可移植性。下面我们将给出模型的 XML 格式以及具体的实现。
在这里插入图片描述
为了实现模型设计和操作的标准化,如图 4.2 所示主要从五个方面来用 XML 表描述一个基本的模型,每个元素命名时均以“CLS”打头。

除了在模型设计时考虑标准化的问题,模型和基本操作库函数编程也遵循了统一的命名规则。基本模型模板命名时以 mw 打头,当用基本模型搭建子模型时,则默认命名是以 rd 打头,搭建更高层的系统层时命名以 xd 打头。而用于 XML 解析操作的
一系列函数命名统一使用”xml”作为前缀。命名的规范性和良好的编程风格有利于对模型的分类和管理,给后期代码的使用和维护也带来了便利性。

4.2 模型嵌套与封装

为了模型系统后期的通用性和扩展性,除了对单个模型进行了上一章所示的标准化定义和描述,本仿真平台也提供了多个模型嵌套封装进而生成子模型的功能。一个复杂模型可能包含了许多模型,但一些模型共同组合可以完成某个特定的功能,为了方便用户下次直接使用这个模块,提高工作效率,可以将这些模型封装成一个子模型,

4.3 XML 解析及树形数据结构设计

在这里插入图片描述

4.4 可视化编辑平台模块的设计与实现

可视化编辑平台是本系统集成最多、设计难度最大的功能性模块,也是用户进行模型搭建、参数交互的最主要平台,用户可以利用它提供的可视化的图形模型来构建仿真场景,通过自主的连线方式定义模型输入输出接口间的连接关系,编译运行后就可以自动生成代码和可执行文件,这样不仅降低了用户的使用难度,使表达更直观,而且为建模仿真提供了统一、标准化的框架,免去了编写大量重复、简单代码的工作,也利于进行后期的扩展和维护。

4.4.1 可视化模块架构设计与实现

系统可视化模块的设计采用了 Qt 的 GVF 图形视图框架,它是一个基于元素的MV 结构的框架,可以管理大量 2D 图形并且与它们交互,底层使用 BSP 树来提供对元素的快速查找,将每个仿真模型结构看作独立的元素(Item),将当前可见窗口
看作视图(View),整个的仿真图看作场景(View),不仅可以满足本系统对可视化的设计需求,同时也符合面向对象的设计准则,对于有大量模型存在的视图管理也方便了许多。

  • QGraphicsScene:是 GVF 框架中所有 Item 的存放容器,负责场景中所有 2D 图形的管理,配合 QGraphicsItem 类可以通过 add 函数将各个 Item 放入场景,同时它提供了方便的接口函数可以高效的定位到具体的 Item,快速检测到 Item 间的相
    交、碰撞以及事件的处理和传播。
  • QGraphicsView:和 QGraphicsScene 配合使用,是 QGraphicsScene 的一个可缩放的视图窗口,可以看到 scene 的整个场景或者局部,一个场景可以对应多个视图,但一个视图只能属于一个场景。
  • QGraphicsItem:QGraphicsScene 中最基本的图形类,GVF 提供了一些基本的、典型的图元形状,如直线、矩形和圆形等,支持基本的鼠标悬停、按下、释放、双击、拖动、滚轮事件、捕获焦点、键盘事件,除此之外还有图元的包络、碰撞检
    测、绘制重载以及和场景、视图的座标转换。
  • GraphWidget:继承于 QGraphicsView 类,是可视化编辑区的实现类,主要负责可视化编辑区中的模型展示和管理,记录了当前仿真模型树结构的根节点,模型XML 文件的存放路径,指向撤销重做栈的指针以及鼠标在当前场景中的状态标志,同时对鼠标的按下、释放、拖动和滚轮事件进程了重定义,以及根据 XML 文件对场景构建和管理的函数接口。
  • Edge:继承于 QGraphicsItem 类,用来实现一条边的图形元素,也是模型间连线的一部分,主要记录了边的长度、方向,左右连接点的状态,指向左右连接边的指针等,同时也定义了对边的长度、方向、位置调整的成员函数。
  • SimpleNode:继承于 QGraphicsItem 类,描述可视化模型外观的基本信息,如模型的长、宽,上下左右包络边界值,文字信息以及移动状态标志等。为了方便后期对模型类型的扩展,将模型输入输出端口数目操作函数、模型上的鼠标操作函数均设置为虚函数,这样统一的接口可以方便后续编码和管理。
  • BasicOperation:描述可视化编辑上操作的基本抽象类,定义了常见的复制、粘贴、删除、剪切、撤销和重做等基本的编辑操作,需要具备编辑功能的图形元素都需要继承本类。模型的基本操作属于独立功能,所以单独构建一个类来对操作进行描述和管理可以使类结构更加清晰、易于维护。
  • SimpleBasicOperationNode:避免多重继承二义性而构建的类,SimpleNode 和BasicOperation 类是模型的基本属性,其它各种类型模型都需要继承这两个类,如果直接多重继承不仅会导致类结构的混乱,而且在模型类型转换时也会造成很多不便。
  • LineProperty:继承于 BasicOperation 类,用来描述模型间连线信息,LineProperty是在该条连接线上 Edge 的集合,线两边连接模型节点。为了方便检索,该类除了记录模型的名字、文字显示等基本信息,还记录了在连接线上的第一条 Edge 和
    最后一条 Edge,以及连接线两端的模型节点的指针。
  • ModelNode:继承于 SimpleBasicOperationNode 类,描述可视化编辑区中的基本模型,也是最常见最普遍的模型类型。该类定义了模型的输入输出的端口数目、各端口名字和端口连线指针链表;当模型为子模型,还需记录下子模型展开标签页的指针和信息。
  • FolderNode:继承于 SimpleBasicOperationNode 类,模拟模型存放的文件夹节点,是一种特殊的模型类型,它是为了方便对模型分类管理而自定义的模型文件类,并且支持模型拖动入库操作以及文件夹的嵌套功能,主要存放了模型树结构和文件夹展开标签页的链接信息。
  • EndsNode:继承于 ModelNode 类,描述输入输出两种特殊的基本模型,对于输入模型只存在一个输出端,而对于输出模型只存在一个输入端。

4.4.2 模型编辑操作设计与实现

模型可视化涉及了很多基本的编辑操作,主要有删除、剪切、复制、粘贴、撤销和重做。考虑到各种编辑操作的全局性和多态性,所以需要在 BasicOperation 里定义静态型的成员变量来模拟剪切板和撤销重做栈,虚函数为各种类型模型的编辑操作提供统一接口。

  • 剪切板:用一个链表存放各个图元的编辑操作来模拟剪切板的功能,对链表统一的操作如清理剪切板、复制到剪切板、剪切到剪切板等定义为类成员,具体的复制、剪切等操作设置为虚函数留给派生的各类模型自行扩展。
  • 撤销重做栈:采用 Qt 提供的 QUndoStack 模拟撤销重做栈,有撤销重做需求的各个操作需继承基本的 QUndoCommand 命令并重写 undo 和 redo 函数即可实现。

4.4.3 模型视图架构实现

模型视图框架将底层的数据(模型)和上层的用户显示(视图)分离开来,将表现用户数据的模型类和 GUI 视图代码进行清晰的划分,不仅减少了管理的复杂性,而且使相同数据在不同视图下保持一致性成为可能。

在系统实现时,考虑到模型参数信息、输入输出接口等属性信息数据量较小,采用默认提供的 QListWidget,QTreeWidget 和 QTableWidget 来实现,它们均继承于标准的视图类并且封装了标准模型,使用起来方便。对于文件管理窗体的实现,视图采用基本的QAbstractItemView类,模型采用QFileSystemModel类,它不存储数据本身,而是保存了文件在系统中的一个索引,用户在视图上对系统文件的增加、删除、修改等操作都会反馈到后台的模型,通过 QFileSystemModel 可以获得文件的信息,甚至可以创建或者修改文件系统。

4.5自动化代码生成框架

传统的仿真系统进行模型编码时总会存在大量重复性工作,导致开发人员经常要花大量的时间在一些枯燥乏味、简单的代码编写上,这样不仅会降低开发的效率,而且手动的代码复制粘贴容易带来很多不易察觉的错误。另一方面,在考虑模型代码设计的同时,开发人员还需要考虑模型间接口的编程,这提升了系统设计的难度和复杂度,也不利于进行模型的抽象和提取。自动化代码生成技术的引入很好地解决了这一问题,它减少了代码的重复编写,同时也解决了在大型软件开发中不可避免的风格混乱问题,编码的统一风格使得后期的升级与维护工作不会随着软件规模的扩大而无法展开。

基于以上分析本系统采用了代码自动化生成技术,系统以模型作为软件的组件并以此为出发点,利用模型驱动开发 MMD(Model driven development)生成代码、文档、测试工具甚至其它模型的延伸。对於单个基本模型,虽然各个模型功能各异,实现原理各不相同,但分析后可以抽象出一些公有的结构框架,比如模型的输入、输出接口以及模型的参数,将这部分信息提取出来就可以利用自动化代码生成技术生产基本的框架代码,然后由开发人员手动填写主要的核心代码,这样减少了重复的工作并且统一编程风格。

自定义模型代码生成流程图 4.13 所示,首先用户可以根据系统的需求自定义基本模型,配置相应的模型信息、输入输出接口以及参数信息,并依据本章设计的 XML模板规范生成相应的 XML 模型描述表;其次解析 XML 文件并参考代码生成模板和
XML 描述表自动生成模型的 C++头文件和源文件代码框架,最后用户只需要在规定函数段内填入核心的算法代码并进行编译链接就可以生成可直接使用的.lib 库文件。将生成的模型加入到基本模型库后,下次使用时就可以直接调用接口函数并注入相应的输入数据,无需重新进行模型的构建和代码编写工作。

系统的高层模型可以在可视化编辑平台下利用基本模型嵌套生成,和单独的基本模型类似,模型的拓扑关系和输入输出、参数等各项信息最后统一存为 XML 文件,后台利用基本模型已经生产好的的代码模板并将XML解析的数据信息作为注入即可
得到可执行代码和仿真结果。

4.6 人机交互界面设计与实现

界面展示风格的定义主要通过两种方式:用户对窗体样式自定义修改和基于表单的编码修改。用户自定义窗体样式修改方式允许用户根据自己的需求对编辑区中的字体、连线和语言进行设定,这种方式和一般的可视选择对话框类似。

基于表单的编码修改方式弥补了 UI 开发时单个控件样式调整粒度粗的缺点,Qt的允许程序员像 WEB 端使用 CSS 一样使用 QSS,将页面美化和代码层分开,使得控件的调整更为细微,更容易维护。

4.7 仿真顺序逻辑控制及速率提升

4.7.1 串行仿真逻辑控制

在仿真场景图中,将模型看作结点,模型输入输出接口间的连线看作边,则模型的拓扑关系图就可以映射为图论中的有向图。考虑到模型的输入输出之间存在一定的依赖关系,为了保证上游模型的求解顺序在下游模型之前,因此可以采用拓扑排序算法来确定模型串行仿真的先后顺序。假设在图(V, E)中,则拓扑排序就是将所有结点排列成满足如下要求的序列:若存在由结点 i 出发指结点 j 的边,则结点 i 在序列中应出现在结点 j 的后面。可以采用广度优先搜索来将一个有向图(V, E)转化成一个拓扑序列,具体流程如下:
在这里插入图片描述

4.7.2 仿真速率提升方案

复杂电子仿真系统内部结构复杂,计算量巨大,为了提高仿真软件的运行速率,一方面可以从底层矩阵运算操作的优化入手,但算法的改进是有极限的,另一方面我们可以从仿真的流程控制入手,将串行化的仿真过程并行化,以此来极大地改进系统的仿真效率。
在这里插入图片描述
在基本支撑层调用 BLAS 程序库来对矩阵操作运算进行优化。BLAS 是个通用的基础的线性代数程序库,它为基本的向量和矩阵运算提供了标准的构建块,包含了功能完备、数量庞大的已编写好的线性代数运算程序。在本系统中,底层模型的开发
统一使用 C++语言来保证软件体系结构的通用性,在进行矩阵操作库配置时选择了C++开发的高质量线性代数开源库Armadillo,它编程规范和接口非常类似于 Matlab,后期可以很方便地将 Matlab 编写的算法移植到 C++。Armadillo 内部也结合了LAPACK 和 BLAS 等进行运算加速,但其本身的计算能力并不强,为了得到更好的优化效果和执行高效性,本系统配合了开源的 OpenBLAS 库作为 Armadillo 的底层。

在基本模型层采用 OpenMP 来利用现代计算机系统的多核优势实现并行操作。OpenMP 是一套基于共享内存的支持多线程并行编程接口,它具有跨平台、模式可伸缩、接口灵活的特点。OpenMP 虽然通过利用现代计算机多核的运算资源对系统
进行了并行化的计算提升,但线程创建和结束也存在一定的开销,所以当数据运算量比较小的时候不考虑进行 OpenMP 的并行优化,比如在本系统中,最典型的当处理for 循环时,只有在循环比较多的情况下进行 OpenMP 的并行加速。

在系统组件层采用MPI多机分布式并行编程框架来处理对计算资源的分配以及多机之间的通信任务。MPI 是基于消息传递机制的多机并行编程接口,也是目前并行系统中被广为使用的一种编程模式,当系统中存在多个仿真模块时,可采用 MPI
实现多机集群并行计算来协同完成整个仿真任务。图 4.20 以通信对抗电子系统为例简单介绍 MPI 并行计算的流程。在通信对抗电子系统中包含了雷达、侦察、干扰等多个模块,各个模块具备不同的功能且负责不同的仿真任务。整个系统的管理控制采用了MPI中经常见到的主从模式,程序初始化后同时对主进程和从进程进行启动,主进程代表总体的控制调度平台,从进程代表各个仿真模块,可以模拟雷达、侦察等各个通信对抗电子模块。主进程负责广播参数等信息并向各个仿真模块发布仿真任务,从进程接收主进程发送的参数信息完成初始化,然后执行自己的任务,比如雷达模块启动搜索并进行信号处理工作,侦察模块启动侦察仿真并进行测频、测向处理工作。从进程完成仿真任务后将仿真结果送回主进程进行综合分析,进而对对方通信布局状况、设备参数等进行全面系统的了解,并将重要的信息存入系统数据库方便日后比对

第五章 总结和展望

5.1本文工作总结

电子建模仿真系统是进行硬件模拟、电子系统设计的重要基础设施软件,具有代替硬件实验、验证系统可行性和减少人力物力资源浪费的优点。随着电子系统功能模块的增多,其设计的复杂度也越来越高,传统的电子建模仿真系统使用起来已经力不从心。本文设计并实现了一款基于编辑可视化、建模和代码生成相集成的电子仿真平台,利用了面向对象思想,对系统模型进行标准化的设计,具有可移植、可扩展的使用特点。同时利用可视化场景模型图结构关系和并行计算技术来实现仿真运算性能的优化,提高了系统的仿真效率。

本文首先介绍了电子建模仿真系统的发展现状以及背景意义,主要说明了复杂电子仿真系统中所遇到的问题,突出系统复杂程度高、需求变化多样与计算量大的特点,以及原有的建模仿真系统可扩展性差、不具备可移植能力以及复用率低的缺点。接下来我们讲述了本系统中的概要设计包括系统需求分析以及所使用到的关键技术。其次我们详细描述了本系统中模型的设计方法,包括采用面向对象思想的标准化模型描述及建模过程,重点突出了本系统的模块化、复用率高以及可移植性、可维护性强的特点。同时也介绍了本系统的自动化代码生成技术,它具有减少重复代码编写并且可以保持编码风格统一的优点。然后本文描述了本系统在提高系统计算能力,提升建模仿真效率方面所做的工作,包括底层代码所使用的用于加快矩阵运算操作的 BLAS 运算库,以及利用拓扑排序将仿真图分解为多个连通子图,每个连通子图分别创建一个线程来进行多线程仿真操作。为了充分发挥现代计算机系统的多核优势,本系统使用OpenMP 编程框架将可以并行计算的部分自动进行并行化操作,最后为了克服单机计算能力以及资源不足的缺点系统采用了 MPI 来对仿真模块进行多机并行操作,加快了仿真系统的效率。

5.2未来工作展望

对于电子建模仿真系统的改进,主要包括以下三点,第一是系统的开发流程,第二是针对电子仿真计算量大的问题,第三是对仿真结果的分析。关于系统的开发流程的改进包括如何加快系统的开发效率,减少核心功能模块之间的耦合性。在本系统中我们采用 C++语言的 Qt 框架来进行交互界面的编写,C++语言庞杂并且极易出错,不适合界面开发。未来可以采用多种语言的结合来改进开发效率,可以采用 python 等动态语言进行人机交互界面的编写工作,采用 C 或者 C++语言进行核心模块功能的编写并提供接口,不仅可以提高开发效率也可以减少错误出现的机率,增加系统的可维护性。

关于电子仿真计算量大的特点,我们可以利用 GPU 进行并行计算,GPU 是最近流行的一种新的并行计算方法。我们可以尝试利用 CUDA 等编程框架来实现GPU 上仿真系能的加速。

最后有关仿真结果的分析,现有系统只是简单地呈现建模仿真的数据和波形等结果,并不具备对仿真结果进行分析的特性。可以采用模式识别、特征提取等人工智能技术来对仿真数据进行分析甚至预测。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章