没有合适的资源?快使用搜索试试~ 我知道了~
SoftwareX 9(2019)282原始软件出版物MC马西莫·塞拉奥洛意大利比萨大学ar t i cl e i nf o文章历史记录:接收12十一月2017收到修订版2018年11月24日接受2019年关键词:折线图条形图傅立叶级数后处理Lab-viewATPASCIIa b st ra ctMC它允许可视化和后处理这些数据,而无需在目标计算机上使用生成数据的原始软件它是从头开始编写的,考虑到研究人员和科学家,因此优化了速度,清晰度和可靠性。它与现有绘图软件的大基础的区别在于其灵活性:使用这个小软件,用户可以对从其他来源(模拟软件或测量设备)获得的结果进行绘图和后处理活动,而无需将这些来源安装在进行后处理的计算机上。此外,它允许读取非特定软件上很少提供的文件格式,例如ATP,Comtrade,LabView格式。虽然对其中一些格式的支持还不完整,但作为开源软件,任何人都可以对扩展它们做出贡献,只需在单个cpp文件上操作它是使用Qt平台开发的,该平台允许良好的GUI设计,并且已经可用于Windows,Macintosh和Linux系统。本文介绍了该软件的特点和开发过程中使用的一些编程技术了©2019作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。软件元数据当前软件版本软件版本仅提及可执行月份和年份。本文所指的版本为2017年8月此版本可执行文件的永久链接http://ceraolo-plotxy.ing.unipi.it/default.htm法律软件许可证LGPL 3计算平台/操作系统Windows(自XP起)和Mac OS(自10.7-Lion起)多种Linux版本(在Ubuntu 16.04下测试)安装要求依赖项无依赖项如果可用,用户手册链接-如果正式出版,包括参考参考文献列表中的出版物S2中的链接提供的文件包含完整的文档,以及一个按钮,快速获取程序教程。问题支持电子邮件:salemo.ceraolo@ unipi.it1. 动机和意义MC它最初的动机是提供一个强大的和易于使用的绘图程序的输出从电子邮件地址:E-mail. unipi.it1今天可以在“PlotXY”名称下找到的其他程序本文只描述了一个,其全名是https://doi.org/10.1016/j.softx.2019.01.017免费软件ATP程序,在那个时候没有一个令人满意的绘图工具,在作者它的第一个描述现在已经很老了[1]。近年来,它已经完全重写,使用Qt仿真环境的强大功能,其中,除其他外,允许为不同的平台目标顺利编译程序。利用这种重写,添加了现代功能以保持其最新,例如2352-7110/©2019作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxM. Ceraolo / SoftwareX 9(2019)282283以SVG、PNG和PDF格式输出绘图,并管理现代4k分辨率和多屏幕。现在有许多软件包可以进行绘图和后处理,无论是商业的还是免费分发的它们中的许多程序除了进行数值计算外,还有自己的绘图例程来显示结果,例如:Mathworks这是一个强大而庞大的商业程序,广泛用于世界范围内的科学计算,包括复杂的绘图和后处理功能;Scilab [3].这是一个开源程序,能够执行Matlab的大部分任务达索系统它们是模拟用Modelica语言编写的模型的工具。Dymola是商业的,OpenModelica是开源的。Siemens它是一个模拟包,旨在构建和模拟以专有格式以及Modelica语言编写的模型。National它是一款系统工程软件,适用于需要测试、测量和控制的应用,可快速访问硬件和数据洞察。测量数据被写入具有特殊格式的asktop文件,允许其他软件读取测量数据和附带信息Gnuplot [8]是一个专门的绘图工具,它非常强大,并且是免费发布的。但它面向绘制数学函数,而不是从存储的数据中绘制存在许多其他绘图/后处理程序,但根据作者通常,它们支持自己的专有格式和其他格式,但它们通常缺乏理解一些开放格式的能力,例如ATP [9]和COMTRADE [10]的pl4输出。它们中没有一个与PlotXY直接竞争,因为它的综合功能:– 它能够读取一些开放的格式,如ATP pl 4和COMTRADE,但也支持Mathworks– 它是开源的,因此任何人都可以提出改进或添加。事实上,该程序一直在不断更新,甚至在最近几年根据用户的建议– 它非常小且便携,不需要执行安装例程,并且具有非常陡峭的学习曲线。然而,如果这个程序缺乏灵活性,那么它就不会吸引人,而这正是今天可视化程序所需要的它具有多年来开发的丰富功能,这些功能将在以下章节中讨论。另一篇与PlotXY相关的论文已经出现[12],但这只是一个简短的交流,并没有考虑最新的发展,主要是从专有代码到开源代码的转换本文包含更新和增强的程序说明。2. 软件哲学和特点在展示一些绘图示例之前,这里介绍了拟议软件背后的基本选择。2.1. GUI该程序被设想为与其他软件一起使用因此,做出了以下基本GUI选择:没有菜单。精心挑选的命令可通过按钮多个窗口,以缓解尽可能多的桌面空间与其他程序的份额它们可以独立地放置在电脑桌面上的任何地方;如果需要,它们可以通过点击“排列”按钮进行干净的排列跨会话的外观重复性该程序的用户通常仔细选择所有程序窗口的位置和大小,以便它们与其他程序共享桌面空间这些位置和大小可以从一个会话保留到下一个会话(这是使用操作系统功能(如MS Windows的注册表)获得的2.2. 开发平台GUI程序必须访问操作系统这使得通常将GUI软件从一个平台迁移到另一个平台变得非常复杂。相反,Qt [13]多平台编程环境附带了大量的库,作为应用软件和操作系统原语之间的中间层Qt是分布式GPL或LGPL,非常强大和快速。PlotXY目前在Qt 5.7下编译,但从5.0开始可以与任何Qt版本编译。 它由一组.cpp和.h文件以及一些其他杂项文件组成。为了便于分发,它希望在任何情况下都有一个可执行文件。因此,Windows版本自包含在“. exe”文件中2.3. 软件主要功能在第1节中已经指出,这个程序的基本动机是成为一个自由和精益的绘图和后处理程序,能够从多个来源读取数据,这使得它不同于大多数现有的其他解决方案。所有实现的功能都是在考虑到这一想法的情况下构思的下面的小节中列出了这些内容,以及关于它们如何实现以及为什么实现的评论。2.3.1. 绘图能力PlotXY具有当今任何绘图程序所期望的基本功能,例如可以绘制信号与时间或其他信号的关系,同时绘制来自同一文件或不同文件的多个变量,快速多层缩放和取消缩放,窥视数值。用户可以看到从输入文件中读取的数字,或者线性插值,如果他喜欢的话。PlotXY中需要特别注意的是轴数的选择。PlotXY尽可能避免在轴上包含太多数字的数字。大部分代码都是专门用于此的,因为其他软件很少显示的一些典型方式的数字并不简单。详见第4.3节。该程序是围绕线图设计的。但是它也可以显示条形图,这对于显示傅立叶分析的输出非常有用。········284M. Ceraolo / SoftwareX 9(2019)2822.3.2. 输入/输出能力这个程序背后的想法是需要能够读取几种可以读取的输入格式许多已经实现,并在用户的帮助下,显示他们的需求的列表增长该程序的开发方式是自愿的,过去不允许完全支持复杂的格式;但由于该程序最近已成为开源的,未来可以在任何自愿这样做的人的帮助下开发其他输入格式。PlotXY已经能够读取ATP [9]、COM- TRADE [10]、LABVIEW[7]文件的子集。它还可以读取和写入版本4的Matlab文件,并读取版本5格式的子集。这将是非常容易使它完全兼容更新的Matlab版本,但这将意味着分发Mathworks该程序是Matlab读取软件,实际上是直接用C语言编写的.它还可以正确地读取两个主要工具的任何输出来模拟Modelica模型,Dymola [4]和OpenModelica [5]。虽然这些文件格式的官方文档并不存在,测试表明完全兼容这些工具的任何模拟请注意,由非营利组织Modelica协会[15]开发的Modelica是一种快速发展的仿真建模语言,它允许使用任何支持Modelica的工具来虚拟仿真相应的模型绘图或图表可以复制到剪贴板,或保存在PNG,SVG,PDF文件。可以创建包含输入文件中存在的变量中的选定数量的变量的新文件2.3.3. 后处理能力对于一个有雄心作为一个有用的工具来分析来自多个来源的数据的程序,一些后处理能力是强制性的。这是以一种非常强大的方式添加的,因为用户可以以一种相当任意的方式混合曲线:包含任何数量信号的和和/或积的公式,将它们与常数混合并使用括号进行分析和绘制。此外,输入变量的积分或输入变量的组合可以创建并绘制时间,从而允许计算功率的能量,电流的存储电荷等。2.4. 速度尽管有现代化的开发平台,但仍有良好的编程技术的空间。为了在屏幕上绘制一个直线图,很可能会发生一些绘制动作在视觉上是多余的。例如,如果有几个点位于一条直线上,则只需从直线的第一个点到最后一个点画一条线,去掉中间的点。今天,这部分是由开发平台库直接完成的。然而,在[12]中显示,即使与Qt平台的预编程图形原语相比,原始冗余点消除例程的实现也节省了大量时间。3. 开源软件包该程序最近已成为一个开源项目,在GitHub上提供(存储库“max-privato/PlotXY”)。从这个存储库的源代码创建的程序这是因为此格式被视为ATP机密。包括ATP读取功能的二进制文件随本文一起分发,并在云区域中保持更新,其地址为在GitHub存储库的readme.md中保持更新4. 绘图窗口和用法4.1. 访问文件和变量由于该程序被设想为绘制来自不同来源的数据,例如,为了比较模拟数据和测量数据,追求对不同文件、文件类型和所附变量列表的容易访问。图1的左边部分显示了加载的几个文件,在其顶部有一个相应的基本信息列表,以及一个变量列表在左下角选择一个。通过改变当前文件,变量列表被更新:这允许创建比较不同来源的信号的图。例如,由同一程序产生的不同文件,或由不同程序产生的文件,甚至比较测量和模拟数据。图的右上角显示了两个绘图示例基本上,PlotXY从输入文件中读取要打印的数值数据然而,作为一个更好的Modelica绘图工具,它读取并告诉用户参数的值,即,在模拟过程中不发生变化的量参数例如是电路的电阻或电感、机械系统的质量或惯性矩等。Modelica输出的参数列表显示在底部,对应于图4左上角文件#4(Rectifier3ph.mat)中报告的模拟。1.一、4.2. 绘图类型虽然在这里提出一个详尽的情节特征清单显然是没有用的,但说明一些特殊的特征以及选择它们的原因是很有意思的。4.2.1. 线图线图具有缩放和取消缩放、自定义颜色和线条样式、添加网格、使用日志或DB比例等常见功能,这通常是绘图程序所需要的。这里我们只讨论一些特殊的功能,即使在好的绘图软件中也不总是存在。消除视觉冗余点。当绘制具有大量点的图时,很可能发生某些图段不必在屏幕上跟踪,因为对应的像素已经设置。 避免这种多余的绘制可以显著提高打印速度。详细内容见[12]。此外,为避免调整绘图窗口大小时的迟缓,在调整大小期间,仅调整所显示绘图的位图图像的大小,这是一个非常胖的操作;仅当缩放操作完成时(即,在100 ms内未请求调整大小操作时),才重新绘制绘图。偷看数值。由于PlotXY考虑到了科学家和工程师,它显示的数值与文件中的数值完全相同:可以进行线性插值,但不是强制性的。用户可以通过将鼠标指针放在曲线附近(单独曲线窥视)或移动标尺来窥视数值,同时显示与水平轴上单个点对应的所有数据值两个垂直轴。并不是所有的模拟程序的绘图部分都允许这个功能,当我们想要比较具有不同数量级甚至测量单位的曲线时,这个功能确实非常重要X-Y Plots:这允许绘制一个变量与另一个变量的关系。图2显示了使用PlotXY时此功能如何出现的一些示例,显示了时间图(左),相应的X-Y图(中)以及后者的缩放部分(右)。条形图。周期量的傅立叶分析产生振幅和相位的离散值。然而,M. Ceraolo / SoftwareX 9(2019)282285Fig. 1. 一些基本的程序窗口:文件和变量列表(左上)、绘图示例(右上)、与所考虑的模拟相关联的参数的表格视图(底部)。很少看到这些值显示在折线图中,这是混乱的。相反,PlotXY正确地使用了条形图,它包括一个特定的功能来查看数值,缩放功能等。4.3. 自动计量单位和前缀,智能计量表许多绘图程序以指数形式显示非常大或非常小的数字。在图的左上角。例如,我们看到OpenModelica [5]图形界面程序是如何做到这一点的。这不是一个好的技术实践,因为所有的标签共享相同的指数,最好只使用一次。其他最近的工具也有这个缺点,例如[4]。相反,PlotXY添加了一个独特的紧凑的十次幂系数。当度量单位已知时,无论是因为从变量名推断还是因为用户指定,标准前缀(“µ”是用来让阅读更容易的。这例如在图3的右上部分中示出,其中轴量是电压和时间。286M. Ceraolo / SoftwareX 9(2019)282图二. XY图生成和缩放。图三. 与OpenModelica如果可用,则从输入文件中获取测量单位信息;如果无法实现,则可以使用基于变量名称首字母的约定为了具有良好的可扩展性,轴上的刻度标记的数量必须在小图中减少,在大图中增加。这是由PlotXY完成的,它使用可变数量的图形,对于微小的图形,最少可以是三个。例如,考虑图3中右下角的图,它比较了最小的PlotXY和OpenModelica版本的图。5. 影响如第1节所述,PlotXY具有一组独特的功能,使其与现有的绘图砂后处理软件相比是独一无二的。它是开源的,可执行的(微软它允许从许多不同的来源制作绘图和后处理数据,并导出部分数据和位图或矢量图形绘图。在允许创建多个图,从不同的来源,例如模拟或测量软件的数据它利用了最先进的Qt开发环境,对科学和技术用户有用,在许多技术和科学领域中运行。致谢我要感谢比萨大学,它让我可以自由地利用我的时间,当不从事机构任务时,进行创建和维护PlotXY的特殊活动。这本身是令人满意的,并允许我做一些对来自世界各地的人有用的我感谢来自加拿大的Perry Clements,他提出了在Linux下创建一个appimage来分发PlotXY的想法,并且亲自创建了这个appimage。引用[1]塞拉奥洛湾获得清晰的模拟和测量数据。 IEEE Comput ApplPower2000;13(4):36-42.[2]Mathworks/Matlab网站http://www.mathworks.com。[3]Scilab网站www.sclilab.org。[4]Dymola系统工程建模和仿真平台,www.3ds.com/products-services/catia/products/dymola/。[5]OpenModelica官方网站:www.openmodelica.org。[6]西门子 LLab Amesim,https://www.plm.automation.siemens。com/en/products/lms/imagine-lab/amesim/index.shtml。[7]国家仪器公司http://www.ni.com/en-us/shop/[8]http://www.gnuplot.info/网站。[9]欧洲EMTP-ATP用户组互联网网站:ATP http://eeug-test。hostingkunde.de/网站。M. Ceraolo / SoftwareX 9(2019)282287[10] C37111-2013-IEEE/IEC测量继电器和保护设备https://standards.ieee.org/findstds/standard/C37.111-2013.html[11]labView格式说明符:http://zone。尼岛com/reference/en-XX/help/371361N-01/lvconcepts/format_spefier_syntax/。[12] 塞拉奥洛湾有创建软件工具来分析和后处理模拟和测量数据的经验在:软件实践和经验。ISSN00380644,Wiley,http://dx.doi.org10.1002/spe.2632。[13]Qt软件开发工具包网站:https://www.qt.io/。[14]AppImage网站www.AppImage.org。[15]Modelica协会官方网站,www.modelica.org。
下载后可阅读完整内容,剩余1页未读,立即下载
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功