Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

А.Г. Новиньков Разработка и применение функций пользователя при автоматизации проверок несущей способности стальныхконструкций

.pdf
Скачиваний:
36
Добавлен:
19.08.2013
Размер:
187.63 Кб
Скачать

Министерство образования Российской Федерации Кузбасский государственный технический университет Кафедра строительных конструкций

Разработка и применение функций пользователя при автоматизации проверок несущей способности стальных конструкций

Методические указания к выполнению лабораторных работ по курсу ”Основы работы на ПК” для студентов направления 550100

«Строительство»

Составители: А.Г. Новиньков В.П. Силенко

Утверждены на заседании кафедры Протокол N6 от 22.03.01

Рекомендованы к печати методической комиссией направления 550100 Протокол N6 от 16.04.01

Электронная версия хранится в библиотеке главного корпуса КузГТУ

Кемерово 2001

1

Введение

Библиотеки встроенных функций системы Mathcad насчитывают несколько сотен стандартных математических функций общего назначения. Однако инженер очень часто испытывает потребность в наличии специализированных функций, предназначенных для автоматизации расчетов в узком классе задач проектирования. Система Mathcad имеет возможность расширения доступных функций за счет создания так называемых функций пользователя. Создание функций пользователя подробно рассматривается в рамках курса "Основы работы на персональном компьютере". Настоящие методические указания предназначены для оказания помощи в создании и использовании некоторых таких функций на примере библиотеки встроенных функций по расчету стальных конструкций. Справочный материал настоящих указаний может быть использован при выполнении курсового проектирования в курсах "Металлические конструкции" и "Новые прогрессивные конструкции", а также при разработке дипломных проектов.

Использование возможностей программирования в системе Mathcad

Вычисление коэффициента продольного изгиба центрально - сжатого стержня φ

СНиП II-23-81* «Стальные конструкции» требует выполнять проверку устойчивости центрально-сжатого сплошностенчатого стержня по формуле

ϕNA R y γ c ,

где N – сжимающая сила;

φ - коэффициент продольного изгиба; A – площадь сечения;

Ry – расчетное сопротивление стали; γс – коэффициент условий работы.

2

В свою очередь коэффициент продольного изгиба ϕ либо вычисляется по формулам 8, 9, 10 [1], либо определяется линейной интерполяцией значений таблицы 72 [1]. Данный коэффициент является функцией двух параметров – гибкости стержня λ и расчетного сопротивления стали Ry. Процедура вычисления ϕ легко поддается алгоритмизации и может быть реализована в виде функции пользователя системы Mathcad (см. с. 11).

Аргументы функции: λ - гибкость стержня, Ry – расчетное сопротивление стали.

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

следует предусмотреть обработку ввода ошибочных аргументов. В противном случае при организации проверки устойчивости в теле цикла невозможно выявить ошибки, связанные с использованием некорректных исходных данных. Например, если бы в данном примере не контролировалась положительность значения λ, то при λ=-10 функция вернула бы значение φ=0, с последующим аварийным остановом при вычислении напряжений (деление на ноль).

Вычисление коэффициента продольного изгиба внецентренносжатого (сжато-изгибаемого) сплошностенчатого

стержня φe (табл.74) [1]

Для проверки несущей способности сжато-изгибаемого стержня в плоскости действия изгибающего момента требуется определить коэффициент φe. Данный коэффициент зависит от приведенного относительного эксцентриситета mef, условной гибкости стержня λ и представляет собой табличную функцию (табл. 74 [1]).

Линейная интерполяция значений данной таблицы также может быть реализована в виде функции пользователя.

Аргументы функции: λef – условная гибкость стержня, mef – приведенный относительный эксцентриситет.

Возвращаемое значение – коэффициент продольного изгиба ϕe для внецентренно-сжатого сплошностенчатого стержня, вычисляемый в соответствии с табл.74 [1].

Данные из табл.74 хранятся в файлах 74v.prn, 74h.prn и 74.prn и требуют предварительного считывания в текущий документ. Файл 74v.prn содержит матрицу-строку условных гибкостей. Перевод

3

матрицы-строки в вектор-столбец осуществляется с помощью операции транспонирования матрицы. Файл 74h.prn содержит матрицустроку значений приведенных относительных эксцентриситетов, и данная матрица также требует транспонирования. В файле 74.prn хранятся сами значения коэффициентов продольного изгиба. Все файлы записаны в текстовом формате, не содержащем служебные символы. Отметим, что табл.74 может быть записана в формате электронной таблицы Excel. В этом случае доступ к данным из электронной таблицы осуществляется через меню Insert =>

Component.

В целях экономии места в приведенной функции не приводится блок обработки ошибок. Кроме того, функция в представленном варианте возвращает ошибку при попытке обращения к ней с аргументом λef=0,5. Предлагаем самостоятельно доработать алгоритм и устранить данный недостаток.

