主要内容

如何建立模型

这个例子强调了关键的概念和建议的步骤,以建立一个机械模型使用Simscape™多体™.为了达到这个目的,我们选择了一个简单的设计问题。以下部分描述了设计问题,后续部分讨论如何解决该问题。

问题描述

下图显示了一个作为瞄准系统的机制。

问题简化为在机构平面内瞄准。该图显示了机构的示意图,仅捕捉了机构如何运行的本质(通常是在设计过程的早期阶段)。的链接C能在链接上滑动吗一个.电机产生扭矩$$ {\bf \tau} $$在转动关节处国际扶轮我们的任务是跟踪转动角度的特定轨迹$$ {\bf \beta} $$

建立模型

在构建模型时要遵循的一个关键原则是,从一个简单的近似开始,以获得基本的机制。在随后的迭代中增加模型的复杂性。在Simscape Multibody中推荐的模型构建过程可以分解为以下步骤:

  1. 确定机构中的刚体。

  2. 确定刚体如何相互连接(关节、约束等)。

  3. 孤立地考虑每个刚体。建立一个简单的刚体近似,并定义刚性连接到它的框架。

  4. 使用关节和/或约束装配刚体。利用模型报告识别模型组件的任何问题。

  5. 利用力学的探险家识别并修复模型的其他问题。

  6. 共同的目标引导装配到所需的配置。

  7. 将输入和输出连接到机制。测试和验证模型。如果适用,附加控制器并测试模型。

  8. 为单个刚体添加细节,使模型更准确地表示实际机构。

下面几节将更详细地描述这些步骤。

识别刚体和关节

该机构有四个刚体

  • 刚体A(橙色)

  • 刚体B(蓝色)

  • 刚体C(黑)

  • 刚体D(灰色)

该机构有以下接头

  • 刚体A和刚体D通过转动关节连接罗依

  • 刚体A和刚体C通过移动关节连接Pg

  • 刚体C和刚体B通过转动关节连接Rg

  • 刚体B和D通过转动关节连接国际扶轮

此外,刚体D是否与世界框架刚性连接W因为它是静止的。

定义刚体及其界面

通过指定刚体的形状、质量特性和与其他部分的界面来定义刚体。每个刚体都被单独地识别和定义。在上面的例子中,机构由四个刚体组成:A b c而且D

刚体一个如下单独显示。

首先,确定刚体的形状一个在Simscape Multibody中。一旦定义了物体的形状和密度,Simscape Multibody就可以自动计算惯性。而不是定义上面所示的相当复杂的形状,作为第一近似,你可以将刚体的形状定义为一个长度等于原始部分的简单圆柱。

一旦你定义了刚体的形状(第一近似)一个,指定其密度。Simscape Multibody现在有足够的信息来计算动态模拟所需的惯性特性。类定义一个简单形状的刚体固体块。

固体Block允许您定义具有固定参数的简单实体。这些包括:砖块、圆柱体、多边形挤压体、规则棱镜、球体、椭球体等。你根据参考系定义每个参数化实体。下图显示了一些参数化固体的参考系。的固体block将该参考帧公开为块上标记为“R”的帧端口。

通过定义附着在刚体上的框架,建立刚体的界面。刚体通过刚性连接的框架连接到该机构的其他部分。在Simscape Multibody中,关节在两个框架之间建立了时变关系。例如,转动关节建立的关系Z所附坐标系的-轴平行,坐标系的原点重合。的移动关节建立的关系Z所附帧的-轴共线X而且Y轴总是平行的。注意,框架本身是独立于关节定义的;关节只在已经存在的框架之间建立关系。还要注意Z-轴是转动关节的旋转轴,是移动关节的滑动轴。当我们通过定义刚性附着在刚体上的框架来定义刚体的接口时,这个信息是必不可少的。

在这个例子中,刚体一个在一端有一个圆柱形的孔,可以装在钉子上,所以一个可绕轴旋转的圆柱孔。这表明,应在孔中心用它来定义一个框架Z-轴与孔的轴线(旋转轴)对齐。这个框架被标记为$$ f_ {ad} $$以上。方向的选择X而且Y轴的$$ f_ {ad} $$部分决定了关节的零构型$$ f_ {ad} $$将被连接(参见下面关于零配置的讨论)。一个也充当轴上的哪个部分C幻灯片。这表明一个框架应该定义在的中心一个(任意选择的位置)与其Z沿的长度对齐的-轴一个(沿滑动方向)。这个框架被标记为$$ f_ {ac} $$以上。帧$$ f_ {ad} $$而且$$ f_ {ac} $$定义刚体的接口一个.该模型sm_dcrankaim_approx_body_A展示了固体而且刚性变换用块来定义刚体的形状、惯性和界面一个.的正文A引用是一个参考系块。这个块不是必需的,但作为建模的便利,将某个帧固定为其他帧所引用的帧。帧$$ f_ {ac} $$而且$$ f_ {ad} $$的坐标系中定义的正文A引用Block已连接。对于定义刚体的更复杂的块网络,这样一个参考系作为定义所有其他坐标系的位置和方向的起点。

