0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于线性化的分析介绍和应用

MATLAB 来源:djl 作者:姜宇 2019-09-17 14:16 次阅读

1 为什么要探讨线性化

注:这里所说的线性化,包括下面会用到的"Exact Linearization", 都是指基于一阶泰勒展开的线性化近似,而不是基于微分几何的全局线性化或者输出反馈线性化。

很多人看到这个题目,或许第一感觉会是:“为什么要研究线性化?线性化不就是一阶泰勒展开吗?这再简单不过了,用小学数学就好啦!”

在理论上,这一点也没错。比如我们要在原点线性化如下的非线性模型,相信大多数人不假思索的就能告诉我:线性化的结果是 y = u。

关于线性化的分析介绍和应用

既然如此,我们为什么还要探讨线性化呢? 答案很简单,上面一个例子是理论上的,也就是经过很大程度上简化了的,几乎完美的。

那么实际上,工程中需要线性化的问题是什么样的呢?

假如有这样一个航天飞机的模型。工程师现在想把控制器参数优化一下。为此,他需要线性化从飞机控制器的输入到导航控制器的输入之间这个可能含有几千个模块,几万个信号的子系统。

很显然,想要解析的泰勒展开这样一个模型,在实际中是相当费时费力的。

关于线性化的分析介绍和应用

那么,我们来看看难点都在哪:

1. 没有非线性方程

理论上,动态系统总是可以用光滑的ODE来建模。而实际上,在工程应用中,系统往往是用框图来搭建的,比如用Simulink等软件。 用框图来建模有非常多的好处,比如可以方便的模块化,通过观察某个具体的信号值来debug, 还有其他的好处就不一一列举了。但是像这样复杂的框图模型是很难等价的转化成一组非线性方程组的。甚至有些模块,根本就不存在解析表达式。所以,很难对一个非线性方程去求偏导数来获得泰勒一阶展开项。

2. 不光滑

有些模块或许存在解析数学表达式,但是根本不可导;有些可能存在大量的奇异点;有些甚至导数无从定义,比如enabled subsystem, triggered subsystem等。

3. 多重采样时间

在很多实际模型里面,有些模块是连续的,例如积分器。有些模块是离散的,采样时间可以是0.1秒,可以是10秒,甚至可以是无穷大,比如constant block。那么,最后线性化出来的系统到底应该是连续的,还是离散的?

4. 牵一发而动全局

假设,在最理想的情况下:我们真的把这个模型对应的非线性方程组表示出来了, 并且最终验证了模型的准确性,然后成功的进行了线性化。可是,第二天模型的作者表示:”我把某几个子系统里的几条信号删掉了,然后把其它几条信号的连接方式重新设计了一下,你再帮我泰勒展开一下吧“。很不幸,这很大程度上意味着我们之前的解析方程组被彻底改变了,所有的工作需要重头在来过。这样的分析方式在实际的工程开发中是很不现实的,因为时间成本太高。

2 数值扰动

既然解析方法不行,那么应该怎么做呢?

一个比较传统而且有效的方法是数值扰动。

来看看第一个例子:

关于线性化的分析介绍和应用

我们可以在输入端输入一个常数,比如说du = 0.1。 然后, 我们测量输出信号,发现:

dy = 0.0998

两者相除,我们得到了一个基于数值线性化的结果:

y = 0.998*u

如果用更小的du,事实上我们可以得到更精确的结果。

现在这个方法看起来比解析方法好用了很多。在某种程度上,它的思想其实就是把整个系统当成是一个黑箱,通过输入输出来进行辨识。

事实上,对于比较小和比较简单的模型,数值扰动的效果都还是不错的。

1. 延时的处理

关于线性化的分析介绍和应用

在这个例子中,“黑箱”里有一个隐藏的很深的延时模块。在这种情况下,我们给这个系统提供扰动输入,然后去测量输出的时候,会发现输出信号过了很久都没有发生变化。由此,我们很有可能会错误的把这个系统线性化成一个0增益! 当然了,如果事先能知道其中有一个这样的Delay block,是可以采取一些措施来进行更好的辨识的。但即使如此,自动控制原理告诉我们,在频域上逼近一个Delay Block的一个很好的方式是用Pade Approximation。 但是这种逼近用数值扰动是很难做到的,特别是对于复杂的,含有多个具有不同时间长度的延时环节的系统。

