12PosobKR2015 (В.А. Столярчук. Решение задач в Sigma (учебное пособие)), страница 10

2017-06-17СтудИзба

Описание файла

Файл "12PosobKR2015" внутри архива находится в папке "В.А. Столярчук. Решение задач в Sigma (учебное пособие)". Документ из архива "В.А. Столярчук. Решение задач в Sigma (учебное пособие)", который расположен в категории "". Всё это находится в предмете "cad-cae-системы" из 5 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "cad-cae-системы" в общих файлах.

Онлайн просмотр документа "12PosobKR2015"

Текст 10 страницы из документа "12PosobKR2015"

Но прежде всего надо «отловить» номера узлов, лежащих на нагруженной стороне. Отыскиваем нужные номера узлов по координатам.

В массиве CORD узлы располагаются в порядке возрастания номеров.

Последовательно пробегая массив CORD:

DO 10 I=1,NP

(где NP – число узлов) мы, понятно, сначала найдем узел (принадлежащий линии нагружения) с меньшим номером и поместим номер этого узла в массив отобранных номеров IFORCE1(I1)=I, потом с большим номером и его тоже поместим в массив номеров отобранных узлов и т.д. Следовательно, в массиве IFORCE1(I1)=I номера отобранных узлов будут возрастать:

2, 5, 7, 8, 9, 10, 16

Но относительно функции нагрузки они должны стоять в обратном порядке, а именно: 16, 10, 9, 8, 7, 5, 2

Понятно, что для такой операции сложная сортировка не нужна: задача решается очень просто, так как последний ряд чисел является записанным первым рядом, но в обратном порядке.

Произошло это потому, что в данном случае получился простейший вариант нумерации узлов, так как в исходной геометрической модели зоны, образующие нагруженную линию, выстроились слева направо по порядку 7,6,5, из-за того, что автор зону 5 образовал со стороны зоны 3, затем со стороны зоны 5 создал зону 6, после чего со стороны зоны 6 образовал зону 7.

Очевидно, что порядок образования зон мог быть иным. Пример другого образования геометрической модели и результата расчета на ней приведён ниже (рис. 44).


Как видим, результаты расчета не изменились, а вот нумерация узлов в интересующей нас области наоборот: узлы на нагруженной верхней стороне выстроились в ином порядке, а именно: 2, 5, 9, 8, 7, 10, 16. И здесь уже ни о каком возрастании в порядке увеличения номеров не идёт речь.

Очевидно, что после отбора узлов, принадлежащих верхней горизонтальной стороне, в массиве IFORCE1 они выстроятся в порядке возрастания номеров: 2, 5, 7, 8, 9, 10, 16, хотя для решения задачи их необходимо выстроить в порядке 16, 10, 7, 8, 9, 5, 2.

И здесь простейшей перезаписью ряда чисел не обойдёшься.

Именно поэтому здесь необходима сортировка массива IFORCE1 в порядке убывания координаты Х.

Итак, алгоритм подсчета и распределения сил по узлам в случае распределенной нагрузки распадается на три части. В первой отыскиваются по координатам номера узлов к которым приложены силы согласно действующей на этом участке функции нагрузки и заносятся в отдельный массив. Во второй происходит сортировка массива с номерами нагруженных узлов. В третьей находятся, собственно, силы, действующие в узлах.

Есть ещё один аспект, который необходимо цчитывать при составлении программы: проверка правильности вычислений. Для этого приходится сначала вычислить суммарную силу от каждой нагрузки по участкам с помощью какой-либо посторонней программы и сравнить с теми значениями, которыне дает подпрограмма Force при разных NRC. Дело в том, что программа должна подсчитывать нагрузку на каждом из участков с одной и той же степенью точности при разных NRC. Иначе получится, что при одних NRC рассчитывается одна задача, при других – другая. Следовательно в программе должно быть предусмотрен вывод информации отдельно для каждого из участков. Для упрощения программы лучше всего проводить расчет для каждого из участков отдельно при разных NRC, отключая нагрузку по другим участкам. Для отключения/включения нагрузки по участкам в Sigma используется аппарат свободных параметров, с помощью которых осуществляются эти функции. Значения парамеров PRM1, PRM2, PRM3, PRM4, PRM5, PRM6 задаются в окне основных параметров программы (при этом можно использовать только их часть и можно, вообще, обойтись одним параметром, задавая ему разные значения) (рис. 45).


В рассматриваемом примере автор решил задавать управляющие свободные параметры в следующем виде:

Свободные параметры.

Параметр

Значение

Комментарий

PRM1

отключает силы по вертикальной прямой Y=60

