! ******************************************************************** ! ! Данная программа входит в набор программ SMs1.inp - SMs10.inp ! учебного пособия: ! Наседкин А.В. "Конечно-элементное моделирование на основе ANSYS. ! Программы решения статических задач сопротивления материалов ! c вариантами индивидуальных заданий" // ! Ростов-на-Дону: УПЛ РГУ, 1998. 44 с. ! ! Автор программ - Наседкин Андрей Викторович, ! Ростовский госуниверситет, кафедра математического моделирования, ! nasedkin@ms.math.rsu.ru или nasedkin@ns.math.rsu.ru ! ! ******************************************************************** /batch ! Пакетный режим /BATCH /com, /com, Файл SMs2.inp /com, ПРОГРАММА РАСЧЕТА ЗАДАЧИ СОПРОТИВЛЕНИЯ МАТЕРИАЛОВ /com, ПО ТЕМЕ: "ПЛОСКИЙ ИЗГИБ БАЛКИ" /com, (версия 1.4) /com, /com, Сборник задач по сопротивлению материалов / /com, Под ред. В.К. Качурина. М.: Наука, 1970. /com, (по задаче 9.1. С.228-229.) /com, /com, Текстовые результаты сохраняются в файле SMs2.res /com, Графические результаты выводятся в файл SMs2.grph /com, /prep7 ! Входим в препроцессор /PREP7 f_r='SMs2' /show,f_r,grph ! В режиме /BATCH задаем вывод графики ! в файл .grph /title, BENDING OF THE BEAM ! Все данные в системе СГС et,1,beam3 ! Элементы с TYPE=1 - , балочные КЭ BEAM3 keyopt,1,9,9 ! KEYOPT(9)=9 для BEAM3 - ! вывод в 9 промежуточных точках элемента r,1,28.9,2030,20 ! REAL CONST. типа REAL=1 : (двутавр N 20а) ! площадь поперечного сечения AREA=28.9 , ! момент инерции IZZ=2030 , ! толщина HEIGHT=20 mp,ex,1,2e6 ! MAT. PROP. типа MAT=1: модуль Юнга EX=2e6 n_el=3 ! Вводим параметр для количества элементов abeam=200 ! abeam - параметр длины первого пролета балки n,1 ! Определяем узлы по координатам n,2,abeam n,3,2*abeam n,4,3*abeam e,1,2 ! Определяем элементы BEAM3 с узлами 1 и 2, e,2,3 ! 2 и 3, e,3,4 ! 3 и 4 save finish /solu ! Входим в решатель /SOLUTION antype,static ! Статический тип анализа d,1,uy ! Задаем условия закрепления: d,4,ux ! UY=0 в узле 1 (шарнир на "колесиках"), d,4,uy ! UX=UY=ROTZ=0 в узле 4 (жесткая заделка) d,4,rotz ! sfbeam,1,,pres,20 ! Задаем постоянную распределенную нагрузку ! на элементе 1 PRES=20 ! (положительным значением PRES считается ! направление против оси +Y) f,2,mz,-2e5 ! Задаем момент MZ=-2e5 в узле 2 ! (положительным считается MZ, ! направленный против часовой стрелки) ! Задание сил FY или FX проводится аналогично с заменой ! MZ на FY или FX (сила FY положительна, если направлена ! по оси +Y, т.е. наоборот, по сравнению с PRES) solve ! Решаем СЛАУ МКЭ finish /post1 ! Входим в постпроцессор /POST1 set,1,1 ! Считываем данные о решении ! Далее следует вывод перерезывающих сил, изгибающих моментов, ! уравнения изогнутой оси балки и изгибных напряжений ! в 11 равноотстоящих точках каждого элемента *dim,x_coord,array,n_el*11 ! массив для X-координат *dim,q_y,array,n_el*11 ! массив для перерезывающих сил *dim,m_z,array,n_el*11 ! массив для изгибающих моментов *dim,u_y,array,n_el*11 ! массив для прогибов балки *dim,sigma,array,n_el*11 ! массив для изгибных напряжений /output,f_r,res ! Задаем текстовый вывод ! в файл .res /com, /com, *********************************************************** prrsol ! Вывод реакций опор /com, /com, *********************************************************** /com, X ! Q_Y ! M_Z ! U_Y ! Sigma_YY /com, *********************************************************** /nopr *do,i,1,n_el ! цикл по элементам n1_nood=nelem(i,1) ! Определяем номера граничных узлов n2_nood=nelem(i,2) ! n1_nood и n2_nood i-ого элемента nx1_nood=nx(n1_nood) ! Определяем X-координаты граничных nx2_nood=nx(n2_nood) ! узлов nx1_nood и nx2_nood l_elem=nx2_nood-nx1_nood ! Находим длину i-ого элемента hx=l_elem/10 ! hx - расстояние между 11 точками ! вывода в i-ом элементе uy1=uy(n1_nood) ! uy1, uy2 - перемещения в узлах uy2=uy(n2_nood) ! i-ого элемента tz1=rotz(n1_nood) ! tz1, tz2 - углы поворота в узлах tz2=rotz(n2_nood) ! i-ого элемента esel,s,elem,,i,i ! Выбираем элемент с номером i /gopr *vwrite,i ! Выводим текущий номер элемента (1x,' element N = ',f10.0) /nopr *do,ii,1,11 ! цикл по точкам элементов j=ii+(i-1)*11 ! j - текущий номер элементов массивов xx=nx1_nood+hx*(ii-1) ! xx - X-координата j-ой точки x_coord(j)=xx ksi=(ii-1)*0.2-1 ! ksi - значение, соответствующее xx ! в локальной системе координат ! Вычисляем u_y(j) в j-ой точке c использованием ! функции аппроксимации перемещений на элементе uu=0.5*(uy1+uy2+(uy2-uy1)*ksi*(3-ksi*ksi)*0.5) uu=uu+0.125*l_elem*(tz1*(1-ksi)-tz2*(1+ksi))*(1-ksi*ksi) u_y(j)=uu etable,sig,ls,ii*3-1 ! Из таблицы ETABLE выбираем etable,qq_y,smisc,ii*6-4 ! указатели на SBYT, MFORY, MMOMZ etable,mm_z,smisc,ii*6 ! для sigma, q_y, m_z ! согласно документации по BEAM3 ! при KEYOPT(9)=9 *get,ss,elem,i,etab,sig ! Определяем sigma, q_y, m_z *get,qq,elem,i,etab,qq_y ! по найденным указателям *get,mm,elem,i,etab,mm_z qq=-qq ! Перерезывающая сила в ANSYS имеет ! противоположный знак по сравнению ! с принятым для эпюр перерезывающих ! сил sigma(j)=ss q_y(j)=qq m_z(j)=mm /gopr *vwrite,xx,qq,mm,uu,ss ! Вывод найденных значений (1x,e10.4,' ',e10.4,' ',e10.4,' ',e10.4,' ',e10.4) /nopr *enddo *enddo /output esel,all finish /post26 ! Входим в построцессор /POST26 store,alloc,n_el*11 ! Подготавливаем место для размещения ! переменных для графиков /xrang,nx(nelem(1,1)),nx(nelem(n_el,2)) ! изменение переменной X ! совпадает с длиной балки /axlab,x, X-coordinate ! Задаем подпись для оси абсцисс /color,curve,whit,1,6 ! Цвет кривых на графиках - белый /color,grid,whit ! Цвет сетки - белый /plopts,info,off ! Не выводить слева дополнит. информацию /plopts,frame,off ! Не показывать оконную рамку grid,1 ! Задаем вывод сетки на графиках vput,x_coord(1),1 ! Помещаем в переменные 1-5 vput,q_y(1),2 ! соответствующие массивы vput,m_z(1),3 vput,u_y(1),4 vput,sigma(1),5 xvar,1 ! Задаем переменную по оси X /output,f_r,res,,append ! Восстанавливаем тестовый вывод ! в файл .res с записью ! в конец файла /com, /com, *********************************************************** /com, /com, VARI 2 - Q_y /com, VARI 3 - M_z /com, VARI 4 - U_y /com, VARI 5 - Sigma_YY /com, TIME - X-coordinate /com, /com, *********************************************************** /com, extrem,2,5 ! Вывод экстремальных значений переменных 2-5 /output ! Далее последовательно задаем надписи по осям ординат ! и записываем в графический файл .grph графики ! перерезывающих сил Q_Y, изгибающих моментов M_Z, ! перемещений U_Y, изгибных напряжений Sigma_YY /window,1,ltop ! Окно 1 - слева вверху /axlab,y,Shear force Q_y plvar,2 /window,1,off ! Сделать окно 1 пассивным /noerase ! Не очищать содержимое окон /window,2,rtop ! Окно 2 - справа вверху /axlab,y,Bending moment M_z plvar,3 /window,2,off /window,3,lbot ! Окно 3 - слева внизу /axlab,y,Displacement U_y plvar,4 /window,3,off /window,4,rbot ! Окно 4 - справа внизу /axlab,y,Bending stress at the +Y side plvar,5 finish /exit ! Окончание работы программы