OpenSees کانال خانه
1.02K subscribers
11 photos
18 videos
10 files
48 links
کانال آموزش های تخصصی OpenSees

ادمین:
سید علیرضا جلالی @SAJalali

لینک کانال:
https://t.me/OpenSeesHouse

لینک گروه پرسش و پاسخ OpenSees:
https://t.me/joinchat/FCTfOgIMs_NlNmNk
Download Telegram
⭐️ خلاصه سوال: تفاوت تحلیل دینامیکی به روش تحریک یکنواخت (uniformExcitation) با تحلیل تحت الگوی multipleSupport چیست؟

⭐️ چکیده پاسخ:
1- روش تحریک یکنواخت قادر به شبیه سازی توزیع موج-گونه شتاب در سازه بر اساس ویژگی های دینامیکی رفتار آن نیست و تنها برای سازه های کوچک و با صلبیت زیاد مناسب است.

2-پاسخ ثبت شده برای سازه در روش تحریک یکنواخت، از دید ناظر مستقر بر پای سازه که خود به همراه سازه نوسان می کند اندازه گیری می شود و در نتیجه نسبی است.

3- تحلیل multipleSupport می تواند به منظور انجام تحلیل های کنترل-جابجایی با همگرایی بهبود یافته در حالت استاتیکی نیز به کار گرفته شود

⭐️ مشروح پاسخ:

✍🏻 روش تحریک یکنواخت:
در این روش، در هر لحظه از زمان، شتاب یکنواختی به تمام جرم های تعریف شده در مدل اعمال می شود. در واقع فرض می شود که صلبیت سازه آنقدر بالاست که به محض اعمال یک شتاب به پای سازه توسط زمین، این شتاب عینا در تمام سازه احساس می شود و هیچ تاخیر فازی در ارسال پالس شتاب از پای سازه به سایر نقاط سازه ای رخ نمی دهد. با این فرض، شتاب زمین همه گره ها را به طور یکنواخت تحت تاثیر قرار می دهد.

روش تحلیل به کار برده شده در این حالت طوری است که پاسخ های سازه ای اعم از جابجایی و شتاب، به صورت نسبی و از دید دستگاه مختصات نصب شده بر پای سازه اندازه گیری و ثبت می شوند. از آنجا که جابجایی و شتاب نسبی بین گره های تکیه گاهی و این دستگاه مختصات (که با خود سازه حرکت می کند) صفر است، شتاب و جابجایی گره های تکیه گاهی در طول تحلیل برابر صفر گزارش می شود. همچنین، برای به دست آوردن شتاب مطلق طبقات (که در محاسبه اثرات تخریبی زلزله مورد نیاز است)، باید شتاب گزارش شده طی تحلیل را با شتاب زمین در هر لحظه جمع نمود.

🎯 نکته دستوری:
برای ثبت شتاب مطلق گره ها به کمک دستور recorder Node باید از گزینه timeSeries که یک گزینه اختیاری است استفاده نمود و شناسه سری زمانی زلزله را به ازای تک تک درجات آزادی که در این دستور پاسخشان ثبت می شود تکرار کرد

✍🏻 روش multipleSupport:
در این روش، فرض به کار رفته در روش قبلی کنار گذاشته می شود و از یک نگاه دقیق تر بهره گرفته می شود که می تواند موج ایجاد شده در سازه به منظور انتقال شتاب از پای سازه به نقاط دیگر آن را در نظر بگیرد. برای سازه های با نرمی قابل توجه (مثل سازه های بلند) و یا سازه های با ابعاد خیلی بزرگ مانند سدها، به کارگیری این نوع تحلیل ضرورت دارد.

در این روش، بجای شتاب زمین، جابجایی ثبت شده توسط لرزه نگارها مستقیما به پای سازه اعمال می شود. دلیل این کار بهره گیری از روش تحلیل متعارف سازه در برابر نشست های تکیه گاهی است که جابجایی مشخصی را به تکیه گاه های یک سازه نامعین اعمال و نیروها و تغییرشکلهای داخلی را در برابر آن بدست می آورد. پسدر این روش، در هر لحظه، یک نشست تکیه گاهی جدید به پای سازه اعمال و جابجایی های کل سازه در برابر آن محاسبه می شود.

