You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从c2d离散化后的sysd中获取状态空间模型矩阵?

Matlab中提取离散状态空间模型的A、B、C、D矩阵

在Matlab里,从离散化后的状态空间模型sysd中提取A、B、C、D矩阵有两种常用方法:

方法1:直接访问模型属性

离散状态空间模型对象sysd自带对应矩阵的属性,直接调用即可:

  • 离散状态矩阵:sysd.A
  • 输入矩阵:sysd.B
  • 输出矩阵:sysd.C
  • 直接传输矩阵:sysd.D

修改你的示例代码如下:

sys = ss(A,B,C,D);

% if Ts>0 then sample the model with a zero-order hold (piecewise constant) input, otherwise return a continuous-time model
if Ts>0
     sysd = c2d(sys,Ts);
     % 提取离散矩阵
     Ad = sysd.A;
     Bd = sysd.B;
     Cd = sysd.C;
     Dd = sysd.D;
end

方法2:使用ssdata函数

Matlab的ssdata函数可以直接从状态空间模型中批量提取四个矩阵,语法更简洁:

if Ts>0
     sysd = c2d(sys,Ts);
     % 批量提取离散矩阵
     [Ad, Bd, Cd, Dd] = ssdata(sysd);
end

内容的提问来源于stack exchange,提问作者stefano.sil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:45:33