1 – включены, 0 - выключены

PRM2

отключает силы по наклонной прямой
Y+3X-180=0

0 – выключены, 1 – включена верхняя полуволна, 2 – включена нижняя полуволна, 3 – включена вся волна

PRM3

Изменяет значение варьируемого параметра q0 на наклонной прямой Y+3X-180=0

150 – значение параметра, установленное заданием

PRM4

Изменяет значение варьируемого параметра k на горизонтальной прямой Y=60

1 – значение параметра, установленное заданием

PRM5

Не используется

PRM6

Не используется

Понятно, что значения этих параметров должны передаваться в подпрограмму Force.

Обратите внимание, что в окне рис. 45 задаются и характеристики материала из которого изготовлена пластина. Харатеристики материала вместе с толщиной называют свойством конечного элемента. Если характеристики материала или толщина меняются в разных подобластях рассчитываемого объекта, то задается другое свойство КЭ. Программа расчитана на использование трёх свойств.

Текст продпрограммы Force для рассматриваемого примера приведен ниже.

* Содержит подпрограмму FORCE

* ПOДПPOГPAMMA PAЗHECEHИЯ HAГPУЗOK ПО УЗЛАМ

* BЫЗЫBAETCЯ ИЗ MAIN, вызываемых модулей нет.

====================================================

*PLOSH-подпрограмма вычисления интеграла методом трапеций

*HEIGH-функция вычисления интеграла методом трапеций

*IPR массив управления печатью

*IFORCE_ - массив состоящий из номеров точек и координат точек к которым приложена распределенная сила

*CORD - одномерный массив глобальных координат узлов (первые два элемента этого массива являются координатами узла 1 по оси Х и Y соответственно, вторая пара элементов - узла 2 и т.д.).

*R - массив значений усилий в узлах (аналогичен по структуре массиву CORD, только вместо координат в нем указываются значения нагрузок по оси Х и Y в узлах);

===================================================

* начало кода FORCE

===================================================

SUBROUTINE FORCE (NB, CORD, NRC, DB, IPR, NP, RSUM, R,

> NDF, DH, NR, PRM1, PRM2, PRM3, PRM4, PRM5, PRM6)

LOGICAL*1 IPR(50)

DIMENSION CORD(1), R(1), IFORCE2(100), IFORCE1(100), IFORCEO(100)

* функция вычисления интеграла методом трапеций для прямой Y=60.

* входные значения: (шаг(SH), начальная точка отрезка(XP1), конечная точка отрезка(XH))

RFORSES(SH,XP1,XH,PAR)=(PAR*SH*((XP1**2.+600.)+(XH**2.+600.))/2.)

* NR - количество нагруженных узлов. * NP - количество узлов

I1=0

I2=0

DO 10 I=1,NP

XT=CORD(NDF*(I-1)+1)

YT=CORD(NDF*(I-1)+2)

* Обнуление массива сил

R(NDF*(I-1)+1)=0

R(NDF*(I-1)+2)=0

* Узлы на прямой Y=60

IF ((ABS(YT-60).LT.0.1).AND.(ABS(PRM1-1). LT.0.1)) THEN

I1=I1+1

* Массив IFORCE1 содержит номера нагруженных узлов на прямой Y=60

IFORCE1(I1)=I

NR=NR+1

ENDIF

* Узлы на прямой Y+3X-180=0, psi[0;31.42] x[40; 50.06]

IF (ABS(PRM2-1).LT.0.1) THEN

IF ((ABS(YT+3*XT-180).LT.0.1).AND.(XT-50.06-0.1).LT.0) THEN

I2=I2+1

*Массив IFORCE2 содержит нагруженные узлы на прямой 3X+Y-180=0

IFORCE2(I2)=I

NR=NR+1

ENDIF

ENDIF

* Узлы на прямой Y+3X-180=0, psi[31.42;63.25] x[50.06; 60]

IF (ABS(PRM2-2).LT.0.1) THEN

IF ((ABS(YT+3*XT-180).LT.0.1).AND.((XT-50.06+0.1).GT.0)) THEN

I2=I2+1

IFORCE2(I2)=I

NR=NR+1

ENDIF

ENDIF

* Узлы на прямой Y+3X-180=0, psi[0;63.25] x[40;60]

IF (ABS (PRM2-3). LT. 0.1) THEN

IF (ABS (YT+3*XT-180). LT.0.1) THEN

I2=I2+1

IFORCE2(I2)=I

NR=NR+1

ENDIF

ENDIF

10 CONTINUE

* Сортировка массивов. Во всех трех случаях используется сортировка пузырьком

* Массив IFORCE1 содержит номера нагруженных узлов на прямой Y=60

