主要内容

LTI系统阵列的近似非线性行为

这个例子展示了如何将系统的非线性行为近似为一组相互关联的LTI模型。

这个例子描述了在一系列操作条件下机身俯仰轴动力学的线性近似。所得到的线性系统阵列用于创建动力学的线性参数变化(LPV)表示。LPV模型作为非线性俯仰动力学的近似。

线性参数变化模型

在许多情况下,必须用更简单的线性系统来近似系统的非线性动力学。一个单一的线性系统提供了一个合理的行为模型,其行为限制在非线性系统的工作点周围的一个小的邻域内。当您必须在一定的操作条件范围内近似非线性行为需求时,您可以使用一组通过适当的插值规则相互连接的线性模型。这样的模型称为LPV模型。

为了生成LPV模型,在工作点网格上对非线性模型进行修剪和线性化。为此目的,操作空间被少量的参数化调度参数.这些参数通常是非线性系统的输入、状态和输出变量的子集。在创建LPV模型时,重要的考虑事项是确定一个调度参数集,并选择用于线性化模型的参数值范围。

为了说明这种方法,这个例子近似的俯仰动力学的一个机身。

机身音高动力学

考虑一个机身俯仰轴动力学的三自由度模型。这些状态是地球坐标(X_e Z_e)美元,身体坐标(u, w)美元,俯仰角\θ美元,以及音高速率q = \点\θ美元.下图总结了惯性架与机体架、飞行路径角之间的关系\伽马美元,入射角\α美元,以及俯仰角度\θ美元

机身动力学是非线性的,气动力和力矩依赖于速度五美元和发病率\α美元.的scdairframeTRIM模型scdairframeTRIM这些动力学描述。