λ

 

ef_tabl

:=

READPRN

("d:\74v.prn"

 

)T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

ef_tabl

:=

READPRN

("d:\74h.prn"

 

)T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

φ

e_tabl

:=

READPRN

("d:\74.prn"

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

φe74 (λ ef ,m ef ):=

 

 

i 0

 

 

 

 

< λ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while λ

ef_tabl

i

ef

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i i + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

φ1 linterp

 

 

 

 

 

 

 

 

 

 

 

T

i1

 

 

 

 

 

 

 

 

m ef_tabl

,

 

φe_tabl

 

 

 

,m ef

 

 

 

 

 

 

 

φ2 linterp

 

 

 

 

 

 

 

 

 

 

 

T

i

 

 

 

 

 

 

 

 

 

m ef_tabl

,

 

φe_tabl

 

 

,m ef

 

 

 

 

 

 

 

 

 

 

λ

ef_tabl

i1

 

 

 

φ

1

 

 

 

 

 

 

 

 

 

 

 

φ ← linterp

 

 

 

,

 

 

 

ef

 

 

 

 

 

 

 

 

λ ef_tabl

 

 

 

φ2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

φ ← 0.001

φ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

Система Mathcad имеет возможность создавать функции пользователя на языках C или C++ в виде DLL-файлов (динамически компонуемых библиотек). Такие внешние C-функции полностью интегрируются в Mathcad, и для конечного пользователя между ними и стандартными функциями нет никакой разницы. Описание интерфейса DLL подробно изложено в [2, 3]. Использование C-функций имеет свои достоинства и недостатки.

К числу несомненных достоинств следует отнести:

Резкое повышение быстродействия. Этот критерий является решающим, например, при организации многократно вложенных циклов (компоновка сечения методом перебора, поиск глобального минимума целевой функции и т.п.).

Функция «видна» для пользователя как стандартная функция системы Mathcad с доступом через диалоговое окно выпадающего меню Insert => Function.

Появляется возможность доступа ко многим функциям

операционной системы Windows. Недостатки также существенны:

Теряется возможность передачи в функцию в качестве аргумента имени другой функции. Например, a(b(x),c).

Пользовательские C-функции теряют возможность использования встроенных функций системы Mathcad. Например, в пользовательской функции нельзя реализовать решение системы линейных алгебраических уравнений с помощью встроенной функции lsolve().

Нельзя передать в функцию в качестве аргумента строковую

переменную.

На кафедре строительных конструкций некоторые часто используемые проверки несущей способности стальных конструкций реализованы в виде DLL-файлов системы Mathcad.

Доступ к функциям осуществляется через выпадающее меню

Insert => Function. В окне прокрутки Function Category (Категория функций) выбирается категория СНиП II-23-81*. В поле Function Name (Название функции) появляются имена функций, используемых при проверке несущей способности стальных конструкций. Список доступных функций определяется требованиями учебного процесса и может меняться. Примерный вид диалогового окна приведен на рисунке

5

Вид диалогового окна Insert Function при использовании функций пользователя

Все приводимые ниже функции поставляются по принципу «как есть» и прошли ограниченное тестирование. Авторы не гарантируют

отсутствие ошибок и не несут ответственность, если таковые имеются.

Перечень доступных функций пользователя

fi(lambda, Ry) – возвращает коэффициент продольного изгиба для центрально-сжатого стержня в соответствии с табл.72 [1].

Аргументы функции: lambda – гибкость стержня,

Ry – расчетное сопротивление стали.

fe74(lef, mef) – возвращает коэффициент ϕe для проверки устойчивости внецентренно-сжатых (сжато-изгибаемых) сплошностенчатых стержней в плоскости действия изгибающего момента в соответствии с табл.74 [1].

Аргументы функции:

lef – условная гибкость стержня,

mef – приведенный относительный эксцентриситет.

6

fe75(lef, mef) – возвращает коэффициент ϕe для проверки устойчивости внецентренно-сжатых (сжато-изгибаемых) сквозных стержней в плоскости действия изгибающего момента в соответствии с табл.75 [1].

Аргументы функции:

lef – условная приведенная гибкость стержня, mef – относительный эксцентриситет.

fib0(v1, v2, Ry) – возвращает коэффициент ϕb (коэффициент балочного изгиба) для проверки общей устойчивости двутавровых балок составного сечения, имеющих две оси симметрии. Определяется по Приложению 7*, п.1* [1].

Аргументы функции:

v1[] – вектор из пяти значений, содержащий параметры сечения и расчетную длину балки. V11 – высота сечения балки, v12 – толщина стенки, v13 – ширина полки, v14 – толщина полки, v15 – расчетная длина балки.

v2[] – вектор из трех значений, содержащий описание нагрузки и ряд дополнительных параметров. V21 – количество закреплений сжатого пояса в пролете, v22 – код нагрузки (0 – сосредоточенная, 1 – равномерно распределенная, 2 – сосредоточенная в четверти пролета при одном раскреплении в середине пролета), v23 – код нагруженного пояса (0 – верхний, 1- нижний).

Ry – расчетное сопротивление стали.

fib1(v1, v2, Ry) – возвращает коэффициент ϕb (коэффициент балочного изгиба) для проверки общей устойчивости прокатных двутавровых балок, имеющих две оси симметрии. Определяется по Приложению 7*, п.1* [1].

Аргументы функции:

v1[] – вектор из пяти значений, содержащий параметры сечения и расчетную длину балки. v11 – высота сечения балки, v12 – момент инерции Ix, v13 – момент инерции Iy, v14 – момент инерции при кручении It, v15 – расчетная длина балки.

v2[] – вектор из трех значений, содержащий описание нагрузки и ряд дополнительных параметров. v21 – количество закреплений сжатого пояса в пролете, v22 – код нагрузки (0 – сосредоточенная, 1 – равномерно распределенная, 2 – сосредоточенная в четверти пролета

7

при одном раскреплении в середине пролета), v23 – код нагруженного пояса (0 – верхний, 1- нижний).

Ry – расчетное сопротивление стали.

fib2(v1, v2, Ry) – возвращает коэффициент ϕb (коэффициент балочного изгиба) для проверки общей устойчивости двутавровых балок составного сечения, имеющих одну ось симметрии. Определяется по Приложению 7*, п.2* [1].

Аргументы функции:

v1[] – вектор из семи значений, содержащий параметры сечения и расчетную длину балки. v11 – высота сечения балки, v12 – толщина стенки, v13 – ширина более развитого пояса, v14 – толщина более развитого пояса, v15 – ширина другого пояса, v16 – толщина другого пояса, v17 – расчетная длина балки.

v2[] – вектор из трех значений, содержащий описание нагрузки, ее место приложения и код сжатого пояса. v21 – код нагрузки (0 – сосредоточенная в середине пролета, 1 – равномерно распределенная, 2

– чистый изгиб), v22 – код места приложения нагрузки (0 – к верхнему поясу, 1- к нижнему поясу), v23 – код более развитого пояса (0 – верхний, 1 – нижний).

Ry – расчетное сопротивление стали.

c1(v1, v2, v3, Ry) – коэффициент, требуемый при проверке устойчивости внецентренно-сжатого двутаврового или таврового сплошностенчатого стержня из плоскости действия изгибающего момента в соответствии с п.5.30 и 5.31 [1]. Тавровое сечение может состоять из спаренных уголков. При расчете двутавровых стержней изгибающий момент действует в плоскости стенки.

Аргументы функции:

v1[] – вектор из шести значений, содержащий параметры геометрии сечения. v11 – высота сечения стержня, v12 – толщина стенки, v13 – ширина более развитого пояса, v14 – толщина более развитого пояса, v15 – ширина другого пояса, v16 – толщина другого пояса. Тавровое сечение рассматривается как частный случай двутаврового с нулевыми значениями ширины и толщины соответствующей полки, т.е. v15= v16 = 0.

v2[] – вектор из двух значений; содержит значения внутренних усилий в расчетном сечении. v21 – изгибающий момент, v22

8

продольная сила. Продольная сжимающая сила всегда принимается со знаком «+». Изгибающий момент считается положительным, если он догружает более развитый пояс.

v3[] – вектор из двух значений; содержит расчетные длины стержня. v31 – расчетная длина в плоскости действия изгибающего момента, v32 – расчетная длина из плоскости действия изгибающего момента.

Ry – расчетное сопротивление стали.

Примечание. Для сечений, имеющих одну ось симметрии и относительный эксцентриситет 5,0<mx<10,0, коэффициент ϕb, определяемый по формулам 58 и 59 [1], вычисляется как для случая чистого изгиба с нагрузкой, приложенной к более развитому поясу.

Обработка ошибок

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

Пример стандартного сообщения системы Mathcad

При попытке вычислить коэффициент продольного изгиба с помощью функции fe74( lef, mef) при значении относительного эксцентриситета mef=21,0 Mathcad вернет сообщение об ошибке

"Аргумент вне диапазона таблицы":

9

Пример вывода предупреждений с помощью окна сообщений

При попытке вычислить коэффициент c(v1,v2,v3,Ry) для несимметричного сечения функция пользователя вызовет окно предупреждений:

После закрытия окна предупреждений последует стандартное сообщение системы Mathcad об ошибках "Во время вычислений

получено значение переменной, не охватываемое разделом или таблицей СНиП":