APP下载

基于ActiveX 的飞控加载载荷计算软件设计

2020-06-02唐曦文

化工自动化及仪表 2020年2期
关键词:舵面调用表格

唐曦文

(上海飞机设计研究院民用飞机模拟飞行国家重点实验室)

在飞控系统地面模拟试验中需要通过已知的舵面角度θ和力矩值M来计算加载系统施加在舵面上相应的载荷力F。 通常将舵面角度θ和力矩值M输入到EXCEL 中, 利用EXCEL 软件的公式编辑功能来计算载荷力F。 这种方法需要掌握一定的OFFICE 操作技巧, 不够简单、 直观, 而且EXCEL 在生成数据图像时具有一定的局限性,后期无法对数据进一步分析。 在此,笔者设计了一套飞控加载载荷计算软件, 只需通过UI 输入舵面角度θ和力矩值M即可直接计算出相应的载荷力F,并且可将计算出的数据保存,快速生成相应的数据图像,且利用软件本身的强大功能可以实现动态数据光标点捕捉、增加数据标注点等功能以进一步分析数据,极大地提高了数据的计算效率和分析能力。

1 软件设计构架

软件构架采用模块/扁平化方式设计。模块按功能划分为副翼载荷计算、方向舵载荷计算、升降舵载荷计算、水平安定面载荷计算、缝翼载荷计算、襟翼载荷计算和扰流板载荷计算,各模块之间相互独立,便于后期代码维护和功能扩展、升级。

2 软件功能简介

以缝翼载荷计算模块为例,软件有两种方式计算载荷力F:

a. 单点模式。 先确定好通道和舵面状态后,用户输入给定的舵面角度θ和力矩值M,然后点击“计算”按钮,便可直接显示对应的力臂L和载荷力F。 此时,用户也可点击“添加”按钮,将计算出的数值添加到“载荷谱表格”中。

b. 导入模式。 确定好通道和舵面状态后,点击“导入数据”按钮,读取存储在EXCEL 文件中的舵面角度θ和力矩值M并添加到 “载荷谱表格”中,同时计算出对应的力臂L和载荷力F后也添加到“载荷谱表格”中。

用户通过上述两种方式添加数据至“载荷谱表格”后,得到了一张包含通道/舵面状态信息的完整数据(舵面角度θ、力矩值M、力臂L和载荷力F)表,即载荷谱。 此时,用户可点击“导出数据”按钮,将“载荷谱表格”中的数据保存成EXCEL 文件。用户可根据“载荷谱表格”中的数据选择“X”、“Y”轴所对应的数据名称生成函数图像,函数图像还具有动态光标点捕捉和添加数据标注点的功能。 用户还可点击“保存图片”按钮将生成的函数图像保存成图片文件。 软件的功能界面如图1所示。

3 基于ActiveX 实现软件调用EXCEL

LabWindows/CVI 通过ActiveX 生成可识别的.c、.h、.fp、.obj、.sub 等后缀程序文件[1]。 其中,fp为函数面板文件,LabWindows/CVI 可通过fp 函数面板文件提供的库函数调用EXCEL[2]。 具体方法步骤如下:

a. 从LabWindows/CVI 的Tools 菜单中选择“Create ActiveX Controller”(图2);

图1 软件功能界面

b. 选择对应所需调用EXCEL 的对象库接口(图3);

c. 生成可调用EXCEL、 后缀名为.fp 的面板函数文件(图4)[3]。

图2 ActiveX 控制器创建界面

图3 EXCEL 对象库接口调用界面

图4 生成面板函数文件界面

通过上述步骤,LabWindows/CVI 可通过添加的面板函数文件中提供的各种库函数实现对EXCEL 的调用。

4 LabWindows/CVI 与EXCEL 的数据通信

当LabWindows/CVI 通过添加面板函数实现调用EXCEL 时, 本软件通过面板函数中提供的各种库函数与EXCEL 进行数据通信, 包括对EXCEL 数据的读取和保存,这也是本软件的重点和难点。

4.1 软件读取EXCEL 数据

软件读取EXCEL 数据的步骤如下:

a. Excel_NewApp(),Excel_SetProperty(),打开EXCEL,并设置其可见属性为真;

b. Excel_GetProperty(),获得EXCEL 的“工作簿”属性;

c. Excel_WorkbooksOpen(),打开所需读取的EXCEL 文件;

d. Excel_GetProperty(),获得EXCEL 的“工作表”属性;

e. Excel_SheetsItem(),获得EXCEL“第一张表”属性;

f. Excel_WorksheetRange(),获得EXCEL 中数据单元格“范围”;

g. Excel_RangeGetItem(),CA_VariantGetDispatch(),CA_CreateObjHandleFromIDispatch(),Excel_GetProperty(),获得EXCEL 中单元格的数据;

h. CA_VariantHasDouble(),判断单元格中是否有数据,若没有则跳出读取数据循环;

i. CA_VariantGetDouble (),EXCEL 数 据 为variant 型, 赋值给软件的table 控件前必须转换成对应的数据类型;

j. CA_VariantClear(),CA_DiscardObjHandle(),释放EXCEL 相关的各种句柄变量。

4.2 软件存储EXCEL 数据

软件存储EXCEL 数据的步骤如下:

a. Excel_NewApp(),Excel_SetProperty(),打开EXCEL,并设置其可见属性为真;

b. Excel_GetProperty(),获得EXCEL 的“工作簿”属性;

c. Excel_WorkbooksAdd(), 新 增EXCEL 的“工作簿”;

d. Excel_GetProperty(),Excel_SheetsItem(),获得“工作簿”中第一张“工作表”;

e. Excel_WorksheetRange(),获 得EXCEL 中存储数据单元格“范围”;

f. CA_VariantSetCString(),CA_VariantDouble(),Excel_RangeSetItem(),EXCEL 数据为variant 型,软件table 控件中的数据存储到EXCEL 中之前需先进行类型转换;

g. CA_VariantClear(),CA_DiscardObjHandle(),释放EXCEL 相关的各种句柄变量。

5 结束语

笔者设计的飞控加载载荷计算软件利用ActiveX 实现了LabWindows/CVI 对EXCEL 的调用,可使载荷谱数据在软件与EXCEL 之间传输,利用LabWindows/CVI 强大的数据分析功能分析了载荷谱数据, 并可将载荷谱数据存储在EXCEL中。 软件人机对话界面友好,操作简单、快捷,提高了数据分析效率,极大地减轻了试验人员的工作负担。

猜你喜欢

舵面调用表格
基于舵面振荡激励试飞的飞机动特性识别与修正
《现代临床医学》来稿表格要求
基于拔销器锁定的飞行器气动控制面解锁控制方法
统计表格的要求
统计表格的要求
统计表格的要求
核电项目物项调用管理的应用研究
一种折叠舵面设计及分析
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究