新型高空风筝发电机控制系统的软件设计

2020-07-03 04:00:54张义彬
科学技术创新 2020年19期
关键词:控计算机自动机风筝

张义彬 詹 杰*

( 湖南科技大学物理与电子科学学院,湖南 湘潭411201)

1 概述

开发用于高空风能发电的控制系统软件是一项复杂的任务, 特别是如果风筝由机载舵吊舱控制器控制的话。 除了风筝的操纵吊舱之外,整个系统的自动化还包括地面站上的多个传感器和执行器,用于操控绳索和执行启动与恢复,一个数据记录系统以及用户界面。 为此, 我们设计了控制风筝发电机系统的软件设计思路。

2 控制系统

控制吊舱为小批量生产的, 它嵌入了两个专用的优化控制板: 飞行控制计算机板和用于风筝执行器的运动控制板。 驱动执行器的能量以及到机载部件的通信数据必须通过牵引绳由船向风筝传递。为与电缆导线的固有电阻相适应,使用了120 伏的非标准电动机供电电压。 因此, 考虑到成本和重量两方面因素,将电源管理和数据调制解调器电路集成到传感器数据采集和控制计算机平台中非常有益。 通过平衡硬件和软件的鲁棒性需求, 嵌入式控制器解决方案需递归地开发。 为了提高电子电路的稳定性, 所有的信号处理被限制在所需的带宽上。 适用于在48 MHz 时钟频率下工作的微处理器。结果,只有那些需要自动放风筝的算法在控制舱中进行处理,包括导航、数据融合和运动控制算法。 为了降低生产成本并简化维修技师的要求, 飞行计算机板与运动控制板分离, 以适应不同风筝尺寸的平台策略。其结果是,仅需要改变功率分量以适应风筝尺寸。使用CAN总线将现在和以后的吊舱组件连接在一起,解决软件体系结构的这个挑战。 CAN 总线能够进行确定性定时和自仲裁,在属性上确保了高优先级消息的传输。 因此,在系统的未来扩展中,没有先前验证的定时或运动控制属性丢失。 当将额外的传感器或数据记录器结合到生产等级系统中用于研究和开发时,这是有价值的。为了最大限度地利用这些属性,我们选择了pod 内通信数据的可变抽象,如图1 所示。

图1 POD 变量内部数据表示原理( UML 静态结构)

变量由PodVariable 类表示, 并且可以附加到CAN 传输层,该传输层能够立即将消息排入微控制器的传出CAN 缓存中。因此,只要总线可用,就会在CAN 总线上广播变量。易用的获取器和设置器实现了不同数据的表示,并且通过中央消息id 文件完成对CAN 传输层的注册。 这允许在编译时检测和消除死连接,并且软件程序员团队成员可以共享中心电报文档。

因为传感器的信息可能是当前活动的,也可能过时,操作控制算法的鲁棒性关键取决于这些信息特征。 因此, 变量的一个重要属性是TTL 特征,它表示变量的生存时间。

计算如下:在每个SET( )变量的访问中,生存时间被重置为默认值。 每个控制循环调用通过一个计数递减值。 当TTL 值耗尽时,意味着变量过时,它具有的意义是,算法可以采取相应的行动针对变量是否过时,例如切换到回收方案。

计算机在内部循环启动的同时在CAN 总线上放置一个循环启动报文。这允许所有总线通信参与者同步其内部控制回路。不需要进一步的机制来保证实时操作和确定性的CAN 总线访问。

模块集成模式如下。 模块使用输入向量pod 变量,operation( )调用和输出变量的向量。 输入和输出变量通过引用传递。这允许统一的模块文档并简化软件单元测试[6,12]的开发,因为将调度实现与任务实现分离。 按照这个规范,静态测试[5,11]以及大量运行时测试可以在台式计算机上执行, 而不是在目标系统上执行, 这加快了开发的速度。 目标系统中的定时验证可以通过使用消息嗅探器直接在CAN 总线上进行。

控制算法的配置参数由相同的变量抽象表示, 并且从中央数据处理计算机上传到低带宽信道上,并作为低优先级消息在CAN 总线上转发。

利用这些技术,嵌入式软件组件变得适应性强,并可得到轻松的质量保证。

3 发射回收系统

发射和回收处理的系统由拖曳绞车、 可倾斜的伸缩桅杆和附加绞车组成。 这个额外的绞盘控制着一根线, 该线负责在着陆过程中引导风筝,并在风筝放走之前对风筝进行收帆处理。

整个装置由工业PLC 控制, 以满足ISO 13849 的功能安全要求。 根据指导方针, 即使装置与飞控计算机通信或中央数据的采集中断,也必须保持功能特性。 因此,可以直接在模块级别上处理与安全相关的属性,以尽可能扩展。 安全关键模块越小,模块之间的耦合越小,构建安全案例所需的工作就越少,并且根据IEC 61508 记录了所需属性的验证。

因此,组织PLC 软件的软件模型被选择为中央有限状态自动机,其特性易于文档化和验证。

