首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义Simulink离散时间积分器块

问自定义Simulink离散时间积分器块
EN

Stack Overflow用户
提问于 2015-09-23 14:38:43
回答 1查看 5.4K关注 0票数 1

我试图用梯形规则在Simulink中设计我自己的离散时间积分器的简单实现。这是我努力的结果(假设我使用1作为时间集成间隔):

然后,为了再次检查我是否做对了,我将结果与标准的Simulink离散时间积分器块(当然配置为使用梯形规则)进行了比较:

​

当我让步骤在时间1(自定义和默认的积分器块都有0作为初始条件)时,一切都运行得很好:

​

​

当步长在0时上升时,我得到了两个积分器块响应之间的差异:

​

​

  • 自定义块:@ Integral(t=0)=0.5;@ Integral(t=1)=1.5
  • 默认块:@整数(t=0)=0;@t=1积分(t=1)=1

我认为这取决于我的自定义块在t=0和初始条件=0之间的积分(即在0到1之间应用梯形规则,从而得到0.5)。

哪种方法可以最好地解决这个问题,并使我的自定义块也在零时间显示与默认块相同的行为?我遗漏了什么参数/设置吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 17:55:22

注意,梯形积分器只需要并且应该只有一个单元延迟。正确的实现如下图所示。

​

​

从问题中显示的第二个图像中,库块的输出在时间上等于零。这不是默认行为(如上文所示,也如离散时间积分器块的文档的离散时间积分器小节中所讨论的那样)。

是否将初始条件设置从状态更改为输出?如果是这样,则需要适当地修改自定义实现中的状态。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32742582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档