目录

  • 题目要求
  • 公式推导和计算
  • 计算流程图
  • python代码
  • 生成图表一览

题目要求

公式推导和计算

计算流程图

python代码

import math
from os import close, error, system
from numpy.lib.function_base import copy, place, select, vectorize
import matplotlib.pyplot as plt
import numpy as np#定义类,点class point():#定义点的基本属性def __init__(self,x=0,y=0,vx=0,vy=0,ax=0,ay=0):self.x=xself.y=yself.vx=vxself.vy=vyself.ax=axself.ay=ay    #定义类杆
class rod():#定义杆的基本属性def __init__(self,phi=0,length=0,omega=0,alpha=0):self.phi=phiself.length=lengthself.omega=omegaself.alpha=alpha#定义类 一级杆
class I_rod():p0:pointdef __init__(self,s_Point:point,Rod:rod):#计算杆末端的x坐标x=s_Point.x+Rod.length*math.cos(Rod.phi)#计算杆末端的y坐标y=s_Point.y+Rod.length*math.sin(Rod.phi)#计算杆末端的x方向速度,长度单位换算成米vx=s_Point.vx-(Rod.omega*Rod.length*math.sin(Rod.phi))/1000#计算杆末端的y方向速度,长度单位换算成米vy=s_Point.vy+(Rod.omega*Rod.length*math.cos(Rod.phi))/1000#计算杆末端的x方向加速度,长度单位换算成米ax=s_Point.ax-(Rod.omega**2*Rod.length*math.cos(Rod.phi)\+Rod.alpha*Rod.length*math.sin(Rod.phi))/1000#计算杆末端的y方向加速度,长度单位换算成米ay=s_Point.ay-(Rod.omega**2*Rod.length*math.sin(Rod.phi)\-Rod.alpha*Rod.length*math.cos(Rod.phi))/1000self.p0=point(x,y,vx,vy,ax,ay)#返回末端对象def get_e_point(self):return self.p0#定义类RRR 二级杆组
class RRR_II_rods_group():point_0:pointdef __init__(self,p1:point,p2:point,r1_length:float,r2_length:float,clockwise=True):#clockwise:p1,所求点p0,p2是否是顺时针排布self.point_1=p1self.point_2=p2self.rod_1=rod(length=r1_length)self.rod_2=rod(length=r2_length)self.__length_BD=math.sqrt((p1.x-p2.x)**2+(p1.y-p2.y)**2)if(self.__length_BD>r1_length+r2_length or \self.__length_BD<abs(r1_length-r2_length)):raise Exception("在某一位置,杆长不满足装配要求")self.clockwise=clockwise#计算phi_1A0=2*r1_length*(p2.x-p1.x)B0=2*r2_length*(p2.y-p2.y)C0=r1_length**2+(p1.x-p2.x)**2+(p1.y-p2.y)**2-r2_length**2if (self.clockwise):f=1else:f=-1self.rod_1.phi=2*math.atan((B0+f*math.sqrt(A0**2+B0**2-C0**2))/(A0+C0))#实例化point_0对象self.point_0=I_rod(p1,self.rod_1).get_e_point()#计算phi_2self.rod_2.phi=math.atan((self.point_0.y-p2.y)/(self.point_0.x-p2.x))#计算omega_1和omega_2C_1=r1_length*math.cos(self.rod_1.phi)S_1=r1_length*math.sin(self.rod_1.phi)C_2=r2_length*math.cos(self.rod_2.phi)S_2=r2_length*math.sin(self.rod_2.phi)G_1=C_1*S_2-C_2*S_1self.rod_1.omega=(C_2*(p2.vx-p1.vx)+S_2*(p2.vy-p1.vy))/G_1*1000self.rod_2.omega=(C_1*(p2.vx-p1.vx)+S_1*(p2.vy-p1.vy))/G_1*1000#计算alpha_1和alpha_2G_2=1000*(p2.ax-p1.ax)+self.rod_1.omega**2*C_1-self.rod_2.omega**2*C_2G_3=1000*(p2.ay-p1.ay)+self.rod_1.omega**2*S_1-self.rod_2.omega**2*S_2self.rod_1.alpha=(G_2*C_2+G_3*S_2)/G_1self.rod_2.alpha=(G_2*C_1+G_3*S_1)/G_1#重新赋值point_0self.point_0=I_rod(p1,self.rod_1).get_e_point()def get_p0(self):return self.point_0def get_r1(self):return self.rod_1def get_r2(self):return self.rod_2#主函数
if(__name__=="__main__"):#定义已知参数l_AB=80l_BC=140l_CD=150l_AD=200l_BE=50l_EF=45omega=100l_BF=math.sqrt(l_EF**2+l_BE**2)theta=math.atan(l_EF/l_BE)point_A=point()point_D=point(x=l_AD)x_data=[]y_data=[]vx_data=[]vy_data=[]ax_data=[]ay_data=[]for i in range(0,360):phi=i*math.pi/180rod_AB=rod(phi,l_AB,omega)point_B=I_rod(point_A,rod_AB).get_e_point()rod_BC=RRR_II_rods_group(point_B,point_D,l_BC,l_CD).get_r1()rod_BF=rod(theta+rod_BC.phi,l_BF,rod_BC.omega,rod_BC.omega)point_F=I_rod(point_B,rod_BF).get_e_point()x_data.append(point_F.x)y_data.append(point_F.y)vx_data.append(point_F.vx)vy_data.append(point_F.vy)ax_data.append(point_F.ax)ay_data.append(point_F.ay)#显示图像plt.figure(figsize=(21,13), dpi=80)ax1=plt.subplot2grid((7,11),(0,0),colspan=4,rowspan=7)ax1 = plt.gca()ax1.set_aspect(1)ax1.set_title("s_F(x,y)")ax1.scatter(x_data,y_data,color="black")phi_x=np.linspace(0,2*math.pi,360)ax2=plt.subplot2grid((7,11),(0,4),colspan=3,rowspan=3)ax2 = plt.gca()ax2.set_title("v_Fx(φ)")ax2.plot(phi_x,vx_data)ax3=plt.subplot2grid((7,11),(0,8),colspan=3,rowspan=3)ax3 = plt.gca()ax3.set_title("v_Fy(φ)")ax3.plot(phi_x,vy_data)ax4=plt.subplot2grid((7,11),(4,4),colspan=3,rowspan=3)ax4 = plt.gca()ax4.set_title("a_Fx(φ)")ax4.plot(phi_x,ax_data)ax5=plt.subplot2grid((7,11),(4,8),colspan=3,rowspan=3)ax5 = plt.gca()ax5.set_title("a_Fy(φ)")ax5.plot(phi_x,ay_data)   plt.show()