یک تفاوت مهم این روش با روش تحریک یکنواخت در این است که تا این مرحله از تحلیل را می توان حتی در قالب تحلیل استاتیکی هم به انجام رساند و از فاکتور زمان در تحلیل صرفنظر کرد. در این صورت، عملا فرض شده است که نشست های تکیه گاهی با چنان شیب ملایمی به سازه اثر می کنند که هیچ شتابی در سازه ایجاد نشده و رفتار دینامیکی و نیروهای اینرسی (تابع شتاب) و نیروهای ویسکوز (تابع سرعت) در آن رخ نمی دهد. کاربرد این حالت، انجام تحلیل های استاتیکی کنترل-جابجایی بدون استفاده از دستور integrator displacementControl است که بدلیل ماهیت سعی و خطا فرایند همگرایی دشوارتری دارد

در شرایط تحلیل دینامیکی، تغییرات لحظه به لحظه جابجایی در گره ها به کمک روش های انتگرالگیری دینامیکی (مانند نیومارک) به سرعت و شتاب گرهی تبدیل می شوند که به ترتیب در محاسبه نیروهای ویسکوز (میرایی) و نیروهای اینرسی به کار گرفته می شوند و اثرات دینامیکی تحریک را به طور کامل لحاظ می کنند.

در اینجا بر خلاف روش تحریک یکنواخت (که شتاب زمین را مستقیما به گره ها اعمال می کرد) شتاب گره ها با توجه به نرخ تغییرات جابجایی آنها در زمان محاسبه می شود. در نتیجه، این روش قادر است گسترش موج جابجایی، سرعت و شتاب در ارتفاع سازه را در نظر بگیرد و اثر ویژگی های دینامیکی رفتار سازه را بر نحوه گسترش این موج لحاظ کند.

با احترام 🌹
سیدعلیرضا جلالی (@sajalali)
بنیان گذار خانه OpenSees، دکترای سازه و توسعه دهنده نرم افزارهای تحلیل و طراحی سازه ای
⭐️ خلاصه سوال: در تحلیل IDA برای مدل های سه بعدی، رکوردهای زلزله بر اساس کدام جهت باید scale شوند؟

✍🏻 پاسخ:
اگر فرض کنیم در تحلیل IDA رکوردها قرار است بر اساس شتاب طیفی در پریود مود اول مقیاس شوند، بعضی از روش ها برای مقیاس کردن رکوردها در مدل های سه بعدی به صورت زیر هستند:

🔹 مجذور مربعات شدت ها در دو جهت افقی:
sqrt(SaX^2+SaY^2)

🔹 میانگین هندسی شدت ها در دو جهت افقی:
sqrt(SaX*SaY)

🔹 بزرگترین شدت دو جهت افقی:
max(SaX,SaY)

🔸 اما اینکه کدام یک از این معیارها بهتر است نیازمند تحقیق جداگانه ای در این زمینه است که کدام یک از این روش های مقیاس می تواند پراکندگی پاسخ ها را کاهش دهد.

🔸 یکی از ویژگی های شتاب طیفی در پریود مود اول سازه به عنوان معیار شدت این است که این معیار به ویژگی های دینامیکی سازه وابسته است که در بعضی سازه ها می تواند پراکندگی پاسخ ها را کاهش دهد.

باتشکر از آقای مهندس هادی اسلام نیا
🔹 #سوال_اعضا: سلام جناب مهندس وقت تون بخیر، یه مدل اپن سیس دارم خیلی هم روش کار کردم . وقتی المان ها رو بهش معرفی میکنم برای تمام النان ها پیام زیر رو میده و در نهایت هم مدل انالیز نمیشه. لطف می کنید راهنمایی کنید که این خطا هست یا درسته

✍🏻 پاسخ:
در تعریف مقطع سه بعدی، باید پارامتر GJ را معرفی کنید تا سختی پیچشی به درستی اعمال شود. عدم رعایت این مسئله موجب خطا می شود. به ویژه OpenSees ورژن 3.2 به این مسئله حساس تر است.

باتشکر از آقای مهندس هادی اسلام نیا

کانال:
@OpenSeesHouse
⭐️ خلاصه سوال: اگر قصد داریم چند تحلیل متوالی روی یک مدل انجام دهیم، چگونه رکوردر تعریف کنیم که نتایج تحلیل جدید به نتایج تحلیل قبلی اضافه نشوند؟

