Unity铰链四杆机构设计和运动仿真

2024-03-02 14:36

本文主要是介绍Unity铰链四杆机构设计和运动仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、效果图

设定好各边长度和转速后,点击【设置并启动】,自动生成一个机构模型,并按照原理进行运转
请添加图片描述

二、铰链四杆机构介绍

机架:A和D是固定位置,叫做机架。
曲柄:B点绕A点旋转,构成曲柄。
连杆:C点和B点相连,构成连杆。
摇杆:C点绕着D点转动,构成摇杆。

在这里插入图片描述
请添加图片描述

三、运动原理

1、机构示意图
在这里插入图片描述

第一步:计算Φ1(∠BAD)

曲柄转动了多少度

第二步:计算BD的长度

已知B点和D点位置,计算BD的长度,可用机械公式计算,或者直接使用Vector3.Distance计算。
在这里插入图片描述

第三步:计算∠ΦDB(∠BDA’)

  • (1)用机械原理公式计算的依据:
    在这里插入图片描述

  • (2)直接用Unity向量距离api计算:

Vector3.Distance(A, D);//示例代码

第四步:计算计算∠Φ3的值

只能用机械原理的公式计算:
在这里插入图片描述

第五步:根据∠Φ3计算C点位置

∠Φ3已知的时候,在射线DC上取C点

四、关键代码实现

代码为计算部分的代码,仅供交流学习之用。

    /// <summary>/// 计算曲柄和摇杆位置/// </summary>/// <returns></returns>bool JiSuanWeiZhi(){//设定B的位置  AB = avar posB = A.transform.position + (B.transform.position - A.transform.position).normalized * (float)a_AB;B.transform.position = posB;//计算Φ1(∠BAD)double phi1 = Vector3.Angle(B.transform.position - A.transform.position, D.transform.position - A.transform.position);//象限判断if (B.transform.position.y < A.transform.position.y){phi1 = 360 - phi1;}//公式计算lenDB的值var lDB2 = math.sqrt(a_AB * a_AB + d_DA * d_DA - 2 * a_AB * d_DA * Cos(phi1.ToRadians()));//计算ΦDB(∠BDA')double phiDB = Vector3.Angle(B.transform.position - D.transform.position, D.transform.position - A.transform.position);//象限处理if (B.transform.position.y < A.transform.position.y){phiDB = 360 - phiDB;}//计算Φ3的值var phi3 = phiDB - Acos((c_CD*c_CD + lDB2 * lDB2 - b_BC * b_BC)/(2 * c_CD * lDB2)).ToDegrees();//摆放C点if (double.IsNaN(phi3)){Debug.Log($"无法计算Φ3的值  {(c_CD*c_CD + lDB2 * lDB2 - b_BC * b_BC)/(2 * c_CD * lDB2)}");return false;}else{Quaternion q = Quaternion.AngleAxis((float)phi3, new Vector3(0,0,1));var dir  = q * (D.transform.position - A.transform.position);C.transform.position = D.transform.position + dir.normalized * (float)c_CD;}return (true);}

五、机械原理附录:

1、平面示意图

2、运动分析公式——位置计算

在这里插入图片描述

3、运动分析公式——速度计算

在这里插入图片描述

4、运动分析公式——加速度计算

在这里插入图片描述

这篇关于Unity铰链四杆机构设计和运动仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/766440

相关文章

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+