APP下载

基于RISC-V 的多电源均衡系统

2023-06-27王鑫慧王立珂弓晓阳

火力与指挥控制 2023年5期
关键词:指令集电源模块总线

王鑫慧,赵 刚*,王立珂,弓晓阳,张 宾

(1.北方自动控制技术研究所,太原 030006;2.陆军装备部驻北京地区军事代表局驻太原地区第二军事代表室,太原 030006)

0 引言

在嵌入式武器装备系统中,随着设备功能的增强,功耗急剧增大,对电源提出了更高的要求,多电源并联运行成为电源设计中需要考虑的问题,不仅可以解决单个电源变换模块供电功率不足的问题,还可以实现电源冗余备份、均流功能,以达到分散电流热应力的效果,当其中一个电源模块出现故障或失效时,其余电源模块可以继续运行,维持系统功率需求,提高整个电源系统的可靠性。

RISC-V 是一种新型的指令集架构,不同于传统的X86、ARM 架构,具有开源、架构简单、可定制模块化的特点。作为软硬件交互的规范,既满足了软硬件协同设计又具备面向系统需求精准定制的能力,迎合了现代系统体系架构和设计需求,具有较高的理论价值和实践意义。

本文基于RISC-V 指令集架构和PID 控制算法设计了一种多电源负载均衡的方法,根据PID 控制原理,监测被控对象的实时输出信息,通过控制策略调整输出信息,使系统输出处于期望值范围内,通过主、从电源循环控制,实现均流。主、从电源模块均采用RISC-V 架构MCU GD32VF103RBT6 作为控制核心,完成信息传输和均衡控制功能。与传统的电源模块相比,本次设计不仅结合自主可控的开源指令集架构RISC-V 实现均流控制,使用Matlab完成对系统建模完成仿真模拟,而且设计防倒灌电路提高系统可靠性,完成实物搭建,从而验证所设计的多电源负载均衡具有良好的性能。

1 系统设计

随着火控计算机更新换代,计算机功能、集成度、功耗不断的增加,单个电源模块承载火控计算机高负载工作已经受限,多模块并联使得功率器件受电、热应力明显减少,系统散热也得到最大化改进。然而,直接将多个电源模块并联接入系统并不可行,当多个电源模块输出电压不一致时,输出电压低的模块会被输出电压高的模块视为负载,从而发生倒灌,同时输出电压高的模块发生过载,过载严重时会有模块失效的风险,导致整个系统失效[1]。因此,多个电源模块并联运行时需要引入负载均衡控制方法,以确保电源模块之间电流应力和热应力均匀分布,避免出现单个电源模块工作状态达到极限的状态,触发保护机制,影响电源系统的正常运行。

1.1 系统总体设计框图

本次设计采用“1+N”分布式主、从多电源模块进行冗余供电,分别通过电压和电流两个控制环实现负载均流。主、从电源模块之间通过CAN 通信进行协同工作。主电源模块负责调整输出电压,保证电压的准确、稳定。从电源模块控制输出电流,能够根据总的负载快速调整从电源模块负载,调节主、从电源模块负载均衡。当任何一个电源模块发生故障时,另一个电源模块能够快速切换成主电源模块,并能够瞬时承担全部负载,维持输出电压恒定,保证设备不停机工作。主从模块采用相同的电路布局,根据启动瞬间的带载情况,随机确定主、从身份,分别通过PID 修正输出稳定电压和实现均流。最后经过XC4355 防倒灌电路将电压输出到负载,完成整个电源系统设计。系统总体设计框图如图1 所示。

图1 多电源均衡系统设计总体框图Fig.1 Overall block diagram of a multi-power supply equalization system design

1.2 并联均流和多电源冗余供电技术

