延时系统建模,整数延时与分数延时,连续传函与离散传函,Pade近似与Thiran近似,Matlab实现

连续传递函数

严格建模:指数形式

  根据拉普拉斯变换的性质,
[ f ( t ) ↔ F ( s ) ] ⇔ [ f ( t − t 0 ) ↔ e − s t 0 F ( s ) ] \left[ {f\left( t \right) \leftrightarrow F\left( s \right)} \right] \Leftrightarrow \left[ {f\left( {t - {t_0}} \right) \leftrightarrow {e^{ - s{t_0}}}F\left( s \right)} \right] [f(t)F(s)][f(tt0)est0F(s)]

  因此,在连续传递函数中,可以用下式对延时环节进行建模,
H ( s ) = e − s t 0 H\left( s \right) = {e^{ - s{t_0}}} H(s)=est0
  以 t 0 = 0.001 t_0=0.001 t0=0.001为例,绘制波特图如下所示:

对数坐标系(幅值、相位)自然坐标系(相位响应)
在这里插入图片描述在这里插入图片描述

  对应Matlab代码如下:

clc; clear; close all;T = 0.001;w = linspace(1,6280,6280);

% 绘制对数坐标系波特图
s = tf("s");Ca = exp(-s*T);figure;bode(Ca, w);grid on;xlim([1,6280]);

% 绘制相位响应(线性坐标系)
[mag, phase, wout] = bode(Ca, w);figure;plot(wout,squeeze(phase)); 
xlabel('Frequency (rad/s)');ylabel('Phase (degrees)');
title('Phase Response (Linear Scale)');axis([1,6280,-360,0]);grid on;

