效率飙升!Matlab直接驱动航华PSU64电子压力扫描阀

2024-01-03 09:03
二维码
388

前文介绍了如何使用编程语言Python来采集电子压力扫描阀输出电压数据[1]。本文介绍将如何使用大家更为熟悉的Matlab语言来控制扫描阀。

1. 安装数据采集卡驱动软件。用户可在如下连接中[2]下载压缩包(也可以点击左下“阅读原文”进入下载界面),内含本文使用的全部Matlab函数和命令文件,库文件,以及采集卡驱动程序。请用户参照说明书14页安装驱动。安装完毕后,打开“设备管理器”检查是否正确出现“libusbK USB Devices

2.在Matlab中进入解压后的文件目录,打开example.m命令文件。函数还包括打开与关闭采集卡函数load_daq, close_daq;读取零点函数zero_daq; 对应扫描阀与采集卡通道的channel_mapping函数;采集一段电压输出的daq_block函数;使用单点及多点标定结果转换电压为压强的read_press_block_single_pt_cali和read_press_block_multi_pt_cali函数,以及一组典型标定文件。Matlab需安装MinGW C编译器。

图片

3. 首先进行参数设置





%参数设置 samplenumber_per_block=1000; %每组采样数sample_rate=5000; %采样率,每秒采样数dev=0; %扫描阀编号,每次第一个插入计算机的编号为0,第二个为1,以此类推
4. 开启采集卡


%开启采集卡number_dev=load_daq; %开启采集卡,返回目前连入计算的采集卡数量
5. 采集零点。压强传感器的零点(无压时的电压输出)会受到温度、气压等多种因素影响而发生微小漂移。实验开始前需要进行采集、记录




%采集零点,这一步需要在风洞关闭的条件下进行,建议没2小时采集一次零点%%%%%%%%%%%%%%%正常运行时(风洞运行后),请将这段注释掉%%%%%%%%%%%%%%%%%%%%zeros=zero_daq(dev);save(['zero' num2str(dev) '.txt'], '-ascii', 'zeros'); %保存零点数据

6.启动风洞,采集一段0.2秒时长的数据







%以下为风洞运行情况下执行,采集并记录扫描阀数据程序tube_panel_mapping=load('tubepanel.txt'); %读取扫描阀与采集卡通道对应表,扫描阀通道编号与采集卡通道编号不完全对应,需要依据此表进行整理zeros=load(['zero' num2str(dev) '.txt']); %读取无风时存储的零点电压信息data=daq_block(sample_rate,samplenumber_per_block,dev); %读取一段扫描阀输出电压数据,时长为T=samplenumber_per_block/sample_rate; dev编号如果不提供,系统使用缺省值dev=0data2=data-zeros;   %输出电压减去初始值output_vol=channel_mapping(data2,tube_panel_mapping);   %扫描阀通道编号与采集卡通道编号不完全对应,依据tubepanel表对输出电压进行整理。整理后,输出数组1-64列对应1-64扫描阀通道输出电压

7. 关闭采集卡



%关闭采集卡close_daq;


8. 使用单点标定结果,将电压转换为压强。这里结果results为一个二维数组,行数为采样数,列数为64,对应64通道。




%使用单点标定结果将电压转为压强,这一步与下一步二选一%%%%%%%%%%coef=load('calibration_coef.txt');results=read_press_block_single_pt_cali(output_vol,coef);

9. 使用多点标定结果,将电压转换为压强。多点标定结果更为精确。2023年之前的PSU64扫描阀没有提供多点标定,建议用户联系我们开展扫描阀返厂标定工作。





%推荐用户使用多点标定结果对电压进行插值,获得更为精确的压强测量结果,这一步与上一步二选一cali_in=load('input_pressure230011.txt');cali_out=load('output_voltage230011.txt');results=read_press_block_multi_pt_cali(output_vol,cali_in,cali_out);

10. 绘制结果图




figure, plot(mean(results)); %绘制测量结果的时均值xlabel('Scanner channels')ylabel('Pressure, Pa');

11. 保存结果


save my_results.txt results -ascii

引用:

[1]使用Python操纵航华PSU64电子压力扫描阀

[2]http://www.hanghualab.com/col.jsp?id=128, "数据、程序分享页”, PSU64_Matlab_X64.rar