🔹 مشروح #سوال_اعضا :
سلام آقای مهندس
یک ساختمان رو تحت 11 رکورد به طور همزمان در یک فایل برای تحلیل قرار دادم. برای هر رکورد یک فولدر خروجی با عنوان جداگانه تشکیل میشه اما مشکل اینجاست وقتی تحلیل تحت رکورد 1 تموم میشه و رکورد 2 شروع میشه، نتایج تحلیل رکورد 2 به خروجی های رکورد 1 اضافه میشه و نتایج تحلیل تحت رکورد 3 به 1 و 2 اضافه میشه و به همین ترتیب. باید چکار کرد که بعد از اتمام تحلیل تحت هر رکورد، فقط خروجی آن ثبت بشه؟

✍🏻 پاسخ:
🔸 هر رکوردر از زمانی که تعریف می شود، نتایج تمام تحلیل هایی که بعد از آن می آید را ثبت می کند. برای اینکه هر تحلیل نتیجه جداگانه ای داشته باشد بعد از هر تحلیل می توانید با دستور remove recorders تمام رکوردهای قبلی را پاک کنید که دیگر رکوردرهای قبلی نتایج تحلیل جدید را ثبت نکنند.

🔸 همچنین اگر قصد دارید فقط چند رکوردر را حذف کنید ابتدا هنگام تعریف رکوردر باید تگ آن را در یک متغیر ذخیره کنید مانند زیر:
set recTag1 [Recorder ....]
سپس با دستور زیر فقط رکوردری با تگ مورد نظر خود را حذف کنید
remove recorder $recTag1

باتشکر از آقای مهندس هادی اسلام نیا

کانال:
@OpenSeesHouse
Media is too big
VIEW IN TELEGRAM
دوره ارزیابی عملکردی بر اساس خسارت لرزه ای-جلسه 1 سرفصل مطالب، دورنمای دوره و روش آموزشی (30 دقیقه)
Media is too big
VIEW IN TELEGRAM
دوره ارزیابی عملکردی بر اساس خسارت لرزه ای-جلسه 2 فرایند طراحی و نقش روش های ارزیابی در آن (15 دقیقه)
Media is too big
VIEW IN TELEGRAM
دوره ارزیابی عملکردی بر اساس خسارت لرزه ای-جلسه 3 روش های طراحی عملکردی و مقایسه آنها با روشهای تجویزی (40 دقیقه)
Media is too big
VIEW IN TELEGRAM
دوره ارزیابی عملکردی بر اساس خسارت لرزه ای-جلسه 4 دورنمایی از فرایند تخمین خسارت لرزه ای به روش FEMA P58 (40 دقیقه) پایان بخش مقدماتی و رایگان. جهت ثبت نام در دوره و دریافت فایلهای ادامه لطفا با ما در ارتباط باشید
This media is not supported in your browser
VIEW IN TELEGRAM
روش یادگیری صد به صفر، چگونه به صورت خودآموز، در حداقل زمان به حداکثر تسلط برسیم.
نسخه کامل این کلیپ بزودی بارگذاری خواهد شد.
هم اکنون آن را در اینستاگرام ببینید:
https://www.instagram.com/p/CMkRCJTFmMq/?igshid=4fnvia31mogq
analyze.pushover.run.tcl
5 KB
⭐️ کد همگرایی پوش آور و تحلیل چرخه ای

🔹 نحوه استفاده:
1. مدل خود را بسازید
2. یک الگوی بارگذاری جانبی به مدل اعمال کنید
3. این فایل را کنار فایل مدل قرار دهید و آن را در انتهای فایل مدل خود سورس کنید:
source analyze.pushover.run.tcl

4. وارد این فایل شوید و ورودی های زیر را تنظیم کنید:
set incr 0.001
set LBuilding 16.
set targetDriftList "0.04"
set roofNode 100

🔸 پارامتر incr :
بیانگر گام های بارگذاری است. مثلا اگر واحد طول مدل بر حسب متر است و در هر گام قصد دارید بام سازه 1 میلی متر حرکت کند باید 0.001 قرار دهید

🔸 پارامتر LBuilding :
ارتفاع کل سازه. مثلا اگر کل سازه 16 متر است، 16 را وارد کنید

🔸 پارامتر targetDriftList:
لیست دریفت هاست. مثلا اگر قصد دارید بام سازه را 4% دریفت دهید عدد 0.04 را وارد کنید. اگر قصد دارید تحلیل چرخه ای انجام دهید لیست دریفت چرخه ها را به عنوان مثال به این شکل وارد کنید:
set targetDriftList "0.02 -0.02 0"

