【问题标题】:Obtaining state variable derivatives from a simulink model从 simulink 模型中获取状态变量导数
【发布时间】:2017-02-25 11:51:30
【问题描述】:

我有一个带有多个控制输入的 simulink 过程模型。 我使用多个子系统(串联和并联的 m 文件块)对流程模型进行了建模,并且使用每个子系统的积分器完成了集成。

我可以运行此模型并获取状态和输出 (Is is possible to programmatically play a Simulink model and measure its states?),但有时我也希望能够获得状态的时间导数

例如,如果我正在运行 optimal control problem ,我需要一个以编程方式返回状态变量导数以用作约束的函数。理想情况下,我会重用相同的模型,但不使用 simulink 软件进行集成。

我想我可以收集模型中每个积分器的输入并将其用作导数,但这是一种可怕的方法(对于初学者来说很难维护)。

【问题讨论】:

    标签: output state simulink derivative programmatically-created


    【解决方案1】:

    我在运行 simulink 时也遇到了同样的问题,您可能会发现以下命令很有用:

    [sys,x0,str,ts] = model([],[],[],'sizes');
    [sys,x0,str,ts] = model([],[],[],'compile');
    outputs = model(t,x,u,'outputs');
    derivs = model(t,x,u,'derivs');
    dstates = model(t,x,u,'update');
    model([],[],[],'term');
    

    更多详情可以参考页面:https://www.mathworks.com/help/simulink/slref/model_cmd.html

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      • 2014-01-02
      • 1970-01-01
      相关资源
      最近更新 更多