哈工大材料力学上机实验课作业_第1页
哈工大材料力学上机实验课作业_第2页
哈工大材料力学上机实验课作业_第3页
哈工大材料力学上机实验课作业_第4页
哈工大材料力学上机实验课作业_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Harbin Institute of Technology材料力学电算大作业题目名称:各种条件下的任意截面的弯矩,挠度作者班号:1108108作者学号:1110810812作者:刘涛指导教师:王春香完成时间:2013/5/23一、 问题的提出该程序可以解决的问题:一个力作用下1圆柱面杆2矩形截面杆3工字梁截面杆4空心圆柱截面杆 的弯矩和挠度二、 程序流程图输入杆长mm,力FkN,力作用点到左端面A的距离amm输入梁的弹性模量Gpa 输入所求端面到左端面的距离X 输入梁的形状 计算惯性矩 计算并输出弯矩 根据梁的形状不同输入不同的数值 计算并输出挠度三、不同力作用下的弯矩,挠度1.一个力作用下

2、的任意截面的弯矩,挠度程序:#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926int get_I(int kind);int main() float f=100, l=100, a=50, b, x=60; float M, v; float E = 200, I; int kind=1; printf("请输入杆长l(mm),力FkN,力作用点到左端面A的距离a(mm)n"); scanf("%f%f%f",&

3、l,&f,&a); l /= 1000; f *= 1000; a /= 1000; printf("请输入梁的弹性模量(GPa)n"); scanf("%f",&E); E *= 1.e9; printf("请输入所求端面到左端面A的距离Xn"); scanf("%f",&x); x /= 1000; printf("请输入梁的截面形状圆柱面=1,矩形梁=2,工字梁=3,空心圆柱梁=4n"); scanf("%d",&kind); I