运行模型sm_dcrankaim_approx_body_A中可视化模型力学的探险家

考虑刚体B.刚体的形状也可以用一个简单的圆柱体来近似。刚体两端有圆柱形孔,可以安装在钉子上。刚体B可以旋转任何一个孔轴。这表明应定义两个框架:每个孔中心各有一个框架Z-轴与孔的轴线对齐。

该模型sm_dcrankaim_approx_body_B展示了固体而且刚性变换用块来定义刚体的形状、惯性和界面B

运行模型sm_dcrankaim_approx_body_B中可视化模型力学的探险家.可以采用类似的方法来建立刚体的第一近似D

考虑刚体C

这个刚体有一个圆柱形的孔,可以在钉子上滑动。它还有一个挂钩,另一个物体可以围绕它旋转。这表明需要定义两个框架:一个在洞的中心与它Z-轴沿轴孔,而另一个在中心钉与其Z-轴沿钉的轴。这些标记为$$ f_ {ca} $$而且$$ f_ {cb} $$以上。

刚体的形状C可以近似为一个简单的长方体。在刚体的第一近似中,坐标系原点之间的偏移量$$ f_ {cb} $$而且$$ f_ {ca} $$也可以是零。这导致刚体的简化表示如下所示。

该模型sm_dcrankaim_approx_body_C展示了固体而且刚性变换用块来定义刚体的形状、惯性和界面C

使用接头组装单个物体

所有单独的机构都是独立建造的。装配过程包括在刚体上的框架之间建立关系(使用关节)。下面的关节在框架之间建立了所有必要的关系,以组装机构。

  • 一个转动关节帧之间$$ f_ {da} $$而且$$ f_ {ad} $$

  • 一个移动关节帧之间$$ f_ {ac} $$而且$$ f_ {ca} $$

  • 一个转动关节帧之间$$ f_ {cb} $$而且$$ f_ {bc} $$

  • 一个转动关节帧之间$$ f_ {bd} $$而且$$ f_ {db} $$

通过仔细定义所有刚体的接口(即附加在刚体上的框架),只需在适当的框架之间添加关节,就可以很容易地完成该机构。不需要定制关节来实现机构的默认组装。所得到的组件可能处于所需的配置中,也可能不处于所需的配置中,因为该机构可以组装成多个配置。该模型sm_dcrankaim_assembly_with_error显示了组装的机构。

使用模型报告来识别问题

在这个模型中,框架的定义出现了一个故意的错误$$ f_ {ca} $$附着在刚体上C.这将导致组装失败。下图显示了帧的期望方向和实际方向$$ f_ {ca} $$

的定位$$ f_ {ca} $$必须通过大约90度的旋转来纠正Z设在。更新模型(Ctrl-D)sm_dcrankaim_assembly_with_error为了使机理可视化。报告一个错误,指示组装失败。在力学的探险家中,选择模型报告选项。工具下拉菜单。在模型报告关节节将显示关节Pg组装失败。这表明连接到关节的框架规格可能有错误Pg.在这个例子中,帧的规格中确实出现了错误$$ f_ {ca} $$

改变刚性变换的参数sm_dcrankaim_assembly_with_error/刚体C/滑动帧变换如下所示修复问题,允许组装成功。

接头零配置

零配置关节角定义为所有关节角均为零时,基础框架与从动框架之间的相对位置和方向。对于Simscape Multibody中的几乎所有关节,基本框架和从动框架在零配置中是相同的:它们的原点是重合的,它们的轴是对齐的。当关节角度为零时,通过调整基础框架和从动框架在各自主体上的位置和方向,定义由关节连接的两个物体之间的相对位置和方向。

例如,考虑刚体B而且C还有关节Rg连接它们。帧$$ f_ {cb} $$而且$$ f_ {bc} $$关节的底座和从动架是吗Rg.下图显示了如何选择不同的方向为框架$$ f_ {cb} $$附着在刚体上C当关节角度为零时,会产生不同的装配构型。框架方向的选择必须考虑到所需的零配置。

在瞄准机构中,帧方向的选择导致默认的组装配置,其中所有物体的中心轴位于同一条线上。

使用联合目标的引导装配

更新模型(Ctrl-D)sm_dcrankaim_assembly_with_error(在错误被修正之后)来可视化组装的机构。可以看到,所有的尸体都坍塌在一条共同的线上;这是默认的程序集配置。在这个构型中,所有的转动关节角都是零。这样,每个转动关节的基础框架和从动框架相互重合并对齐;对应的帧对为:$$ f_ {da} $$而且$$ f_ {ad} $$$$ f_ {cb} $$而且$$ f_ {bc} $$而且$$ f_ {bd} $$而且$$ f_ {db} $$.相比之下,框架$$ f_ {ca} $$是从框架翻译过来的$$ f_ {ac} $$,则关节为Pg不是零状态。打开模型报告在这个装配的配置中,查看关节位置的值。这不是理想的程序集配置。

