主要内容

线性近似复杂系统的识别

这个例子展示了如何获得一个复杂的线性近似,非线性系统的线性模型识别。该方法是基于选择激发系统的输入信号。一个线性近似拟合得到的线性模型的模拟响应非线性模型选择的输入信号。

这个示例使用仿真软件®、控制系统工具金宝app箱™和仿真软件控制设计™。

介绍

在很多情况下,线性模型简化得到的是一个更复杂的非线性系统在某些当地条件。例如,一个高保真的飞机动力学模型可以描述详细的仿真软件模型。金宝app一个常见的方法来加速这种系统的模拟,研究当地的行为对一个操作点或线性化设计补偿器。如果我们执行原始模型的线性化分析对一个操作点,这一点,在一般情况下,将产生一个订单高达模型,或接近,在原始模型的状态数。这个顺序可能不必要的高输入类的它应该是用于分析和控制系统设计。因此我们可以考虑另一种方法围绕收集从模拟系统的输入输出数据,用它来产生一个线性模型的正确顺序。

分析F14模型的线性化

考虑F14模型。这已经是一个线性模型,但包含块和导数的干扰来源,可能会影响其输出的本质。我们可以“线性化”之间的一个输入端和两个输出端口如下:

open_system (“idF14Model”)IO = getlinio (“idF14Model”)syslin =线性化(“idF14Model”IO)
IOs 3 x1向量的线性化:- - - - - - - - - - - - - - - - - - - - - - - - - - - - 1。线性化输入扰动位于以下信号:-块:idF14Model /飞行员-端口:1 -信号名称:输入2。线性化输出测量位于以下信号:-块:idF14Model / Gain5 -端口:1 -信号名称:攻角3。线性化输出测量位于以下信号:-块:idF14Model /飞行员G力——端口:1 -信号名称:飞行员G力syslin = =转移Fcn导数转移Fcn Derivative1转移Fcn -0.6385 0 689.4 0导数1 1 e + 5 0 0转移Fcn -0.00592 0 -0.6571 0 Derivative1 0 0 1 1 e + 05驱动器Mod 0 0 1.424 0 Alpha-sensor 0.001451 0 0 0贴Prefil 0 0 0 0螺距-0.8156 L 0 0 1 0比例0 0 0驱动器Mod Alpha-sensor棒Prefil俯仰速率L转移Fcn -1280 0 0 0导数0 0 0 0转移Fcn -137.7 0 0 0 Derivative1 0 0 0 0驱动器国防部-20 2.986 -39.32 -1.67 -2.526 Alpha-sensor 0 0 0坚持Prefil 0 0 -22.52 0节率L 0 0 0 -4.144比例导数为0 0 -1.71 22.52 0.9567比例转移Fcn 0转移Fcn Derivative1 0驱动器国防部-3.864 Alpha-sensor贴Prefil 0节率L 0比例0 B =棒输入转移Fcn 0导数0转移Fcn Derivative1 0驱动器Mod Alpha-sensor 0棒Prefil 1节率L 0比例0 C =转移Fcn导数转移Fcn Derivative1 Att角0.001451 0 0 0飞行员G不得已伸出-3106 3.106 -7.081 7.083 e + e + 08年04 e + 09年致动器Mod Alpha-sensor棒Prefil俯仰速率L丙氨酸角0 0 0 0飞行员G不得已伸出0 0 0 0比例Att角0飞行员G不得已伸出0 D =棒输入角Att飞行员G不得已伸出0连续时间状态空间模型。

syslin 2输出是一个模型,一个输入和9。这是因为“棍棒”输入的线性化路径输入两输出9州在原来的系统。我们可以通过使用证明这一点operpoint:

operpoint (“idF14Model”)
ans idF14Model =操作点模型。(时变组件评估在时间t = 0): - - - - - - - - - - - <强> x < /强> <强> _ < /强> (1)idF14Model /致动器模型0 (2)idF14Model /飞机动力学模型/转移Fcn.1 0 (3) idF14Model /飞机动力学模型/转移Fcn.2 0 (4) idF14Model /控制器/ Alpha-sensor低通滤波器0 (5)idF14Model /控制器/俯仰速率导致过滤器0 (6)idF14Model /控制器/ 0比例积分补偿器(7)idF14Model /控制器/棒预滤器0 (8)idF14Model /德莱顿风速模型/ Q-gust模型0 (9)idF14Model /德莱顿风速模型/ W-gust模型0 0输入:- - - - - - - - - - -

此订单可以减少同时仍然保持忠诚的反应选择方波(“把输入”)输入?

准备识别数据

模拟模型和日志输入方波(u)和输出“攻角”(y1)和“飞行员G力”(y2)破发第二次时间跨度。这些数据,插值后均匀间隔的时间向量(样本以0.0444秒的成绩),存储在“idF14SimData。垫”文件。

负载idF14SimDataZ = iddata ((y1, y2), u, Ts,“Tstart”,0);Z。InputName =把输入的;Z。InputUnit =“rad / s”;Z。OutputName = {“攻角”,“飞行员G力”};Z。OutputUnit = {rad的,‘g’};t = Z.SamplingInstants;次要情节(311)情节(t, Z.y (: 1)), ylabel (“迎角(rad)”)标题(记录输入输出数据的)次要情节(312)情节(t, Z.y (:, 2)), ylabel (“飞行员G (G)的力量”)次要情节(313)情节(t, Z.u) ylabel (“把输入(rad / s)”30 -1.2 - 1.2)轴([0])包含(的时间(秒))

状态空间模型的估计

估计2到4使用的订单状态方程模型党卫军命令。我们配置评估使用“模拟”关注和选择不是估计干扰模型的组件。

