评估颤振抑制系统的阻尼比
此示例显示如何使用自定义准则脚本来验证机翼振动在多种高度和空速条件下是否得到衰减。
测试与模型
该模型使用 Simscape™ 来仿真基准主动控制技术 (BACT) / 俯仰和下沉装置 (PAPA) 设置。它使用 Aerospace Blockset™来仿真机翼上的空气动力。
该测试对 Mach
和 Altitude
的 16 种组合进行了迭代。测试用例使用带有 Curve Fitting Toolbox™ 的自定义准则来查找机翼俯仰的峰值,并确定阻尼比。如果阻尼比不大于零,则评估失败。
打开该测试文件。
open('sltestFlutterCriteriaTest.mldatx')
在测试浏览器中,选择高度和马赫迭代。通过单击在测系统部分中模型旁边的箭头来打开模型。
open_system('sltestFlutterSuppressionSystemExample.slx')
自定义准则脚本
测试用例自定义准则使用此脚本来验证阻尼比是否大于零。
% Get time and data for pitch Time = test.sltest_simout.get('sigsOut').get('pitch').Values.Time(1:15000); Data = test.sltest_simout.get('sigsOut').get('pitch').Values.Data(1:15000);
% Find peaks [~, peakIds] = findpeaks(Data,'minpeakheight', 0.002, 'minpeakdistance', 50); peakTime= Time(peakIds); peakPos = Data(peakIds); rn = peakPos(1)./peakPos(2:end); L = 1:length(rn);
% Do curve fitting
fittedModel = exponentialFitAndPlot(L, rn);
delta = fittedModel.d;
% Find damping ratio
dRatio = delta/sqrt((2*pi)^2+delta^2);
% Make sure damping ratio is greater than 0 test.verifyGreaterThan(dRatio,0,'Damping ratio must be greater than 0');
检测结果
运行测试用例返回两个阻尼比大于零的情况。
results = sltest.testmanager.run;
第 12 次和第 13 次迭代的机翼俯仰图显示了正阻尼比(第 12 次迭代)和负阻尼比(第 13 次迭代)之间的差异。
sltest.testmanager.clearResults
sltest.testmanager.clear
sltest.testmanager.close
close_system('sltestFlutterSuppressionSystemExample.slx',0)