近似建模:Pade近似

  对于不允许使用指数表达式的场合,采用Pade近似将指数形式表示为分式形式,不同阶次的计算结果如下。Pade近似的原理介绍可以参考Pade近似,原理与Matlab实现。
{ 原始函数 : f ( x ) = e x [ 1 , 1 ] 近似 : − x + 2 x − 2 [ 2 , 2 ] 近似 : + x 2 + 6 x + 12 x 2 − 6 x + 12 [ 3 , 3 ] 近似 : − x 3 + 12 x 2 + 60 x + 120 x 3 − 12 x 2 + 60 x − 120 → { 延时传函 : H ( s ) = e − s t 0 [ 1 , 1 ] 近似 : − t 0 s + 2 t 0 s + 2 [ 2 , 2 ] 近似 : t 0 2 s 2 − 6 t 0 s + 12 t 0 2 s 2 + 6 t 0 s + 12 [ 3 , 3 ] 近似 : − t 0 3 s 3 + 12 t 0 2 s 2 − 60 t 0 s + 120 t 0 3 s 3 + 12 t 0 2 s 2 + 60 t 0 s + 120 \left\{ \begin{aligned} 原始函数&:f(x)={e^x}\\ [1,1]近似&: - \frac{{x + 2}}{{x - 2}} \\ [2,2]近似&: + \frac{{{x^2} + 6x + 12}}{{{x^2} - 6x + 12}} \\ [3,3]近似&: - \frac{{{x^3} + 12{x^2} + 60x + 120}}{{{x^3} - 12{x^2} + 60x - 120}}\\ \end{aligned} \right. \to \left\{ \begin{aligned} 延时传函&:H\left( s \right) = {e^{ - s{t_0}}} \\ [1,1]近似&: \frac{{ - {t_0}s + 2}}{{ {t_0}s + 2}} \\ [2,2]近似&: \frac{{{t_0}^2{s^2} - 6{t_0}s + 12}}{{{t_0}^2{s^2} + 6{t_0}s + 12}} \\ [3,3]近似&: \frac{{ - {t_0}^3{s^3} + 12{t_0}^2{s^2} - 60{t_0}s + 120}}{{ {t_0}^3{s^3}+ 12{t_0}^2{s^2} + 60{t_0}s + 120}} \\ \end{aligned} \right. 原始函数[1,1]近似[2,2]近似[3,3]近似:f(x)=ex:x2x+2:+x26x+12x2+6x+12:x312x2+60x120x3+12x2+60x+120 延时传函[1,1]近似[2,2]近似[3,3]近似:H(s)=est0:t0s+2t0s+2:t02s2+6t0s+12t02s26t0s+12:t03s3+12t02s2+60t0s+120t03s3+12t02s260t0s+120

  不同阶次近似的幅值响应无差别(均为0dB),对比相位响应如下:
在这里插入图片描述
  对应的Matlab代码如下所示:

clc;clear;close all;T = 0.001;w = linspace(1,6280,6280);
s = tf("s");               Ca = exp(-s*T);         [mag, phase, wout] = bode(Ca,w);
[num1,den1] = pade(T,1);   Ca1 = tf(num1,den1);    [mag1, phase1, wout1] = bode(Ca1,w);
[num2,den2] = pade(T,2);   Ca2 = tf(num2,den2);    [mag2, phase2, wout2] = bode(Ca2,w);
[num3,den3] = pade(T,3);   Ca3 = tf(num3,den3);    [mag3, phase3, wout3] = bode(Ca3,w);

plot(w,squeeze(phase),w,squeeze(phase1)-360,w,squeeze(phase2)-360,w,squeeze(phase3)-720);
legend("指数形式","一阶近似","二阶近似","三阶近似");title('Phase Response (Linear Scale)');
xlabel('Frequency (rad/s)');ylabel('Phase (degrees)');axis([1,6280,-360,0]);grid on;

离散传递函数

整数延时建模

  根据 z z z变换的性质, z z z s s s之间存在如下映射:
[ z ↔ e s T ] ⇔ [ z − 1 ↔ e − s T ] ⇔ [ z − k ↔ e − s k T ] \left[ {z \leftrightarrow {e^{sT}}} \right] \Leftrightarrow \left[ {{z^{ - 1}} \leftrightarrow {e^{ - sT}}} \right] \Leftrightarrow \left[ {{z^{ - k}} \leftrightarrow {e^{ - skT}}} \right] [zesT][z1esT][zkeskT]
  以延时 t 0 = 2 T = 0.002 t_0=2T=0.002 t0=2T=0.002为例,对比波特图:

连续传函波特图离散传函波特图
在这里插入图片描述在这里插入图片描述

  对应的Matlab代码为:

clc;clear;close all;T = 0.001;k = 2;w = linspace(1,6280,6280);
s = tf("s");          Ca = exp(-s*k*T);    figure();    bode(Ca,w);grid on
z = tf("z",0.001);    Cd = z^-k;           figure();    bode(Cd,w);grid on

小分数延时建模

  对于延时 t 0 < T t_0<T t0<T的小分数延时情况,有两种近似方案:(1) Pade近似+离散化;(2) Thiran近似离散化方法。 对比结果如下所示,对于小分数延时情况,两种方法所得结果是重叠的。Thiran近似的原理介绍可以查阅期刊原文,具体见参考文献部分。
在这里插入图片描述
  对应Matlab代码如下:

clc;clear;close all;T = 0.001;k = 0.4;w = linspace(1,6280,6280);
s = tf("s");    Ca = exp(-s*T*k); 

Cd1 = c2d(pade(Ca,1),T,"tustin")
Cd2 = thiran(k*T,T)

[mag0, phase0, wout0] = bode(Ca,w);    [mag1, phase1, wout1] = bode(Cd1,w);    [mag2, phase2, wout2] = bode(Cd2,w);

plot(w, squeeze(phase0),w,squeeze(phase1),w,squeeze(phase2));
xlim([0,2000]);legend("Continuous","Pade","Thiran"); grid on;

  需要说明的是,提高Pade近似的阶数,并不能改善离散化的近似效果,甚至表现出恶化作用。这是因为误差来源包括两部分,Pade近似带来的误差和Tustin近似带来的误差,一阶Pade与一阶Tustin可以实现最大限度的误差抵消。
在这里插入图片描述
  对应Matlab代码如下:

clc;clear;close all;T = 0.001;k = 0.4;w = linspace(1,6280,6280);s = tf("s");   Ca = exp(-s*T*k);

Cd1 = c2d(pade(Ca,1),T,"tustin");    Cd2 = c2d(pade(Ca,2),T,"tustin");    Cd3 = c2d(pade(Ca,3),T,"tustin");
[mag0, phase0, wout0] = bode(Ca,w);     [mag1, phase1, wout1] = bode(Cd1,w);
[mag2, phase2, wout2] = bode(Cd2,w);    [mag3, phase3, wout3] = bode(Cd3,w);
plot(w, squeeze(phase0),w,squeeze(phase1),w,squeeze(phase2)-360,w,squeeze(phase3)-360);grid on;
xlabel('Frequency (rad/s)');ylabel('Phase (degrees)');legend("连续传函","一阶Pade","二阶Pade","三阶Pade");

大分数延时建模

  对于延时 t 0 > T t_0>T t0>T的大分数延时情况,有四种近似方案:(1) 四舍五入取整;(2) Pade近似+离散化;(3) Thiran近似离散化方法;(4) 整数部分严格建模,分数部分Pade近似+离散化;(5) 整数部分严格建模,分数部分Thiran近似离散化。 对比结果如下所示,大分数延时的近似效果为:方案3 > 方案4 = 方案5 > 方案2 > 方案1。
在这里插入图片描述
  对应Matlab代码如下:

clc;clear;close all;T = 0.001;k = 1.5;w = linspace(1,6280,6280);s = tf("s");z = tf("z",T);               
CaAll = exp(-s*T*k); CaInt = exp(-s*T*1); CaFra = exp(-s*T*0.5);

Cd0 = z^-2
Cd1 = c2d(pade(CaAll,1),T,"tustin")
Cd2 = thiran(k*T,T)
Cd3 = z^-1*c2d(pade(CaFra,1),T,"tustin")
Cd4 = z^-1*thiran(0.5*T,T)

[mag, phase, wout] = bode(CaAll,w);     [mag0, phase0, wout0] = bode(Cd0,w);    [mag1, phase1, wout1] = bode(Cd1,w);
[mag2, phase2, wout2] = bode(Cd2,w);    [mag3, phase3, wout3] = bode(Cd3,w);    [mag4, phase4, wout4] = bode(Cd4,w);

figure();plot(w,squeeze(phase),'-r','linewidth',2);hold on;
plot(w,squeeze(phase0),'g');            plot(w,squeeze(phase1)-360,'b');
plot(w,squeeze(phase2)-360,'m');        plot(w,squeeze(phase3),'y','linewidth',2);
plot(w,squeeze(phase4),'k');            xlim([0,2000]);
xlabel('Frequency (rad/s)');ylabel('Phase (degrees)');legend("连续模型","方案1","方案2","方案3","方案4","方案5");grid on;

延时系统建模汇总

  • 当延时系统建模与分析局限于连续传函,尽量避免近似过程,按照严格指数形式保留准确性;
  • 当延时系统建模与分析局限于连续传函,但必须进行有理化处理时,建议采用高阶帕德近似;
  • 当连续传函最终需要数字化实现时,整倍延时采用严格离散化方案(一阶Pade+Tustin离散化,等价于,严格离散化);
  • 当连续传函最终需要数字化实现时,小分数延时采用Pade近似+离散化方案,采用一阶近似减小误差(等价于Thiran方案);
  • 当连续传函最终需要数字化实现时,大分数延时采用方案三(Thiran整体离散化,适用于高要求场合)或方案四(整数严格+分数Pade离散,适用于大多数场景);

参考文献

[1] 余成波. 拉普拉斯变换的性质, 信号与系统.第2版[M].清华大学出版社,2007.
[2] Pade近似,原理与Matlab实现。
[3] Matlab文档:Padé approximation of models with time delay.
[4] Matlab文档:Bode frequency response of dynamic system.
[5] Matlab文档:Generate fractional delay filter based on Thiran approximation.
[6] T. Laakso, V. Valimaki, “Splitting the Unit Delay”, IEEE Signal Processing Magazine, Vol. 13, No. 1, p.30-60, 1996.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/924211.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3.14MayBeSomeStack

栈指针是sp 静态数据在内存中位置不改变 码距就是相邻两个合法的数据之间的差距&#xff0c;如果为2的话&#xff0c;相邻两个合法的数据之间存在一个冗余的数据&#xff0c;这个数据肯定是出错的&#xff0c;但是无法判断是哪个合法的数产生的&#xff1b; 如果码距是3的话&…

NLP 2、机器学习简介

人生的苦难不过伏尔加河上的纤夫 —— 24.11.27 一、机器学习起源 机器学习的本质 —— 找规律 通过一定量的训练样本找到这些数据样本中所蕴含的规律 规律愈发复杂&#xff0c;机器学习就是在其中找到这些的规律&#xff0c;挖掘规律建立一个公式&#xff0c;导致对陌生的数…

springboot视频网站系统的设计与实现(代码+数据库+LW)

摘 要 使用旧方法对视频信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在视频信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的视频网站系统管理员功…

探索Python网页解析新纪元:requests-html库揭秘

文章目录 **探索Python网页解析新纪元&#xff1a;requests-html库揭秘**1. 背景介绍&#xff1a;为何选择requests-html&#xff1f;2. requests-html库是什么&#xff1f;3. 如何安装requests-html库&#xff1f;4. 五个简单的库函数使用方法4.1 发起HTTP请求4.2 解析HTML内容…

DataWhale—PumpkinBook(TASK05决策树)

课程开源地址及相关视频链接&#xff1a;&#xff08;当然这里也希望大家支持一下正版西瓜书和南瓜书图书&#xff0c;支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(▽)ノ✿&#xff09; Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》&#xff08;南瓜…

爱尔兰杀菌剂数据分析_1

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

捉虫笔记(七)-再探谁把系统卡住了

捉虫笔记&#xff08;七&#xff09;-再探谁把系统卡住 1、内核调试 在实体物理机上&#xff0c;内核调试的第一个门槛就是如何建立调试链接。 这里我选择的建立网络连接进行内核调试。 至于如何建立网络连接后续文章再和大家分享。 2、如何分析 在上一篇文章中&#xff0c;我们…

linux(redhat8)如何安装mysql8.0之rpmtar双版本(最新版)(内网)(离线)

一.环境 系统版本&#xff1a;Red Hat 8.5.0-20 Java环境&#xff1a;build 1.8.0_181-b13 MYSQL&#xff1a;8.x版本 二、查看内核版本 #查看内核版本&#xff0c;根据内核版本下载对应的安装包 cat /proc/version 三、安装方式 一、rpm包方式 一、下载安装包 1. 登录网…

【WRF后处理】WRF模拟效果评价及可视化:MB、RMSE、IOA、R

【WRF后处理】模拟效果评价及可视化 准备工作模型评价指标Python实现代码Python处理代码:导入站点及WRF模拟结果可视化图形及评价指标参考在气象和环境建模中(如使用 WRF 模型进行模拟),模型性能评价指标是用于定量评估模拟值与观测值之间偏差和拟合程度的重要工具。 本博客…

深度学习基础2

目录 1.损失函数 1.1 线性回归损失函数 1.1.1 MAE损失 1.1.2 MSE损失 1.1.3 SmoothL1Loss 1.2 CrossEntropyLoss 1.3 BCELoss 1.4. 总结 2.BP算法 2.1 前向传播 2.2 反向传播 2.2.1 原理 2.2.2. 链式法则 2.4 重要性 2.5 案例 2.5.1 数据准备 2.5.2 神经元计算…

STM32的CAN波特率计算

公式&#xff1a; CAN波特率 APB总线频率 / &#xff08;BRP分频器 1&#xff09;/ (SWJ BS1 BS2) SWJ一般为1。 例如STM32F407的&#xff0c;CAN1和CAN2都在在APB1下&#xff0c;频率是42000000 如果想配置成1M波特率&#xff0c;则计算公式为&#xff1a;

⭐ Unity 资源管理解决方案:Addressable_ Demo演示

一、使用Addressable插件的好处&#xff1a; 1.自动管理依赖关系 2.方便资源卸载 3.自带整合好的资源管理界面 4.支持远程资源加载和热更新 二、使用步骤 安装组件 1.创建资源分组 2.将资源加入资源组 3.打包资源 4.加载资源 三种方式可以加载 using System.Collections…

uniapp实现APP版本升级

App.vue 直接上代码 <script>export default {methods: {//APP 版本升级Urlupload() {// #ifdef APP-PLUSplus.runtime.getProperty(plus.runtime.appid, (info) > {// 版本号变量持久化存储getApp().globalData.version info.version;this.ToLoadUpdate(info.versi…

spark 写入mysql 中文数据 显示?? 或者 乱码

目录 前言 Spark报错&#xff1a; 解决办法&#xff1a; 总结一下&#xff1a; 报错&#xff1a; 解决&#xff1a; 前言 用spark写入mysql中&#xff0c;查看中文数据 显示?? 或者 乱码 Spark报错&#xff1a; Sat Nov 23 19:15:59 CST 2024 WARN: Establishing SSL…

欧科云链研究院:比特币还能“燃”多久?

出品&#xff5c; OKG Research 作者&#xff5c;Hedy Bi 本周二&#xff0c;隔夜“特朗普交易” 的逆转趋势波及到比特币市场。比特币价格一度冲高至约99,000美元后迅速回落至93,000美元以下&#xff0c;最大跌幅超6%。这是由于有关以色列和黎巴嫩有望达成停火协议的传闻引发…

27加餐篇:gRPC框架的优势与不足之处

gRPC作为一个现代的、开源的远程过程调用(RPC)框架,在多个方面都展现了其优雅之处,同时也存在一些不足之处。这篇文章我们就相对全面的分析一下gRPC框架那些优雅的地方和不足的地方。 优雅的地方 gRPC作为一个RPC框架,在编码、传输协议已经支持多语言方面都比较高效,下…

Spring MVC练习(前后端分离开发实例)

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f439;今日诗词:二十五弦弹夜月&#xff0c;不胜清怨却飞来&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; ⛳️点赞 ☀️收藏⭐️关注&#x1f4…

重构项目架构

前言 我们上篇文章对整个项目进行一个整体的规划&#xff0c;其中对于APP类规划了类&#xff0c;本篇文章我们就来实现这个规划&#xff1b; class App {//加载页面constructor() {}//获取位置_getPosition() {}//接受位置_loadMap() {}//在地图上点击展现表单_showForm() {}/…

哈希C++

文章目录 一.哈希的概念1.直接定址法2.负载因子 二.哈希函数1.除法散列法 / 除留余数法2.乘法散列法3.全域散列法&#xff08;了解&#xff09; 三.处理哈希冲突哈希冲突&#xff1a;1.开放定址法&#xff08;1&#xff09;线性探测&#xff1a;&#xff08;2&#xff09;二次探…

转录组数据挖掘(生物技能树)(第11节)下游分析

转录组数据挖掘&#xff08;生物技能树&#xff09;&#xff08;第11节&#xff09; 文章目录 R语言复习转录组数据差异分析差异分析的输入数据操作过程示例一&#xff1a;示例二&#xff1a;示例三&#xff1a;此代码只适用于人的样本 R语言复习 #### 读取 ####dat read.deli…