多电源模块并联运行的核心是均流技术,硬件电路搭建的均流方法存在差异性大、稳定性差等问题,本次设计选用RISC-V 硬核软编程实现均流功能,形成电压、电流调整闭环反馈控制的机制,具备系统供电准确、稳定、可靠的特点[2]。RISC-V 处理器采用北京兆易创新(Gigadevice)和芯来科技(Nuclei System Technology)联合开发的GD32VF103 系列MCU,采用32 位通用微控制器,配备Bumblebee内核,支持小端RV32IMAC,提供了108 MHz 的运算主频,以及16 KB 到128 KB 的片上闪存和8 KB到32 KB 的SRAM 缓存。配备3 个USART、2 个UART、3 个SPI、2 个I2C、2 个I2S、2 个CAN2.0B 和1 个USB 2.0 FS OTG,以及外部总线扩展控制器,还集成了两个高采样率ADC。

单个电源模块以双GD32VF103RBT6 MCU 为核心搭建电路实现均流,分为核心MCU 和辅助MCU,核心MCU 与辅助MCU 配合点亮电源模块工作灯。核心MCU 主要完成主、从身份识别、输入输出电源监控、PID 电源控制策略等工作,还通过UART 接口与辅助MCU 进行信息交互,通过CAN总线与上位机、其他电源进行信息交互。辅助MCU主要负责输入电源监控,开关信号监控、工作状态指示、与核心MCU 进行信息交互等工作。

各个电源模块通过启动时的带载情况,自主协商确定主从关系。各模块通过模式识别电阻判断两个MCU 身份,若为低电平则为辅助MCU,负责监控输入电压、电流、温度以及开关信号等信息并进行逻辑判断,当开关打开时每隔5 ms 将电压、电流、温度等信息通过隔离串口送入核心MCU。若为高电平则为核心MCU,核心MCU 有两路CAN,CAN1 与上位机相连,将辅助MCU 发送的电压、电流等BIT 信息,通过CAN 总线发送给上位机。CAN2 为各个电源模块内部CAN 总线。

主电源模块的核心MCU 采集远端的输出电压,与设定的12 V 期望值求差,通过PID 修正算法实时修正得到DA,经运算放大器SGM8250,将电压值返回电源模块trim 端进行调压,使得输出端电压满足12 V±5%。从电源模块的核心MCU 采集电流传感器的电压值,运算求出对应采集电流并与主模块电流值比较,差值通过PID 修正算法实时修正得到DA,经运算放大器SGM8250,将电压值返回电源模块trim 端进行调压,形成电流控制环路实现均流。GD32VF103RBT6 控制策略流程图如图2 所示。

图2 GD32VF103RBT6 控制策略流程图Fig.2 Flow chart of control strategy of GD32VF103RBT6

1.3 防倒灌电路设计

实际电路应用中,系统修复和扩容主要通过单板热插拔来实现,当其中一个电源模块发生故障或热插拔时,由于电压不平衡就会发生电压倒灌,导致模块电路失效[3]。防倒灌电路设计考虑了电压不平衡导致电路失效的问题,选择XC4355DDA 芯片与MOS 管搭建防倒灌电路。XC4355DAA 是一款电源监控芯片,通过控制MOSFET 压降来驱动外部N沟道MOSFET 的关断,当电源发生故障或短路时,芯片会快速响应并在300 ns 内快速关断MOSFET,最大限度地减小瞬时的反向电流,防止倒灌。在热插拔时XC4355DDA 内部调节机制保证负载电流平滑切换,有效减小了热插拔过程中MOSFET 振荡。实现电路如图3 所示。

图3 防倒灌电路设计图Fig.3 Design diagram of a circuit to prevent current backflow

2 基于RISC-V 的多电源均衡PID 控制建模

PID(proportional intergral derivative)算法多用于工业控制,具有鲁棒性强,控制参数相对独立等优点。

2.1 PID 控制算法

PID 控制算法是一种闭环控制算法,集比例(P)、积分(I)、微分(D)于一体,分别表示误差的现在、过去和未来变化趋势,通过三者计算组合,将控制对象值与设定值反复比较,当实际值与设定值发生偏差时,按照设定的参数进行计算纠正,经执行器完成本次控制调节任务,从而实现对系统的动态控制[4,7]。PID 控制算法的结构图如图4 所示。

