基于LabVIEW的双余度伺服测控系统设计
2019-04-10周奇勋李鹏博马存超
周奇勋,李鹏博,刘 娜,马存超
(1.西安科技大学电气与控制工程学院,陕西西安 710054;2.同济大学,嵌入式系统与服务计算教育部重点实验室,上海 200092)
0 引言
伺服系统在航空航天领域中的应用颇为广泛,系统在运行过程中出现故障的情况是不可避免的,其在航空航天应用中出现故障后带来的损失也是不可估量的。为了增强系统应对故障的适应能力,通常采用余度控制技术,当系统的某一部分出现故障时能够保障整个系统的可靠运行,同时可以满足一定的性能要求。
但余度间强耦合特征尤其是余度间负荷状态差异将导致伺服系统的协调控制难度增大[1],为了缩短双余度永磁同步电机余度协调技术的开发周期,减少研究成本,本文采用虚拟仪器技术搭建双余度伺服测控系统。
1 整体设计
系统整体构成如图1所示。由上位机和下位机组成的人机交互界面、串行通信接口、永磁同步电机控制器3个部分组成。系统的主要功能分为以下几个部分:
(1)采用RS422串行通信连接实现上位机与DSP之间通信;
(2)使用2套旋转变压器检测电机转子位置,实现电机转子位置检测的容错伺服控制;
(3)使用电流传感器测量电机绕组电流,提高系统的伺服性能;
(4)根据采集的温度、电流、电压和旋变等信号,综合检测系统故障。
图1 双余度伺服测控系统整体构成
根据对控制系统功能分析,系统设计的控制器主要包括电源管理模块、DSP模块、RVDT激励和解算模块、电压电流检测模块、功率驱动模块、硬件逻辑与保护电路模块,除此之外,还有系统串口通信模块以及开关量处理模块等。
电源管理模块主要实现对系统所需不同电源的处理和转换,对系统的各模块进行供电;通过RVDT检测转子位置信号,采用旋变解算电路进行转子位置的解算,进而将得到的数字信号传输给主控芯片;电压检测模块用于实时检测电机母线电压大小;电流检测模块实时检测电机三相绕组电流大小;功率驱动模块转换PWM信号驱动功率管,从而控制三相全控桥的输出电压;串口通信模块实现上位机与下位机之间的通信。
根据硬件需求,采用模块化设计思路,双余度伺服测控系统软件设计主要分为参数设置模块和监测系统模块。其中参数设置模块包括通信端口设置、闭环控制设置和控制信号设置;监测系统模块包括通道工作状态监测、系统工作状态监测、闭环控制反馈、电机转速监测、电压电流监测、功率模块和电机温度监测、旋变信号监测。
LabVIEW上位机软件程序工作流程如图2所示。在系统开始工作之前,首先进行状态检测,当整个系统处于正常状态时,设置相关参数系统继续运行,此时上、下位机之间通过RS422串口通信判断电机转子的起始位置。之后上位机向下位机发送速度指令使系统处于工作状态,与此同时上位机可以准确、实时接收到下位机回传的各种数据,将这些数据进行解包、赋值反馈到前面板得到系统的稳/动态性能指标。
2 LabVIEW软件设计
2.1 前面板设计
双余度伺服测控系统软件界面设计如图3所示。
图2 上位机软件工作流程图
根据设计需求,将前面板划分为9个区域:
(1)通信端口配置区域(确保上、下位机之间正常通信);
(2)闭环参数设置区域(设置PID参数,根据系统误差,利用比例、积分、微分计算出控制量);
(3)控制信号设置区域(选择信号类型,设置信号源的幅值、频率和幅值偏移);
(4)运行状态监测区域(监测系统的运行状态并进行故障报警);
(5)转速监测区域(可直接绘制出转速指令、反馈和误差曲线,监测电机实际转速随时间的变化及与给定转速的误差);
(6)三相电流监测区域(监测电机三相绕组电流);
(7)母线电压监测区域(监测电源供给系统母线电压);
(8)功率模块和电机温度监测区域(监测控制器功率模块温度和电机温度);
(9)旋变信号监测区域(监测电机转子位置)。
图3 双余度伺服测控系统软件界面
2.2 后面板设计
2.2.1 参数设置模块
参数设置模块的功能有通信端口设置、闭环控制PID参数设置和控制信号设置。在PID参数设置中,带有增量/减量按钮的PID数值设置框下传PID参数至下位机,不带增量/减量按钮的PID数值框上传PID参数至上位机。在信号设置中,通过信号类型选择、幅值、频率、幅值偏移的数值输入框进行信号的相关设置。参数设置模块程序工作流程如图4所示,配置通道端口,点击通道内“设置确认”按钮,若系统状态检测正常则依次进行闭环控制和控制信号设置;否则退出检查系统硬件连接和端口配置。
图4 参数控制模块工作流程图
程序中将事件结构放入while循环。事件结构中不仅包括通道端口确认分支、PID设置确认分支和信号设置确认分支,还有启停和一些功能性分支触发后可以给控制器发送各种指令控制电机,并查看电机的各种状态。
控制信号指令在超时事件分支中,指定事件结构等待事件发生的时间为5 ms,当前面板“启动”或“总启动”按钮按下又无其他事件触发时,while循环中每隔5 ms触发一次超时事件,即上位机将控制信号指令每隔5 ms发送一次给下位机控制器控制电机运行。
2.2.2 LabVIEW串行通信设计
监测电机时,由于上位机接收的数据量大且每帧数据接收时间间隔仅有10 ms,传统的数据收发处理结构容易丢失数据,在解析数据帧过程中程序复杂且耗时较多,很难满足实时监测系统的需求。本上位机将通信分为接收数据和解包处理数据2个循环,具体工作流程如图5(a)和图5(b)所示。当接收循环内VISA读取数据检测到有N(N≥1)个字节时,将接收到的数据按字节依次取出存放到指定数组“读取缓冲数组”中,读取缓冲数组内每存放一个字节“读取缓冲数组存指针”加1。此时解包处理循环内“读取缓冲数组存指针”和“读取缓冲数组取指针”不相等,程序进入解包循环开始解析数据帧。
(a)接收数据循环
(b)解包处理循环
“读取缓冲数组取指针”将“读取缓冲数组”内的数据索引至“解包临时字节”,再将该“解包临时字节”存入新的数组“解包数组”中。设置布尔量“帧头标志”位,在“解包数组”中找到帧头后“帧头标志”布尔值为真,进入条件判断结构真,“解包指针”从0至1,依次向后加3个字节,“解包指针”为4即找到一帧完整的数据。此时再将“帧头标志”至为假,“解包指针”至为0方便下一帧数据查询。寻找到的每帧数据再通过CRC校验后即为正确数据,赋值到前面板显示。
在解包处理数据循环中,当读取缓冲数组“存指针”和“取指针”在某一时刻相等时,“解包数组”会通过条件判断结构“真”将数据重复发送给数据处理部分,导致在处理数据时重复或丢失数据。此时结合逻辑“与”并在解包条件结构“真”内设置布尔常量“假”,可有效防止该错误。接收处理数据程序如图6所示。
图6 接收处理数据程序
2.2.3 监测系统模块
监测系统模块各功能的实现与参数设置模块一样,在同一事件结构中添加触发事件分支。
测试时,通过上位机软件既可以控制每条通道单独运行,也可以协调控制两条通道同时或切换运行。当其中有一条通道单独启动运行时,另一通道所有设置及启动禁用,防止余度间产生冲突。在每一个测试部分,可以对采集到的数据进行显示、分析并画出波形曲线,还可以根据采集到的数据判断系统的工作状态,进行故障报警等操作。
3 实验结果分析
前面板设置了1号通道和2号通道,2个通道实现的功能完全一样。指令、反馈、误差中,指令指上位机发送给下位机的控制信号波形值,反馈指电机转动后下位机反馈给上位机的实际值,误差指信号波形值与实际值之间的差值;三相电流指监测电机的三相绕组电流;母线电压指监测电源母线电压;温度模块监测功率模块温度和电机温度;旋变传感器信号检测转子位置;通道工作状态反馈系统的工作状态;系统状态进行故障报警等操作。
采用速度闭环控制方式,通过上位机给定3×103r/min速度指令,在上位机监测指令、反馈和误差速度曲线如图7所示。从图7(a)阶跃响应曲线可以看出,系统响应速度快,在转速响应过程中,系统运行状态平稳;从图7(b)正弦跟随曲线可以看出,系统整体跟随性能良好,在电机转向发生变化时误差会相应增大,但整体误差在允许范围内。
4 结束语
本文根据双余度永磁同步电机余度协调技术的要求,设计了基于LabVIEW的上位机测控系统。针对上位机要求通信速度快、接收处理数据量大的特点,提出了一种双循环并行数据接收处理方法。经过试验验证表明,该方案可以在极短的时间内处理庞大的数据量,在保障通信完好的前提下,对双余度伺服系统进行有效的控制和监测。极大地降低了余度协调技术的研究成本和开发周期,具有一定的参考应用价值。
(a)阶跃响应曲线
(b)正弦跟随曲线图7 速度曲线