news 2026/2/10 21:21:33

传递函数离散相似法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
传递函数离散相似法

问题 如何采用离散补偿器提高离散化模型的精度和稳定性

方案1

1) 参数与采样周期

已知参数(图中):


2) 被控对象、执行机构的 ZOH 精确离散化(第一阶系统)

这些表达式在直流与低频处与连续系统保持良好一致性,比简单差分法精度高。


3) PI 控制器用 Tustin(双线性)离散化(保留积分精度)

说明:

  • 使用 Tustin(梯形法)能更好保持积分在低频处的累计(比前向欧拉或后向欧拉在相位与幅值上更准确)。

  • 若对某一特定频率(如环交叉频率)需要精确匹配,可以在 Tustin 中对该频率做预畸变(pre-warp)


4) 细节


5) 最终仿真实现(步骤概要)

方案2

1 — 基本思想

2 — 图中方框的具体数学形式

3 — 并行计算与 z⁻¹ 延迟(为什么要在反馈里加一个 delay)

书上强调的一点:当环路中有若干个离散块“串联”时,如果在一次采样周期里把它们依次顺序更新,得到的结果与实际可在微控制器/数值仿真中“同时计算所有离散块、并把前一采样周期的输出作为输入” 的情况不同。工程实现常常是“在时刻 k,同时用上一次(时刻 k-1)的信号作为每个子环节的输入来计算这些子环节的 k 时刻新值”,因此后一个环节在实际运算中看到的是前一个环节在 k−1 时刻的输出,而不是刚刚计算出来的 k 时刻输出——这就产生了并行更新的模型差异。

4 — 具体实现伪代码(一步步写出如何在仿真/程序中计算)

假设某一子环节状态方程为

离散化步骤(在每个采样 k = 1,2,... 执行):

伪代码:

初始化: x_i[0] = x_i_init 保存: xdot_i_prev = a_i * x_i[0] + b_i * u_i_prev // u_i_prev 为 k=0 时刻的已知输入 for k = 1..N: // 1) 计算当前导数近似(如果并行模型要求,u_i_use = u_i[k-1],否则可能用 u_i[k]) xdot_i_curr = a_i * x_i[k-1] + b_i * u_i_use // 2) 状态更新(文献公式) delta = lambda_i * Ts * ( gamma_i * xdot_i_curr + (1 - gamma_i) * xdot_i_prev ) x_i[k] = x_i[k-1] + delta // 3) 准备下一步 xdot_i_prev = xdot_i_curr end

注意:

  • u_i_use的取值要与图 4.10/4.11 中的延迟策略一致(并行实现通常是使用u_i[k-1])。

  • 输出量通常是从状态或通过比例变换得到(例如在图中有K0/T0等放大器块在状态之后)。

  • 对于 PI 的积分环节,a_ib_i的具体值对应积分方程(例如对于积分器)。

5 — λ、γ 的物理/数值意义与表 4.1(为何需要优化)

6 — 给出表中某组数值(举例,便于你直接代入)

(直接阅读表 4.1 的数值并列出,便于复制使用;表中的数字是书中通过数值优化得到的近似最优值。)

举例(从图中读出近似值):

7 — 与常见离散化方法的对比(表 4.2 的含义)

  • 表 4.2 比较了三种方法在“平均相对误差 / 仿真精度”上的表现:

  • 因此结论是:如果希望在较大采样周期下仍保持良好仿真精度,采用带参数调整的数值积分器(即书中方法)优于常规的 ZOH/零阶保持

8 — 如何在你自己的仿真/控制器里使用这方法(步骤总结)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 9:30:31

Anaconda和Miniconda对比:为何选择轻量级开发环境?

Anaconda与Miniconda:为什么轻量才是现代AI开发的正确打开方式? 在数据科学实验室、AI研发团队和高校研究组中,一个看似微小但影响深远的技术决策正在悄然改变工作流——越来越多的人开始放弃“开箱即用”的Anaconda,转而拥抱只有…

作者头像 李华
网站建设 2026/2/7 16:08:08

远程调试Miniconda异步任务执行状态

远程调试 Miniconda 异步任务执行状态 在深度学习和数据科学项目中,一个常见的场景是:你在本地写好了训练脚本,准备在远程服务器上启动长达数小时甚至数天的模型训练任务。你提交了任务,打开浏览器想看看进展——结果发现日志停滞…

作者头像 李华
网站建设 2026/2/5 22:15:01

宝塔面板v7.7.0离线安装终极教程:内网环境一键部署指南

宝塔面板v7.7.0离线安装终极教程:内网环境一键部署指南 【免费下载链接】btpanel-v7.7.0 宝塔v7.7.0官方原版备份 项目地址: https://gitcode.com/GitHub_Trending/btp/btpanel-v7.7.0 宝塔面板v7.7.0离线安装方案为内网服务器管理提供完美解决方案。在完全隔…

作者头像 李华
网站建设 2026/2/4 5:28:21

Anaconda Prompt替代方案:Miniconda终端配置

Miniconda-Python3.9 终端配置:轻量高效的 Python 环境实践 在数据科学和人工智能项目中,环境管理常常成为开发效率的隐形瓶颈。你是否曾遇到过这样的场景:刚接手一个 GitHub 上的开源项目,requirements.txt 一拉,pip …

作者头像 李华
网站建设 2026/2/4 0:04:07

Simple Comic:Mac上的终极免费漫画阅读器解决方案

Simple Comic:Mac上的终极免费漫画阅读器解决方案 【免费下载链接】Simple-Comic OS X comic viewer 项目地址: https://gitcode.com/gh_mirrors/si/Simple-Comic 作为一名Mac用户和漫画爱好者,你是否曾经为寻找一款真正简洁高效的漫画阅读器而烦…

作者头像 李华
网站建设 2026/2/7 13:16:32

ImTip:让你的输入法状态一目了然,工作效率翻倍提升

ImTip:让你的输入法状态一目了然,工作效率翻倍提升 【免费下载链接】ImTip 项目地址: https://gitcode.com/gh_mirrors/im/ImTip 还在为输入法状态切换烦恼吗?明明想输入中文却打出了英文,需要大写却按成了小写&#xff1…

作者头像 李华