Программа для расчёта конструкций RFEM 6 является основой нашей модульной системы программного обеспечения. Основная программа RFEM 6 используется для задания конструкций, материалов и нагрузок плоских и пространственных конструктивных систем, состоящих из плит, стен, оболочек и стержней. Программа также позволяет создавать комбинированные конструкции, а также моделировать тела и контактные элементы.
RSTAB 9 - это мощная программа для расчёта и проектирования 3D конструкций балок, каркасов или ферм, которая которая помогает инженерам-строителям соответствовать современным требованиям и отражает последние тенденции в области строительного проектирования.
Вы часто тратите слишком много времени на расчёт сечений? Программное обеспечение Dlubal и автономная программа RSECTION облегчают вашу работу, определяя характеристики и выполняя расчёт напряжений для различных сечений.
Вы всегда знаете, откуда дует ветер? Конечно, со стороны инноваций! RWIND 2 - это программа, которая использует цифровую аэродинамическую трубу для численного моделирования потоков ветра. Программа моделирует эти потоки вокруг зданий любой геометрической формы и определяет ветровые нагрузки на поверхности.
Вам нужен обзор зон снеговой, ветровой и сейсмической нагрузок? Тогда вы находитесь по адресу. Используйте инструмент Geo-Zone Tool для быстрого и лёгкого определения снеговых нагрузок, скоростей ветра и данных по сейсмике в соответствии с ASCE 7‑16 и другими нормативами различных стран.
Хотите попробовать в работе функции программ Dlubal Software? У вас есть такая возможность! Бесплатная полная версия на 90 дней позволяет вам в полной мере попробовать в работе все наши программы.
Функция для нелинейных шарниров линий в настоящее время недоступна в библиотеке высокого уровня Python. Однако, поскольку пользовательские параметры могут использоваться в методе для шарниров линий, как обычно, создание нелинейных шарниров линий не является проблемой.
В примере программы сначала создаются две прямоугольные поверхности с узловыми опорами, которые соединяются по линии 6.
Задание нелинейного шарнира линии начинается с линии 39. Сначала создается словарь p с параметрами. Должны быть заданы три степени свободы перемещения и одна степень свободы поворота. Значение 0.0 означает, что степень свободы не занята. Если вместо этого записано числовое значение, оно интерпретируется как пружина. Убедитесь, что здесь используются основные единицы СИ. С помощью inf степень свободы задаётся как фиксированная.
p
0.0
inf
Должна быть нелинейность в наоравлении y. Это устанавливается ключом translational_release_u_y_nonlinearity. В этой статье описывается, как определить необходимые значения, такие как NONLINEARITY_TYPE_FAILURE_IF_POSITIVE.
translational_release_u_y_nonlinearity
NONLINEARITY_TYPE_FAILURE_IF_POSITIVE
Следующий макрос VBA показывает создание узловой опоры с нелинейностью «Частичная активность». Исходный код затем находится в разделе Загрузки.
Option Explicit
' --------------------------Sub SetNSupports()' --------------------------Dim model As RFEM5.modelDim data As IModelDataDim support(0) As RFEM5.NodalSupportDim ISup As RFEM5.INodalSupportDim ISupPA как RFEM5.IPartialActivityDim nlPA как частичная активность
e: If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source
End Sub
Решатель RSTAB 9 автоматически выбирает лучшую стратегию и пытается решить все нелинейности сразу. Если это не удается, нелинейности решаются одна за другой. Аналогично учитываются нелинейности шарниров и опор.
В RFEM 6 необходимо выполнить соответствующие настройки в диалоговом окне «Изменить параметры статического анализа» на вкладке «Повторная активация»; увидеть изображение.
Um ein nicht lineares Element wie ein Stabendgelenk mit Diagramm oder Ausfall anlegen zu können, muss zunächst das Stabendgelenk angelegt werden. Wenn RFEM das Stabendgelenk kennt, kann dieses über die Schnittstelle IMemberEndRelease geholt werden. Diese Schnittstelle verfügt dann über die Methoden GetData() und SetData(). Beide Methoden sind in der Lage sowohl die einfachen Stabendgelenkdaten vom Typ MemberEndRelease als auch die Daten einer Nichtlinearität auszulesen bzw. zu schreiben.
Im folgenden Beispiel wird in Stabendgelenk zunächst für die x-Richtung ein Gelenk aktiviert und dann als Nichtlinearität in x-Richtung der Typ WorkingDiagramType eingestellt. Nachdem diese Daten mithilfe eines Prepare-Finish-Modification-Blocks an RFEM übergeben wurden, legt dieses intern die Nichtlinearität an. Um diese mit Daten zu füllen, werden zunächst die vorhandenen Daten über GetData() von der Schnittstelle des Stabendgelenks geholt.
Nachdem die Daten (NonlinearityDiagram) ausgefüllt wurden, werde diese wieder mit SetData() übergeben:
Sub SetNLDiagram()Dim model As RFEM5.modelSet model = GetObject(, "RFEM5.Model")On Error GoTo eDim iApp As RFEM5.ApplicationSet iApp = model.GetApplicationiApp.LockLicenseiApp.ShowDim iModelData As RFEM5.iModelDataSet iModelData = model.GetModelData' modify member end release' set nonlinearity "Diagram" for x translationDim iMemHing As RFEM5.IMemberHingeSet iMemHing = iModelData.GetMemberHinge(1, AtNo)Dim memHing As RFEM5.MemberHingememHing = iMemHing.GetData()memHing.TranslationalConstantX = 0memHing.TranslationalNonlinearityX = WorkingDiagramType' Set new dataiModelData.PrepareModificationiMemHing.SetData memHingiModelData.FinishModification' create diagramDim tbl1() As DoubleReDim tbl1(1, 1)tbl1(0, 0) = 0 ' u-xtbl1(0, 1) = 0 ' P-xtbl1(1, 0) = 0.02 ' u-x (mm)tbl1(1, 1) = 2000 ' P-x (N)Dim nldHing As RFEM5.NonlinearityDiagramnldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForcenldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramTypenldHing.PositiveZone = tbl1nldHing.Symmetric = TrueDim iNldiag As RFEM5.INonlinearityDiagramSet iNldiag = iMemHing.GetNonlinearity(AlongAxisX)' Set new dataiModelData.PrepareModificationiNldiag.SetData nldHingiModelData.FinishModificatione: If Err.Number <> 0 Then MsgBox Err.description, , Err.Sourcemodel.GetApplication.UnlockLicenseEnd Sub
Die Vorgehensweise ist für Knotenlager und andere Nichtlinearitäten analog.
Die Linienfreigaben gibt es in dieser Form in RFEM 6 aktuell noch nicht.
Sie können Nichtlinearitäten in Zukunft aber auch direkt bei den Liniengelenken definieren.Zum aktuellen Stand (November 2021) stehen diese Nichtlinearitäten allerdings leider noch nicht gänzlich zur Verfügung. Diese werden über Programmupdates nachgereicht.
Weitere Freigabetypen für Knoten, Linien und Flächen sind zum aktuellen Stand ebenfalls noch in Entwicklung. Diese werden ebenfalls über Programmupdates nachgereicht.
Трение - это тип нелинейности, который можно изменить только через интерфейс к шарниру стержня.
Для этого сначала необходимо создать шарнир стержня, если он еще не создан. Затем применим к шарниру стержня интерфейс IMemberHinge, а к нелинейности интерфейс IFriction. После того уже можно для изменения требуемых данных (в данном случае это запись Friction) использовать методы GetData и SetData:
Sub SetMemberHingeFriction() Dim model As RFEM5.model Set model = GetObject(, "RFEM5.Model") model.GetApplication.LockLicense On Error GoTo e Dim data As IModelData Set data = model.GetModelData Dim hinge(0 To 0) As RFEM5.MemberHinge hinge(0).No = 1 hinge(0).RotationalConstantX = 1 hinge(0).RotationalConstantY = 2 hinge(0).RotationalConstantZ = 3 hinge(0).TranslationalConstantX = 4 hinge(0).TranslationalConstantY = 5 hinge(0).TranslationalConstantZ = 6 hinge(0).Comment = "Member Hinge 1" hinge(0).TranslationalNonlinearityX = FrictionAType data.PrepareModification data.SetMemberHinges hinge data.FinishModification ' get interface for member hinge Dim imemhing As IMemberHinge Set imemhing = data.GetMemberHinge(1, AtNo) ' get interface for nonlinearity "friction" Dim iFric As IFriction Set iFric = imemhing.GetNonlinearity(AlongAxisX) ' get friction data Dim fric As Friction fric = iFric.GetData fric.Coefficient1 = 0.3 ' set friction data data.PrepareModification iFric.SetData fric data.FinishModification e: If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source Set data = Nothing model.GetApplication.UnlockLicense Set model = NothingEnd Sub
В случае трения Vy + Vz, используется для настройки второго коэффициента команда Coefficient2. Постоянная пружины в диалоговом окне «Трение» затем определяется с помощью продольной пружины шарнира стержня. В данном конкретном случае это запись TranslationalConstantX , которая управляет настройками для направления x (см. Рисунок 01).
Способ создания узловой опоры с диаграммой нелинейности показан в следующем макросе VBA. Исходный код затем находится в разделе Загрузки.
Es stehen zwei Auswahlmöglichkeiten zur Verfügung: eine automatische Zeitschrittwahl und eine manuelle. Gerade für eine Struktur mit Nichtlinearitäten wird immer empfohlen, den Zeitschritt manuell zu wählen, da die automatische Ermittlung nur anhand der definierten Akzelerogramme bzw. Zeitdiagramme durchgeführt wird. Dafür sollte eine Zeitschrittkonvergenzstudie durchgeführt werden, welche die Berechnungszeit und die Genauigkeit ins Verhältnis setzt.
Der zu wählende Zeitschritt ist von vielen Faktoren abhängig, darunter die Erregungsfrequenz, die Frequenz und die Größe der Struktur, sowie der Grad an Nichtlinearitäten. Es kann also keine allgemeingültige Aussage über die Größe des Zeitschritts getroffen werden.
Um eine ausreichende Genauigkeit zu erreichen, sollte die maßgebende Periode T = 1/f in etwa 20 Schritte unterteilt werden, d. h. der Zeitschritt Δt ist wie folgt zu wählen:
$\mathrm{Δt}\;<\frac{\mathrm T}{20}\;=\;\frac1{20\mathrm f}\;=\;\frac{\mathrm\pi}{10\mathrm\omega\;}$
Für transient definierte Anregungen, wie Akzelerogramme oder tabellierte Zeitdiagramme, sollte der kürzeste Zeitabschnitt in 7 Schritte unterteilt werden:
$\mathrm{Δt}\;=\;\frac{\mathrm{Min}\left\{{\mathrm t}_{\mathrm i+1}\right.-\;{\mathrm t}_{\mathrm i}\}\;}7$
Unabhängig der Berechnung werden Zeitschritte zum Speichern der Ergebnisse angegeben.
' получить интерфейс модели Set iApp = iModel.GetApplication() iApp.LockLicense ' получить интерфейс расчета Dim iCalc As RFEM5.ICalculation2 Set iCalc = iModel.GetCalculation ' получить теорию изгиба поверхностейРазмер calc_bend как в RFEM5.calc_bend = iCalc.GetBendingTheory ' получить настройки для нелинейностейDim calc_nl As RFEM5.CalculationNonlinearitiescalc_nl = iCalc.GetNonlinearities ' получить настройки точности и допускаРазмер calc_prec как в RFEM5.PrecisionAndTolerancecalc_prec = iCalc.GetPrecisionAndTolerance ' получить настройки расчетаРазмеры calc_sets в соответствии с RFEM5.CalculationSettingscalc_sets = iCalc.GetSettings ' получить параметры расчетаРазмер calc_opts как в RFEM5.CalculationOptionscalc_opts = iCalc.GetOptions ' установить для ShearStiffness значение falsecalc_opts.ShearStiffness = FalseiCalc.SetOptions calc_opts
У опор поверхности эта опция доступна только тогда, когда была задана нелинейность в местном направлении z (сбой, если контактное напряжение в оси z отрицательное/положительное). In dem Dialog, in dem die Nichtlinearität bearbeitet werden kann, befindet sich die Option "Reibung in Ebene xy".
Diese Option funktioniert wie in der Grafik im Dialog gezeigt: Die Lagerung in x und y Richtung wird erst vollständig angenommen, wenn die Kontaktspannung Tau (Kontaktspannung Sigma mal Reibungszahl) erreicht wird.
Um diese Option zu nutzen muss also dennoch eine Lagerung in den horizontalen Richtungen definiert werden. Diese kann als fest oder mit einer elastischen Feder definiert werden. Falls die Feder mit 0 definiert wird, wird auch mit Eingabe einer Reibungszahl keine Lagerung berücksichtigt.
В случае подшипника с отверстием, силы передаются только за счет сжатия. Растягивающие силы не возникают. Эти эффекты можно смоделировать следующим образом (например, на рисунке):
1. Создайте отверстие в поверхности.
2. Einen Balkenstab mit der Nichtlinearität Ausfall bei Zug erzeugen und in Öffnung setzen. Es ist wichtig, einen Balkenstab und keinen Druckstab zu verwenden (ein Druckstab ist ein Fachwerkstab, wodurch das System kinematisch wäre).
3. Stab in Öffnung rotieren und dabei mehrfach kopieren
Anstelle der Stäbe könnte man die Öffnung auch durch eine Fläche mit der Steifigkeit Membranzugfrei füllen. Bei der Verwendung dieser Flächensteifigkeit geschieht Folgendes:
Die Berechnung erfolgt in mehreren Iterationen. Nach der ersten Iteration wird überprüft, in welchen Flächenelementen für die Hauptmembranspannung Zug auftritt. Diese Elemente fallen in der nächsten Iteration aus (besser gesagt, die Steifigkeit wird stark reduziert).
Bei beiden Modellierungsvarianten sollte man in etwa die gleichen Ergebnisse erhalten.