当前位置: 首页 > news >正文

simscape中坐标系和坐标变换Frames and Transforms

为了更便捷地描述单个物体的运动,最好以该物体的质心为坐标原点建立坐标系,从而可以非常方便地描述其旋转运动。因此,在计算多个物体之间的位置关系时,为了计算方便,需要频繁地更换坐标框架,这也是multibody中【Frames and transforms】意义所在。

在simscape->multibody->Frames and transforms中,总计提供了四种坐标框架或变换,分别是

  • 参考坐标系【Reference Frame】
  • 世界坐标系【World Frame】
  • 刚性变换器【Rigid Transform】
  • 变换传感器【Transform Sensor】

在这里插入图片描述

世界坐标

【World Frame】顾名思义,就是当前模型所在世界的坐标系。当使用【smnew】模板来创建multibody仿真时,会默认添加这个坐标系,并且和基本配置【Mechanism Configuration】连在一起。

在这里插入图片描述

世界坐标系只是名义上的坐标系,并不支持任何参数。基本配置【Mechanism Configuration】则可用于设置重力加速度。

刚性变换

【Rigid Transform】是多体建模中最常用的模块,有了这个,就可以通过坐标变换的方式,协调多个不同的物体。

双击Rigid Transform,可以查看其具体的变换方案,主要包括旋转和平移两组,除了None之外,分别有6种和三种变换方案,下面对这9种变换做一个简要的说明。

旋转变换包括

  • 轴对齐【Aligend Axes】相当于坐标轴映射,将一个坐标系的X轴映射为另一个坐标系的Y轴。
  • 单轴变换【Standard Axis】沿着指定坐标轴旋转相应的角度。
  • 轴角变换【Arbitrary Axis】沿着任意轴旋转相应的角度。
  • 按序旋转【Rotation Sequence】通过指定欧拉角和XYZ三个轴的旋转顺序来变换。
  • 旋转矩阵【Rotation Matrix】用旋转矩阵变换。
  • 四元数【Quaternion】用四元数描述变换。

平移变换包括

  • 笛卡尔变换【Cartesian】通过给定直角坐标系的坐标来平移坐标轴。
  • 单轴变换【Standard Axis】沿着单个坐标轴移动。
  • 柱坐标变换【Cylindrical】通过给定的柱坐标移动坐标系。

参考坐标

【Reference Frame】作为参考坐标,只起到一个参考的作用,并且和世界坐标系一样,不提供任何可供编辑的参数。

当创建的模型比较简单时,其实没有必要使用参考坐标系,但是,随着模型中的模块逐渐增多,通过参考坐标系,可以更加便捷地定位模块信息。

变换传感器

【Transform Sensor】可用于测量两个坐标系B和F之间的变换关系,相当于求解刚性变换的逆问题。

首先,变换传感器需要指定其测量框架,包括世界坐标系,B端的Base坐标,F端的Follower坐标,以及去除旋转后的B、F坐标。其次,需要指定坐标变换中欧拉角的旋转次序。在完成这两项设置后,就可以通过勾选的方式,引出可供测量的物理量了,总共包括旋转、平移两大类六大项测量内容

  • 旋转:旋转角;旋转轴;四元数;变换;
  • 角速度:ωx,ωy,ωz,ωxyz\omega_x, \omega_y, \omega_z, \omega_{xyz}ωx,ωy,ωz,ωxyz、四元数、变换矩阵、旋转序列
  • 角加速度:αx,αy,αz,αxyz\alpha_x, \alpha_y, \alpha_z, \alpha_{xyz}αx,αy,αz,αxyz、四元数、变换矩阵
  • 平移;速度;加速度:笛卡尔坐标X,Y,Z,XYZX, Y, Z, XYZX,Y,Z,XYZ;柱坐标半径、方位角;距离;倾角
http://www.dtcms.com/a/279169.html

相关文章:

  • MySQL数据实时同步到Elasticsearch的高效解决方案
  • 小波变换 | 连续小波变换
  • Effective Modern C++ 条款10:优先考虑限域enum而非未限域enum
  • 安全架构中身份与访问管理体系设计
  • 基于Yolov8车辆检测及图像处理系统【有代码】
  • python多版本管理--pyenv
  • pyspark中map算子和flatmap算子
  • RAG优化
  • Mysql数据库学习--约束
  • 聚宽sql数据库传递
  • 非阻塞写入核心:asyncio.StreamWriter 的流量控制与数据推送之道
  • python+requests 接口自动化测试实战
  • 支付宝小程序代运营:专业助力提升运营效能
  • AI Agent和Agentic AI
  • 驱动开发系列60- Vulkan 驱动实现-SPIRV到HW指令的实现过程(1)
  • 【Bluedroid】蓝牙协议栈enable流程深度解析
  • Redis ①⑥-缓存
  • org.casic.javafx.control.PaginationPicker用法
  • 【Docker基础】Dockerfile指令速览:健康检查与启动指令详解
  • Apache部署
  • ThinkPHP 8 在 Apache 下启用伪静态
  • 深入解析Hadoop YARN架构设计:从原理到实践
  • 音视频:语音转换文字功能实现
  • 阿尔卡特ACT 250 ATP 150 AND ATP 400 分子泵控制器TURBOMOLECULAR PUMP CONTROLLER ALCATEL
  • 微型导轨在3D打印设备中如何稳定运行?
  • Java:继承和多态(必会知识点整理)
  • 常用的RAG类型介绍
  • # MySQL索引失效场景和解决方案详解
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘sqlite3’问题
  • SpringBoot微服组件