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

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

3天内不再提示

Simulink中构造时变传递函数的四种方法

冬至子 来源:Matlab Fans 作者:Matlab Fans 2023-07-20 18:21 次阅读

1. 原****由

传递函数是针对线性时不变(Linear Time-Invariant,LTI)系统定义的,严格来说,时变传递函数的说法并不十分严谨。但 “时变”和“非线性”才是实际系统的本质特性,就拿最简单的RC电路来说,电阻会随温度变化,电容也会随使用时间发生变化,RC参数的变化就会造成传递函数的时变。对于已经建好的传递函数,需要分析参数时变的影响时,或者已经建好的某种控制算法,需要验证对于参数时变的适应能力时,应该如何处理呢?

这时,由线性时不变系统传递函数推广得到的时变传递函数是一个不错的选择。

2. 方法

2.1 方法一:通过微分方程实现时变传递函数

传递函数由微分方程通过拉普拉斯(Laplace)变换得到,已知传递函数形式后,可以反推出微分方程,再在Simulink中利用基本模块搭建模型。

如某时变二阶系统,其传递函数为:

图片

其中,k(t),a(t),b(t)为时变参数。

传递函数反推出微分方程为:

图片

上述微分方程在Simulink中容易搭建:

图片

更方便的是,Matlab 2017b之后在控制系统工具箱(Control system toolbox)中推出了时变传递函数模块(Varying Transfer Function),可供用户直接选用。

图片

Simulink自带的这个时变传递函数模块(Varying Transfer Function)就是使用的微分方程方法实现的。

图片

2.2 方法二:通过状态空间实现时变传递函数

传递函数还可以转变为状态空间形式,如上述二阶系统可转变为可控标准型状态空间:

图片

通过上述状态空间形式也可在Simulink中方便的实现时变传递函数。同样,Matlab 2017b之后在控制系统工具箱(Control system toolbox)中推出了时变状态空间模块(Varying State Space),可供用户直接选用。

图片

2.3 方法三:通过S函数实现时变传递函数

核心思路与方法二相同,即:传递函数转变为状态空间(可选可控标准型和可观标准型),通过传递函数系数重构状态空间矩阵,通过状态空间实现时变传递函数。

在Matlab 2017b版本中推出线性时变系统表达方式之前,笔者早年使用Level-2 S函数开发时变传递函数模块,可供Matlab 2017b版本以前的用户使用 ,也可供需要学习Level-2 S函数使用方法的用户参考。

图片

2.4 方法四:通过DCP模块实现时变传递函数

Simulink中的传递函数模块(Transfer Fcn)的分子系数(Numerator coefficients)和分母系数(Denominator coefficients)都支持在线调整,即在仿真过程中可通过set_param函数来在线调整传递函数的分子分母系数,由此实现时变传递函数。

图片

笔者开发的DCP模块可实现各类模块在线更新参数的需求,通过DCP模块可方便的实现时变传递函数。

图片

3. 演示

二阶时变传递函数:

图片

参数时变规律为:

图片

四种方法的Simulink模型:

图片

阶跃响应仿真结果:

图片

正弦响应仿真结果:

图片

分析仿真结果

其主要原因为四种建模方式不同,模型中的记忆环节(如积分环节、状态量)选取不同,记忆环节与输出之间的映射关系也不同,因此某些参数变化体现在记忆环节之前的输入参数中,有些参数变化体现在记忆环节之后的输出参数中,由此造成突变瞬间动态过程的响应差别,但进入稳态后的响应是相同的。应用中需要根据实际系统的特点灵活选择实现方式。

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

    关注

    41

    文章

    5964

    浏览量

    108720
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82997
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27182
  • DCP
    DCP
    +关注

    关注

    0

    文章

    28

    浏览量

    17029
  • simulink仿真
    +关注

    关注

    0

    文章

    75

    浏览量

    8457
