1、哈工大材料力学上机编程报告材料力学电算实验压杆的临界力计算 一.概述:本程序使用Microsoft Visual Basic编写,可以对不同材料、不同约束类型、不同截面类型的压杆进行临界力的计算。杆件的参数可以输入,得出结果之后也可以清零。二、问题分析及相关公式:1、压杆稳定当短粗杆受压时(图1),在压力F由小逐渐增大的过程中,杆件始终保持原有的直线平衡形式,直到压力F达到屈服强度载荷Fs (或抗压强度载荷Fb),杆件发生强度破坏时为止。但是,如果用相同的材料,做一根与图1a所示的同样粗细而比较长的杆件(图1b),当压力F比较小时,这一较长的杆件尚能保持直线的平衡形式,而当压力F逐渐增大至某数
2、值F1时,杆件将突然变弯,不再保持原有的直线平衡形式,因而丧失了承载能力。我们把受压直杆突然变弯的现象,称为丧失稳定或失稳。此时,F1可能远小于Fs (或Fb)。可见,细长杆在尚未产生强度破坏时,就因失稳而破坏。图1在研究压杆稳定时,我们用一微小横向干扰力使处于直线平衡状态的压杆偏离原有的位置,如图1所示。当轴向压力F由小变大的过程中,可以观察到:1)当压力值F1较小时,给其一横向干扰力,杆件偏离原来的平衡位置。若去掉横向干扰力后,压杆将在直线平衡位置左右摆动,最终将恢复到原来的直线平衡位置。2)当压力值F2超过其一限度Fcr时,平衡状态的性质发生了质变。这时,只要有一轻微的横向干扰,压杆就会
3、继续弯曲,不再恢复原状,。 3)界于前二者之间,存在着一种临界状态。当压力值正好等于Fcr时,一旦去掉横向干扰力,压杆将在微弯状态下达到新的平衡,既不恢复原状,也不再继续弯曲,。临界状态是杆件从稳定平衡向不稳定平衡转化的极限状态。压杆处于临界状态时的轴向压力称为临界力或临界载荷,用Fcr表示。2、 两端铰支细长压杆的临界力图2为一两端为球形铰支的细长压杆,其临界力公式为:图2 (1)式(1)又称为欧拉公式。3、不同杆端约束细长压杆的临界力(1)一端固定另一端自由细长压杆的临界力图3为端固定另一端自由的压杆。当压杆处于临界状态时,它在曲线形式下保持平衡。将挠曲线AB对称于固定端A向下延长,如图中
4、假想线所示。延长后挠曲线是一条半波正弦曲线,与本章第二节中两端铰支细长压杆的挠曲线一样。所以,对于端固定另一端自由且长为的压杆,其临界力等于两端铰支长为的压杆的临界力,即图3 图4 图5(2)两端固定细长压杆的临界力在这种杆端约束条件下,挠曲线如图4所示。该曲线的两个拐点C和D分别在距上、下端为处。居于中间的长度内,挠曲续是半波正弦曲线。所以,对于两端固定且长为的压杆,其临界力等于两端铰支长为的压杆的临界力,即(3) 一端固定另一端铰支细长压杆的临界力在这种杆端约束条件下,挠曲线形状如图5所示。在距铰支端B为处,该曲线有一个拐点C。因此,在长度内,挠曲线是一条半波正弦曲线。所以,对于一端固定另
5、一端铰支且长为的压杆,其临界力等于两端铰支长为的压杆的临界力,即综上所述,只要引入相当长度的概念,将压杆的实际长度转化为相当长度,便可将任何杆端约束条件的临界力统一写 (2)称为欧拉公式的一般形式。由式(2)可见,杆端约束对临界力的影响表现在系数上。称为长度系数,为压杆的相当长度,表示把长为的压杆折算成两端铰支压杆后的长度。几种常见约束情况下的长度系数列入表1中。表1 压杆的长度系数压杆的约束条件长度系数两端铰支一端固定,另一端自由两端固定一端固定,另一端铰支=1=2=1/20.7三、VB程序源代码/ 111Dlg.cpp : implementation file/#include stda
6、fx.h#include 111.h#include 111Dlg.h#include#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic: CAboutDlg();/ Dialog Data /AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ; /AFX_DATA / ClassWiz
7、ard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL/ Implementationprotected: /AFX_MSG(CAboutDlg) /AFX_MSG DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) /AFX_DATA_INIT(CAbou
8、tDlg) /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_MESSAGE_MAP()/ CMy111Dlg dialogCMy111Dlg:CMy111Dlg(CWnd* pParen
9、t /*=NULL*/) : CDialog(CMy111Dlg:IDD, pParent) /AFX_DATA_INIT(CMy111Dlg) m_A1 = FALSE; m_A2 = FALSE; m_A3 = FALSE; m_A4 = FALSE; m_A5 = FALSE; m_B1 = FALSE; m_B2 = FALSE; m_B3 = FALSE; m_C1 = FALSE; m_C2 = FALSE; m_C3 = FALSE; m_b = 0.0f; m_h = 0.0f; m_DD = 0.0f; m_D = 0.0f; m_d = 0.0f; m_l = 0.0f;
10、m_r = 0.0; m_Fcr = 0.0; /AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMy111Dlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CMy111Dlg) DDX_Check(pDX, IDC_CHECK1, m_A1); DDX_C
11、heck(pDX, IDC_CHECK2, m_A2); DDX_Check(pDX, IDC_CHECK3, m_A3); DDX_Check(pDX, IDC_CHECK4, m_A4); DDX_Check(pDX, IDC_CHECK5, m_A5); DDX_Check(pDX, IDC_CHECK6, m_B1); DDX_Check(pDX, IDC_CHECK7, m_B2); DDX_Check(pDX, IDC_CHECK8, m_B3); DDX_Check(pDX, IDC_CHECK9, m_C1); DDX_Check(pDX, IDC_CHECK10, m_C2)
12、; DDX_Check(pDX, IDC_CHECK11, m_C3); DDX_Text(pDX, IDC_EDIT1, m_b); DDX_Text(pDX, IDC_EDIT2, m_h); DDX_Text(pDX, IDC_EDIT3, m_DD); DDX_Text(pDX, IDC_EDIT4, m_D); DDX_Text(pDX, IDC_EDIT5, m_d); DDX_Text(pDX, IDC_EDIT6, m_l); DDX_Text(pDX, IDC_EDIT7, m_r); DDX_Text(pDX, IDC_EDIT8, m_Fcr); /AFX_DATA_MA
13、PBEGIN_MESSAGE_MAP(CMy111Dlg, CDialog) /AFX_MSG_MAP(CMy111Dlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_BUTTON3, OnButton3) ON_BN_CLICKED(IDC_CHECK1, OnCheck1) ON_BN_CLICKED(IDC_CHECK10, OnChe
14、ck10) ON_BN_CLICKED(IDC_CHECK11, OnCheck11) ON_BN_CLICKED(IDC_CHECK2, OnCheck2) ON_BN_CLICKED(IDC_CHECK3, OnCheck3) ON_BN_CLICKED(IDC_CHECK4, OnCheck4) ON_BN_CLICKED(IDC_CHECK5, OnCheck5) ON_BN_CLICKED(IDC_CHECK6, OnCheck6) ON_BN_CLICKED(IDC_CHECK7, OnCheck7) ON_BN_CLICKED(IDC_CHECK8, OnCheck8) ON_B
15、N_CLICKED(IDC_CHECK9, OnCheck9) /AFX_MSG_MAPEND_MESSAGE_MAP()/ CMy111Dlg message handlersBOOL CMy111Dlg:OnInitDialog() CDialog:OnInitDialog(); / Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX
16、 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 dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon / TODO: Ad
17、d extra initialization here return TRUE; / return TRUE unless you set the focus to a controlvoid CMy111Dlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); / If you add a minimize button to your di
18、alog, 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 CMy111Dlg:OnPaint() if (IsIconic() CPaintDC dc(this); / device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHd
19、c(), 0); / Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; / Draw the icon dc.DrawIcon(x, y, m_hIcon); else CDialog
20、:OnPaint(); / The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CMy111Dlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;void CMy111Dlg:OnButton1() /计算柔度 UpdateData(); if(m_B1)/两端固定,长度因数=0.5 if(m_C1)/矩形截面 m_r=1.732*m_l/m_h;/柔度=(l)/i,其中惯性矩i=h/(2*1.73
21、2) if(m_C2)/实心圆柱截面 m_r=2*m_l/m_DD;/惯性矩i=D/4 if(m_C3)/空心圆柱截面 m_r=2*m_l/sqrt(m_D*m_D+m_d*m_d);/惯性矩i=sqrt(D*D+d*d)/4 if(m_B2)/一端固定,一端铰支,长度因数=0.7 if(m_C1) m_r=1.732*1.4*m_l/m_h; if(m_C2) m_r=2.8*m_l/m_DD; if(m_C3) m_r=2.8*m_l/sqrt(m_D*m_D+m_d*m_d); if(m_B3)/两端铰支,长度因数=1 if(m_C1) m_r=1.732*2*m_l/m_h; if(m
22、_C2) m_r=4*m_l/m_DD; if(m_C3) m_r=4*m_l/sqrt(m_D*m_D+m_d*m_d); UpdateData(FALSE); void CMy111Dlg:OnButton2() /计算临界力 UpdateData(); if(m_A1)/材料为硅钢,p=100,s=60,E=150GPa,a=578MPa,b=3.744MPa if (m_r=100)/=p,为细长杆,用欧拉公式 if(m_C1)/矩形截面 m_Fcr=9.87*150000*m_b*m_h/(m_r*m_r);/欧拉公式cr=*E/(*),Fcr=cr*A,其中A为截面面积 m_Fcr
23、=7.75*150000*m_DD*m_DD/(m_r*m_r); if(m_C3)/空心圆柱截面 m_Fcr=7.75*150000*(m_D*m_D-m_d*m_d)/(m_r*m_r); if(m_r60)/Sp,为中长杆,用经验公式 if(m_C1)/矩形截面 m_Fcr=(578-3.744*m_r)*m_b*m_h;/经验公式cr=a-b*,Fcr=cr*A,其中A为截面面积 if(m_C2)/实心圆柱截面 m_Fcr=(578-3.744*m_r)*0.785*m_DD*m_DD; if(m_C3)/空心圆柱截面 m_Fcr=(578-3.744*m_r)*0.785*(m_D*
24、m_D-m_d*m_d); if(m_r=60)/=100) if(m_C1) m_Fcr=9.87*200000*m_b*m_h/(m_r*m_r); if(m_C2) m_Fcr=7.75*200000*m_DD*m_DD/(m_r*m_r); if(m_C3) m_Fcr=7.75*200000*(m_D*m_D-m_d*m_d)/(m_r*m_r); if(m_r57) if(m_C1) m_Fcr=(304-1.12*m_r)*m_b*m_h; if(m_C2) m_Fcr=(304-1.12*m_r)*0.785*m_DD*m_DD; if(m_C3) m_Fcr=(304-1.1
25、2*m_r)*0.785*(m_D*m_D-m_d*m_d); if(m_r=86) if(m_C1) m_Fcr=9.87*200000*m_b*m_h/(m_r*m_r); if(m_C2) m_Fcr=7.75*200000*m_DD*m_DD/(m_r*m_r); if(m_C3) m_Fcr=7.75*200000*(m_D*m_D-m_d*m_d)/(m_r*m_r); if(m_r60) if(m_C1) m_Fcr=(461-2.568*m_r)*m_b*m_h; if(m_C2) m_Fcr=(461-2.568*m_r)*0.785*m_DD*m_DD; if(m_C3) m_Fcr=(461-2.568*m_r)*0.785*(m_D*m_D-m_d*m_d); if(m_r=50) if(m_C1) m_Fcr=9.87*70000*m_b*m_h/(m_r*m_r);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1