4、 = get_I(kind);/计算惯性矩 b = l - a; M = f * x;/计算弯矩 if (0 <= x && x <= a) v = (-1) * f * b * x *(l*l - x*x - b*b) / (6 * E * I * l); else if (a < x && x <= l) v = (-1) * f * b * x * (l/b * pow(x-a), 3) + (l*l - b*b)*x -pow(x, 3) / (6 * E * I * l); else v = 0; printf("er

5、ror!"); exit (0); printf("转矩M = %gNmn", M); printf("挠度V = %gmn", v); system("pause"); return 0;int get_I(int kind)/计算截面的I惯性矩 float d,b, h;/矩形梁,工字梁,圆柱梁 float d2, alpha;/空心圆柱梁 float I; /圆柱面=1,矩形梁=2,工字梁=3,空心圆柱梁=4 if (1 = kind)/圆柱面=1 printf ("请输入圆柱梁的直径dn"); s

6、canf("%f", &d); I = PI * pow(d, 4) / 64; else if (2 = kind)/矩形梁=2 printf ("请输入矩形截面的b和hn"); scanf ("%f%f",&b, &h); I = b * pow(h, 3) / 12; /* else if (3 = kind)/工字梁=3 printf("|-|n"); printf("| |tn"); printf(" |d|n"); printf("

7、; | |n"); printf("| |n"); printf("|b|n"); /* printf ("请输入工字梁的翼缘厚度t,腹板厚度d,翼缘宽度b,梁高度hn"); scanf ("%f%f%f%f",&t,&d,&b,&h); */ printf ("请查附表B输入工字梁的惯性矩In"); scanf ("%f",&I); /*/ else if (4 = kind)/空心圆柱梁=4 printf ("请

8、输入圆柱梁的直径d和内外径比例alphan"); scanf ("%f%f",&d2, &alpha); I = PI * pow(d2, 4) *(1 - pow(alpha, 4) / 64; else I = 0; return I;2.一个力偶作用下的任意截面的弯矩,挠度#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926#define TORAD (PI/180)float get_I(int kind);

9、float get_V_M0(float E, float Length,float I,float x, float M0, float a_L );float get_M_M0(float Length, float M0,float a_L, float x);int main() int kind;/截面形状 float Length, a_L, x; float E, I, M0; float v, M;/所求截面的挠度,弯矩 printf(" Input Length(mm): "); scanf ("%f", &Length); L

10、ength /= 1000;/*单位转化*/ printf("Input shape (circle=1,scquare=2,gongZL=3,blank circle=4): "); scanf("%d",&kind); printf("Input E(GPa): "); scanf("%f",&E); E *= 1.e9;/*单位转化*/ printf("Input M0(N*): "); scanf ("%f", &M0); printf(&qu

11、ot;Input a_L( mm) "); scanf ("%f", &a_L); a_L /= 1000;/*单位转化*/ while(a_L < 0 | a_L > Length) printf("力偶没有作用在杆上,请重新输入作用点位置: n"); printf("请输入力偶作用点距离左端面的距离a_L( mm) "); scanf ("%f", &a_L); a_L /= 1000;/*单位转化*/ printf("Input x ( mm): ")

12、; scanf ("%f", &x); x /= 1000;/*单位转化*/ I = get_I(kind ); v = get_V_M0(E, Length, I, x, M0, a_L ); M = get_M_M0(Length, M0, a_L, x); printf("Toatal M = %g Nmn", M); printf("Toatal v = %g mmn", v); return 0; system("pause");float get_I(int kind)/计算截面的I惯性矩 fl

13、oat d,b, h;/矩形梁,工字梁,圆柱梁 float d2, alpha;/空心圆柱梁 float I; /float t; if (1 = kind)/圆柱面=1 printf ("Input dn"); scanf("%f", &d); I = PI * pow(d, 4) / 64; else if (2 = kind)/矩形梁=2 printf ("Input b和hn"); scanf ("%f%f",&b, &h); I = b * pow(h, 3) / 12; /* e

14、lse if (3 = kind)/工字梁=3 printf("|-|n"); printf("| |tn"); printf(" |d|n"); printf(" | |n"); printf("| |n"); printf("|b|n"); printf ("Input In"); scanf ("%f",&I); else if (4 = kind)/空心圆柱梁=4 printf ("Input d and al

15、phan"); scanf ("%f%f",&d2, &alpha); I = PI * pow(d2, 4) *(1 - pow(alpha, 4) / 64; else I = 0; return I;float get_V_M0(float E, float Length, float I, float x, float M0, float a_L ) float v; float m, b; b = Length - a_L; m = M0; if (E < 1.e7) E *= 1.e9; if(x >= 0 &&am

16、p; x <= a_L) v = m * x * (3*Length*Length - 3*b*b - x*x)/(6*E*I*Length ); else if (x > a_L && x <= Length) v = m * (-pow(x, 3) + 3*Length*pow(x-a_L, 2) + (pow(Length, 2) - 3*b*b)*x) / (6*E*I*Length ); else printf ("ERROR!n"); v = 0; exit(0); return v;float get_M_M0(float L

17、ength, float M0, float a_L, float x) float F_L, F_R;/左右两处的支反力 float m, b; float M;/所求任意截面的弯矩 b = Length - a_L; m = M0; F_L = - M0 / Length; F_R = - F_L; if(x >= 0 && x <= a_L) M = F_L * x; else if (x > a_L && x <= Length) M = F_R * (x - a_L); else printf ("ERROR!n&qu

18、ot;); M = 0; exit(0); return M;3. 一段分布力作用下的任意截面的弯矩,挠度#include<stdio.h>#include<math.h>#include<stdlib.h># define PI 3.1415926float get_I(int kind);/计算截面的I惯性矩float get_M_q(float E, float I, float Length, float x, float q, float a_q_L, float a_q_R);float get_V_q(float E, float I, flo

19、at Length, float x, float q, float a_q_L, float a_q_R);int main()float Length, a_q_L, a_q_R, q;float E, I;float M, V, x;int kind;printf("请输入梁的长度Length(单位:mm) ");scanf("%f",&Length);Length *= 1.e-3;printf("请输入分布力最左端距离梁左端距离a_q_L(单位:mm) ");scanf("%f",&a_q

20、_L);a_q_L *= 1.e-3;printf("请输入分布力最左端距离梁右端距离a_q_R(单位:mm) ");scanf("%f",&a_q_R);a_q_R *= 1.e-3;printf("请输入分布力q:(单位:kN) ");scanf("%f",&q);q *= 1.e3;printf("请输入梁的弹性模量E(单位:GPa) ");scanf("%f",&E);E *= 1.e9; printf("请输入截面形状(圆柱面=1,

21、矩形梁=2,工字梁=3,空心圆柱梁=4): "); scanf("%d",&kind);I = get_I(kind);printf("请输所求截面距离左端面距离x(单位:mm) ");scanf("%f",&x);x *= 1.e-3;M = get_M_q(E, I, Length, x, q, a_q_L, a_q_R);V = get_V_q(E, I, Length, x, q, a_q_L, a_q_R);printf("所求截面的弯矩是:%g Nmn",M);printf(&

22、quot;所求截面的挠度是:%g mn",V);system ("pause");return 0;float get_I(int kind)/计算截面的I惯性矩 float d,b, h;/矩形梁,工字梁,圆柱梁 float d2, alpha;/空心圆柱梁 float I; if (1 = kind)/圆柱面=1 printf ("请输入圆柱梁的直径d(单位:mm) "); scanf("%f", &d); d *= 1.e-3; I = PI * pow(d, 4) / 64; else if (2 = kin

23、d)/矩形梁=2 printf ("请输入矩形截面的b和h(单位:mm) "); scanf ("%f%f",&b, &h); b *= 1.e-3; h *= 1.e-3; I = b * pow(h, 3) / 12; else if (3 = kind)/工字梁=3 printf("|-|n"); printf("| |tn"); printf(" |d|n"); printf(" | |n"); printf("| |n"); pr

24、intf("|b|n"); printf ("请查附表B输入工字梁的惯性矩I "); scanf ("%f",&I); else if (4 = kind)/空心圆柱梁=4 printf ("请输入圆柱梁的直径d和内外径比例alpha "); scanf ("%f%f",&d2, &alpha); d2 *= 1.e-3; I = PI * pow(d2, 4) *(1 - pow(alpha, 4) / 64; else I = 0; return I;float ge

25、t_M_q(float E, float I, float Length, float x, float q, float a_q_L, float a_q_R) float c_q, fa, fb; float M; c_q = Length - a_q_L - a_q_R;fa = (a_q_R + c_q/2) * c_q * q / Length;fb = (a_q_L + c_q/2) * c_q * q / Length;if (x >= 0) && (x <= a_q_L)M = fa * x / (E * I);else if (x > a_q_L) && (x <=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论