生成图表一览



哈工大机械原理连杆机构大作业相关推荐

  1. 哈工大机械原理凸轮机构大作业

    目录 题目要求 公式推导和计算 计算流程图 pyhton代码 生成图表一览 题目要求 公式推导和计算 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210610 ...

  2. 哈工大2021春计算机系统大作业 程序人生-Hello’s P2P

          计算机系统 大作业 题     目 程序人生-Hello's P2P 专       业 计算机类 学     号 1190200613 班     级 1903004 学       生 ...

  3. 哈工大2022春计算机系统大作业:程序人生-Hello‘s P2P

    计算机系统 大作业 题     目 程序人生-Hello's P2P 专       业 计算机类 学   号 120L021305 班   级 2003002 学       生 李一凡 指 导 教 ...

  4. 课程设计_solidworks_机械狗玩具建模,机械原理连杆机构运动

    大三下学期课程设计作业,制作基于机械原理各种连杆.传动杆的小玩具. 我设计的是仿生狗的建模,外观简单但符合机械原理,附有自制的PPT和仿真动画. 软件为solidwork2019版本,(友情提示:低于 ...

  5. 哈工大2022春CSAPP大作业-程序人生(Hello‘s P2P)

    摘  要 本论文研究了hello.c这一简单c语言文件在Linux系统下的整个生命周期,以其原始程序开始,依次深入研究了编译.链接.加载.运行.终止.回收的过程,从而了解hello.c文件的" ...

  6. 哈工大 2021春 计算机系统 大作业程序人生

    计算机系统 大作业 题 目 程序人生-Hello's P2P 专 业 计算机 学 号 1190200828 班 级 1936601 学 生 赵英帅 指 导 教 师 刘宏伟 计算机科学与技术学院 202 ...

  7. 哈工大2022秋计算机系统大作业——程序人生

    目录 第1章 概述 1.1 Hello简介 1.2 环境与工具 1.3 中间结果 1.4 本章小结 第2章 预处理 2.1 预处理的概念与作用 2.2在Ubuntu下预处理的命令 2.3 Hello的 ...

  8. 哈工大 2021春 计算机系统 大作业 L190201101-朴仁洪

    @ 计算机系统 大作业 题 目 程序人生-Hello's P2P 专 业 计算机类 学 号 L190201101 班 级 1903005 学 生 朴仁洪 指 导 教 师 史先俊 计算机科学与技术学院 ...

  9. 编译原理分析器大作业之字幕分析器

    写这篇文章的主要目的呢是分享一下编译原理大作业--电影字幕分析器,分享一下我的做法,可能采用的做法不是特别好的用法,希望各位多多指点,觉得文章不错给点小赞赞喔!!! 题目介绍 写一个srt字幕解释器, ...

最新文章

  1. Go 学习笔记(74)— Go 标准库之 unsafe
  2. 如何编写webService接口
  3. AngularJs学习笔记--expression
  4. linux mysql 升级_linux升级mysql
  5. 【错误记录】Android 低版本使用分区存储错误 ( 低版本存储不得使用 MediaStore )
  6. CSS position 属性
  7. 使用 SqlDataSource 插入、更新和删除数据49
  8. python twisted教程一,异步编程
  9. SpringBoot项目中遇到的BUG
  10. How to change context root of a dynamic web project in Eclipse
  11. 云计算介绍-1.2,IaaS\PaaS\SaaS比较
  12. 用南边代称一个公司,汝竟然也不满?
  13. 证件照制作微信小程序源码
  14. linux行命令测网速,Linux命令行测试网速的方法
  15. 强制删除文件处理程序
  16. java银行账户类_使用Java编写银行账户类(面向对象思考实验)
  17. 物联网关键技术:时序数据库
  18. 基金收益率计算1:资管业务、资管产品和基金
  19. pwnat——一种无需第三方服务器就能完成NAT点对点P2P穿透的基于UDP打洞技术的新方法
  20. 7033: Lounge Lizards(lis)

热门文章

  1. 系统监控工具-glances
  2. 大厂纷纷造车,工程师不够用了
  3. 171. Excel表列序号
  4. 计算机三级东莞考点,2016年9月东莞计算机三级四级准考证打印入口,计算机等级考试时间查询...
  5. 音频/语音处理-综述
  6. android 地图雷达,深入学习百度地图Android SDK v4.0.0【第七关】周边雷达
  7. 类的成员变量赋值测试
  8. 谷歌退出将会给中国互联网带来的10个变化 1
  9. 各行各业如何评价iMindMap思维导图
  10. string 新常量 Empty