现在,你也许已经可以看出此处存在的一个矛盾: 数值扰动是把整个模型当成一个黑箱,不需要知道黑箱里面的信息;但是我们实际上是知道这个黑箱里所有模块的具体情况的。可是这些信息在数值扰动的过程中没法有效的利用上。

2. 一些特殊的模块

再看看下面这个例子:

关于线性化的分析介绍和应用

如我们用数值扰动来线性化这个模型,那么我们会遇到两个不同的情况:

扰动的足够小,我们得到的是一个0增益的线性化结果;

扰动信号大到一定的程度,我们会得到一个线性的关系。

那么,哪个结果是对的呢?

答案是:都对,也都不对。这取决于用户的具体问题。

如果用户故意用这样一组quantizer, 目的就是想分析在一个很小的范围内此模型的动态。在此情况下,a是所期望的。还有一种可能,就是用户本身是不想用Quantizer的,但是在用数字电路实现某个部件的时候,不得已的让一个本来应该是线性增益的关系变成了这样的Quantization的结果。那么在这种情况,b是用户所期望的。

对于这样一个特殊的模块,我们的确可以通过调整干扰信号的大小来得到不同的结果。但是假设有无数多个类似这样的模块存在于某个模型中,有些模块是属于情况a,有些属于情况b,那么整个基于数值扰动的线性化结果就无法如用户所期望的了。

Simulink Control Design和Block-by-Block

Simulink Control Design工具箱的一大特点就是它提供了Block-by-Block的线性化方法。这个方法有时也叫Exact Linearization(不同于基于微分几何的全局线性化)。简单来讲,在线性化的过程中,每个模块会先被线性化,算出各自的Jacobian矩阵。然后由Simulink Control Design工具箱把这些信息有效的整合在一起(这是一个非常复杂的过程),从而计算出整个模型的线性化结果。

看下面这个例子:

关于线性化的分析介绍和应用

线性化通路上有3个模块,他们的Jacobian分别是cos(0) = 1, n阶的pade approximation的状态空间表达式和1。那么对于这个简单的系统而言,整个线性化的结果就是这三个线性系统的级联。

在第二个例子中:

关于线性化的分析介绍和应用

用户可以打开Quantizer的窗口:

关于线性化的分析介绍和应用

把Treat as gain when linearizing的选项打上勾,这样就会使得这个模块被线性化成一个线性增益。

Simulink Control Design工具箱还带有各种高级的功能。例如,对于一些很难线性化的模块,用户可以自己配置此模块的线性化结果,用于整个模型或者子系统的线性化。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数字电路
    +关注

    关注

    192

    文章

    1396

    浏览量

    79750
  • 线性化
    +关注

    关注

    1

    文章

    14

    浏览量

    11679
