1、各专业全套优秀毕业设计图纸汽车设计课程设计说明书 题 目: 曲柄连杆机构受力分析设计者: 学 号: 指导教师: 吴参 2015 年 1 月 02 日一、 课程设计要求根据转速、缸内压力、曲柄连杆机构结构参数,计算发动机运转过程中曲柄连杆机构受力,完成计算报告,绘制曲柄连杆机构零件图。 1.1 计算要求掌握连杆往复惯性质量与旋转离心质量折算方法;掌握曲轴旋转离心质量折算方法;掌握活塞运动速度一阶、二阶分量计算方法;分析活塞侧向受力与往复惯性力及相应设计方案;分析连杆力及相应设计方案;采用C语言编写曲柄连杆机构受力分析计算程序;完成曲柄连杆机构受力计算说明书。 1.2 画图要求活塞侧向力随曲轴转角
2、变化连杆对曲轴推力随曲轴转角变化连杆轴承受力随曲轴转角变化主轴承受力随曲轴转角变化活塞、连杆、曲轴零件图(任选其中一个)二、 计算参数2.1 曲轴转角及缸内压力参数曲轴转速为7000 r/min,缸内压力曲线如图1所示。 图1 缸内压力曲线2.2发动机参数本计算过程中,发动机结构及运动参数如表1所示。参数指标发动机类型汽油机缸数1缸径D mm91冲程S mm63曲柄半径r mm31.5连杆长l mm117偏心距e mm0排量 mL400活塞组质量 kg0.425连杆质量 kg0.46曲轴旋转离心质量 kg0.231标定功率及相应转速 kw/(r/min)17/7500最高爆发压力 MPa5.2
3、4MPa表1 发动机主要参数三、 计算内容和分析图3.1 运动分析3.1.1曲轴运动近似认为曲轴作匀速转动,其转角 3.1.2活塞运动规律图2 中心曲轴连杆机构简图1)活塞位移 ,其中2) 活塞速度 令,有, 最大活塞速度 平均活塞速度 3) 活塞加速度 令,有,由,即或时,得正、负最大加速度:个负最大加速度,即 3.1.3连杆运动规律1)连杆摆动角由,得 2)连杆摆动角速度 3)连杆摆动角加速度 3.2活塞气体力活塞气体力 N其中:缸内气体压力 bar (1bar=pa);大气压力 一般取=1bar; cm23.3 往复惯性力往复运动质量 , kg往复惯性力 3.4 曲轴连杆机构旋转离心力旋
4、转运动质量 ,曲轴质量 kg旋转离心力 N两个分量: ;3.5 连杆受力合成气体压力与往复惯性力作用在气缸中心线上,将往复惯性力用单位活塞面积的力计量,则合成的单位活塞面积的力为: 对曲轴连杆机构的作用如右图所示。设合成力p作用于活塞销中心A,它可分解为两个力:垂直气缸中心线将活塞压向缸壁的侧压力 活塞侧向力曲线如图3所示 图3 活塞侧向力曲线沿连杆轴线作用的连杆力 连杆力曲线如图4所示图4 连杆力曲线将沿作用线移至作用点B,可进一步分解为:对曲轴销切向力 对曲轴销径向力 3.6 曲轴受力合成根据连杆对曲轴推力和旋转离心力,计算曲轴连杆轴颈力。以单位活塞面积计算。 1)连杆大头的旋转离心力 2
5、)曲轴销负荷 ,其中 为连杆力,将在x,y方向投影,在x、y方向的力的曲线如图5(a)(b)所示图5-(a)图5-(b)3) 连杆轴承负荷连杆轴承负荷是曲轴销对轴承的反作用力。大小相等,方向相反,即 。 的方向角为: 4)主轴颈负荷 的大小为 5) 主轴承负荷主轴承负荷与主轴颈负荷互为反作用,在任何时刻大小相等,方向相反。即 因参考坐标系互相转动角,所以的方位角 四、 C+程序:(见附录1)五、 总结通过本次汽车设计的课程设计,在老师的指导下,我对曲柄连杆机构的结构设计有了进一步的理解。1)活塞结构:为了减轻活塞质量,减少其往复惯性力,其选用材料为铝;在裙部设计方面,削掉不承受侧向力部分,而在
6、受力部位则延长加厚;活塞销与活塞装配方面,在冷态下,为间隙配合,在工作状态,由于铝的膨胀系数较大,它们的装配为过盈配合。2)连杆结构:采用工字型设计,既减轻连杆的质量,减小往复惯性力和离心力,同时也增强了抗弯性能。3)螺栓预紧力:应选择适当值。若预紧力过小,连杆大头盖与轴承会出现缝隙,影响发动机稳定工作;若预紧力过大,则会造成连杆被拉断。 学习汽车设计,进一步加深了我对汽车的了解和印象。在毕业设计中我选择了曲柄连杆机构受力分析设计,是理论与实际相结合,使我能够更好的掌握专业知识。六、参考资料内燃机设计 杨连生 中国农业机械出版社,1981汽车发动机现代设计 徐兀 人民交通出版社,1995附录1
7、:C+程序:/ CrankShaftDlg.cpp : implementation file/#include stdafx.h#include CrankShaft.h#include CrankShaftDlg.h#include math.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();
8、/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP
9、();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_M
10、ESSAGE_MAP()/ CCrankShaftDlg dialogCCrankShaftDlg:CCrankShaftDlg(CWnd* pParent /*=NULL*/): CDialog(CCrankShaftDlg:IDD, pParent)/AFX_DATA_INIT(CCrankShaftDlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win3
11、2m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CCrankShaftDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CCrankShaftDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CCrankShaftDlg, CDialog)/AFX_MSG_MAP(CCrankShaftDlg)ON_W
12、M_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_COMPUT, OnComput)ON_BN_CLICKED(IDEXIT, OnExit)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CCrankShaftDlg message handlersBOOL CCrankShaftDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the s
13、ystem command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_
14、hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CCrankShaftDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();else
15、CDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CCrankShaftDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / d
16、evice context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cy
17、Icon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CCrankShaftDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CCrankShaftDlg:OnComput() / TODO: Add your control no
18、tification handler code here/* 400汽油机曲轴连杆活塞组运动学计算程序 作者: 学号:/ 发动机主要参数 参数指标 发动机类型汽油机缸数1缸径D mm91冲程S mm63曲柄半径r mm31.5连杆长l mm117偏心距e mm0排量 mL400活塞组质量 kg0.425连杆质量 kg0.46曲轴旋转离心质量 kg0.231标定功率及相应转速 kw/(r/min)17/7500最高爆发压力 MPaMPa缸内气体压力 CylinderPressure.txt /*/int iDataNum = 0;/数据点数/结构参数double dEngineSpeed = 7
19、000;/发动机转速r/mindouble dOmiga = 733.04;/发动机转速rad/sdouble dAlpha = 0;/曲轴转角raddouble dSinBeta = 0;/连杆摆角sindouble dCosBeta = 0;/连杆摆角cosdouble dLinker = 0.117;/连杆长mdouble dStroke = 0.063;/冲程mdouble dPistonD = 0.091;/缸径 mdouble dLambda = 0.27;/连杆比double dPiston_m = 0.425;/活塞质量 kgdouble dLinker_m = 0.46;/连
20、杆质量 kgdouble dCrankShaft_m = 0.231;/曲轴旋转离心质量/计算结果double dPiston_F_P = 0;/活塞压力Ndouble dPiston_X = 0;/活塞位移mdouble dPiston_V = 0;/活塞速度m/sdouble dPiston_A = 0;/活塞加速度m/s2double dPiston_F_C = 0;/活塞侧向力 Ndouble dPiston_F_G = 0;/往复惯性力 Ndouble dLinker_F = 0;/连杆力 Ndouble dCrankShaft_F_R = 0;/曲轴旋转离心力 Ndouble dC
21、rankShaft_F_x = 0;/曲轴力x Ndouble dCrankShaft_F_y = 0;/曲轴力y N/FILE* pFileRead = NULL;/源数据文件指针FILE* pFileWrite = NULL;/结果数据文件指针double dPAI = 3.14159;float fTmp10 = 0;/临时数据/dEngineSpeed = 7000.0;dOmiga = dEngineSpeed * 2.0 * dPAI / 60.0;dLambda = dStroke / (dLinker * 2);/if (pFileRead = fopen(CylinderPr
22、essure.txt , r) = NULL)AfxMessageBox(源数据文件错误);return;if (pFileWrite = fopen(Result.txt , w) = NULL)AfxMessageBox(结果数据文件错误);return;fprintf(pFileWrite , 序号 曲轴转角rad 活塞位移m 活塞速度m/s 活塞加速度m/s2 活塞气压力N 往复惯性力N 活塞侧向力N 连杆力N 旋转离心力N 曲轴连杆轴颈力x/N 曲轴连杆轴颈力y/Nn);/计算while (fscanf(pFileRead , %f%f , &fTmp0 , &fTmp1) != E
23、OF)dAlpha = fTmp0 * dPAI / 180.0;dSinBeta = dLambda * sin(dAlpha);dCosBeta = sqrt(1.0 - dSinBeta * dSinBeta);/dPiston_X = 0.5 * dStroke * (1.0 - cos(dAlpha) + (1.0 / dLambda) * (1 - dCosBeta);/dPiston_V = 0.5 * dStroke * dOmiga * (sin(dAlpha) + cos(dAlpha) * dSinBeta / dCosBeta);/dPiston_A = 0.5 * d
24、Stroke * dOmiga * dOmiga * ( cos(dAlpha) - sin(dAlpha) * dSinBeta / dCosBeta + dLambda * cos(dAlpha) * cos(dAlpha) / pow(dCosBeta , 3);/dPiston_F_P = fTmp1 * 1000000.0 * dPAI * dPistonD * dPistonD / 4.0;/根据以上结果计算往复惯性力、活塞侧向力、连杆力、旋转离心力、曲轴连杆轴颈力/往复惯性力 = (活塞 + 1/3连杆质量)活塞加速度dPiston_F_G = (dPiston_m + dLin
25、ker_m / 3.0) * dPiston_A;/活塞侧向力 = (活塞气体力 + 往复惯性力)/ tg(beta)dPiston_F_C = (dPiston_F_P + dPiston_F_G) * dSinBeta / dCosBeta;/连杆力 = (活塞气体力 + 往复惯性力)/ cos(beta)dLinker_F = (dPiston_F_P + dPiston_F_G) / dCosBeta;/旋转离心力 = (2/3连杆质量 + 曲轴质量) romiga2dCrankShaft_F_R = (dCrankShaft_m + 2.0 * dLinker_m / 3.0) *
26、(0.5 * dStroke) * dOmiga * dOmiga;/曲轴连杆轴颈力x = 曲轴旋转离心力*sin(alpha)+连杆力*sin(beta)dCrankShaft_F_x = dCrankShaft_F_R * cos(dAlpha) + dLinker_F * dSinBeta;/曲轴连杆轴颈力y = 曲轴旋转离心力*cos(alpha)+连杆力*cos(beta)dCrankShaft_F_y = dCrankShaft_F_R * sin(dAlpha) + dLinker_F * dCosBeta;/fprintf(pFileWrite , %d %f %f %f %f
27、 %f %f %f %f %f %f %fn , iDataNum , dAlpha , dPiston_X , dPiston_V , dPiston_A,dPiston_F_P,dPiston_F_G,dPiston_F_C,dLinker_F,dCrankShaft_F_R , dCrankShaft_F_x,dCrankShaft_F_y);iDataNum+;/结束fclose(pFileRead);fclose(pFileWrite);AfxMessageBox(400汽油机曲轴连杆活塞组运动学计算完成);void CCrankShaftDlg:OnExit() / TODO: Add your control notification handler code hereCDialog:OnOK();16