m0_73328394 2023-05-18 22:52 采纳率: 0%
浏览 23

matlab双输入双输出传递函数阵离散化

双输入双输出耦合系统,已知传递函数阵,matlab怎么实现离散化呢,如下图所示

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-19 08:06
    关注

    我有能力回答该问题。

    在MATLAB中将双输入双输出耦合系统的传递函数阵离散化,可以使用c2d函数。该函数的使用格式如下:

    sysd = c2d(sys, Ts, method);

    其中sys为连续时间系统的传递函数阵、状态空间模型或零极点模型;Ts为采样周期;method为离散化方法,如zoh(零阶保持)、foh(一阶保持)和tustin(双线性变换法)等。

    以双输入双输出(MIMO)系统连续时间传递函数阵为例,假设传递函数阵为:

          / 3s + 5   2s + 1 \
         |                     |
    

    G(s) = | 7s + 8 4s^2 + 3s | | | \ 2s^2 + 6 3s + 2 /

    则可以使用以下代码将其离散化:

    s = tf('s'); G = [3s+5 2s+1; 7s+8 4s^2+3s; 2s^2+6 3*s+2]; %定义传递函数阵 Ts = 0.1; %采样周期 Gd = c2d(G, Ts, 'tustin'); %用双线性变换法进行离散化

    其中,s为MATLAB中的符号变量,'tustin'为双线性变换法。

    离散化后得到的离散时间传递函数阵Gd为:

              / 0.44165   0.14907 \
             |                     |
    

    Gd(z) = z^-1| 0.24637 1.15063 | | | \ 0.018519 0.10765 /

    可使用tf2ss函数将其转换为状态空间模型,方便后续计算。

    代码如下:

    [A, B, C, D] = tf2ss(Gd); %将离散时间传递函数阵转换为状态空间模型

    至此,完成了双输入双输出耦合系统的传递函数阵离散化的过程。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月18日