收藏 人收藏

    评论

    相关推荐

    含受控源线性电路的分析方法探讨

    电子发烧友网站提供《含受控源线性电路的分析方法探讨.pdf》资料免费下载
    发表于 11-18 11:51 0次下载
    含受控源<b class='flag-5'>线性</b>电路的<b class='flag-5'>分析</b>方法探讨

    MOSFET线性电源频域与时域分析

    主要内容:利用运放环路稳定性判据对MOSFET线性电源进行频域与时域工作特性分析
    的头像 发表于 11-07 15:38 374次阅读
    MOSFET<b class='flag-5'>线性</b>电源频域与时域<b class='flag-5'>分析</b>

    射频PA的线性化技术

    功率放大器是现代通信中一个重要的元件。现代通信系统趋向于使用线性调制方式,这就要求射频系统具有很好的线性特性。因此,对功放的输出进行线性化成为现代通信中一个重要的课题。在现代无线通信系统之中,射频
    的头像 发表于 10-26 08:29 335次阅读
    射频PA的<b class='flag-5'>线性化</b>技术

    线性化技术和射频预失真器调实现的PA效率

    当以高效放大器为目标时,克服射频信号的非线性行为非常具有挑战性。在本应用笔记中,介绍线性化技术和射频预失真器调谐,以使用少的组件实现的 PA 效率。该应用中使用MAX2009/MAX2010模拟RF预失真器来消除非
    发表于 10-04 17:28 175次阅读
    <b class='flag-5'>线性化</b>技术和射频预失真器调实现的PA效率

    放大器线性化的方法及差异是什么?

    电子系统的性能。因此,如何线性化放大器并提高其性能已成为研究的热点。本文将介绍放大器线性化的方法及差异。 一、放大器线性化方法 1. 负反馈法 负反馈法是一个常用的放大器
    的头像 发表于 09-18 15:08 598次阅读

    关于农林气象站的基本介绍

    关于农林气象站的基本介绍
    的头像 发表于 08-23 16:58 252次阅读

    介绍一下发射机现有的线性化技术

    通信技术从1G演变到现在的5G,和即将登场的6G,信号带宽越来越宽,调制方式越来越复杂,峰均比越来越高,随之带来的功放线性化技术要求越来越高。
    的头像 发表于 07-19 09:36 665次阅读
    <b class='flag-5'>介绍</b>一下发射机现有的<b class='flag-5'>线性化</b>技术

    ZMID520x 用户手册 使用 LabVIEW 进行校准和线性化

    ZMID520x 用户手册 使用 LabVIEW 进行校准和线性化
    发表于 07-06 20:48 1次下载
    ZMID520x 用户手册 使用 LabVIEW 进行校准和<b class='flag-5'>线性化</b>

    ZMID520x 使用 Python 和 DLL 进行校准和线性化的手册

    ZMID520x 使用 Python 和 DLL 进行校准和线性化的手册
    发表于 07-06 20:45 0次下载
    ZMID520x 使用 Python 和 DLL 进行校准和<b class='flag-5'>线性化</b>的手册

    ZMID5201 使用模拟输出进行校准和线性化的手册

    ZMID5201 使用模拟输出进行校准和线性化的手册
    发表于 07-05 19:51 1次下载
    ZMID5201 使用模拟输出进行校准和<b class='flag-5'>线性化</b>的手册

    ZMID4200 手动校准线性化模拟输出

    ZMID4200 手动校准线性化模拟输出
    发表于 07-03 20:45 0次下载
    ZMID4200 手动校准<b class='flag-5'>线性化</b>模拟输出

    NTC热敏电阻的线性化

    如果温度范围大,则热敏电阻器电阻值的变化幅度过大,不易进行采样计算处理,因此需要对热敏电阻器进行线性化,在缩小变化幅度后再使用。
    的头像 发表于 06-19 11:24 1453次阅读
    NTC热敏电阻的<b class='flag-5'>线性化</b>

    NTC热敏电阻的线性化示例

    引言:如果温度范围大,则热敏电阻器电阻值的变化幅度过大,不易进行采样计算处理,因此需要对热敏电阻器进行线性化,在缩小变化幅度后再使用。相对于温度变化,线性化有能够得到正斜率输出电压的电压模式和能够得到负斜率输出电压的电流模式两种。
    的头像 发表于 06-15 15:25 1580次阅读
    NTC热敏电阻的<b class='flag-5'>线性化</b>示例

    02181600-120角位移传感器的输出技术

    02181600-120角位移传感器的输出,带和不带分段线性化技术。为了获得这些结果,必须创建初始线性化系数值。用户可以在0到120° 的整个旋转范围内以1/16的间隔获取15个角度样本。然后
    的头像 发表于 06-02 17:30 227次阅读
    02181600-120角位移传感器的输出技术

    如何对时域信号做频域DFT线性分析

    如何对一个时域信号(比如ADC输出、一个采样保持电路的输出)做频域DFT线性分析
    的头像 发表于 05-23 17:17 1468次阅读
    如何对时域信号做频域DFT<b class='flag-5'>线性</b>度<b class='flag-5'>分析</b>