如何在Simulink中建模硬止损金宝app
从R2010a开始,Simulink金宝app库包含了一个名为二阶积分器.
根据我的经验,大多数人都不知道这个区块。我们来看一个例子二阶积分器特别有用。
问题:建模一个二阶饱和系统
我经常看到用户在模拟二阶饱和系统时遇到困难。例如,这可能是一个有硬位置限制的圆柱体,或一个被限制在两个角度限制之间的转轴。模型看起来像这样:
通常情况下,用户将尝试使用两个积分器串联建模气缸,并构建一个逻辑,试图重置/禁用/饱和它们,以获得输入力或扭矩、速度和位置之间的正确关系。让我们看几个例子来说明为什么这并不像看起来那么简单。
尝试1:位置和速度不一致
作为第一次尝试,许多用户将尝试使用类似这样的东西来建模圆柱体:
在这种情况下,位置在极限处饱和。但是请注意,当位置不变时,速度并不总是零,这是绝对错误的。
尝试2:禁用集成
要修复位置和速度不一致的事实,可以尝试以下修改:
如果这个修改通过在位置饱和时将速度设置为零来修复不一致性,仍然存在一个问题。当位置饱和时,第一个积分器继续积分。正因为如此,系统不会尽早脱离饱和状态。
尝试三:快到了……但不是现在
为了使系统在正确的时间脱离饱和,我们需要一个逻辑来根据输入和位置控制第一个积分器的积分。它看起来像这样:
现在我们有了名义上是正确的并且基本上满足方程组的方程。然而,由于不必要的过零和微小的误差,该模型具有低效率。
如果我们仔细观察系统脱离饱和时的一系列事件,我们可以看到:
- 当输入信号的符号发生变化时,检测到过零事件
- 第一个积分器已启用
- 一个时间步后,第一个积分器的输出变为非零
- 第二个积分器脱离饱和(比它应该的时间晚一点),触发第二个不必要的过零事件。
尝试4:好的,我明白你的意思了……但我相信一定有办法!
如果你和我一样,此时你可能会告诉自己:一定有办法的!
实际上,可以使用位置积分器的状态端口来获得既有效又数值正确的解。为了让逻辑更清晰,我使用了一个连续时间的状态流图:
但有一个问题……如果你仔细观察这个实现,你会注意到输入信号和位置输出信号之间的关系是直接馈通的。这意味着当你尝试在一个实际的模型中使用这个圆柱体模型时,包括一个像本文开头那样的反馈循环,这将导致一个代数循环。
解决方案
我希望你现在相信二阶积分器是这个用例的方法!
我要做的就是启用限制x选项,并确保我离开启用过零检测在方块对话框中
在记录数据并使用Simulink调试器之后,我们可以看到使用二阶积金宝app分器的实现生成的过零事件减少了50%,并且可以在比上面步骤3中显示的实现少25%的时间步骤内解决。在大型模型中,这会对性能产生重大影响。
现在轮到你了
看一下模拟弹跳球在两个积分器块和二阶积分器块之间进行类似分析比较的例子。
对于一个使用二阶积分器的更高级的例子,我建议看看:PWM驱动液压伺服机构建模.该模型模拟了液压缸和电磁阀,两者都使用二阶积分器实现。
试试二阶积分器,留下一个这里的评论.
- 类别:
- 建模
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。