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

如何在Simulink中跟踪离散状态空间模块的状态x?

在Simulink中无需观测器跟踪离散状态空间模型状态x的方法
  • 直接启用模块的状态输出端口
    Simulink的Discrete State Space模块自带状态输出能力,只是默认隐藏。双击模块打开参数对话框,找到Output options下拉菜单,选择Output states and outputs,模块会自动新增状态输出端口,直接把这个端口引出就能实时跟踪状态x。这种方式完全不会修改A/B/C/D矩阵,不会改变原系统的底层逻辑。

  • 并行搭建状态计算分支
    要是不想改动原模块的输出设置,可以基于原系统的A、B矩阵单独搭一个状态计算分支:

    • 用Unit Delay模块存储当前时刻的状态x(k),初始值设成和原模块一致;
    • 用Gain模块分别加载矩阵A和B,分别对x(k)和输入u(k)做乘法;
    • 用Sum模块把两个结果相加,得到下一时刻的状态x(k+1),再反馈给Unit Delay的输入。
      这个分支和原系统同步运行,能精准得到状态x,而且完全不影响原系统的输出y。注意要保证采样时间和初始状态和原模块完全一致,避免出现同步偏差。
  • 用数据日志离线查看状态
    如果只是需要事后查看状态数据,不用实时引出端口:

    • 右键点击Discrete State Space模块,选择Log Selected Signals;
    • 打开模型配置参数(快捷键Ctrl+E),在Data Import/Export页面勾选States;
    • 运行仿真后,Workspace里会自动生成包含状态数据的变量(比如默认的logsout或xout),直接调用就能查看状态的变化过程。

内容的提问来源于stack exchange,提问作者Giulio Mario Martena

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:02:32