传递函数离散相似法

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

方案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 — 如何在你自己的仿真/控制器里使用这方法(步骤总结)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值