🔸 پارامتر roofNode:
شماره یکی از گره های بام

باتشکر از آقای مهندس هادی اسلام نیا

کانال خانه اپنسیس:
@openaeesHouse
با عرض سلام و تبریک سال نو، اولین قسمت از مجموعه ساعت اپنسیس سال 1401 رو با افتخار به شما عزیزان تقدیم میکنم: یک شروع خوب، یک سال خوب

#OpenSees#OpenSees_House#OpenSeesHour#OpenSeesCourse#OpenSees_Course#OpenSees_Tutorial#آموزش_OpenSees#خانهOpenSees#خانه_OpenSees
https://www.instagram.com/tv/CbustE0gURH/?utm_medium=share_sheet
👆مجموعه ویدیوهای کوتاه و آموزشی ساعت اپنسیس-۱۴۰۱. ارائه در صفحه اینستاگرام خانه OpenSees
Media is too big
VIEW IN TELEGRAM
با عرض سلام و تشکر از همراهی دوستان علاقه مند، برای عزیزانی که مشاهده جلسات ویدیویی ساعت OpenSees در اینستاگرام براشون راحت نیست، جلسات رو در اینجا هم بارگذاری میکنیم.

1️⃣ قسمت اول: یک شروع خوب، یک سال خوب
ساعت اپنسیس 1401-قسمت دوم: اهمیت مدلسازی پارامتریک
#OpenSees#OpenSeesHouse#OpenSees_House#opensees_course #openseesiran#opensees_tutorial#خانه_opensees#خانه_اپنسیس#parametric_modelling
https://www.instagram.com/tv/Cb4J3ovAZJY/?utm_medium=share_sheet
🔦 مدلسازی زوال رفتاری به کمک روش فایبر

🗝 روش فایبر یک روش صریح در مدلسازی رفتار اجزای مقطع محسوب می شود و رویکرد دقیق برای دیدن زوال رفتاری مقطع در این روش، اصلاح منحنی های تنش-کرنش اعضای مقطع با احتساب مودهای شکست آنهاست. در عین حال، چنین منحنی های شامل شکستی معمولا در حالت تک محوره قابل تعریف نیستند چرا که شکست تابعی از اندرکنش تنش های سه بعدی در ماده است. بنابراین بطورکلی می توان گفت روش فایبر برای مدلسازی شکست و زوال ناشی از تغییرشکل های خارج از صفحه و بلکه خارج از راستای محوری ناتوان است. البته این گفتار در خصوص نسخه اصلی و ابتدایی روش فایبر صادق است و نسخه های گسترش یافته مانند آنچه در لینک زیر می توان یافت قابلیت های گسترده تری دارند. با این حال، پیچیدگی و بررسی های محدود انجام شده روی این نسخه ها مانع گسترش استفاده از آن هاست:
https://ses.library.usyd.edu.au/bitstream/handle/2123/24045/r917.pdf?sequence=1&isAllowed=y

🗝 پس از رد به کارگیری روش صریح در مدلسازی زوال مقطع فایبر، ممکن است به فکر استفاده از روش غیرصریح و کالیبره کردن پاسخ مقطع فایبر بر اساس مشاهدات آزمایشگاهی بیفتیم. در این خصوص نیز باید گفت که اصولا روش فایبر به دلیل پیچیدگی خود و دخالت پارامترهای متعدد در پاسخ آن، امکان کالیبراسیون دقیق نسبت به نتایج آزمایشگاهی را فراهم نمی کند. به عبارت دیگر، برای کالیبراسیون ما نیاز به یک دستگاه با تعداد معادلات و مجهولات برابر داریم در حالیکه تعداد مجهولات مدل فایبر بیش از معادلاتی است که از برابر قرار دادن پاسخ مقطع با پاسخ آزمایشگاهی به دست می آید و در این حالت یک پاسخ یکه برای دستگاه معادلات نمی توان یافت. به رغم این مشکل، ملاحظه نتایج تحقیق زیر (توسط فرهی و عرفانی) به عنوان مثالی از تلاش برای کالیبراسیون مقطع فایبر فولادی خالی از لطف نیست:

