某型航空离合器试验台的研制
2018-04-25,
,
(中国飞机强度研究所,西安 710065)
0 引言
离合器试验台的试验对象是某型离合器,该离合器用于将前座舱或后座舱飞行员操纵油门杆的动作传递至发动机油门。为检验产品的品质,主要用来完成产品的性能试验,包括位移检测试验、拉力检测试验、脱开检测试验以及跑合试验/寿命试验。以压缩空气作为系统工作动力,通过柜体与支撑框架、试验台架及工装夹具、气压控制系统、测试与控制系统、测量用传感器等的设计与制造,最终完成该离合器试验台的研制。
1 试验台设计
试验台机柜前部为琴键式试验操作平台,竖立面板安装有显示器、气压表、电源开关/指示灯等。机柜后部设置试验台架安装平台,用于试验台架的装配。柜体内前端设放置工控机、打印机等隔层;后端上方为试验台架气缸装配固定承力框架,后端下方为电气设备装配背板。
领取离合器试验件后,首先将离合器底座置于台架平台上的方形凹槽内,然后利用四个固定压板将其固定在试验台架上如图1所示。为了装卸方便,采用蝶形紧固螺母,另外,为防止对产品表面造成损伤,压板两端面覆盖有硬质橡胶。
图1 试验件装配图
由于离合器前/后摇臂之间是通过销轴连接在一起的,当销轴处于原位时,前摇臂相对于后摇臂是不能转动的,但当拉动位于后摇臂侧的钢索促使连接销轴滑出,则前摇臂相对于后摇臂可以向上或向下转动一定角度。这样,试验时,载荷施加及检测连接点分别是后摇臂侧的钢索及后摇臂连接后座舱处;位移测量点分别是位于前摇臂侧的销轴处及后摇臂连接发动机处。
试验台架及工装夹具[1]是进行试验的物理基础,包括框架、试验件夹具、传感器 安装支架等,试验台架装配图如图2所示。
图2 试验台架装配图
后摇臂连接后座舱处拉力气缸和离合器钢索拉动气缸后端盖铰接固定在柜体承力框架,气缸杆前端分别串接有力传感器L1和L2。前者试验时通过拉杆与后摇臂连接后座舱处铰接,后者为保证钢索夹持牢固且不损伤,特设计如左图所示钢索夹具。实物见图3(a),钢索自上方缺口进入,沿夹具圆形外圈绕缠一圈,然后拐头向下进入夹紧部分,最后利用盖板压紧。
图3 试验夹具
前摇臂固定载荷气缸两端铰接,后端固定在试验台架上,作动杆端试验时与前摇臂铰接连接。
根据试验需求,利用固定夹具固定住前摇臂或固定住后摇臂连接发动机侧。实物见图3(b),将其底部与台架平台固定,前端分别夹住摇臂上/下面,调整后端使之与前端平行,最后利用中间螺母拧紧即可。
后摇臂连接发动机处位移检测和前/后摇臂连接销轴处位移检测均通过多自由度支臂刚性固定,前者一端固定在台架上,P1传感器端顶杆顶在后摇臂连接发动机处;后者一端通过内衬硬质橡胶U型卡槽固定在前摇臂上,P2传感器端顶杆顶在销轴中心点上。
后摇臂连接后座舱处拉力和离合器钢索拉动均为单向作用气缸,最大能力50 Kgf/1 MPa,前摇臂固定载荷属双向作用气缸[2],最大能力5 Kgf/1 MPa。
气压控制系统[3],压缩机气源输出压力≥0.8 MPa。依据气压管路功能需求依次安装一个用于进气管路通断的两位两通电磁阀,用于过滤除湿压缩空气并能调节输气压力的过滤减压阀,保证输出的工作压力≥0.6 MPa。另一个两位三通电磁阀,属常开阀,通电关闭,可进行试验;断电泄压,保证试验系统停机/不试验时系统内无压力。每一台单向作用气缸按单向配置用于控制进气通断的两位三通电磁阀和调节气缸加载速率的单向节流阀。而每一台双向作用气缸按双向配置用于控制进气通断/换向的三位五通电磁阀和调节气缸加载速率的单向节流阀。最后利用Φ8软管、快插转接头[4]等将所有气动元件互连。
2 测试与控制系统
测试与控制系统采用计算机直接数字控制系统[5](direct digital control),实现,其硬件架构如图4所示。主要由工控机+ PCI-9524多功能采集卡组成,外加系统所测量载荷传感器/位移传感器、隔离/驱动继电器及打印机等外围器件和设备。面对的控制对象为由气驱缸及气路控制气驱电磁阀组成的执行机构。
图4 控制系统硬件架构
PCI9524多功能采集卡[6]使用到硬件资源如下:
4个专用力传感器(Load Cell transducer Input)接入通道(AI0~AI3),差分式输入,24Bit分辨率,采样速率1638SPS;信号输入范围±200 mV,固定25X增益;4通道激励电压输出,差分式输出,10 V或2.5 V可选;4通道激励电压回馈,差分式输入,0~10 V信号输入范围(支持六线制接法,激励电压自动补偿,短路保护)。
4各通用模拟输入(General Purpose Analog Input)通道(AI4~AI7),差分式接入模式,24Bit分辨率,采样速率1638SPS,双极性信号输入范围(增益):±10 V(1X)/±5 V(2X)/±2.5 V(4X)/±1.25 V(8X)。用于位移传感器。
8路光隔离数字输入通道和8路数字输出通道,用于收集状态信息和电磁阀控制。
后摇臂连接后座舱处拉力和离合器钢索拉动均采用S型应变计式力传感器[7],量程500 N,桥臂电阻120 Ω,10 V激励电压,灵敏度2 mV/V,非线性1‰。
后摇臂连接发动机处位移检测及前/后摇臂连接销轴处位移检测均采用回弹式位移传感器,供电电源24 VDC,三线制电压输出0~10 V,线性度≤0.25%。前者量程10 mm,后者量程5 mm。
试验开始前/试验结束后气缸均处于卸载状态,试验过程中,试验人员随时可以结束试验。
2.1 位移检测试验
利用固定夹具固定住前摇臂,将后摇臂载荷气缸与后摇臂连接后座舱处连接,利用位移传感器支架将位移传感P1顶在后摇臂连接发动机处。试验开始后,当施加载荷L1≥30 Kgf时,记录当前检测到的P1位移值[8]。按如图5所示进行单次/循环试验。
2.2 拉力检测试验
利用固定夹具固定住后摇臂连接发动机侧,连接好钢索拉动气缸与离合器钢索,利用位移传感器支架将位移传感P2顶在前/后摇臂连接销轴处中心点上。试验开始后,拉动离合器钢索(13 Kgf),当销轴处位移P2≥6.5 mm时,记录当前L2拉力值(大约在5~25 Kgf)。按如图6所示进行单次/循环试验。
图5 位移检测试验流程 图6 拉力检测试验流程
2.3 跑合试验/寿命试验
如同拉力检测试验完成试验前准备工作。试验开始前,销轴处于原位,即销轴位移接近于0 mm。试验开始后,拉动离合器钢索(13 Kgf),当销轴处位移P2≥6.5 mm时,前/后摇臂连接销轴滑出,首先是启动固定载荷(1~2 Kgf,克服内阻)推动前摇臂正向转动,释放钢索(前摇臂已然转动),前摇臂转动最大角度即换向拉动前摇臂回归原位,卸掉固定载荷,前摇臂相对于后摇臂滑动,销轴自动弹回。当判断到销轴已回归原位,和上述前摇臂正向转动试验过程一样,只不过是推动前摇臂反向转动,直至销轴又回归原位。就此一个完整的跑合试验完成,此后重复这个跑合试验直至到达设定的循环次数。试验过程中,如出现销轴不能弹回销孔内,可认为出现卡滞,可立即结束试验[5]。按如图7所示进行单次/循环试验。
图7 跑合试验流程
3 应用程序实现
Windows下板卡驱动程序安装成功后,应用程序基于Delphi7可视化编程环境[9]开发。试验系统软件架构如图8所示。
图8 控制系统软件架构
应用程序启动后首先进入启动主界面。
完成系统自检。查看界面底部信息提示栏中提示信息,系统自检成功表明能够进行正常试验;如显示自检失败及弹出告警窗口,则强行退出进行检修。
不能进行正式试验,在于试验方案配置未定。可以看到主菜单/工具栏/操作区中关于试验的所有操作均被禁止;试验信息显示空白,试验曲线/实时数据/试验结果均呈现缺省显示。
「试验配置」被允许,可以点击进入试验方案配置窗口,对即将要进行的试验做试验方案配置及有关信息录入。
「传感器参数」被允许,可以点击进入传感器参数窗口,以便浏览传感器参数及进行输入通道标定。
「试验参数」被允许,点击进入试验参数设定窗口,可以浏览/设定试验参数, 包括试验判据/逻辑时序、试验曲线显示及试验数据文件保存设定。
接下来进入试验方案配置窗口后,「试验信息」区,「大标题」、「批次号」及「试件编号」必须输入,不能为空,将它们用‘-’串起来组成试验配置保存名称;
「试验方案」区「试验类型」缺省为位移检测试验,可根据需要选定其它试验。「试验模式」新建时缺省为‘自动’循环试验。但对位移检测/拉力检测/脱开试验预定义次数为3,「试验模式」为‘手动’或‘自动’可选。跑合试验次数由用户设定,一般最少不低于80次,「试验模式」默认‘自动’。
「试验配置/数据文件名称」区,「试验配置/数据文件保存名称」即1) ‘「大标题」-「批次号」-「试件编号」’的组合,试验配置文件与数据文件名称一致,仅后缀名不同而已,试验配置文件后缀名为.Cfg,试验数据文件后缀名为.Txt。
「试验配置/数据文件保存」区,「试验缺省保存路径」为应用程序所在目录,可以通过点击「路径选择」可另行设置新的保存路径。
「新建」用于建立一个新的试验方案配置;「打开」用于打开一个已存在的试验方案配置。如果预定义次数未完成,可以接着做余下试验,如预定义次数已经完成,不允许做试验,但可以浏览/打印试验结果报表。
最后,点击「确认/关闭」对试验方案配置进行保存/确认,该窗口随之关闭。随即会按试验方案配置再次初始化及刷新人机交互主界面。如图9所示为跑合试验主界面及正在进行的跑合试验。
图9 跑合试验主界面
最后进入正式试验主界面。点击「试验操作」区「采集开始」,开始采集试验所用传感器数据;点击工具栏「总气阀开」,气源总进气路阀打开,试验系统总泄气阀关闭;点击「试验操作」区「试验采零」后,可对位移传感器采取相对零点。
点击「试验操作」区「试验开始」,试验执行机构开始动作,「试验开始」变为「试验结束」。
程序按「试验参数」预设判定条件进入自动判定阶段,如满足判定条件,「试验结果」区会显示出加载值和检测值,「试验成功标志」会显示‘成功!’,此时,可点击「试验结束」,将本次试验成功结果暂时保存在下方的列表中。
如程序进入自动判定阶段长时间不出结果,即始终不满足判定条件,则通过点击「试验结束」,可强制结束本次试验,试验结果」区会显示本次试验过程中加载最大值及对应检测值,「试验成功标志」会显示‘失败!’, 与此同时,也会将本次试验失败结果暂时保存在下方的列表中。
如试验方案配置中「试验模式」选定为单次试验,点击「试验开始」→变为「试验结束」→又变为「试验开始」后,不允许再次试验;如试验方案配置中「试验模式」选定为循环试验,点击「试验开始」→变为「试验结束」→又变为「试验开始」后,可以再次试验;如「试验总循环次数」达到预设次数,想要退出试验,必须在点击「试验结束」后,先行点击工具栏「结果保存」。
如点击工具栏「结果保存」后,想要打印试验报表,请点击工具栏「报表打印」。
点击工具栏「总气阀关」后,气源总进气路阀关闭,试验系统总泄气阀打开;在「试验操作」区,点击「采集结束」;至此本次试验完成,可以进行下一个试验。
下面仅以跑合试验逻辑控制时序程序为例来说明试验系统是如何实现。
procedure TfrmMainInterface.iTTTestTimer1(Sender: TObject); //循环周期2 ms子线程,实现试验控制逻辑
var nCH,i: Word;
tPosVal: Double;//位移传感器相对偏移值
begin
threadErr:=0;
if AcqCardNum>=0 then begin
for nCH:= 0 to 1 do begin //2通道Load Cell
threadErr:=AI_ReadChannel32(AcqCardNum,nCH, PollRange, RawCode);
RawCodeLC[nCH] := RawCode;
AI_VoltScale32(AcqCardNum,PollRange,RawCode, RawVoltageLC[nCH]);
end;
for nCH:=4 to 5 do begin //2通道General Purpose
threadErr:=AI_ReadChannel32(AcqCardNum,nCH, PollRange1, RawCode);
RawCodeGP[nCH-4] := RawCode;
AI_VoltScale32(AcqCardNum,PollRange1,RawCode, RawVoltageGP[nCH-4]);
end;
CalibrationValue[0]:=RawVoltageLC[0]*gTestSensor[0].CaliGain+gTestSensor[0]. CaliOffset;
CalibrationValue[1]:=RawVoltageLC[1]*gTestSensor[1]. CaliGain+gTestSensor[1]. Cali Offset;
EngineeringValue[0]:=RoundTo(GetEVal(0,CalibrationValue[0]),-2); //L1力传感器工程值
EngineeringValue[1]:=RoundTo(GetEVal(1,CalibrationValue[1]),-2); //L2力传感器工程值
EngineeringValue[4]:=RoundTo(GetEVal(2,RawVoltageGP[0]),-2); //P1位移传感器工程值
EngineeringValue[5]:=RoundTo(GetEVal(3,RawVoltageGP[1]),-2); // P2位移传感器工程值
end; //end if AcqCardNum>=0
//进气阀开/系统泄气阀关、数据采集成功且正式试验开始
if gMainGasValveFlag and gAcqIsStart and gTestIsStart then begin
case gTestType of
3:begin //跑合试验,其它试验略
tPosVal:=EngineeringValue[5]-gTestRelativeZero.LoadVal; //销轴位移变化量
if ((tPosVal-gCurTestMaxLoad)>=0) then
gCurTestMaxLoad := tPosVal;
if ((EngineeringValue[1]-gCurTestMaxDetect)>=0) then gCurTestMaxDetect:=EngineeringValue[1]; //拉力检测
AcqCardE:=DO_ReadLine(AcqCardNum,0,2,DOLineVal[2]);
AcqCardE:=DO_ReadLine(AcqCardNum,0,3,DOLineVal[3]);
AcqCardE:=DO_ReadLine(AcqCardNum,0,4,DOLineVal[4]);
if (gTestMode) then begin
if (not gCurTest3Direction) then begin //正向
if (not gCurTestJudgeFlag[0]) and (DOLineVal[2]=1) and (tPosVal>=gTestCriterion[2].Loading) then begin //拉动钢索后销轴位移变化量>=6.5mm判据成功标志
gCurTestJudgeFlag[0]:=True;
gCurTestResult[gCurTestCircle-1].Ordinal:=gCurTestCircle; gCurTestResult[gCurTestCircle-1].LoadVal:=tPosVal; gCurTestResult[gCurTestCircle-1].DetectVal:=EngineeringValue[1]; gCurTestResult[gCurTestCircle-1].State:='正转成功';
RzEditR1.Text:=Format('%.2f',[gCurTestResult[gCurTestCircle-1].LoadVal]);
RzEditR2.Text :=Format('%.2f',[gCurTestResult[gCurTestCircle-1].DetectVal]);
RzCBR4.Text := CurTestResult[gCurTestCircle-1].State;
XSGridResultIncrease;//增加1行将正向试验结果写入
AcqCardE:=DO_WriteLine(AcqCardNum,0,3,0);
AcqCardE:=DO_WriteLine(AcqCardNum,0,4,1); //前摇臂正向转动
for i:=0 to Length(gTestSequenceCnt)-1 do gTestSequenceCnt[i] := 0;
end;
if (gCurTestJudgeFlag[0]) and (DOLineVal[2]=1) and (DOLineVal[3]=0) and (DOLineVal[4]=1) then begin //延时,前摇臂已然转动,释放钢索拉力
Inc(gTestSequenceCnt[0]);
if gTestSequenceCnt[0]*iTTTest.Interval1>=
gTestCriterion[2].Sequence[0]) then begin
AcqCardE := DO_WriteLine(AcqCardNum, 0, 2, 0);
gTestSequenceCnt[0] := 0;
end;
end;
if (gCurTestJudgeFlag[0]) and (DOLineVal[2]=0) and (DOLineVal[3]=0) and (DOLineVal[4]=1) then begin//释放钢绳拉力后,延时,前摇臂已然转动到极限位置,此时前摇臂应立即回位
Inc(gTestSequenceCnt[1]);
if (gTestSequenceCnt[1]*iTTTest.Interval1>=
gTestCriterion[2].Sequence[1]) then begin
AcqCardE := DO_WriteLine(AcqCardNum, 0, 3, 1);
AcqCardE := DO_WriteLine(AcqCardNum, 0, 4, 0);
gTestSequenceCnt[1] := 0;
end;
end;
if (gCurTestJudgeFlag[0]) and (DOLineVal[2]=0) and (DOLineVal[3]=1) and (DOLineVal[4]=0) then begin //前摇臂转动到极限位置后,延时,前摇臂归位
Inc(gTestSequenceCnt[2]);
if (gTestSequenceCnt[2]*iTTTest.Interval1>=
gTestCriterion[2].Sequence[2]) then begin
AcqCardE := DO_WriteLine(AcqCardNum, 0, 3, 0);
AcqCardE := DO_WriteLine(AcqCardNum, 0, 4, 0);
for i:=0 to Length(gTestSequenceCnt)-1 do gTestSequenceCnt[i] := 0;
gCurTest3Direction := True; //反向
gCurTestJudgeFlag[1] := False;
AcqCardE := DO_WriteLine(AcqCardNum,0,2,1); //写DO2值1,进气阀打开,泄气阀关闭,拉动钢索
end;
end;
end; //end if (not gCurTest3Direction)
if (gCurTest3Direction) then begin //反向
if (not gCurTestJudgeFlag[1]) and (DOLineVal[2]=1) and (tPosVal>=gTestCriterion[2].Loading) then begin //拉动离合器钢绳后销轴位移变化量>=6.5mm判据成功标志
gCurTestJudgeFlag[1]:=True;
gCurTestResult[gCurTestCircle-1].Ordinal:=gCurTestCircle;
gCurTestResult[gCurTestCircle-1].LoadVal:=tPosVal;
gCurTestResult[gCurTestCircle-1].DetectVal:=EngineeringValue[1];
gCurTestResult[gCurTestCircle-1].State:='反转成功';
RzEditR1.Text:=Format('%.2f',[gCurTestResult[gCurTestCircle-1].LoadVal]);
RzEditR2.Text:=Format('%.2f',[gCurTestResult[gCurTestCircle-1].DetectVal]);
RzCBR4.Text:=gCurTestResult[gCurTestCircle-1].State;
XSGridResultIncrease; /增加1行将反向试验结果写入AcqCardE:=DO_WriteLine(AcqCardNum,0,3,1);
AcqCardE:=DO_WriteLine(AcqCardNum,0,4,0);//反向转动
for i:=0 to Length(gTestSequenceCnt)-1 do gTestSequenceCnt[i] := 0;
end;
if (gCurTestJudgeFlag[1]) and (DOLineVal[2]=1) and (DOLineVal[3]=1) and (DOLineVal[4]=0) then begin//延时,前摇臂已然转动,释放钢绳拉力
Inc(gTestSequenceCnt[0]);
if (gTestSequenceCnt[0]*iTTTest.Interval1>=
gTestCriterion[2].Sequence[0]) then begin
AcqCardE := DO_WriteLine(AcqCardNum, 0, 2, 0);
gTestSequenceCnt[0] := 0;
end;
end;
if (gCurTestJudgeFlag[1]) and (DOLineVal[2]=0) and (DOLineVal[3]=1) and (DOLineVal[4]=0) then begin //释放钢绳拉力后,延时,前摇臂已然转动到极限位置,此时前摇臂应立即回位
Inc(gTestSequenceCnt[1]);
if (gTestSequenceCnt[1]*iTTTest.Interval1>=
gTestCriterion[2].Sequence[1]) then begin
AcqCardE := DO_WriteLine(AcqCardNum, 0, 3, 0);
AcqCardE := DO_WriteLine(AcqCardNum, 0, 4, 1);
gTestSequenceCnt[1] := 0;
end;
end;
if (gCurTestJudgeFlag[1]) and (DOLineVal[2]=0) and (DOLineVal[3]=0) and (DOLineVal[4]=1) then begin //前摇臂转动到极限位置后,延时,前摇臂归位
Inc(gTestSequenceCnt[2]);
if (gTestSequenceCnt[2]*iTTTest.Interval1>=
gTestCriterion[2].Sequence[2]) then begin
AcqCardE := DO_WriteLine(AcqCardNum, 0, 3, 0);
AcqCardE := DO_WriteLine(AcqCardNum, 0, 4, 0);
for i:=0 to Length(gTestSequenceCnt)-1 do gTestSequenceCnt[i] := 0;
if (gCurTestCircle Inc(gCurTestCircle); SetLength(gCurTestResult,gCurTestCircle); if (Length(gCurTestResult)>0) then begin //初始化选中试验的循环试验新增次的试验结果 gCurTestResult[gCurTestCircle-1].Ordinal:=gCurTestCircle; gCurTestResult[gCurTestCircle-1].LoadVal := 0.0; gCurTestResult[gCurTestCircle-1].DetectVal := 0.0; gCurTestResult[gCurTestCircle-1].State:='正向失败'; gCurTestResult[gCurTestCircle-1].RLoadVal := 0.0; gCurTestResult[gCurTestCircle-1].RDetectVal := 0.0; gCurTestResult[gCurTestCircle-1].RState:= '反向失败'; end; RzEditR3.Text := IntToStr(gCurTestCircle); gCurTest3Direction := False; //从正向开始 gCurTestJudgeFlag[0] := False; AcqCardE:=DO_WriteLine(AcqCardNum,0,2,1);//拉动钢索 end else begin gCurTest3Direction := False; //缺省正向 for i:=0 to Length(gCurTestJudgeFlag)-1 do gCurTestJudgeFlag[i] := False; AcqCardE:=DO_WriteLine(AcqCardNum,0,2,0); AcqCardE:=DO_WriteLine(AcqCardNum,0,3,0); AcqCardE:=DO_WriteLine(AcqCardNum,0,4,0); end; end; end; end; //end if (gCurTest3Direction) end; end; end; end; end; 离合器试验台的研制成功,满足了该型离合器的性能试验。应用程序按当前试验类型定义试验信息,依据设定的试验参数(试验判据/试验曲线等),在气压控制系统、气缸和测量传感器共同作用下实现灵活地试验流程逻辑时序控制,完成手动单次/自动循环试验。试验结束后,随即出具试验曲线/结果等报表以备打印,且也可利用保存的试验数据文件实现历史试验回放。该试验台功能完整,性能完善,仅需工装夹具变更及软件试验参数的重置,便可拓展至其它型号产品性能试验,具备较高地通用性[10]。 参考文献: [1] 闻邦春.机械设计手册[M].北京:机械工业出版社,2010. [2] 盛小明,等.液压与气压传动[M].北京:科学出版社,2014. [3] 张利平.液压气动系统设计手册[M].北京:机械工业出版社,1997. [4] 路甬祥.液压气动技术手册[M].北京:机械工业出版社,2002. [5] 刘玉长.自动检测与过程控制[M].北京:冶金工业出版社,2010. [6] ADLINK PCI-9524多功能卡用户手册[Z].2008. [7] 胡向东,等.传感技术[M].重庆:重庆大学出版社,2007. [8] 方彦军,等.检测技术与系统[M].北京:中国电力出版社,2006. [9] Delphi7.0程序设计教程[M].北京:北京交通大学出版社,2007. [10] 李 琼,等.计算机在材料科学中的应用[M].成都:电子科技大学出版社,2007.4 结束语