图4 PID 控制算法结构图Fig.4 Structure diagram of PID control algorithm

图中,r(t)为输入采样值,y(t)是输出反馈值,e(t)为采样值与反馈值相减的误差值,u(t)为经PID 控制调节后得到的结果。控制规律可用式(1)表达:

式中,Kp为比例系数;Ti为积分时间常数;Td为微分时间常数。

将式(1)离散化处理得到式(2):

式中,T 为积分时间。

2.2 基于RISC-V 的PID 控制策略优化

RISC-V 指令集包括基础指令集和扩展指令集两类,设计使用固定基础指令集和多种扩展指令集自由组合的模式[5]。RISC-V 还具有很高的可扩展性,RISC-V 的扩展指令集不仅为指令级架构提供一些可扩展的特定的功能操作指令,还提供了预定义的Custom 指令供用户自行扩展,使得RISC-V 的灵活性大大提高。RISC-V 架构在32 位指令中预定义了4 组Custom 指令类型,每种Custom 指令都有自己的Opcode,用户可以利用这4 种指令类型扩展成自定义的协处理指令[6]。本次设计中主要选用RV32I,是针对32 位系统设计的指令集,也是最常用的指令集之一。

本次设计开发GD32VF103 系列芯片的专用协处理接口,映入预定义的Custom 指令,将自主设计的独立PID 硬件加速模块挂载到专用协处理接口,定义了9 个控制指令,包括修正函数参数设置、目标参数设置、使能、关闭、复位。在通用寄存器输入控制参数KP、Ti、Td、T 后,从主处理器寄存器组获得复位信号和目标参数信号,根据针对主电源模块和从电源模块设计的PID 算法分别进行输出数据修正[7]。PID 使能有效后,协处理模块将自动根据输入的目标参数值进行PID 修正,不需要和主处理模块继续通信,也不再打断上位机主进程[8-9]。当主处理模块再次发出指令时,协处理模块立即自动复位,根据更新的指令和参数进行操作。

主电源模块电压控制PID 算法:

式中,Vexp为期望输出值;Vad为实际输出电压;Vda为MCU 的DA 输出值。

从电源模块电流控制PID 算法:

式中,Vda为MCU 的DA 输出值;Iout为电源模块输出电流;Imaster为主电源模块电流。

与传统的PID 修正算法相比,基于RISC-V 的PID 控制策略的优势体现在响应速度更快,协处理指令处理时间更短,修正函数参数设置指令和使能、停止、复位3 个控制指令都在一个时钟周期内完成且不设置写回,保证不打断主处理模块执行例化任务,也保证主处理模块遇到其他中断时不打断PID 算法正常运行。

3 CAN 通信设计

CAN 总线是控制器局域网络(controller area network,CAN)的简称,以报文的形式完成设备之间的数据传输[10]。CAN 总线采用多主机工作方式,每个挂载在总线上的设备都可以向总线发送数据。在大型复杂武器系统中,多电源供电已经成为系统设计必须考虑的部分,CAN 总线上可以挂载多个从电源模块[11]。主、从电源模块之间通过CAN 总线进行信息交互。电源模块设计两路CAN:CAN1 挂载在外部CAN 总线上用于与上位机进行通信,上报电源模块的BIT 状态,CAN2 为各模块之间的通信CAN 总线,各个电源模块每隔5 ms 将各自电压、电流、心跳等工作状态信息发到CAN 总线上。主电源模块监测各个从电源模块的工作状态,从电源模块根据各个电源模块的负载情况调整自己的负载,实现均流。

4 仿真实现

4.1 仿真参数

电源在对外供电时,传输路径上会通过开关Pmos,防倒灌保护Nmos,电流传感器以及导线等。当负载增大或变化时,会造成输出电压压降或波动,可能会超出规定值,造成其他模块工作不稳定。