Employing a fiber-based finite-length plastic hinge model for representing the cyclic and seismic behaviour of hollow steel columns
https://scholar.archive.org/work/sv3lpnzt6bhghnk4ktro26xsnm/access/wayback/http://www.techno-press.org/download.php?journal=scs&volume=23&num=5&ordernum=2
#سوال_پرتکرار 1

🔐چگونه میتوانم در انتهای عضو تیرستون مفصل تعریف کنم؟

🔑 برای اعضای الاستیک، در نسخه های جدید OpenSees و برای المان elasticBeamColumn ورودی های جدیدی در نظر گرفته شده است که به کمک آنها میتوان دوران را در یک یا دو انتهای عضو آزاد کرد:

برای حالت 2-بعدی:
element elasticBeamColumn $eleTag $iNode $jNode $A $E $Iz $transfTag <-mass $massDens> <-cMass> <-release $releaseCode>

برای حالت 3-بعدی:
element elasticBeamColumn $eleTag $iNode $jNode $A $E $G $J $Iy $Iz $transfTag <-mass $massDens> <-cMass> <-releasez $releaseCode> <-releasey $releaseCode>


$releaseCode: moment release flag:
0=no release (default),
1=release at I,
2=release at J,
3=release at I and J

https://openseespydoc.readthedocs.io/en/latest/src/elasticBeamColumn.html

برای سایر انواع المان، آزادسازی در هر درجه آزادی دلخواهی (دوران حول هر یک از محورها یا برش در هر یک از امتدادها) به کمک تعریف گره اضافی قابل انجام است. در نهایت، گره اضافی در جهت مورد نظر برای رفتار مفصلی (مثلا جهت خمشی) آزاد گذاشته می شود و در سایر جهات به گره اصلی مقید می شود.

مطابق شکل، به دنبال مفصلی کردن انتهای یک تیر هستیم و گره های i و j گره های اصلی هستند که بر محور ستون های چپ و راست واقع اند. برای محاسبه شماره گره های جدید، آنها را از شماره گره های موجود مشتق میکنیم تا مطمئن شویم در تمام مدل شماره های چدید منحصربفرد و غیرتکراری هستند:
set i1 [expr $i*100]

برای به دست آورن مختصات گره قبلی میتوان از دستور nodeCoord استفاده کرد. به این روش، یک کد قابل تکرار به دست می آوریم و دیگر لازم نیست برای تک تک گره ها مختصات آنها را به صورت دستی وارد کنیم. دستور nodeCoord شماره یک گره قبلا تعریف شده را میگیرد و مختصات آن را به صورت یک لیست برمیگرداند:
set crds [nodeCoord $i] ;# -> "$x $y" of node $i
برای تعریف گره جدید در مختصات گره i در دو مرحله عمل میکنیم.
مرحله اول تولید دستور :
set command "node $i1 $crds"
مرحله دوم: ارسال دستور به مفسر TCL
eval $command
این روش دومرحله ای و استفاده از دستور eval به منظور تولید دستور صحیح به کمک بازنشانی لیست crds با محتوای آن است چرا که مفسر انتظار دریافت تفکیکی مختصات گره را دارد و نه دریافت یک لیست.
این مراحل را برای تعریف گره j1 میتوان به این صورت خلاصه کرد:
eval "node [expr $j*100] [nodeCoord $j]"

پس از تعریف گره های اضافی، نوبت مقید کردن گره های جدید به گره اصلی در جهات انتقالی 1 و 2 (و آزاد گذاشتن جهت دورانی) است:
equalDOF $i $i1 1 2
equalDOF $j1 $j 1 2
ترتیب ارائه شماره گره ها در دستورات بالا به نحوی است که یک مسیر یک جهته (از چپ به راست) برای تعریف المانهای تشکیل دهنده تیر به دست آید؛ چرا که یک قید دونقطه ای در واقع یک المان معادل است. این موضوع در تفسیر نیروهای داخلی المان اهمیت زیادی دارد.

🖍 استفاده از قید دونقطه ای ممکن است در شرایط خاصی منجر به بروز واگرایی در تحلیل و یا ضعف دقت در محاسبه دوره تناوب مدل شود. برای رفع این مشکل میتوان از فنر با صلبیت دقیق در درجات مقید شده استفاده کرد. علاقه مندان به این موضوع را به آموزشهای خانه OpenSees ارجاع میدهم
#سوال_پرتکرار 2
چگونه پاسخ پسماند سازه را بخوانم؟