收藏 人收藏

    评论

    相关推荐

    传递函数和控制Block(上)

    传递函数是经典控制理论中最常用和最重要的数学模型,用传递函数方块将控制系统全部变量联系起来,描述各环节之间的信号传递关系的图形,我们称为系统传递函数方块图。
    的头像 发表于 11-17 15:59 436次阅读
    <b class='flag-5'>传递函数</b>和控制Block(上)

    传递函数前言

    共通的平台下把不同的特性函数化。在这里,记住以下两点推进话题。1. 传递函数的导出过程是以数学方法为基本传递函数导出过程,使用状态平均法、
    发表于 11-28 14:38

    斜率的传递函数:电压模式的传递函数

    中有电压模式和电流模式。我们先从电压模式的传递函数开始介绍。电压模式的传递函数DC/DC转换器的电压模式控制是最基本的一方式。透过反馈环路只反馈输出电压。通过用误差放大器与基准电压
    发表于 11-30 11:47

    模拟电路传递函数的快速列写方法

    学习模拟电路,最初学习的是线性时不变电路,在电路分析和模拟电路,经常要列写出给定电路的传递函数,而传统两最基本的方法--节点法与网孔法,虽然万能但并不实用,电路稍微复杂一点就要进行
    发表于 04-20 19:35

    基于Butterworth标准传递函数设计

    本文首先给出了Butterworth 标准传递函数,然后提出了一种设计状态反馈系统的方法,该方法包括:利用线性变换将能控系统化为能控标准形,使能控标准形系统的闭环传递函数
    发表于 06-11 09:45 18次下载

    传递函数中零点的解决方案

    传递函数有开环传递函数和闭环传递函数,同样,零点有开环零点和闭环零点。 他们有什么不同,又各自起到什
    发表于 12-24 12:05 4073次阅读
    <b class='flag-5'>传递函数</b>中零点的解决方案

    传递函数的时域辨识

    传递函数的时域辨识
    发表于 10-26 09:30 0次下载

    传递函数的频域辨识

    传递函数的频域辨识
    发表于 10-26 09:23 0次下载

    传递函数是怎么定义的以及如何写出传递函数

    本来这期应该讲Buck的尖峰的,不过遇到些问题,所以就往后拖一拖吧,这次来个简单点儿的。 来看看传递函数,也就是我们经常看到的H(s)。 传递函数是怎么定义的呢? 百科是这么定义的: 【传递函数
    的头像 发表于 06-30 11:23 7.3w次阅读
    <b class='flag-5'>传递函数</b>是怎么定义的以及如何写出<b class='flag-5'>传递函数</b>?

    传递函数的频率特性

    传递函数的频率特性:这里通过“传递函数的频率特性”来考虑传递函数。和前项的“基尔霍夫定律和阻抗”中的解说有密切的关系所以希望合在一起阅读。首先,请看图6。电阻和电容器组成简单的闭合电路。首先,尝试计算出本电路的
    的头像 发表于 02-24 09:51 1793次阅读
    <b class='flag-5'>传递函数</b>的频率特性

    各转换器的传递函数-开关的导通电阻对传递函数的影响

    上一篇和上上篇介绍了“升降压转换器的传递函数导出示例”的其1和其2。本文将探讨“开关的导通电阻对传递函数的影响”。
    的头像 发表于 02-24 09:51 624次阅读
    各转换器的<b class='flag-5'>传递函数</b>-开关的导通电阻对<b class='flag-5'>传递函数</b>的影响

    详解传递函数的零点和极点

    Zi是分子多项式零点,称为传递函数零点,Pj是分母多项式零点,称为传递函数极点。系数K*=b0/a0称为传递函数系数或根轨迹增益。
    的头像 发表于 03-09 16:51 1.5w次阅读
    详解<b class='flag-5'>传递函数</b>的零点和极点

    如何列写无源网络传递函数

    如何列写无源网络传递函数
    的头像 发表于 03-10 16:15 3231次阅读
    如何列写无源网络<b class='flag-5'>传递函数</b>

    如何用两种不同的方法列写双容水槽传递函数

    如何用两种不同的方法列写双容水槽传递函数
    的头像 发表于 03-10 16:20 2217次阅读
    如何用两种不同的<b class='flag-5'>方法</b>列写双容水槽<b class='flag-5'>传递函数</b>

    传递函数中的极点和零点有何影响?

    之前提出了两种标准方法来为一阶RC低通滤波器制定s域传递函数。简要回顾一些基本概念:传递函数在数学上表示滤波器的频域输入到输出行为;
    的头像 发表于 09-19 15:30 919次阅读
    <b class='flag-5'>传递函数</b>中的极点和零点有何影响?