DO 201 I=I1,2,-1

DO 201 J=1,I-1

IF (CORD(NDF*(IFORCE1(J+1)-1)+1).LT.

CORD(NDF*(IFORCE1(J)-1)+1)) THEN

TMPI=IFORCE1(J+1)

IFORCE1(J+1)=IFORCE1(J)

IFORCE1(J)=TMPI

ENDIF

201 CONTINUE

*Массив IFORCE2 содержит нагруженные узлы на прямой 3X+Y-180=0

DO 202 I=I2,2,-1

DO 202 J=1,I-1

IF (CORD(NDF*(IFORCE2(J+1)-1)+1).GT.

>CORD(NDF*(IFORCE2(J)-1)+1)) THEN

TMPI=IFORCE2(J+1)

IFORCE2(J+1)=IFORCE2(J)

IFORCE2(J)=TMPI

ENDIF

202 CONTINUE

* Задание распределенной силы для прямой Y=60

DO 300 I=1,I1

J=IFORCE1(I)

* Координата текущей точки

X1=CORD(2*(J-1)+1)

Y1=CORD(2*(J-1)+2)

* Координата предыдущей точки

IF (I.NE.1) THEN

X3=CORD(2*(IFORCE1(I-1)-1)+1)

Y3=CORD(2*(IFORCE1(I-1)-1)+2)

ELSE

X3=X1

Y3=Y1

ENDIF

* Координата следующей точки

IF (I.NE.I1) THEN

X2=CORD(2*(IFORCE1(I+1)-1)+1)

Y2=CORD(2*(IFORCE1(I+1)-1)+2)

ELSE

X2=X1

Y2=Y1

ENDIF

* Сила, приложенная к текущему узлу (вычисляется через площадь трапеции)

XP1=ABS((X1+X2)/2.-40.)

XP2=ABS((X1+X3)/2.-40.)

SH=ABS(XP1-XP2)/10.

XH = XP1+SH

R1=0.

DO 500 IS=1,10,1

R1=R1+ABS(RFORSES(SH,XP1,XH,PRM4))

XP1=XP1+SH

! PRINT*, R1, XP1, XP2

XH=XH+SH

500 CONTINUE

! поскольку сила действует лишь по оси Y, то нагрузка полностью идет на ось Y

R(NDF*(IFORCE1(I)-1)+2)=R(NDF*(IFORCE1(I)-1)+2)+R1

! блокируем вывод точки, на которую действует нагрузка с прямой Y=180-3X

IF(INT(PRM2).EQ.2) THEN

IF(IPR(23)) WRITE(6,21) J,CORD(NDF*(J-1)+1),

>CORD(NDF*(J-1)+2),R((J-1)*NDF+1),R((J-1)*NDF+2)

ELSE IF(X1.LT.39.9) THEN

IF(IPR(23)) WRITE(6,21) J,CORD(NDF*(J-1)+1),

>CORD(NDF*(J-1)+2),R((J-1)*NDF+1),R((J-1)*NDF+2)

ELSE

NR=NR-1

ENDIF

300 CONTINUE

* Задание распределенной силы для прямой Y+3X-180=0

DO 400 I=1,I2

J=IFORCE2(I)

J_PRED=IFORCE2(I+1)-1

* Координата текущей точки

X1=CORD(2*(IFORCE2(I)-1)+1)

Y1=CORD(2*(IFORCE2(I)-1)+2)

* Координата предыдущей точки

IF (I.NE.1) THEN

X3=CORD(2*(IFORCE2(I-1)-1)+1)

Y3=CORD(2*(IFORCE2(I-1)-1)+2)

ELSE

X3=X1

Y3=Y1

ENDIF

* Координата следующей точки

IF (I.NE.I2) THEN

X2=CORD(2*(IFORCE2(I+1)-1)+1)

Y2=CORD(2*(IFORCE2(I+1)-1)+2)

ELSE

X2=X1

Y2=Y1

ENDIF

* Сила приложенная к текущему узлу (вычисляется через площадь трапеции)

* R1-распределенная сила приложенная к текущему узлу

R1=RPLOSH(X3,X1,X2, PRM3) !(предыдущая, текущая, следующая)

! PRINT*, R1, R2

IF (ABS(CORD(2*(IFORCE2(I)-1)+1)-60.).GT.0.1) THEN

R(NDF*(IFORCE2(I)-1)+1)=R(NDF*(IFORCE2(I)-1)+1)

>+R1*SQRT(1-1/(1+(3.)**2)) ! коэф. 3 взят из тангенса(коэф. - k) уравнения прямой

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее