一种电储能设备功率测试系统的制作方法

文档序号:11110912阅读:724来源:国知局
一种电储能设备功率测试系统的制造方法与工艺

本发明涉及了一种测试系统,尤其是涉及了一种电储能设备功率测试系统。



背景技术:

随着电池、电容等电储能设备在现实生活中的越来越广泛的应用,对这类的电储能设备的检测、充放电控制越来越重要。若能成功对电储能设备功率检测和充放电,则有利于电储能设备的保护,以及电力设备的正常工作。在现有技术中缺少了能更好地实时监测和管理电储能设备的充放电的系统或者设备。



技术实现要素:

本发明主要解决的问题是:如何实现仅通过一台上位机对多台不同类型设备(精密功率仪、可编程电源和可编程负载)的连接与通信,以及如何有效地控制电储能设备的输出状况,实时高精度测量电储能设备充放电功率状况,使得测试过程方便可靠并且智能自动,测试效果准确及时。为了解决上述问题,本发明提出了一种电储能设备功率测试系统,可广泛通用。

本发明根据设备的文档,利用Matlab/Simulink将系统呈现出来。本发明主要考虑的一个是如何控制设备,另一个是如何让用户使用简便。本发明采用的技术方案是:

精密功率仪、可编程电源和可编程负载均与上位机进行串口连接,上位机内构建有用于对不同类型设备(精密功率仪、可编程电源和可编程负载)的连接与通信的软件模块。

所述的功率测试设备包括:精密功率仪、可编程电源和可编程负载。电储能设备连接可编程电源,可编程电源对其进行充电;电储能设备连接可编程负载,对可编程负载进行放电;电储能设备连接精密功率仪,通过精密功率仪进行电压、电流、电功率等测量;精密功率仪、可编程电源和可编程负载均与上位机连接,在上位机中通过Matlab/simulink构建分别与精密功率仪、可编程电源和可编程负载相连并对应控制的精密功率仪模块、可编程电源模块和可编程负载模块,其中每个模块均包括用于对多台不同类型电储能设备进行连接通信和测量的连接模块、指令模块和用户操作模块。在连接模块、指令模块和用户操作模块相互之间通信以及连接模块和功率测试设备之间通信时,针对写入和查询的两种不同通信类型分别编写封装函数进行通信。

用户操作模块用于用户输入控制与显示信息,指令模块用于将用户输入的控制信息翻译成对应的指令,连接模块用于将指令通过串口发送给功率测试设备进行控制。工作时,功率测试设备检测获得信息数据经过连接模块后直接发送到用户操作模块进行显示。用户的操作也将通过用户操作模块输入控制要求,然后依次经过指令模块和连接模块对仪器进行相应的控制。

针对不同功率测试设备,所述连接模块构建各个电储能设备连接的功率测试设备唯一对应实例路径,通过修改电储能设备对应的功率测试设备的实例路径实现对相同型号的不同功率测试设备的连接切换。

所述用户操作模块采用Matlab/simulink工具以模块化方式搭建,采用模块化设计,具有可扩展性。simulink运行过程中实时运行,和物理时间同步。另外,本发明的用户操作模块可加入到Matlab/simulink自定义库中,应用时可与simulink自定义库中的原有其他功能模块共同使用。

连接模块作用:上位机可以通过连接模块同时与多台不同硬件设备进行串口连接。因为通过串口数据线与各台设备,每台设备有独自的ID号,连接成功后每台设备即有独自的路径,然后在Matlab平台上使用连接模块,通过修改目标设备的设备实例路径,连接成功后设备会蜂鸣代表连接成功,根据这样的方法,即可对相同型号的任意设备进行连接通讯。而电脑多个串口数据就可以连接多台不同的硬件设备,每个硬件设备又能够连接若干台电储能设备。而本系统中所使用的WT1800这种功率检测仪,又可以进行多通道的检测,故本发明可以实现多台设备的连接与通信。

指令模块作用:指令模块封装在Matlab软件之中,模块包含数百条具有统一格式的、相对通用的、可以对设备进行相关测试的指令。指令主要包括输入输出设定、测量设置、基本模式选择等基本部分,通过编程指令对设备进行充放电与高精度测量,从而对整个系统进行控制与相关调整。具体指令模块构成及配置见下文具体实现方式。

用户操作模块作用:用户操作模块基于simulink搭建,将指令模块封装后,实现可视化界面,用户直接可以进行操作,用户简单易懂而且使用方便。同时实现了simulink工具与物理时间同步,能够实时地对系统的监测与控制,从而实现了远程同步检测的目标。而且simulink工具能够完成较长时间智能自动化监控,用户可自主设定监控时间或者自行设计控制手段,实现了自动化控制,无需工作人员进行时刻的观察。

本发明的有益效果是:

本发明实现了仅通过一台上位机对多台不同类型电功率检测仪器的连接与通信,以及有效地控制电储能设备的输出状况,实时高精度测量电储能设备充放电功率状况,使得测试过程方便可靠并且智能自动,测试效果准确及时。

本发明能够可远程操作,有效地对功率仪、电源、电子负载进行控制,且控制过程方便、快速、有效,能够节省大量的人力、物力,实现了智能自动化监控,能够长时间无人监控状态下进行工作。

本发明系统具有良好的通用性与先进性,也具有非常好的拓展性,用户可以根据自己的需求对系统进行拓展和改进,例如将长时间获取得到的历史数据存储等。

本发明具有可拓展性,能够进行多通道测试功能,从而实现对多块电储能设备进行测试。

附图说明

图1是本发明系统的连接框图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。

本发明实施例及其实施过程如下:

在本发明一个较佳实施例中,所述电储能设备测试系统利用Matlab/simulink平台,兼容性扩展性好,能够较为广泛地推广,可实现长时间的智能控制,实现高精度的自动化。

实施例中通过精密功率仪实时地精准获取情况,并加入数据库存储数据,将采集的数据存储并进行分析。

第一步:解决上位机与设备的连接与通信。

与设备通信需要设备的ID号与路径参数,参数可以在tmtool中对特定设备进行获取。同时,使用matlab中tmtool自带生成功能与设备进行通信,但是该通信对于使用者来讲还是太过粗糙,需要继续进行封装以及优化。

首先,设备的连接需要进行通信的操作,而通信的种类主要有两种,分别是写入与查询。编写模采用上述两种通信方式分别编写对应封装函数。

其次,连接上设备之后,需要对设备进行频繁读写访问操作,同时对设备的连接进行合理的保存来保证效率。

在该步骤中,实现了上位机与设备的通信,并封装使其易用。

第二步:实现设备文档中所述的命令。

通过对指令的整合分析并综合各步骤所需的信息,提取出了每条指令的5种可配置信息:

1.初始化是否发送信息

表示在程序开始运行的时候是否需要将命令发送至设备。在代码中主要通过access数组进行控制。

实现思路为:使用Matlab中persistent关键字,使每次进入函数时使用同一个access数组,每次访问某个指令的时候access对应位置的值会加一,表示这个指令在本次系统启动的过程中被访问了几次。而在后续代码中,通过判断指令对应access的值是否大于0来选择是否真正执行指令。

在初始化的时候初始access为0,表示第一次访问的时候不需要执行指令,0值的初始化主要对应于在程序开始执行的时候会调用callback的输入类型。第三步中将会详细叙述这个属性。

2.查询或写入命令

对应通信模块中的操作方法,具体取值与该指令是否需要返回值有关。通过数组method进行配置,1表示查询,0表示写入。

3.额外参数个数

表示该命令是否有额外的可供选择的参数。通过value数组进行配置,程序在运行的过程中通过value数组中的对应值获取组成指令的值。

4.指令别名

用来代表某条指令的简短的名字。使用param数组进行配置。

这个名字在整个程序中唯一,是指令的身份证明。外部函数通过该名字调用这个group中的指令。同时,在第三步的mask封装中也保证了这个指令的mask变量名字也为这个别名,便于用户输入的获取。

5.指令格式

指令格式表示某个指令的格式,即如何根据多个所需的用户输入值拼接出发送给设备的指令。该指令与第三个参数有密切关系,主要由command数组配置。

在配置代码结束之后,进入到指令执行流程。执行顺序为,根据指令别名找出对应的所有配置,并根据配置参数,读取指令参数以及指令格式,生成实际指令之后,根据前一步骤所提供方法与设备进行通信,达到控制设备的目的。

该步骤真正实现了使用者对下位机的控制。

第三步:

此时,需要能够对上一步中的指令执行方式进行一些优化,图形化界面使用的是simulink中的sub-system以及mask封装。

在mask封装中,主要存放的是写入型的指令。

这种指令的特点是调用次数不多,同时,在大多数情况下需要手动添加一些参数。而mask封装恰好能够满足这种要求。mask封装的图形界面中有常用的下拉菜单、输入框以及按钮。在多种类的输入支持下,写入命令可以很好的封装,用户不需要知道每一项的命令是如何发送给设备的,只需要知道每个输入项的意义即可进行很方便的使用。

在用户使用的表层之下是simulink中的一个callback功能。Callback是mask配置的一项。在每个项目在值发生改变之后,会由系统主动调用写在callback内部的小程序段。所以,只需要在callback中写上触发发送对应指令的语句即第二步中写出的命令行语句即可。

而在mask第一次运行的时候,除了按钮类型之外,其余的输入类型均会调用一次设置好的callback。为了设置的正确性,可以在代码中手动禁止这种初始化型的回调。这即是access属性为0的原因。当然,如button之类在初始化的时候不调用回调函数的在配置的时候只需要将access属性置1即可正常使用。

以上考虑最多的是指令的写入,而少部分的指令是带有返回值的。为了用户体验,返回值不能输出在命令行中。所以,在界面上有一个提前设定好的固定区域,每次返回值都会直接写入那块区域,方便用户查看返回值。

在此,以上文中出现的inputState命令为例,阐述如何进行mask封装。首先,由于该命令是一条写入指令,同时需要一个开放性的输入,所以使用editor作为该指令的输入框,接收输入。而如果是有限的输入,可以使用popup即下拉列表类型进行控制。而如果不需要输入,则直接使用button即按钮类型即可。

而在该editor的属性中,需要在mask配置中将变量名设为别名inputState方便程序进行获取。同时,如上文所述,在callback栏中,需要主动调用对应模块的触发命令以通知程序获取最新的值并发送给设备。

在Sub-system封装中,主要存放的是查询型的指令。该指令调用次数多,但是每次调用的参数基本一致。因此,与步骤2相似,需要首先使用查询函数对设备的查询进行封装。而后,使用子系统对查询函数进行封装,到最后对外提供查询结果即可,中间的所有操作用户均可忽略。

同时Sub-system即子系统封装的意义并不止在于此。其主要功能是对用户封装了具体的实现细节而仅保留端口。在这种封装方式下,大大提高了模块的可读性与可靠性。在子系统封装中,为了与外界进行交互,需要规定几个in端口以及out端口。而各个端口的数量取决于该模块所依赖的输入或者需要对外暴露的输出。

另外,在封装了Sub-system了之后,可以通过一些方式将其加入到Simulink Library Brower中以方便后续使用。具体的方式参见文末连接,文内不再赘述。于此,该子系统并不仅仅是一个应用,而是Simulink中的一种模块。当有使用者需要使用该子系统时,只需要找到并进行配置即可使用。模块性大大增强。

对于高精度分析仪的Sub-system封装而言,需要提供四个输出,分别表示其设备读取的电压、电流、功率值以及Matlab通过计算得到的功率值,不需要输入。

对于电压,需要另写一个读取电压的函数专门进行读取。同时,需要一个方波发生器定时触发读取函数的运行。还需要一个输出点作为函数的输出。此时,该电压值已经可以被外部所获取。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1