在命令行上验证频域线性化
这个例子展示了如何使用频率响应估计来验证一个块一个块的解析线性化结果。要运行这个例子,您需要Aerospace Blockset™软件。
线性化模型
打开Simulin金宝appk®轻型飞机模型。有关此模型的更多信息,请参见轻型飞机设计(航天Blockset).
mdl =“scdskyhogg”;open_system (mdl)
你可以根据高度指令信号将轻型飞机模型线性化,AltCmd
,到感知的高度,h_sensed
.这些线性分析点已经在模型中指定。
io = getlinio (mdl)
2 x1向量线性化的IOs : -------------------------- 1。线性化输入扰动位于以下信号:-块:scdskyhogg/Pilot/Add -端口:1 -信号名称:AltCmd 2。线性化输出测量位于以下信号:- Block: scdskyhogg/Vehicle System Model/Avionics/Autopilot/Bus Selector1 - Port: 1 -信号名称:< h_sensation>
线性化模型线性化
函数。模型被预先配置为使用t = 75时的模拟快照获得的工作点。
sys =线性化(mdl, io);波德(系统)
估计频率响应
为了确定线性化结果是否恰当地捕获了非线性模型的特性,例如6.28 rad/s左右的反共振,可以使用验证线性化结果frestimate
.
创建一个正弦流输入信号。利用线性化结果作为输入参数,自动设置正流输入信号的各种参数,如基于线性系统的频率集和每个频率的周期数。
在= frest.Sinestream(系统);在。幅值= 0.5
正流输入信号:频率:[0.0034142;0.0054345;0.0086502;0.013768…振幅:0.5 SamplesPerPeriod:[110417;69370;43582;27381…][4;4;4;4…]设置周期:[1;1;1;1…applyfilteringinfestimate (on/off): on SimulationOrder (Sequential/OneAtATime):顺序
软件选择25个频率来计算响应。这些频率在0.0034 rad/s和14.5 rad/s之间变化。自动选择的频率集中在有趣的动态发生的地方(例如6.28 rad/s的反共振)。对于每个频率,系统达到稳定状态所需的周期数是估计的,并且在1个周期(0.0034 rad/s)和188个周期(14.5 rad/s)之间变化。
用这个输入信号估计频率响应。frestimate
利用输入信号对模型进行仿真,这在一般的仿真模型中可能需要很长时间。为了加速仿真,将模型配置为使用快速加速模式。
set_param (mdl“SimulationMode”,“快速”);
采用快速加速模式可以显著提高仿真速度。实际的速度提高取决于您的计算机配置。
要运行频率响应估计,请使用以下命令。
io系统= frestimate (mdl);
对于本例,您可以从mat文件加载估计结果。
负载scdskyhogg_frestresults.mat;
将解析线性化结果与频率响应数据进行比较frestimate
.频率响应数据与解析线性化结果吻合较好,验证了实际非线性飞机模型中存在1 ~ 10 rad/s之间的反共振。
波德(sys、系统的r *)
关闭模式。
bdclose (“scdskyhogg”)