主要内容

近似线性时不变系统的非线性行为使用数组

这个例子展示了如何近似系统的非线性行为作为数组相互连接的线性时不变模型。

示例描述了机身俯仰轴的线性近似动态范围的操作条件。由此产生的一系列线性系统是用于创建一个线性参数变化的动态(LPV)表示。LPV模型作为一个近似的非线性动力学。

线性变参数模型

在很多情况下,你必须使用简单线性近似系统的非线性动力学系统。一个线性系统为行为提供了一个合理的模型限制在一个小社区约一个操作点的非线性系统。当你必须在一系列操作条件近似的非线性行为,您可以使用一个数组的线性模型各组件由合适的插值规则。这样的模型被称为LPV模型。

生成一个LPV模型、非线性模型是将网格和线性化的操作点。为了这个目的,操作空间是由少量的参数化调度参数。这些参数通常是输入的一个子集,非线性系统的状态,输出变量。重要考虑创建一个调度LPV模型识别的参数设置和参数值的选择范围的线性化模型。

这个例子说明这种方法,近似的沥青动态机身。

机身音高动力学

潜浮性能考虑机体的俯仰轴动力学模型。美国是大地坐标(X_e Z_e)美元,身体坐标(u, w)美元,螺旋角\θ美元,场上率q = \点\θ美元。下图总结了惯性和身体之间的关系框架,飞行路线角\伽马美元,入射角\α美元和螺旋角\θ美元

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

open_system (“scdairframeTRIM”)

批处理整个飞行包线的线性化

使用的速度五美元和入射角\α美元作为调度参数;即减少机体模型的网格\α美元五美元值。这些值是两个五个输出的scdairframeTRIM模型。

假设入射\α美元-20 - 20度之间变化的速度五美元变化之间的700和1400 m / s。使用一个15-by-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 =α(ct);% (rad)发生率v_ini = V (ct);%的速度(米/秒)%指定修剪条件opspec (ct) = operspec (“scdairframeTRIM”);% Xe,泽:已知,不稳定。opspec (ct) .States (1)。知道= (1,1);opspec (ct) .States (1)。稳态= (0,0);% u, w: w稳定opspec (ct) .States (3)。知道= [1];opspec (ct) .States (3)。稳态= [0 1];%θ:已知,不稳定opspec (ct) .States (2)。= 1;opspec (ct) .States (2)。稳态= 0;%问:未知,稳定opspec (ct) .States (4)。知道= 0;opspec (ct) .States (4)。稳态= 1;结束opspec =重塑(opspec nA nV);

调整模型的所有操作规范。

选择= findopOptions (“DisplayReport”,“关闭”,“OptimizerType”,“lsqnonlin”);opt.OptimizationOptions。算法=“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-by-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系统块使用线性系统的数组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稳定(ct) =趋于稳定(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 - 1200 m / s的速度和范围-15 - 12度的迎角范围。找到对应的指数在调度空间这个操作区域。

I1 =找到(alphaRange > = -15 * 180(π/ & alphaRange < = 12 *π/ 180);I2 =找到(VRange > = 890 & VRange < = 1200);

减少飞行条件下,您还可以增加采样点之间的间距。例如,提取指标每第三个样本沿五美元维度和每一秒的样本\α美元维度。

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

提取LTI系统数组的子集。

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

新的采样网格,Gr有一个更经济的5×2的大小。模拟模型和减少检查复制原始行为的忠诚。

配置LPV系统块使用简化模型和相应的补偿。

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模型可以提供一个好的代理初始化仿真软件®设计优化™和执行快速hardware-in-loop模拟问题。金宝app

bdclose (“scdairframeLPV”)bdclose (“scdairframeTRIM”)

另请参阅

|

相关的话题