我是靠谱客的博主 背后手链,最近开发中收集的这篇文章主要介绍过零检测法MATLAB仿真,过零检测 - MATLAB & Simulink - MathWorks 中国,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

以 example_bounce_two_integrators 模型为例。它使用两个单个积分器来计算仿真过程中球的垂直速度和位置。

通过在命令行运行 open_system('example_bounce_two_integrators') 打开模型。

出现模块图后,将模型配置参数的 Solver 窗格中的 Solver details > Zero-crossing options > Algorithm 参数设置为 Nonadaptive。将模型的停止时间设置为 20 秒。您可以在 Simulink 工具条或模型配置参数的 Solver 窗格中更改此设置。

对模型进行仿真。

0cd7f1ea47e79811a661672fc07e53ac.png

现在,您可以查看和分析仿真结果。

1b9557e7f8d709caeec5f72a7ee07d60.png

仔细检查仿真的最后一部分,您将看到速度略高于零。

cc8336b0b31bf7957a45724e005924f6.png

将仿真 Stop time 更改为 25 秒,然后对模型进行仿真。由于 Compare To Zero 和 Position 模块连续发生过多的过零事件,仿真将停止并显示错误。

Simulink will stop the simulation of model 'example_bounce_two_integrators' because the 2 zero crossing signal(s) identified below caused 1000 consecutive zero crossing events in time interval between 20.357636989536076 and 20.357636990631594.

--------------------------------------------------------------------------------

Number of consecutive zero-crossings : 1000

Zero-crossing signal name : RelopInput

Block type : RelationalOperator

Block path : 'example_bounce_two_integrators/Compare To Zero/Compare'

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

Number of consecutive zero-crossings : 500

Zero-crossing signal name : IntgLoLimit

Block type : Integrator

Block path : 'example_bounce_two_integrators/Position'

--------------------------------------------------------------------------------

虽然您可以通过调整 Model Configuration Parameters > Solver > Number of consecutive zero crossings 参数来增加此限制,但进行此更改后仍不能使仿真持续 25 秒。

将模型配置参数的 Solver 窗格中的 Solver details > Zero-crossing options > Algorithm 参数更改为 Adaptive,并再次仿真该模型 25 秒。

9f78957341800799a35ffc4dfb316d09.png

放大仿真的最后 5 秒,您可以看到结果更完整,更接近弹球动态的预期解析解。您看到的震颤量是系统状态接近零时的效果,这在数值仿真的预期之内。

0e8f129a1d59347ba67deaaf53a86225.png

example_bounce 模型使用 Second-Order Integrator 模块对弹球的动态建模。从求解器性能方面来说,这是首选的球动态二重积分建模方法。要比较 example_bounce_two_integrators 和 example_bounce 的求解器性能,请尝试在两个模型上运行求解器探查工具。有关两种模型的详细比较,请参阅弹球的仿真。

cbc8eeacdb5ae4abd917720a003a608e.png

588249686c10d2016e62948fc20139d5.png

79fa1aaa923b712891950f7b468def4b.png

最后

以上就是背后手链为你收集整理的过零检测法MATLAB仿真,过零检测 - MATLAB & Simulink - MathWorks 中国的全部内容,希望文章能够帮你解决过零检测法MATLAB仿真,过零检测 - MATLAB & Simulink - MathWorks 中国所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部