传输链路电阻计算:

电压调整传递函数为:

式中,Vref为MCU 参考电压;Dfact为运算放大器放大倍数。

4.2 主电源模块仿真

在MATLAB 仿真中电源模块输出电压Vda,按如下公式计算

由式(3)、式(4)、式(10)构建仿真模型,仿真条件为电源输出电压12 V,电流波动4 A。

PID 参数设置:KP=500,Ti=0.014,Td=0;T=1 ms。

通过仿真实验得到电压调整数据,如下页表1所示。

表1 调整电压与输出电压关系Table 1 The relationship between adjustment voltage and output voltage

拟合为曲线后可以看到输出电压随电流变化产生波动,后经PID 修正又迅速回到12V±5%的输出值。传统PID 控制策略下主电源模块输出电压变化图如图5 所示,基于RISC-V 的PID 控制策略下的主电源模块输出电压变化图如图6 所示。

图5 传统PID 策略下主电源模块输出电压变化图Fig.5 The output voltage change of the main power module under the traditional PID strategy

图6 基于RISC-V 的PID 策略下主电源模块输出电压变化图Fig.6 The output voltage change of the main power module under the PID strategy based on RISC-V

对比可以看出基于RISC-V 的PID 控制策略下,输出电压振荡范围缩小,比传统PID 控制策略下输出电压回到正常值的时间缩短。

4.3 从电源模块仿真

MATLAB 电流传感器的电流值按如下公式计算:

由式(5)~式(7)、式(9)、式(11)构建仿真模型,仿真条件为输出电压12 V,电流波动4 A。

PID 参数设置:KP=60,Ti=0.006,Td=0;T=2 ms。

从电源模块输出电流经PID 修正后,电流变化曲线与期望值变化曲线贴合,实现均流。

传统PID 策略下从电源模块输出电流变化图如183 页图7 所示,基于RISC-V 的PID 策略下从电源模块输出电流变化图如图8 所示。

图7 传统PID 策略下从电源模块输出电流变化图Fig.7 Output current change from power supply module under traditional PID strategy

图8 基于RISC-V 的PID 策略下从电源模块输出电流变化图Fig.8 Output current change from power supply module under RISC-V-based PID strategy

对比可以看出基于RISC-V 的PID 控制策略下,输出电流立即跟随期望值的时间缩短,相比传统的PID 控制策略,电流振荡范围明显变小,输出效果得到改善。

4.4 实际应用

接入12A 恒流负载,两个电源模块输出电压稳定在12 V±5%范围内,达到了输出电压准确、稳定的要求。两个电源模块输出电流差值小于0.5 A,实现多电源均流。电源模块带载输出数据如下页表2所示。

表2 电源模块带载输出数据表Table 2 On-load output data table of power supply module

关断一个电源模块,其余电源模块可以迅速承担所有负载,保证供电系统稳定输出,设备不断电工作。

5 结论

本设计以基于RISC-V 的MCU 芯片GD32VF 103RBT6 为核心,挂载自研PID 修正控制模块,实现多电源模块冗余供电。通过实验验证,基于RISC-V 的多电源均衡系统设计可以使输出电压稳定保持在12 V±5%范围内,最高输出功率达到300 W,两个电源模块输出电流值逼近期望值,实现均流。任意插拔一个电源模块,另一个电源模块可以迅速承担全部负载,保证系统不断电工作,提高了供电系统的可靠性和稳定性,实现火控计算机输出电压稳定、准确、可靠的要求。

猜你喜欢

指令集电源模块总线
GRAS发布新12Bx系列、支持TEDS的测量麦克风电源模块
3DNow指令集被Linux淘汰
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
电源模块产品的智能制造探索与实践
西门子电源模块故障诊断方法研究
实时微测量系统指令集及解析算法
多通道ARINC429总线检查仪
什么是AMD64
铁路电子25Hz电源模块主备切换故障分析与改进