当前位置:    首页  虚拟仿真实验平台
杆机构运动综合实验
发布部门:  发布时间: 2017-07-25  浏览次数: 563

实验项目名称:

杆机构运动综合实验

项目介绍:

课程性质及背景:

本课程是机械设计及其自动化专业的专业课,是一门理论性和实践性都较强的课程。通过介绍采用解析法进行常见机构的运动分析和综合,使学生面对生产实践中现代机械高速化、精密化发展趋势,掌握精度高的机构设计原理和方法以适应轻工机械发展的需求。

实验课程特点及必要性:

实验教学是本课程的重要环节,是课堂教学理论付诸实践应用的重要手段。在学习杆机构综合通用理论方法的基础上,掌握采用C语言编写杆机构运动综合程序进行杆机构运动综合的手段和方法。结合实际机构,通过编程及上机调试,熟悉程序设计的关键技术。

项目目的:

1)掌握杆机构综合方法的思路和建立数学模型;

2)通过实验掌握利用计算机语言进行杆机构综合的方法。

面向理论课程:

机构设计

面向专业:

机械设计及其自动化

仪器硬件设备及软件环境:

1)VC6.0编程软件1套;

2)PC机1台;

实验项目功能及效果:

实验内容或任务:

已知四杆导引机构连杆的三个位置,即连杆上P点的三个位置及连杆的两个转角,建立数学模型,推导位移、速度和加速度方程,并编制程序综合该四杆导引机构。

实验效果:

1)编辑源程序

2)运行和调试程序

输入两组不同的固定铰链坐标,即可求出对应的活动铰链坐标。

附件

#include <stdio.h>

#include <math.h>

#define E0 1e-9

#define P 3.1415926

#define m 2

double G(double a[m][m],int n,double  b[m])    

{

    int  i,j,k,i1,j1;

    double  temp;

    int  row_maxmod;

    double  element_maxmod;

    for(j=0;j<m;j++)

    {

        element_maxmod=a[j][j];

        row_maxmod=j;

        for(i=j+1;i<m;i++)   

            if(fabs(element_maxmod)<fabs(a[i][j]))

            {

                element_maxmod=a[i][j];

                row_maxmod=i;

            }

        if(fabs(element_maxmod)<E0)

        {

        printf(系数行列式为零,线性方程组无解!\n);

            return  NULL;

        }

        if(row_maxmod!=j)

        {

            for(k=j;k<m;k++)             

{

                temp=a[j][k];

                a[j][k]=a[row_maxmod][k];

                a[row_maxmod][k]=temp;

            }

            temp=b[j];

            b[j]=b[row_maxmod];

            b[row_maxmod]=temp;

        }

        for(k=j;k<m;k++)    

            a[j][k]/=element_maxmod;

        b[j]/=element_maxmod;

        for(i1=j+1;i1<m;i1++)

        {

            temp=a[i1][j];

            for(j1=j;j1<m;j1++)

                a[i1][j1]-=a[j][j1]*temp;

            b[i1]-=b[j]*temp;

        }

    }

    for(i=m-2;i>=0;i--)     

        for(j=1;j>i;j--)

            b[i]-=a[i][j]*b[j];

    return  b[n];

}

void main()

{double  p1x=1,p1y=1,p2x=2,p2y=0.5,p3x=3,p3y=1.5,o12=0.0,o13=P/4.0,a0x,a0y;

double A[2][2],B[2],V[2];

printf(请输入固定铰点坐标a0x  a0y\n);

scanf(%lf  %lf,&a0x,&a0y);

A[0][0]=cos(o12)*(p2x-p1x*cos(o12)+p1y*sin(o12))+sin(o12)*(p2y-p1x*sin(o12)-p1y*cos(o12))+(1-cos(o12))*a0x-sin(o12)*a0y;

A[0][1]=-sin(o12)*(p2x-p1x*cos(o12)+p1y*sin(o12))+cos(o12)*(p2y-p1x*sin(o12)-p1y*cos(o12))+(1-cos(o12))*a0y+sin(o12)*a0x;

A[1][0]=cos(o13)*(p3x-p1x*cos(o13)+p1y*sin(o13))+sin(o13)*(p3y-p1x*sin(o13)-p1y*cos(o13))+(1-cos(o13))*a0x-sin(o13)*a0y;

A[1][1]=-sin(o13)*(p3x-p1x*cos(o13)+p1y*sin(o13))+cos(o13)*(p3y-p1x*sin(o13)-p1y*cos(o13))+(1-cos(o13))*a0y+sin(o13)*a0x;

B[0]=(p2x-p1x*cos(o12)+p1y*sin(o12))*a0x+(p2y-p1x*sin(o12)-p1y*cos(o12))*a0y-sin(o12)*sin(o12)/2.0-(p2y-p1x*sin(o12)-p1y*cos(o12))*(p2y-p1x*sin(o12)-p1y*cos(o12))/2.0;

B[1]=(p3x-p1x*cos(o13)+p1y*sin(o13))*a0x+(p3y-p1x*sin(o13)-p1y*cos(o13))*a0y-sin(o13)*sin(o13)/2.0-(p3y-p1x*sin(o13)-p1y*cos(o13))*(p3y-p1x*sin(o13)-p1y*cos(o13))/2.0;

V[0]=G(A,0,B),V[1]=G(A,1,B);

printf(a1x=%lf   a1y=%lf\n,V[0],V[1]);

}

备注

要求学生有C语言编程能力



联系方式 网站地图 留言板
李立伟设计
地址:郑州市东风路5号郑州轻工业学院机电工程学院    邮编:450002    电话:0371-63556785