选择= ssestOptions (“焦点”,“模拟”);syslin2 = ss (Z, 2,“DisturbanceModel”,“没有”、选择);syslin3 = ss (Z, 3,“DisturbanceModel”,“没有”、选择);syslin4 = ss (Z, 4,“DisturbanceModel”,“没有”、选择);

线性化模型的性能进行比较syslin和三种识别模型的数据。注意,syslin SS模型syslin2,syslin3syslin4是IDSS模型。

syslin。InputName = Z.InputName;syslin。OutputName = Z.OutputName;%协调名字方便比较clf比较(Z, syslin, syslin2、syslin3 syslin4)

情节表明第三顺序模型(syslin3)方法可以很好地作为线性近似的飞机动态对其违约(t = 0)操作条件。它适合数据略好于一个通过分析线性化(syslin)。如果原始idF14Model是线性的,其线性化的结果,为什么不syslin100%,生产适合数据?有两个原因:

  1. 测量的输出受到狂风这意味着记录输出不仅仅是把输入的函数。有干扰影响。

  2. “飞行员G力”块使用导块的线性化取决于时间常数的值“c”。“c”应该是小(我们使用1 e-5)而不是零。一个非零值c介绍了线性化的近似误差。

让我们查看模型的参数syslin3这似乎捕捉反应很好:

syslin3
syslin3 =连续时间状态空间模型发现:dx / dt = x (t) + B u e (t) + K (t) y (t) = C x (t) + D u (t) + e (t) = (x1, x2) x3 (x1, x2 -1.006 2.029 0.5842 -8.284 -19.39 5.611 2.784 12.63 -6.956 x3 B =棒输入x1 0.2614 x2 -5.512 x3 3.606 C = (x1, x2) x3角att试点G不得已伸出-8.841 0.5347 1.402 -86.42 15.85 66.12 D =棒输入角att飞行员G不得已伸出0 K =角att飞行员G不得已伸出x1 0 0 x2 0 0 x3 0 0参数化:自由形式(所有系数A、B、C免费)。引线:没有干扰组件:没有很多免费的系数:18使用“idssdata”、“getpvec”、“getcov”参数及其不确定性。状态:估计使用党卫军时域数据“Z”。适合估算数据:[98.4,97.02]%消防工程:2.367 e-05, MSE: 0.1103

模型简化的减少和估计

我们还可以采取的方法减少线性化模型的顺序syslin和精炼减少模型的参数z找出最适合数据值减少订单,我们使用hsvd:

[年代,BalData] = hsvd (syslin);clf;栏(年代)

这个柱状图显示了奇异值非常小的国家4以上。因此第三订单减少可能是最优的。

sysr = balred (syslin 3 BalData) opt2 = bodeoptions;opt2。PhaseMatching =“上”;clf;bodeplot (sysr syslin opt2)
sysr = = (x1, x2) x3 x1 x2 -2.854 -7.61 -54.04 -0.9714 2.341 9.123 x3 0.6979 -7.203 -24.08 -137.7 B =把输入x1 x2 -869 x3 -506.7 C = (x1, x2) x3角att试点G不得已伸出-0.0005063 -0.0008826 -0.001016 -0.005926 -0.04692 -0.1646 D =棒输入角att -0.03784 G飞行员不得已伸出-1.617连续时间状态空间模型。

波德图显示了良好的忠诚10 rad / s。sysr能够模拟反应一样好如图所示的原始9-state模型比较剧情:

比较(Z, sysr syslin)

让我们完善的参数sysr来改善其适合数据。估计,我们选择“Levenberg-Marquardt”的搜索方法和允许的最大数量的迭代更改为10。这些选择都是基于一些试验和错误。我们也打开显示估计的进展。

opt.Display =“上”;opt.SearchMethod =“lm”;opt.SearchOptions。MaxIterations = 10;sysr2 = ss (Z, sysr选择)比较(Z, sysr2)
sysr2 =连续时间状态空间模型发现:dx / dt = x (t) + B u e (t) + K (t) y (t) = C x (t) + D u (t) + e (t) = (x1, x2) x3 (x1, x2 -4.048 -7.681 -54.01 -0.4844 1.549 8.895 -0.2398 -6.777 -25.78 x3 B =棒输入x1 -137.7 x2 -869 x3 -506.7 C = (x1, x2) x3角att试点G不得已伸出-0.0003361 -0.0004964 0.00215 -0.01191 -0.03599 -0.1434 D =棒输入角att 0.003022飞行员G不得已伸出0.6438 K =角att飞行员G不得已伸出x1 0 0 x2 0 0 x3 0 0参数化:自由形式(所有系数A、B、C免费)。引线:是的干扰组件:没有很多免费的系数:20使用“idssdata”、“getpvec”、“getcov”参数及其不确定性。状态:估计使用党卫军时域数据“Z”。适合估算数据:[98.78,97.03]%消防工程:1.434 e-05, MSE: 0.1097

精致的模型sysr2适合的反应F14模型很好(大约99%的输出和大约97%的第二)。

结论

我们展示了另一种方法来分析复杂系统的线性化来获得线性近似。结果导出为一个特定的输入信号,严格地说,仅适用于输入。提高结果的适用性不同输入资料,我们可以执行多个模拟使用各种类型的输入。我们可以合并生成的数据集到一个multi-experiment数据集(见iddata /合并),用它来估计。在这个例子中,我们使用了一个复杂,但线性系统为了方便。这种方法的真正好处将非线性系统。

我们还展示了一种方法减少一个线性系统的顺序,同时保持降低模型忠实于原模型的模拟响应模型。金宝app减少的作用模型sysr是提供一个初始猜测估计模型sysr2。还强调了这样一个事实,任何线性系统的方法,其中包括一个不同的类,可作为估计的初始模型。

bdclose (“idF14Model”)