在所述机构的原理图中描述的配置是所需的初始装配配置。从原理图中我们可以看出,在初始配置的角度$$ \beta $$可以通过指定关节位置和速度目标来指导装配算法。在本例中,关节的位置目标罗依可以设置为引导装配进入所需的初始配置(见下图)。目标优先级已设置为.由于这是模型中唯一的目标,Simscape Multibody能够准确地实现它。

更新模型(Ctrl-D)以使用更改更新可视化。该组件更接近原理图中的配置。检查模型报告要看,联合目标为罗依正好满足了。

不幸的是,组装后的结构不是我们想要的因为刚体B未按原理图中所示对齐。试图指定两者的关节角度Ro美元而且国际扶轮美元正是这个单自由度机构的过度规范。这是不被禁止的,但如果有冲突,这两个目标都不能实现。此外,需要的角度的接头国际扶轮甚至都不清楚。

在这种情况下,一个方便的方法是保持35度的高优先级目标罗依但是要指定角度国际扶轮通过一个低优先级的位置目标。后者为所需的关节角度提供了一个近似值或提示。在这种情况下,很明显,角度$$ \theta $$应该是钝角;150度是对其期望值的粗略估计。这个目标为关节设置国际扶轮优先级为

设置新目标后的组装配置如下所示。

模拟模型(Ctrl-T)以查看机构在重力作用下的运动。

控制设计模型的建立

在这个例子中,目标是制作角度$$ \beta $$通过在关节处施加扭矩来跟踪所需的轨迹国际扶轮.联合国际扶轮将扭矩驱动和关节角度$$ \beta $$它的导数(角速度)将从关节被感知罗依.整个机构可以包含在一个子系统中,该子系统接收扭矩输入并输出角度$$ \beta $$角速度$$ \dot{\beta} $$.这个子系统就是正则子系统植物用控制设计的说法。该模型sm_dcrankaim_plant显示了控制设计的机构设置。

的详细资料植物子系统如下所示。

该模型sm_dcrank_aiming_mechanism_v1显示了植物连接到一个控制器.在范围内可以查看控制器的跟踪性能。设计了一个简单的PD控制器来实现跟踪。

为刚体添加细节

现在基本模型已经可以工作了,下一步是添加细节,使模型更加真实和准确。也许这个模型的第一个版本是在刚体几何的详细信息还没有得到的时候创建的。在仔细建立了刚体的接口之后,在不影响/改变模型其余部分的情况下,为每个刚体添加细节是相当容易的。

例如,考虑为刚体添加细节一个同时保持界面不变。下图为刚体一个作为简单物体的组合。界面被刚体暴露一个还是那副镜框吗$$ f_ {ad} $$而且$$ f_ {ac} $$.他们的位置和方向没有改变。帧$$ f_ {12} $$$$ f_ {21} $$$$ f_ {23} $$而且$$ f_ {32} $$是刚体内部的,应将刚体的各个部件组装成一个整体。该模型sm_dcrankaim_cplx_body_A显示了刚体的复杂版本的构造一个

第二版模型sm_dcrank_aiming_mechanism_v2是从sm_dcrank_aiming_mechanism_v1只需要替换刚体对应的子系统一个用复杂版从sm_dcrankaim_cplx_body_A.由于界面保持不变,更换块的操作很简单。模拟模型sm_dcrank_aiming_mechanism_v2使修改后的机制可视化。

跟踪性能是相似的,因为控制器足够鲁棒,以处理简单刚体和详细刚体之间的微小惯性差异一个.按照类似的过程,我们还可以向其他部分添加细节。每个刚体的不同版本具有不同的细节级别,可以在库中维护,并且模型可以使用这些不同的替代方案进行测试。可配置子系统在这里很有用。

总结

综上所述,我们采取了以下步骤:

  • 从机构示意图开始,确定了机构中的刚体和关节。

  • 建立了每个刚体在孤立状态下的第一近似

  • 用关节将刚体组装在一起,实现了组装机构的第一个版本。

  • 使用了模型报告用于识别程序集问题的工具

  • 使用联合位置目标引导组件进入理想的配置。

  • 在模型中增加了一个简单的控制器来实现目标角度跟踪。

  • 一旦完整的第一版模型完成,在不改变刚体界面的情况下,为其中一个刚体添加细节。细节也可以添加到其他刚体。

在Simscape Multibody中构建模型时,推荐使用这种简单开始并在后续迭代中添加复杂性的方法。

另请参阅

|