时间:2024-05-22
黄光普 吴 祥 俞 立
(浙江工业大学信息工程学院网络化控制系统实验室 杭州310023)
网络化控制系统通过网络连接被控对象、控制器、传感器和执行器,具有结构简单、通信速率高、可扩展性强、网络集成性高等诸多优点,一直是控制领域研究和应用的热点方向[1],如网络化鲁棒控制[2-4]、网络时延和丢包问题[5-7]、网络化运动控制[8,9]、网络化模型预测控制[10]以及近年兴起的云/雾控制系统[11-12]等。在早期的网络化控制系统分析和算法研究过程中,由于缺乏合适的实验平台,大部分的研究仅限于纯理论分析和仿真实验[2,5-6],研究成果的实际应用效果往往无法得到有效验证,这对系统的开发和应用带来了一定阻碍。近年来,网络化控制系统实验平台得到越来越多的重视。文献[3]和文献[4]分别设计了一种网络化电机控制实验平台,验证所提出鲁棒控制器的有效性。文献[8]设计了一种网络化多轴运动控制平台,并研究了其高精度轮廓跟踪控制问题。文献[9]设计了一种网络化多轴同步控制平台,解决了其高性能同步控制问题。文献[12]为了对比分析云控制和雾控制的性能,设计了基于两自由度机械臂的对比实验。文献[13]和文献[14]描述了一种部署在广域网上的网络化控制系统实验室,包含有倒立摆、磁悬浮、电机等各类网络化控制系统教学和研究平台。在上述实验平台的支撑下,可直接观察分析系统和算法的性能,根据实验结果进行修改完善,优化系统理论设计和应用开发过程。然而,上述网络化控制实验平台基本属于定制化设计,大多用于特定对象和算法的设计开发,实验平台的开放性和移植性较差,很难被其他学者复制。因此,设计一款结构简单、通用性高、开放式和可复制的网络化控制系统实验平台具有较好的应用价值和参考意义。
在控制系统的研发过程中,快速控制原型(rapid control prototype,RCP)[15]利用数字化虚拟控制器构建对实际物理对象控制的半实物仿真系统,可快速实现对所设计控制器或者控制算法的实验验证,研究人员可基于实验结果进行优化设计,从而节约实验测试成本,缩短研发周期。因此,由于RCP 半实物仿真系统在控制系统算法设计和理论验证过程中带来的便利性,被广泛应用于机电控制[16]、电力系统[17]、电动汽车[18]、教学仪器[19]等各个领域中。一些研究机构和商业公司相继提出了多个RCP 软硬件系统,如德国的dSPACE[20]、加拿大的RTLAB[21]等。文献[22]对当时的商业RCP 系统进行了较为全面的对比分析,所设计的RCP 系统包含PC 机算法设计中心(主机)、基于高性能计算机的算法运行中心(目标机)以及I/O 接口板,在实时性、采样周期和接口多样性方面表现出良好性能。然而,商业RCP 系统往往考虑应用和性能的完备设计,采用PCI、ISA 总线方式设计I/O 板卡,存在价格昂贵、依懒性强、可移植性差等诸多问题,导致其推广受限。因此,基于免费和开源软硬件系统和资源设计RCP 系统成为有效解决手段[23]。同时,利用嵌入式微处理器替代高性能计算机设计低成本、结构简便的RCP 系统成为新的发展方向。文献[24]设计了基于现场可编程门阵列(field programmable gate arry,FPGA)的目标机控制器,并采用PXI 系统和LabVIEW 软件开发了上位机仿真平台。文献[25]基于Raspberry Pi 设计了信号处理教仪平台,在个人计算机(personal computer,PC)上利用Matlab/Simulink 仿真工具设计搭建控制算法框图,并转换成C 语言代码,下载到目标机中实现实时控制。文献[26]基于Arduino Due 控制板设计了开源和低成本的RCP 系统,直接将PC 作为算法设计和运行中心,并采用USB 接口连接PC 机和I/O 板,无需编译和下载过程,实现了更加通用化的设计,可推广应用于高校实验课程教育中。文献[27]采用实时嵌入式处理器作为虚拟设备模型,设计了用于辅助信息物理系统协调器的设计和仿真的RCP 系统,有效缩短算法和产品设计时间。然而,现有设计中并没有适用于网络化控制研究和开发的RCP 系统。因此,面向当下网络化控制系统的高速发展需求,设计相应的网络化开放式RCP 系统十分必要。
综上所述,本文基于嵌入式架构设计开发一款低成本、免费开源的网络化开放式RCP 系统,设计了基于Raspberry Pi 和STM32 微处理器的双嵌入式目标机,采用Matlab/Simulink 仿真软件作为PC 机控制系统设计工具,采用TCP/UDP/IP 通信协议连接控制系统和目标机,同时以磁悬浮球为被控对象设计了实验装置。本文主要工作和贡献如下。
(1) 所设计RCP 系统采用开源硬件和免费软件工具开发,基于嵌入式和网络化架构,具有成本低廉、体积小巧、部署方便、开放性好、可移植性强等优点,可实现参数的在线修改和可视化;目标机通过以太网与PC 机连接能实现即连即用,可广泛应用于网络化控制领域各类算法和产品的辅助设计过程中,以及作为教学仪器在控制工程实验教学中推广应用。
(2) 基于所设计嵌入式目标机,一方面可将控制算法仿真框图进行编译后下载到目标机中进行本地计算和运行,将所设计RCP 切换为本地控制模式;另一方面,可将PC 机与目标机之间的局域网替换为广域网(如引入云计算服务),将RCP 系统转变为云控制模式,用于辅助云控制的理论研究。
(3) 设计了2 个网络化控制实验案例:1)典型网络化预测控制算法,验证RCP 系统有效性;2)基于观测器思想补偿时变时延引起不确定性理论方法,通过实验对该理论进行了验证,表明了RCP 系统的优越性。
本节对所设计的网络化开放式RCP 系统整体架构(如图1 所示)进行详细说明。系统主要由2部分组成:(1)PC 机控制系统,搭载Windows 操作系统,安装有Matlab/Simulink 仿真软件环境,主要实现算法仿真框图的设计开发以及网络数据发送和接收;(2)嵌入式目标机,由Raspberry Pi 数据处理中心以及STM 32 驱动模块组成。前者负责与控制系统进行数据交换,根据预先设定的数据格式对网络通信数据进行打包以及解包,并记录时间戳用于系统网络通信时延的计算,并且是RCP 系统处于本地模式时的算法计算中心;后者与被控对象进行交互,负责模拟控制量的输出和控制对象的实时状态信息采集。PC 机控制系统与目标机之间通过以太网连接,采用TCP/UDP/IP 协议实现数据通信;目标机与控制对象之间通过信号线进行连接;通过设计不同驱动接口,则被控对象可以连接各类机电系统、信息物理系统等,具有非常良好的通用性。
图1 网络化开放式RCP 系统架构图
根据网络化RCP 系统架构,系统工作流程如图2所示。其中,步骤S2、S3 和S4 运行于PC 机控制系统的Matlab/Simulink 环境中,步骤S1~S5 运行于嵌入式目标机中。首先,在PC 机控制系统的Matlab/Simulink 环境中设计好控制算法仿真框图和程序,随后运行RCP 系统进行算法测试验证。主要流程步骤如下。S0:系统初始化过程,目标机完成初始化配置后向PC 机发送确认标识符,Simulink 程序接收到确认位后开始执行控制算法仿真函数;S1:目标机按照给定采样周期采集被控对象状态数据,并通过以太网发送给PC 机控制系统;S2:Simulink 函数接收来自目标机的反馈数据,并更新仿真函数相应数据;S3:控制算法根据新的反馈数据量进行计算得到新的控制量输出,并将其转换为实际控制值;S4:将得到的实际控制值数据通过以太网发送给目标机;S5:目标机接收到实际控制值并将其转换得到实际模拟控制输出发送给被控对象;最终,实现对被控对象的网络化控制。
图2 系统工作流程图
根据上述工作流程,RCP 系统在网络化/云控制模式下,无需对算法仿真框图进行编译和下载,可实现控制算法的开放式设计,且在仿真系统运行过程中能实时修改算法参数,调试过程非常简单,能很好地辅助各类网络化系统的设计开发。在RCP 系统处于本地控制模式下时,由Simulink 构建的控制算法需要先通过自动代码生成器生成C 语言代码,编译后下载到Raspberry Pi 中,Raspberry Pi 作为算法计算中心实时运行,并通过串行外设接口(serial peripheral interface,SPI)与STM 32 驱动模块进行交互,实现对被控对象的本地控制。
本节将详细介绍所提出的网络化开放式RCP系统的硬件(嵌入式目标机)和软件(PC 机控制系统软件)的设计过程。
本系统所设计的双嵌入式架构目标机硬件由Raspberry Pi 3B 和STM 32 驱动模块两部分组成,其硬件电路如图3 所示。Raspberry Pi 3B 是一台信用卡大小的单板计算机,配备Broadcom 公司的BCM2837四核心64 位处理器,运行主频为1.2 GHz;是一款基于ARM Cortex-A53 内核微控制器的计算机,具有1 GB 的随机存取存储(RAM)、40 针通用输入输出(general-purpose input/output,GPIO)、2.4 GHz WIFI模块、100 Mbps 以太网接口等。STM 32驱动模块采用ST 公司的STM 32 F 103RBT6 微处理器,基于ARM Cortex-M3 内核,最高频率为72 MHz,拥有48个具有复用功能的GPIO、多通道12-bit 分辨率的高速(采样间隔可达1 μs)模拟数字转换器(analog to digital converter,ADC)接口、带死区和刹车功能的专用电机控制脉冲宽带调制(pulse width modulation,PWM)接口,以及最高支持18 Mbit/s 的SPI 接口。系统设计中采用Raspberry Pi 3B 以及STM 32的主要原因如下。
图3 嵌入式目标机硬件实物图
(1)两者都是开源平台,使用广泛,资料丰富且价格便宜,不会带来经济负担。
(2)两者尺寸都相对较小(最大长度为85 mm),使得系统硬件模块小巧轻便,无任何其他硬件资源依赖性,可随身携带。
(3)Raspberry Pi 3B 拥有强大的计算能力,可以运行安装PREEMPT RT 补丁的Linux 系统来进行实时控制。同时,自带100 Mbps 以太网接口以及2.4 GHz WIFI 模块,拥有高速网络通信能力。
(4)STM32 驱动模块基于ARM Cotex-M3 内核,具有嵌套向量中断控制器(NVIC),拥有丰富的外设和PWM 输出接口,方便实现对各类被控对象的驱动控制和数据采集。
网络化RCP 系统的软件设计主要包括Simulink仿真功能模块以及目标机处理函数程序设计。Simulink 仿真功能模块采用S-Function 开发,使用C 语言代码进行编写,设计有网络通信功能、PWM 和频率输出功能、ADC 和编码器数据采集功能、I/O 控制功能;其中网络通信功能包含有网络数据发送器(network transmitter)和网络数据接收器(network receiver),可实现预定格式的网络数据快速交换;I/O控制功能包含有数据输入(data input,DI)和数据输出(data output,DO)功能;各功能模块根据数据输入和输出属性可分类列出,如图4 所示。从而,控制算法设计人员只需关注算法设计过程,无须花费时间在各类外围设备功能的开发上。
图4 RCP 系统的Simulink 仿真功能模块
嵌入式目标机处理函数设计中包含Raspberry Pi 和STM32 驱动模块两部分,相关功能函数采用C语言开发。Raspberry Pi 主要开发有TCP/UDP/IP协议用于与PC 机实现以太网通信,开发有SPI 接口功能实现与STM32 的串行数据通信,还开发有本地模式下的算法运行API 接口实现本地实时控制。STM32 驱动模块开发有SPI 接口、PWM 输出、ADC数据采集、编码器采集、I/O 控制功能等,PWM 输出控制驱动模块输出实际控制值,ADC 和编码器功能负责采集被控对象的实时状态信息,从而构建RCP系统与被控对象的完整控制闭环。
综上所述,RCP 系统软件设计过程简单,对编程开发人员要求较低,确保了系统具有较好的可复制性和移植性。系统启动后,首先对网络通信IP 及端口参数进行设置,确保系统通信回路畅通;随后设置系统控制(采样)周期和I/O 类型,配置相应的定时器参数和外设接口;当目标机完成初始化后发送确认标识位到PC 机控制系统,完成握手确认后算法仿真程序进入循环运行状态,RCP 系统程序运行流程如图5 所示,具体步骤描述如下。
图5 系统程序运行流程图
(1) Raspberry Pi 的定时器作为RCP 系统的基准时钟,以设定的采样周期T向STM32 发送数据采集请求。
(2) STM32 接收到采集请求后立即通过外设接口采集被控对象(传感器)实时数据,并通过SPI接口发送给Raspberry Pi。
(3) Raspberry Pi 接收到反馈的状态信息后,记录实时时间戳t1i,并按照定义的协议格式将状态信息和时间戳等数据打包通过以太网发送给PC 机控制系统。
(4) Simulink 接收到反馈状态信息后进行算法计算,得到新的控制量输出,并通过以太网发送给Raspberry Pi。
(5) Raspberry Pi 接收到新的控制量,记录时间戳t2i,并将其通过SPI 接口发送给STM 32 驱动模块。
(6) STM32 将控制量转换成实际控制值,如转换成PWM 占空比大小从而控制输出电压值。
因此,所设计RCP 系统中PC 机控制系统负责完成系统初始化配置交互过程,Raspberry Pi 作为系统程序循环运行的起点,STM 32 驱动模块根据配置参数可初始化不同的外设和采集接口,从而可方便地将系统切换为本地模式,同时外接不同的被控对象,最大化系统的通用性。
PC 机控制系统中设计了网络数据发送器和接收器实现与目标机之间的数据通信,其数据包格式如图6 所示。发送器数据格式包含1 个字节指令数据、1 字节控制(采样)周期设置数据、2 字节I/O模块类型数据、8 字节时间戳数据和20 字节控制量数据。接收器数据格式包含5 字节传感器采样数据、8字节时间戳数据和5 字节网络通信时延数据。
图6 网络通信数据包格式
综上所述,本文所提网络化开放式RCP 系统从控制系统、嵌入式目标机和系统软件设计多个方面保证了系统方案具有非常高的通用性、可复制性、开放性和可移植性,主要体现在以下几个方面。
(1) 通用性体现在所设计的网络化开放式RCP系统可接入不同的被控对象设备,如磁悬浮、倒立摆、伺服电机、飞行器、机器人等,实现其网络化控制;同时,系统还可以切换为本地模式和云控制模式,进一步拓展了其通用性。
(2) 可复制性体现在PC 控制系统直接采用Simulink 作为算法设计工具,硬件采用了使用极为广泛的低成本开源平台,系统软件设计过程简单,对编程开发人员要求低,从而使得其他学者或者开发人员可参考本文系统方案进行简单、快速的复制设计,没有成本压力以及开发授权问题。
(3) 开放性体现在Simulink 工具支持各种功能模块的组合,具有很高的开放性,同时用户可方便地在PC 机端进行二次开发以满足各种不同的需求。也可以使用其他的软件平台作为PC 机控制系统的设计工具,例如SCILAB、Python、Qt 以及微软基础类库(MFC)等,以满足不同的上层人机交互设计。
(4) 可移植性体现在系统软件程序都是基于ANSI C 以及POSIX 标准开发的,可以很方便地迁移到其他软硬件平台中运行,如Rock Pi、Orange Pi 或者Beagle Bone Black 等,从而可将实验编译程序快速移植到产品研发过程中。
值得说明的是,本文方案的目标机硬件采用了由Raspberry Pi 和STM 32 组成的双嵌入式架构。如前文所述,部分学者基于FPGA、Raspberry Pi 和Arduino Due 进行目标机硬件的设计开发。基于FPGA 的目标机可以进行并行计算,具有较强的计算性能,并且支持创建各种自定义I/O 外设,但仅支持数字I/O,同时相对价格也较高;此外,FPGA 的开发语言为硬件描述语言Verilog HDL,导致其开发难度相对较大,可复制性以及可移植性差。基于Raspberry Pi 目标机具有较强的运算性能以及较低的价格,但其只带有数字I/O,大幅限制了其应用场景,使其通用性受限。基于Arduino Due 的目标机价格较低,具有丰富的数字和模拟I/O,但是其微处理器性能有限,无法满足高速、复杂的控制应用需求。因此,本文方案与基于FPGA、Raspberry Pi 以及Arduino Due 的目标机方案对比如表1 所示,本文方案采用的双嵌入式架构设计综合了其他方案的优点,具有性能强、成本低、开发简单、通用性和可移植性好、模拟和数字接口丰富等诸多优势。
表1 本方案与基于FPGA、Raspberry Pi、Arduino Due 等方案的对比
为了验证所设计的网络化开放式RCP 系统的有效性和优越性,本文设计搭建了一套网络化磁悬浮控制系统(如图7 所示)。磁悬浮装置由电磁铁、激光传感器和空心铁球组成;控制系统通过调节电磁铁的电流,使铁球稳定在指定位置或沿着期望轨迹运动,激光传感器用于检测铁球的实时位置。网络化磁悬浮RCP 系统中的PC 机控制系统配置为:处理器Intel(R) Core i5-7500,CPU 主频3.0 GHz,内存8 GB,操作系统Windows10,软件平台为Matlab R2019B;PC 机与目标机处于同一局域网中,两机之间采用UDP/IP 协议进行通信,对应的IP 地址分别为192.168.135.100 和192.168.135.107。
嵌入式目标机中的Raspberry Pi 具有高频精确定时器功能,作为网络化RCP 系统的时间基准,从而可以精确测量网络化系统的网络通信时延大小。设置系统控制(采样)周期T=2 ms,测量得到某一时间段内的时延大小如图8 所示。由图8 可知系统时延具有典型时变特性,且出现有低频的大时延现象。下面建立网络化磁悬浮RCP 系统模型,用于后续实验验证过程。磁悬浮系统本地模型可以描述为如下形式
图8 网络化RCP 系统通信时延
其中x=[x1x2]T为系统状态,x1和x2分别表示小球的位置和速度;u、y分别为系统的输入和输出;A、B、C均为常值矩阵。显然,网络通信时延会对系统控制性能带来影响,分别考虑存在时变短时延和时变长时延情况下的网络化系统模型。
考虑时变短时延情形,此时网络时延τk满足0 ≤τk≤T,由于传感器采用时间驱动模式,控制器以及执行器采用事件驱动模式,可得到时变短时延情形下的系统控制输入时序图如图9 所示。
图9 短时延情形下控制输入时序图
将时变短时延描述为如下形式:
其中τ0和Δτk分别表示τk的标称值部分和不确定部分。由图9 可知,在每个控制周期内至多有2 个控制量作用在被控对象上,即
以采样周期T对系统对系统离散化,同时考虑网络时延τk的影响,具有时变短时延的网络化控制系统可描述为
针对控制系统时变长时延情形,即τk >T,首先做如下假设。
假设1假设时延是有界的,即T <τk <dMT,dM为正整数。此假设符合实际系统特征。
假设2假设执行器总是使用当前控制周期内最先到达的控制量,且控制量不会发生时序错乱。由于采用的是UDP/IP 传输方式,不会对发送错误或者失败的数据进行重新传输,故控制量的下发都是按照先后顺序的,不会发生错序的情况;由于执行器采用事件驱动模式,为了避免执行器频繁动作,因此执行器总是使用当前周期内最先到达的控制量。如果在当前控制周期内执行器未接收到新的控制量,则采用上周期控制量进行计算,故此假设合理。
根据上诉假设,时变长时延情形下的系统控制输入时序如图10 所示,则时变长时延可描述为式(6)形式。
图10 长时延情形下控制输入时序图
可得知每个控制周期内至多有2 个控制量作用在被控对象上,即
那么可以得到具有时变长时延的网络化控制系统模型:
值得说明的是,当取系统式(8)中的n=0,系统式(8)退化为系统式(4)。因此,结合式(4)和(8),可得到具有有界时变时延的网络化控制系统模型为
其中n∈N,0 ≤n <dM。在本地模式下,采用系统辨识方法得到模型参数分别为
本节基于网络化磁悬浮RCP 系统,设计了2 个实验案例,分别对文献[8]和文献[10]中针对网络化系统的理论方法进行实验验证。文献[10]提出了一种基于模型预测控制(model predictive control,MPC)的网络化预测控制策略,是网络化控制理论中的典型算法,通过该算法实验验证所设计RCP 系统的有效性。文献[8]提出了基于等价输入干扰(equivalent input disturbance,EID)方法补偿网络化时变时延的策略,通过数字仿真验证了其有效性。然而由于其网络化实验平台的限制,无法对上述理论进行独立实验验证。本文通过对上述理论方法进行实验,验证所设计系统的优越性。在PC 机控制系统的Simulink 环境中搭建算法仿真框图如图11所示,其中控制算法可以通过Simulink 自带的功能模块实现,也可以通过S-Function 模块编程实现。为了加快仿真的计算速度,给出示例中的控制算法均采用C 代码编写的S-Function 模块实现。显然可知,针对不同的控制算法实验设计只需要替换SFunction 模块即可,这保证了RCP 系统的便捷性、开放性和通用性。
图11 控制算法仿真框图
文献[10]所提出的网络化MPC 控制方法主要思想是将网络通信时延处理为系统控制(采样)周期的整数倍,采用MPC 计算得到多步预测的系统控制输入,并将其打包成一个数据包通过以太网发送到执行器端。那么执行器可根据网络通信时延大小选择相应预测步长的控制输入作为当前实际控制量发送给被控对象,从而主动补偿网络通信时延对控制系统的影响。网络化MPC 控制器设计步骤如下所示。
(1) 确定时延上界dM。
(2) 计算状态反馈增益K。K可以通过极点配置以及线性二次型调节(linear quadratic regulator,LQR)等方式设计,需要满足Ag+BgK为Schur 稳定矩阵。
(3) 构造预测控制输入集U(k),具体形式为
由图8 可知,实验环境下的网络通信时延τk<6 ms,由于采样周期T=2 ms,因此取dM=3。代入系统模型参数Ag以及Bg,采用LQR 方法设计状态反馈增益K=[716.18 71.77],小球位置控制实验结果如图12 所示。实验结果表明,小球在平衡位置(45 mm)只有较小幅度的波动,具有较好的稳定性,验证了文献[10]提出的网络化MPC 控制理论,也说明了所设计网络化RCP 系统的有效性。
图12 网络化MPC 控制实验
文献[8]提出了基于扰动观测器(EID)的网络化系统时变时延补偿方法,其主要是将时变时延带来的不确定性等效为系统的网络扰动,采用EID 思想将网络扰动等效为系统输入端的干扰,并在控制量中对其进行补偿,从而消除网络时延给系统带来的影响。
为了更加清晰地说明该理论的正确性,此处设计了本地模型下的线性二次型最优控制(LQR)、网络系统的LQR 控制以及基于EID 的LQR(LQR +EID)控制3 种实验。采用LQR 方法设计状态反馈增益K=[716.18 71.77],EID 观测器增益L=[1.9002 472.3421]T以及滤波器时间常数Ts=0.01。实验结果如图13 所示。显然,根据本地模式和网络化控制模型下的LQR 控制实验结果对比可知,时变时延带来的不确定性影响使得磁悬浮球位置在平衡点附近发生了较大波动,使得系统控制性能下降;然而,引入EID 扰动补偿策略后,网络化控制模型下的系统位置控制性能基本与本地模式一致。总结得出,实验结果与文献[8]中的理论和仿真结果一致,验证了其理论正确性,同时也说明了本文所设计网络化RCP 系统的优越性。
图13 LQR 控制器本地控制和网络化控制效果图
本文采用开源的硬件和软件环境搭建了一套网络化开放式RCP 系统,设计了双嵌入式目标机架构,采用以太网连接PC 控制系统和目标机,具有结构简单、开放性好、成本低、部署方便、可扩展性强等诸多优点,并以磁悬浮球为被控对象设计了网络化RCP 实验平台。本文对系统硬件设计和软件控制流程进行了详细介绍,并设计了2 个代表性网络化理论算法实验,表明了所提RCP 系统在算法设计中的便捷性和辅助开发中的优越性。本文所设计网络化开放式RCP 系统可用于各类网络化控制系统理论分析和产品研发过程,具有良好辅助设计价值。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!