open_system (“scdairframeTRIM”

跨越飞行包络线的批处理线性化

使用的速度五美元以及入射角\α美元作为调度参数;也就是说,在网格上修剪机身模型\α美元五美元值。属性的5个输出中的两个scdairframeTRIM模型。

假设\α美元在-20到20度之间变化,这是速度五美元在700和1400米/秒之间变化。使用线性间隔的15 × 12网格(\α,V)美元对调度。

nA = 15;% alpha值的数量nV = 12;V值的百分比alphaRange = linspace (20, -20 nA) *π/ 180;VRange = linspace(700、1400、nV);(α,V) = ndgrid (alphaRange VRange);

对于每种飞行状态(\α,V)美元,线性化机身动力学在修剪(零法向加速度和俯仰力矩)。这样做需要计算电梯挠度\三角洲美元和球场问美元结果是稳定的w美元问美元

对于每种飞行条件,您:

  • 控件指定修剪条件operspec函数。

  • 计算的配平值\三角洲美元问美元使用findop函数。

  • 线性化机身动力学的结果工作点使用线性化函数。

身体坐标,(u, w)美元美国是众所周知的善于削减开支的国家。因此,您必须为它们提供适当的值,您可以显式地指定这些值。但是,在本例中,让模型根据每个值派生这些已知值(\α,V)美元对。对于每种飞行状态(\α,V)美元,更新模型中的值并创建操作点规范。在所有180种飞行条件下重复以上步骤。

清晰的人事处报告ct = 1:nA*nV alpha_ini = alpha(ct);% (rad)发生率v_ini = V (ct);%的速度(米/秒)指定纵倾条件opspec (ct) = operspec (“scdairframeTRIM”);% Xe、Ze:已知,不稳定。opspec (ct) .States(1)。知道= (1,1);opspec (ct) .States(1)。稳态= (0,0);% u,w:已知,w稳定opspec (ct) .States(3)。已知= [1 1];opspec (ct) .States(3)。SteadyState = [0 1];% θ:已知,不稳定opspec (ct) .States(2)。= 1;opspec (ct) .States(2)。稳态= 0;% q:未知,稳定opspec (ct) .States(4)。知道= 0;opspec (ct) .States(4)。稳态= 1;结束opspec =重塑(opspec,[nA nV]);

根据所有的操作点规范修剪模型。

选择= findopOptions (“DisplayReport”“关闭”“OptimizerType”“lsqnonlin”);opt.OptimizationOptions.Algorithm =“trust-region-reflective”;(op、报告)= findop (“scdairframeTRIM”、opspec选择);

人事处数组包含找到的操作点findop这将用于线性化。的报告数组包含每个点的输入、输出和状态值的记录。

要对模型进行线性化,首先指定线性化的输入和输出点。

io = [linio (“scdairframeTRIM /δ”, 1“在”);%△linio (“scdairframeTRIM /机身模型”, 1“出”);linio (“scdairframeTRIM /机身模型”2,“出”);% Vlinio (“scdairframeTRIM /机身模型”,3,“出”);%问linio (“scdairframeTRIM /机身模型”4“出”);%阿兹linio (“scdairframeTRIM /机身模型”5,“出”));

线性化每个修剪条件的模型。将线性化偏移信息存储在信息结构。

linOpt = linearizeOptions (“StoreOffsets”,真正的);(G, ~,信息)=线性化(“scdairframeTRIM”io, op linOpt);G =重塑(G,[nA nV]);G.u =“δ”;G.y = {“α”“V”“问”“阿兹”“伽马”};G.SamplingGrid =结构(“α”α,“V”, V);

G是一个15乘12的线性化植物模型阵列在180飞行条件下吗(\α,V)美元.整个飞行包络线的工厂动态变化很大,包括当地动态不稳定的调度地点。

bodemag (G(3:5,::,:))标题(“机身动力学的变化”

LPV系统块

LPV系统模块便于对线性参数变化系统的仿真。该块需要状态空间系统阵列G你用批处理线性化生成的。的输入、输出、状态和状态导数偏移量也可以增加该信息信息结构。

提取偏移量信息。

偏移量= getOffsetsForLPV(信息);xOffset = offsets.x;yOffset = offsets.y;uOffset = offsets.u;dxOffset = offsets.dx;

LPV模型模拟

scdairframeLPV模型,其中包含使用线性系统阵列的LPV System块G以及相应的偏移量。

这个模型使用一个输入信号基于一个期望的轨迹的机身。这个信号u对应的时间向量t保存在scdairframeLPVsimdata.mat文件,由模型加载。指定模拟的初始条件。

alpha_ini = 0;v_ini = 700;x0 = [0;700;0;0);

打开并模拟模型。

open_system (“scdairframeLPV”) sim卡(“scdairframeLPV”

仿真结果表明,LPV系统能较好地仿真机体的响应。对于这个模拟,您指定了调度空间的精细网格,导致大量(180)线性模型。大数组会增加实现成本。然而,LPV表示的优势在于,您可以根据以下条件调整调度网格,从而调整数组中线性系统的数量:

  • 由预期轨迹所跨越的调度子空间

  • 应用程序所需的精度水平

前一个信息有助于减少调度变量的范围。后者有助于在调度空间中选择样本的最佳分辨率(间距)。

在网格化调度空间背景下,绘制前面仿真中调度变量的实际轨迹。的(\α,V)美元使用对应的作用域(包含在的比较响应块中)记录输出scdairframeLPV).

稳定的= false (nA, nV);ct = 1:nA*nV Stable(ct) = isstable(G(:,:,ct));结束alpha_trajectory = Alpha_V_Data.signals (1) . values (: 1);V_trajectory = Alpha_V_Data.signals (2) . values (: 1);情节(α(稳定)* 180 /π,V(稳定),“g”。...α(~稳定)* 180 /π,V(~稳定),“k”。...alpha_trajectory V_trajectory,“r”。)标题(“调度变量的轨迹”)包含(‘\α’) ylabel (“V”)传说(“稳定的位置”的不稳定的位置“实际轨迹”

仿真过程中轨迹用红色表示。它遍历调度空间的稳定区域和不稳定区域。

假设您希望在目标硬件上实现此模型,使其与前面模拟使用的模型类似,同时使用最少的内存。仿真结果表明,弹道主要停留在890 ~ 1200m /s的速度范围和-15 ~ 12度的入射角范围。找到调度空间中与该操作区域对应的索引。

if (alphaRange <=12*pi/180), if (alphaRange <=12*pi/180), color0000ff;I2 = find(VRange>=890 & VRange<=1200);

为了减少飞行条件的数量,还可以增加采样点之间的间隔。例如,抽取每三个样本的指数五美元尺寸和每一秒的样品沿\α美元维度。

I1 = I1(1:2:结束);I2 = I2(1:3:结束);

提取LTI系统数组的子集。

Gr = G (:,:, I1、I2);大小(Gr)
状态空间模型的5x2数组。每个模型有5个输出,1个输入和4个状态。

新的采样网格,Gr它的尺寸更经济,为5乘2。模拟简化后的模型,并在再现原始行为时检查其逼真度。

配置LPV System块以使用简化的模型和相应的偏移量。

lpvblk =“scdairframeLPV / LPV系统”;set_param (lpvblk...“sys”“Gr”...“uOffset”“uOffset (:,:, I1、I2) '...“yOffset”“yOffset (:,:, I1、I2) '...“xOffset”“xOffset (:,:, I1、I2) '...“dxOffset”“dxOffset (:,:, I1、I2) ') sim卡(“scdairframeLPV”

原始模型与其LPV代理之间的响应重叠没有显著减少。

在需要更快模拟的情况下,LPV模型可以作为原始系统的代理。LPV模型所使用的线性系统也可以通过系统识别技术获得(需要额外注意保持整个阵列的状态一致性)。LPV模型可以为初始化Simulink®Design Optimization™问题和执行快速硬件在环模拟提供很好的代理万博1manbetx。

bdclose (“scdairframeLPV”) bdclose (“scdairframeTRIM”

另请参阅

|

相关的话题