图2 中概述了子模块组织的原理。 每个子模块都知道中央自动机状态,并且必须自组织它的内部状态转换。 例如当中央自动机从飞行状态切换到操纵状态时,负责海浪运动补偿的模块必须正确地管理模块内部的液压绞车参考信号。 与单片强耦合模型相比,这更易于验证。

图2 由中央自动机组织的PLC 软件模块

此外,模块可以在组件测试床上投入运行,从而加速软件开发。 当这些模块连接到运行中的风筝推进系统中的中央控制自动机上时,先前验证过的特性不会受到影响。

4 中央数据采集与处理

风筝推进系统的中央计算机利用工业PC 机接收、记录、处理和转发来自每个系统部件的数据。 选择了基于PC 的硬件,因为它可以轻松记录所有传感器数据轨道,控制算法的输出值和辅助数据,如算法参数和用户输入。 日志记录每天产生大约三千兆字节的未压缩数据,这些数据被压缩存储在硬盘上。 由于数据采集和处理主循环必须与飞控计算机的控制周期同步,所以Linux 操作系统安装了一个实时扩展功能。 其优点包括Linux高分辨率计时器和快速响应时间,但代价是处理速度会显著降低。

由于牵引绳通信的调制解调器被限制在有限的带宽内,因此与飞控计算机交换的通信分组被分为两个部分:一个部分的特征是可变数据,称为等时数据。 在多路复用时隙中传输较少更新的变量。 另一部分包括面向信道的排队消息传输。 实现高优先级和标准优先级队列,为用户命令路由和安全关键消息提供高优先级队列,而标准队列用于更新配置数据和从飞控计算机传输调试消息。

可以通过TCP 连接将多个图形用户接口连接到中央控制计算机。 在船桥上连续使用一个GUI 用于系统的用户操作,另外一些GUI 可用于服务以及实验目的。 这一特征在研究过程中具有特殊的重要价值。 开展飞行试验, 需要从船舶艏楼区域进行严格监督。 因此,必须实现事件模型,它允许以安全的方式处理多个并发的用户交互。 图3 给出了解决方案的概述。

每个GUI 向中央控制计算机提供事件输入, 这些事件输入在内部事件队列中排队,并在内部自动化控制中触发动作。 控制自动机生成事件, 这些事件被传送到飞控计算机。 这台计算机上运行的自动化程序通过更新同步变量来回传它们的状态,以便控制自动机根据需要采取行动。 发射与回收系统的PLC 由同一个系统范式连接,它接收状态改变请求事件,并将中央自动机的实际状态发送回。 为了减少实现错误,为PLC 和中央控制计算机开发了基于XML 描述文件的自动代码生成工具。

将中央控制纳入运作的一个核心问题是选择模块组织模式。 如果组件之间的耦合较低,则软件更易于开发、测试和维护。因此,在用于新设计的复杂控制系统中, 通常选择使用通信中间件。但是,对于整个系统来说,为了满足交付期限问题,放弃某些关键模块的测试覆盖率是不可接受的。 因此, 现代技术已经被合并到遗留变量抽象中, 其结果在图4 中描述。 除了显著降低开发复杂性之外,变量实现的单元测试比通信中间件的测试和维护工作更少。

图3 事件传播模型

图4 变量抽象和XML 驱动的工厂模式

变量实现的特点是封装了三种可能的数据类型:整数( 对于状态自动机很重要)、浮点和文本字符串。 整数和浮点类型可以直接附加到通信对象等时段, 而字符串仅限于面向通道的段。变量还包括获取变量的接口信息,全文描述,物理单元信息和时间实时设定值。 变量配置由XML 描述文件维护,运行时对象由工厂类实例化。 这使得配置管理更容易。 对变量的访问由快速名称服务完成,其数据库( 即散列表)在对象生成过程期间建立。如果名称请求失败,则返回对虚拟对象的引用。这减少了模块之间的耦合,因此,当应用经常变化时,增加了实验软件的稳定性。 模块实现遵循与飞控计算机软件相同的规范。 在初始化模块时,通过名称服务建立到变量的连接,在模块操作时调用循环operate()方式。

5 结论

在本文中,详细介绍了控制系统组件,以及所遇到的挑战,并解释了如何通过软件工程技术解决这些问题。 本文为高空风能的利用及风筝发电机控制系统的设计提供了相关基础。

猜你喜欢
控计算机自动机风筝
{1,3,5}-{1,4,5}问题与邻居自动机
一种基于模糊细胞自动机的新型疏散模型
智富时代(2019年4期)2019-06-01 07:35:00
某型飞控计算机与地面检测设备无法连接故障分析
风筝
小小艺术家(2018年5期)2018-07-01 17:05:42
广义标准自动机及其商自动机
在手账中为风筝比心
学做风筝
无人机容错飞行控制计算机体系结构研究
飞控计算机环境试验/外场维护测试软件的实现
模糊自动机的强连通性及群自动机