Simulink-Simscape钟摆系统

在MATLAB Simulink中,Solver Configuration、World Frame和Mechanism Configuration各自具有不同的作用:

  1. Solver Configuration(求解器配置)
    Solver Configuration是用于配置Simulink仿真的求解器设置的部分。求解器设置决定了仿真如何进行时间步长、积分方法等方面的计算。在Simulink中,Solver Configuration包括了许多参数,比如积分器类型、步长、最大仿真时间等。通过调整这些设置,用户可以对仿真的精度和性能进行优化。

  2. World Frame(世界坐标系)
    World Frame是仿真中用于描述整个系统的全局坐标系。在机器人学或多体动力学仿真中,世界坐标系通常被用作参考坐标系,所有其他坐标系都相对于它来定义。这意味着,所有机构和连接体的位置、方向等信息都是相对于世界坐标系来描述的。

  3. Mechanism Configuration(机构配置)
    Mechanism Configuration指的是机械系统的具体构造和配置。在机器人学或者其他多体动力学仿真中,机构配置涉及到定义机械结构的各种参数,比如关节类型、连接方式、质量分布等。通过机构配置,用户可以构建出需要仿真的具体机械系统模型。

    在进行建模时需要注意Mechanism Configuration的Gravity配置,[x y z]为各个方向的重力,一般只需设置一个方向,默认是[0 -9.80665 0],即在y方向施加的重力,在进行刚体坐标连接时需要注意。
    在这里插入图片描述

    如需要用到Revlute Joint,在视角为y轴指向屏幕朝外时,一般规律如下:

    重力施加方向绕轴旋转方向
    [x 0 0]y
    [0 y 0]z
    [0 0 z]x

    e.g. 在Gravity为默认下[0 -9.80665 0],如要设计一个钟摆系统,如图(1)

    在这里插入图片描述

    在Revolute Joint没有进行坐标变换的情况下坐标是与Brick Solid坐标重合,在重力的作用下绕Z轴转动,Brick Solid1尺寸为[10 0.5 0.5]cm,通过Rigid Transform连接,参数为:

    在这里插入图片描述

    即让Brick Solid1在X+方向(右)移动5cm

    在这里插入图片描述

    此时运行系统,Brick Solid1会受到y方向的力绕z轴来回摆动。

    注:求解器设置如图

    在这里插入图片描述

    以下是求解器的各个参数含义解释:(由GPT4生成,仅供参考)

    1. 开始时间:模拟的开始时间,默认通常设置为0。

    2. 停止时间:模拟的结束时间,它定义了模拟运行的持续时间。

    3. 求解器:这个下拉菜单让你选择用于求解模型的数值求解器。在这个例子中,选用的是ode15s,这是一个用于刚性或非刚性微分方程的数值求解器。

    4. 步长

      • 最大步长:求解器在模拟期间采取的最大时间步长。较小的步长可以提高精度,但会增加计算时间。
      • 最小步长:求解器采取的最小时间步长,通常由求解器自动决定。
      • 初步步长:求解器在模拟开始时采用的时间步长。
    5. 相对误差:允许的相对误差界限,求解器会尝试保持误差在这个范围内。

    6. 绝对误差:允许的绝对误差界限,它是求解器在所有模拟步骤中尝试满足的误差绝对值。

    7. 求解器重置方法:如果有非连续事件,例如开关的打开/关闭,这个设置决定求解器应如何重置。

    8. 形状保持:在仿真中保持模型形状的方法。例如,对于机械系统,保持刚体的形状不变是很重要的。

    9. 求解器Jacobian矩阵方法:Jacobian矩阵描述了系统状态的微小变化如何影响微分方程的变化。该方法可以是自动的,也可以是由用户提供的。

    10. 调试选项

      • 调试模式:可以设置为“标准”,以获取更多的诊断信息,帮助调试模型。
      • 时钟精度:这是内部时钟的精度设置。
      • 迭代次数上限:求解器在报告错误之前的最大迭代次数。

    定步长(固定步长)求解器:

    • 定步长求解器在整个仿真过程中使用固定的时间步长。
    • 这种方法简单明了,计算负荷可预测,因为每一步的计算复杂度相同。
    • 对于需要生成实时代码或硬件在环(HIL)测试的系统,通常使用定步长求解器,因为它们可以保证在每个时间点上的行为都是一致的。
    • 定步长求解器通常用于数字控制器的仿真,因为控制器通常在固定的时间间隔内采样。
    • 然而,使用定步长求解器可能需要更多的步骤来精确解决快速变化的动态,因此可能会增加计算时间。

    变步长(自适应步长)求解器:

    • 变步长求解器会根据模型的动态特性自动调整时间步长。如果模型的状态变化快,求解器会减小步长以提高精度;如果状态变化慢,求解器会增加步长以提高效率。
    • 这种方法可以减少不必要的计算,从而在保证精度的同时提高仿真效率。
    • 对于包含非线性或复杂动态的模型,变步长求解器尤其有用,因为它可以适应模型在不同仿真阶段的需求。
    • 但是,变步长求解器可能导致仿真时间不可预测,因为步长的变化取决于模型的响应。

    在选择求解器时,应考虑模型的特性、精度需求、计算资源和仿真目的。如果模型动态变化不大,或者需要固定的仿真步骤(例如,针对硬件在环测试或实时仿真),定步长求解器可能是一个好的选择。而对于复杂或高度非线性的系统,变步长求解器可能更为合适,因为它可以在不牺牲精度的情况下提高仿真速度。
    ,针对硬件在环测试或实时仿真),定步长求解器可能是一个好的选择。而对于复杂或高度非线性的系统,变步长求解器可能更为合适,因为它可以在不牺牲精度的情况下提高仿真速度。

视频:

Pendulum System

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