卢嘉承,韩尚卿,童乔凌,黄宇超,闵 闫,李启东
(1.中电科蓝天科技股份有限公司,天津 300384;2.华中科技大学集成电路学院,湖北武汉 430074)
深空探测应用是在深空上进行各种科学探测活动的基础设施系统,可以进行原位、巡视、飞跃和遥感等科学研究。它具备了综合性的科研能力,包括深空资源勘查与开发利用、月基空间科学观测、基础科学试验与前沿技术验证等。对于开辟新的人类科研活动空间、推动基础前瞻性技术的突破、促进重大科学发现、提升地外天体探测与资源利用的能力、扩大人类的生存领域等方面具有重要意义。
深空探测具有任务模式多、建造周期长、工作环境恶劣等特点。深空昼夜温差极大,白天高达127 ℃,夜晚降至-173 ℃,由于没有液态水和大气,深空具有更高强度的辐射。深空探测主要任务包括行星地质勘探、环境监测、科学实验等,这就要求控制器具有处理多任务、协调各模块运行、收集和处理大量数据的能力。因此,对于高算力、低体积、抗辐射、易维护、可扩展的总控制器的设计提出了新的挑战。
本文分析了深空探测应用的任务需求,选择ARM Cortex-M 系列中系统级芯片(SoC)作为总控制器,简要介绍了软件控制策略,针对不同模块选取合适的自适应算法,从而提高控制器处理信息的能力。
深空探测工作是科学探索深空构造和演化过程的重要任务。该工作包括使用探测器和登陆器等设备进行勘探、采集样品和进行测量。勘探过程中,科学家会对深空行星表面的地貌、岩石组成、地壳结构、磁场和重力等进行详细观测和分析,以揭示深空行星的形成历史和内部结构特征。通过分析深空行星的地质特征,可以了解地壳运动、火山活动、撞击事件以及可能存在的水冰资源等情况,进而为未来的深空探测和人类深空行星登陆任务提供科学基础和技术支持。
深空的环境监测工作是为了深入了解深空的环境条件,并为未来的探索和利用提供科学依据。该工作包括对深空行星的气候、温度、辐射、气体成分、粒子环境等进行实时监测和记录。通过各种传感器和仪器,科学家可以收集到深空中行星表面的大气压力、温度变化、太阳辐射水平、宇宙射线强度以及可能存在的深空挥发物等信息。这些数据对于研究深空行星的气候变化、辐射环境对人类和设备的影响、资源利用的可行性等具有重要意义。同时,环境监测工作也能为未来的深空建设和宇航员任务提供必要的参考和保障,确保人类在深空中的安全和健康。通过持续的环境监测,可以更好地了解深空的环境特征,并为未来的深空探索和利用提供重要的科学支持。
深空中的科学实验是为了探索和研究深空的物理、化学性质,以增进对深空的认识和理解。这些实验涵盖了广泛的科学领域,包括天文学、行星的地质学、生物学等。科学家们利用各种仪器和设备进行深空的观测、采样和分析工作,以收集关于深空起源、演化历史、行星地质构造、表面特征、岩石成分等方面的数据和信息。例如,通过激光测距仪可以精确测量深空行星表面的高程和形态;通过光谱仪可以分析岩石和土壤样品的组成和结构;通过地震仪可以监测深空的地震活动等等。这些实验的目的是为了揭示深空的奥秘,推动人类对深空的探索进程,同时也为未来的深空建设和宇航员任务提供重要的科学依据和参考。
目前市面上有许多微型控制器,控制器的选择至关重要,简要介绍下列主流的微型控制器。Arduino Nano 是一款小型、便携的开源微控制器板,适合于各种简单的电子项目和原型设计。ESP32 则具备强大的无线通信和物联网功能,可连接互联设备和传感器。Raspberry Pi Pico 为树莓派基金会推出的低成本微控制器,集成高性能处理器和广泛接口,适用于物联网、机器学习等领域。STM32 系列微控制器因其高性能和强大功能而广受好评,常见于工业控制、汽车电子和消费电子等领域。
Nordic nRF52 专为低功耗无线连接应用设计,具有出色的蓝牙和射频性能,适用于可穿戴设备、智能家居等场景。Texas Instruments MSP430 则是超低功耗微控制器,适用于电池供电的应用,如传感器网络和医疗设备。Qualcomm Snapdragon 是一系列强大的移动处理器,提供高性能计算和多媒体处理能力,在智能手机和平板电脑领域广泛应用。NXP LPC 系列和Atmel SAM 系列微控制器均采用ARM Cortex-M 内核,提供丰富的外设接口和低功耗特性,适用于工业控制、智能家居、物联网等领域。Renesas RX 系列集成了高性能处理器和多种外设接口,广泛应用于汽车电子、工业自动化等领域。而MediaTek Dimensity 则是一种高度集成的SoC,具备卓越的通信和图像处理能力,适用于移动通信和物联网设备。
图1 为主流控制器。
图1 主流控制器
本文控制器选用ARM Cortex-M 系列系统级芯片(SoC),是一种嵌入式微控制器(MCU)解决方案,由ARM 架构设计(图2)。ARM Cortex-M 系列SoC 具有以下特点:
图2 ARM Cortex-M系统级芯片
(1)低功耗:采用了精简的指令集和优化的设计,以最小化功耗消耗。通常使用睡眠模式、低功耗待机模式和动态电压频率调节等技术来实现低功耗操作。
(2)高性能:具有高速的处理器核心、高带宽的存储器接口和高效的外设集成,以满足多种复杂应用的要求。
(3)综合外设:Cortex-M 系列SoC 通常内置有丰富的外设,如通用串行总线(USB)、以太网控制器、多个串口、模数转换器(ADC)和电源管理单元等。
(4)安全性:Cortex-M 系列SoC 提供了多种安全功能,如内置的存储器保护单元(MPU),用于隔离和保护关键数据和代码,以及专门的加密引擎,用于加密通信和存储的数据。
(5)软件生态系统:开发者可以使用各种成熟的开发工具链、实时操作系统(RTOS)和软件库,以简化软件开发过程。
在多任务系统中,关心的重要问题是系统是否能够在指定时间内响应不同事件并完成相应处理任务。一旦确定了系统的硬件设备性能成为影响系统服务质量的主要因素。不同的调度策略会导致不同的冲突避免和冲突解决方法,从而形成不同的调度方案。优先级调度方法通常首先对待调度任务进行优先级排序,然后根据任务所需时间长短排序同一优先级中的任务[1],再按照任务的优先级顺序,在设备时间轴上寻找可以占用的设备时间给每个任务。如果当前正在分配调度的任务的起始时间与已经分配的任务的设备时间发生冲突,则放弃该任务,然后继续对已经排序好的任务表中的下一个任务进行调度。
评价调度策略的前提是建立相应的评价指标。采用从用户(任务)角度通过分析申请任务成功调度的概率来评价优先级调度策略的性能和影响因素。这包括对基于单个和多个设备的单个任务被成功调度的概率进行分析,以及对任意多个任务被成功调度的概率进行分析。还需要考虑任务的起始时间对调度成功率的影响情况以及设备时间轴上剩余空隙的分布对调度成功率的影响以及相应的改进策略。
高性能计算系统是复杂控制系统设计中不可或缺的。在当今多核技术下,通过提升硬件性能来提高软件效率已经遇到瓶颈。随着CPU 芯片上集成核心数量的增加,单个CPU 芯片的计算能力越来越强,意味着有更多的计算资源可供使用。充分利用计算资源可以减少芯片设计空间,使得微型化芯片设计更加容易。然而,在传统的计算模型中,由于单一节点的计算资源有限,通常采用操作系统进行管理,通过分时复用的方法在多任务之间共享计算资源[2]。但是,多核和未来的众核计算技术的发展带来了越来越多和越来越复杂的计算资源,并且采用单一操作系统进行管理可能会导致应用之间的隔离问题以及计算资源的浪费和不合理分配。
虚拟计算技术为解决这些问题提供了一种解决方案。该技术可以将单一系统划分为多个系统,容纳更多的客户执行环境,并整合服务器以提高系统利用率。本文采用虚拟计算技术来管理多核计算资源。已有相关研究证明,在将虚拟计算技术应用于高性能计算环境时,并不会增加应用的计算时间。根据高性能计算任务的特征,可以预测其并行程度和对计算资源的需求,并动态地调整其使用的计算资源。分析高性能计算任务的特征需要从编程模型入手进行研究,而资源需求和资源调整则需要根据高性能计算应用的特点进行设计。
通信协议是需要通信的双方所达成的一种约定,它对包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题统一规定,在双方的通信中必须共同遵守。在实际应用系统中,如果缺少一个严格、合理、规范的串口通信协议,将无法保证数据传输的正确性及通信的可靠性。因此,提出一种基于状态机串口通信协议的设计方法:通过合理地设置数据包格式来保证了数据传输的正确性,引入了状态机方法,简化了协议的实现难度,提高了通信的可靠性,同时使通信过程具有较高的容错能力,如图3 所示。
图3 串口通信数据接收状态图
自适应学习算法是一种能够根据环境变化和数据反馈来自动调整模型或策略的算法。自适应学习算法通常应用于监督学习、强化学习和无监督学习等领域。它们可以根据输入的训练数据以及实时的反馈信息,自动调整模型的参数或策略,使其更好地适应当前的任务和环境。
在监督学习中,自适应学习算法可以自动调整模型的权重和偏置,以便更好地拟合训练数据的分布。这样可以提高模型在新数据上的泛化能力,从而实现更好的预测和分类效果。在强化学习中,自适应学习算法可以通过不断地与环境进行交互和观察,学习到最优的策略或价值函数。它们可以动态地调整策略参数,以最大化累积奖励或优化目标函数。在无监督学习中,自适应学习算法可以根据数据的分布和结构,自动调整聚类或降维算法的参数。这样可以更好地发现数据中的模式和关系,从而提高数据的表示和理解能力。
常见的自适应学习算法包括随机梯度下降法(SGD)、自适应神经网络、遗传算法、模糊逻辑系统等。这些算法在不同的领域和问题上都有各自的优势和适用性,可以根据具体的需求选择合适的算法。
针对深空微型控制器计算机资源调度问题,选择强化学习算法(reinforcement learning,RL),即通过智能体与环境的交互来学习最优行为策略的机器学习方法。在深空微型控制器资源调度中,可以使用强化学习算法来动态地调整控制器的调度、管理和通信策略,以提高系统性能与效率。
强化学习在深空微型控制器资源调度中的应用流程:
(1)定义状态空间:将深空微型控制器计算机的资源调度问题抽象为一个强化学习任务,首先需要定义状态空间。状态空间可以包括控制器当前的各项指标,如CPU 使用率、内存使用率、任务队列长度等[3]。
(2)定义动作空间:根据控制器的调度、管理和通信策略,定义可选的动作集合。例如,动作可以包括任务分配、优先级调整、通信带宽分配等。
(3)定义奖励函数:设计奖励函数来评估每个状态下采取特定动作的优劣。奖励函数可以考虑系统性能、任务执行效率、资源利用率等因素,以使强化学习算法能够学习到最优的控制策略。
(4)构建强化学习模型:选择合适的强化学习算法(例如Q-Learning、Deep Q-Network 等)来构建学习模型。该模型将根据当前状态和奖励信号,更新策略价值函数或策略网络,以指导下一步动作选择。
(5)训练和优化:通过与环境交互,不断迭代地训练强化学习模型。观察当前状态,选择动作,并获得奖励信号,然后通过模型更新学习策略。通过多次训练迭代,使模型逐渐收敛并学习到最优的资源调度策略。
(6)实时调度决策:在实际应用中,将训练好的强化学习模型应用于深空微型控制器计算机的资源调度中。根据当前的状态,通过模型预测最佳动作,并实时调整控制器的调度、管理和通信策略。
需要注意的是,在应用强化学习算法时,需要充分考虑实际场景和约束条件,并进行合理的模型设计、奖励函数设计和参数调优,以确保强化学习在深空微型控制器计算机资源调度中的有效性和可靠性。
针对深空微型控制器的能量管理算法设计,选取PPO(proximal policy optimization)算法。
PPO 算法是一种模型无关的强化学习算法,特点是在策略优化过程中,通过使用近似克隆策略进行目标策略更新,以提高数据的采样利用效率并增强算法的稳定性。在深空微型控制器能量管理中,可以将PPO 算法应用于以下方面:
(1)状态表示:将深空微型控制器的能量管理问题进行状态抽象,定义状态空间,例如考虑当前能量消耗情况、任务执行进度等因素来表示状态。
(2)策略网络:建立一个神经网络模型,作为策略网络,输入当前的状态,输出对应的动作概率分布。
(3)数据采样与优化:通过与环境交互,采集一批轨迹数据,包括状态、动作和奖励等信息。然后,使用这些数据进行策略优化,即通过近似克隆策略来更新目标策略,提高系统的能量管理效果。
(4)优化目标:设计适当的优化目标函数,用于评估每个状态下采取不同动作的好坏程度。优化目标函数应该考虑到系统的能耗限制以及性能指标的优化目标。
(5)网络更新:通过最小化优化目标函数,使用梯度下降等算法来更新策略网络参数,使得策略网络逐渐收敛到最优解。
通过使用PPO 算法,深空微型控制器能够根据当前状态选择最佳的动作,并通过逼近克隆策略进行策略优化,从而实现能量管理的自适应优化。这样可以有效提高深空微型控制器的能源利用率,并优化任务执行的性能。
针对深空微型控制器的通信协议优化算法设计,选取SAC(soft actor-critic)算法。
SAC 是一种基于策略优化的强化学习算法,它结合了最大熵原理和深度神经网络,用于求解连续动作空间中的强化学习问题。相比于其他算法,SAC 在处理连续动作空间上具有更好的性能和采样效率[4]。在深空微型控制器通信协议优化中,SAC 算法可以应用于以下方面:
(1)策略模型:建立一个连续动作空间下的策略模型,用于选择通信协议。该模型由深度神经网络表示,接受当前状态作为输入,并输出对应通信协议的动作。
(2)策略优化:通过与环境交互收集轨迹数据,计算每个轨迹的总回报。利用这些数据,使用SAC 算法对策略模型进行优化,使其能够根据当前状态选择最优的通信协议动作。
(3)最大熵原理:SAC 算法通过最大熵原理来保持策略的多样性和探索性。最大熵原理指导策略模型选择具有最大熵(或最大不确定性)的动作分布,以充分探索环境,并平衡探索与利用之间的权衡[5]。
(4)基于Q函数的状态值估计:SAC 算法通过引入两个Q函数来估计状态值函数,用于辅助策略优化。这些Q函数可以同时用于评估策略和生成目标策略。
(5)优化算法:SAC 使用梯度下降方法对策略模型进行参数优化,使其逐步收敛到最优解。
通过应用SAC 算法,深空微型控制器可以实现通信协议优化的自适应学习。该算法能够在连续动作空间中进行优化,并通过最大熵原理保持多样性和探索性。通过与环境交互收集数据并进行优化,可以使得通信协议的选择更加智能和适应不同的场景需求。
深空探测应用在未来会对控制器的设计提出更高要求,现有的控制芯片性能也会不断提升。本文基于对未来探测的设想,对可能需要的科研需求进行分析,并选取当下适合的控制芯片。软件设计上采取了基于评价指标的优先级任务调度策略,基于虚拟机的资源调度策略和基于状态机的通信调度策略,并简要介绍了几种可行性的自适应学习算法进行实现。通过提高芯片硬件资源的利用,为芯片体积缩小提供方向,同时保证深空探测应用系统能稳定运行。