基于Simulink/RTW的虚拟三轴转台设计及实现
2018-04-23于雅莉
朱 川,于雅莉,王 珍
(1.上海飞机设计研究院,上海 201210;2.哈尔滨工程大学,黑龙江 哈尔滨 150001)
三轴转台是一种高性能的半实物仿真测试设备,作为惯性元件的物理激励设备,在航空航天等领域具有十分广泛的应用,对航空航天器、导弹等的研制具有十分重要的作用。随着航空航天的高速发展,对惯性元件的精度要求不断提高,因此对三轴转台的安装精度、控制精度、动态跟随特性以及响应速度都提出了很高的要求,为传统三轴转台的研制带来了困难[1]。
目前,对三轴转台的研究主要集中在几个方面:1)角位置和角速度测量精度;2)带宽扩展;3)低速性能问题;4)各框架间的动力学耦合;5)转台控制系统的实现及优化。
围绕以上问题,学者对三轴转台的设计、控制、动态特性进行了一系列研究[2]。随着计算机技术的发展和应用,基于数字模型的实时仿真越来越多的应用到各个行业。在此基础上,本文提出了基于数字模型的虚拟三轴转台设计,并结合相关硬件进行了实现。
1 虚拟三轴转台设计方案
1.1 方案设计
虚拟三轴转台由动力学模型和相应的硬件两部分组成,动力学模型包括转台的本体模型和控制模型。虚拟三轴转台的动力学模型主要采用Adams和Matlab/Simulink软件构建,根据三轴转台物理参数建立三轴转台的三维模型,通过软件接口将三维模型导入Adams中并且设置边界条件及变量,在Matlab/Simulink中搭建控制模型对三轴转台的运动进行控制[3]。在Matlab/Simulink中完成虚拟三轴转台的运动调试后,通过RTW编译生成下位机可运行的代码,调动相关硬件设备实现与外部的信号交互,具体方案如图1所示。
1.2 RTW功能介绍
RTW是MATLAB图形间建模和仿真环境Simulink的一个重要的补充功能模块,提供了一个实时的开发环境,从系统设计到硬件实现的直接途径。使用RTW进行实时硬件的设计测试,用户可以缩短开发周期,降低成本[4]。RTW具有如下重要特征:1)基于Simulink模型的代码生成器,可生成优化和个性化的嵌入式代码和快速原型化代码;2)通过Simulink的外部模式调节代码,并对代码的运行情况进行监控;3)支持多目标环境;4)扩展的程序创建过程允许使用其他类型的嵌入式编译器和链接器与RTW结合使用。
图1 虚拟三轴转台设计方案
2 模型构建
2.1 本体模型
三轴转台主要由机械台体(含驱动电机、传感器、滑环等硬件)、电气控制系统(含控制器和检测显示设备的硬件和软件)和负载安装支架组成。三个相对转动的框架(外框、中框、内框)转轴相互垂直,分别用来模拟飞行器的航向、俯仰和滚动运动姿态。三轴转台的三个框架分别由相应的电机驱动,通过对各个电机分别进行控制,从而仿真飞行器的不同运动姿态。
三轴转台的本体仿真模型包括台体的三维模型和边界约束等条件。根据三轴转台的物理参数,在三维建模软件中构建三轴转台的三维模型,如图2所示。通过模型调用接口将建好的三维模型导入Adams中,并根据工程情况定义三轴转台的材料属性、边界约束和输入输出变量。根据三轴转台的工作情况,三轴转台底座与大地连接,内、中、外三框分别施加旋转约束。
图2 三轴转台模型
2.2 控制模型
传统的三轴转台内、中、外三框分别由电机驱动,通过控制电枢两端的电压或绕组中电流的大小和方向,从而达到控制电机转速和转向的目的。传统的三轴转台受限于电机的最大电流,往往给三轴转台的控制带来限制。Adams与其他控制程序之间的数据交换是通过状态变量实现的。状态变量在计算过程中是一个数组,它包含一系列的数值。用于输入输出的状态变量一般是系统模型元素的函数,本文中,定义三轴转台的角位移、角速度为输出变量,理想的角位移输入信号为输入变量。在Adams中创建输入、输出变量,通过Control模块将三轴转台的动力学模型导出为Matlab/Simulink可调用的模块,如图3所示。
图3 三轴转台动力学模型
在Simulink编程环境中,可以根据需求构建不同的控制模型。在本文中,以简单的PID控制模型为例,如图4所示,通过比较输入指令与虚拟三轴转台响应曲线的一致性验证仿真平台的动态跟随特性。虚拟三轴转台的控制模型库中可以存储根据不同控制策略搭建的控制模型,在运行时根据需求调用不同的控制模型。
图4 三轴转台控制模型
3 软硬件连接
3.1 目标代码生成
仿真模型在RTW环境下用xPC提供的程序创建生成C代码,并对其编译,链接生成可执行应用程序,实时仿真中运行的xPC实时内核自动将其下载到实时仿真机上进行运行[5],如图5所示。
图5 可执行程序生成
具体包括以下几个步骤:
1)分析模型。RTW的程序创建过程首先从对Simulink模块的分析开始,RTW首先读取model.mdl模型文件并对其进行编译,形成模型的中间描述文件。该中间描述文件以ASCII码的形式进行存储,其文件名为model.rtw,该文件是下一步骤的输入信息。
2)由目标语言编译器(TLC)生成代码。TLC读取model.rtw文件,然后进行编译和执行目标文件中的命令,输出C代码,包括model.c、model.h、model_export.h等文件。
3)生成自定义的联编文件。联编文件用于指导联编程序如何对从模型中生成的源代码、主程序、库文件或用户提供的模型进行编译和链接。RTW复制system.tmf中的内容,然后对描述模型配置的标识符进行扩展,生成model.mk文件。
4)生成可移植C代码。在RTW中生成可执行程序是一个可选项,可以根据定制的目标系统选择是生成可执行程序还是源代码。本文根据选取的板卡,编写接口程序C代码后,通过CPU的C编译器,将RTW生成的C代码与硬件接口C代码进行编译链接,生成可移植的C代码。
5)检验。将生成的可移植C代码移植到目标板上进行检验修改,进一步完善设计。
RTW在代码生成和程序创建过程中产生的主要文件如表1所示,每个文件都执行了一定的功能。
表1 RTW代码生成过程文件
3.2 硬件连接
三轴转台仿真设备主要由上位机、下位机(实时仿真机)、信号调理设备和A429仿真板卡等组成[6]。上位机采用高性能PC机,运行Windows操作系统,以Matlab/Simulink/RTW为平台进行软件编译运行,用于参数在线配置、数据监控、显示和存储。下位机采用PXI机箱,运行生成的目标代码。上位机与下位机之间通过TCP/IP形式建立通讯连接,下位机接受上位机对实时仿真的各种控制命令。A429仿真板卡提供实时A429信号的采集和发送功能,并实现与外部系统的通信[7]。
4 结果验证
将三轴转台仿真结果与传统三轴转台的运动进行比较,以某型号三轴转台内框运动为例,转台内框以正弦形式运动,运动幅值为20°,频率为0.1 Hz。仿真得到的三轴转台内框运动角位移及角速率如图6所示。
图6 角位移和角速度仿真结果
从图6可以看出,虚拟的三轴转台完全按照给定的正弦输入进行运动,角位移与角速率相位相差90°,但是角速率曲线不是严格的余弦曲线,这是由于三轴转台耦合运动产生的。将仿真结果与试验测试结果进行比较,如图7所示,通过图7b可以看出三轴转台角位移的仿真结果与试验测试结果具有相同的幅值和频率,但是仿真结果比测试结果时间上提前0.056 s,相位提前2.02°,这是因为传统的三轴转台在进行动态信号跟随时,自身惯性导致响应滞后,而虚拟仿真转台具有更好的响应速度。
图7 角位移测试及仿真对比
5 结论
本文结合基于模型的设计方法和代码生成技术,提出了基于Simulink/RTW的虚拟三轴转台设计,并结合相关硬件进行了实现。首先分别在Adams和Matlab/Simulink中构建了三轴转台的本体模型和控制模型,并通过RTW自动生成可移植C代码,结合硬件资源实现了与外部系统的信号交互。基于数字模型的虚拟仿真转台能够更加精确地进行转台内、中、外框的安装,保证三个轴线的垂直度和相交度。与传统三轴转台相比,虚拟仿真转台具有更快的响应速度,并且可以根据需求快速调整。但是文中没有考虑环境模拟,后续将考虑干扰、装配等对仿真转台的影响,根据先进控制算法构建模型,进一步完善虚拟仿真转台。
参考文献:
[1]耿雷,季旭,李海越.三轴转台运动学仿真与结构有限元分析[J].机械设计与制造,2008(5):11-13.
[2]李尚义,赵克定,吴盛林,等.三轴飞行仿真转台总体设计及其关键技术[J].宇航学报,1995(2):63-66,105.
[3]刘琰.基于SIMULINK与ADAMS的摇摆台仿真研究[D].西安:西安工业大学,2014.
[4]杨涤,李立涛,杨旭,等.系统实时仿真开发环境与应用[M].北京:清华大学出版社,2002.
[5]鲁森魁.基于RTW的嵌入式半实物仿真系统的研究与实现[D].大连:大连海事大学,2016.
[6]冯辉宗,朱澎,蒋建春.基于RTW的驱动代码快速生成技术研究[J].计算机应用与软件,2016(3):226-228.
[7]沈楷,郭建国,卢晓东,等.基于Simulink/RTW的RTX系统仿真建模方法[J].计算机测量与控制,2014(2):566-568,571.