شکل مودی در اپنسیس OpenSees

در این بخش از آموزش اپنسیس راه های به دست آوردن شکل مودی در OpenSees را با دو روش دستی و برنامه نویسی آموزش می دهیم.

نحوه محاسبه شکل مودی سازه در OpenSees

یکی از راه های به دست آوردن شکل مودی در اپنسیس استفاده از دستور NodeEigenvector است. نحوه نوشتن دستور به شکل زیر است:

اپنسیس TCL:

nodeEigenvector $nodeTag $eigenvector <$dof>

اپنسیس پایتون:

nodeEigenvector(nodeTag, eigenvector, dof)

nodeTag: شماره گره

eigenvector: شماره مود مورد نظر

dof: درجه آزادی مورد نظر

با فرض خطی بودن شکل مودی در مود اول، برای محاسبه شکل مودی در هر طبقه، کافی است شکل مودی یکی از گره های آن طبقه را به دست آوریم. در مدل های دوبعدی OpenSees در مدل های سه بعدی اپنسیس می توانیم شکل مودی مرکز جرم را به دست آوریم. به این ترتیب اگر سازه مانند شکل بالا باشد، کافی است، شکل مودی گره های 111 تا 113 را برای درجه آزادی 1 به دست آوریم.

کد نوشتن شکل مودی در سازه فوق به صورت زیر است:

اپنسیس TCL:

eigen 2
set phiStory1 [nodeEigenvector 111 1 1]
set phiStory2 [nodeEigenvector 112 1 1]
set phiStory3 [nodeEigenvector 113 1 1]

اپنسیس پایتون:

eigen(2)
phiStory1 = nodeEigenvector(111, 1, 1)
phiStory2 = nodeEigenvector(112, 1, 1)
phiStory2 = nodeEigenvector(113, 1, 1)

 توجه مهم:

قبل از نوشتن دستور گرفتن شکل مودی در اپنسیس لازم است که تحلیل آیگن eigen انجام دهیم. در کدهای فوق دستور eigen برای همین منظور به کار رفته و مقادیر ویژه 2 تا مود به دست آمده است. در صورتی که شکل های مودی برای مودهای بالاتر لازم باشد باید عدد مقابل دستور eigen تغییر کند.

استفاده از برنامه نویسی در محاسبه شکل مودی:

یکی از چالش های مهم برای کار با OpenSees حجم زیاد کدهاست به ویژه برای پایان نامه هایی که تعداد زیادی سازه یا سازه هایی با تعداد طبقات زیاد دارند. راه حل این چالش استفاده صحیح از برنامه نویسی است که موجب می شود حجم کدها به میزان قابل توجه ای کاهش یابد، در زمان صرفه جویی شود و پیدا کردن و رفع اشکال ها ساده تر شود.

در این قسمت از آموزش اپنسیس، نحوه دریافت شکل مودی با برنامه نویسی را آموزش می دهیم که برای سازه های با تعداد طبقه دلخواه قابل استفاده است. ابتدا تعداد طبقات را در پارامتری به نام nStory ذخیره می کنیم:

سپس با استفاده از حلقه for از طبقه اول تا طبقه آخر (nStory) حرکت می کنیم و شماره گره را در متغیر nodeTag ذخیره می کنیم. سپس دستور NodeEigenvector را برای هریک از گره ها اجرا می کنیم:

اپنسیس TCL:

set nStory 3
for {set i 1} {$i <= $nStory} {incr i} {
	set nodeTag 11[set i]
	set shape($i)  [nodeEigenvector $nodeTag 1 1]
	puts "shape($i) = $shape($i)"
}

اپنسیس پایتون:

nStory = 3
for i in range(1,nStory+1):
	nodeTag = 110 + i
	shape = nodeEigenvector(nodeTag, 1, 1)
	print(shape)

در کد بالا شماره nodeTag، بستگی به فرضیات ما در شماره گذاری گره ها دارد. مثلا در شکل نشان داده شده، عدد 110 با شماره طبقه جمع می شود تا شماره گره آن طبقه به دست آید.

همچنین وقتی از دستور NodeEigenvector استفاده می کنیم باید مقدار شکل مودی را در یک پارامتر ذخیره کنیم که در اینجا آن را در shape($i) ذخیره می کنیم. در اپنسیس پایتون برای سادگی شکل مودی را در متغیرهای جداگانه ذخیره نکرده ایم. در آخر از دستور puts یا print برای چاپ خروجی استفاده می کنیم. به این ترتیب اگر سازه 3 طبقه یا 30 طبقه باشد تفاوتی در کد ایجاد نمی شود و صرفا با تغییر عدد nStory شکل مودی همه طبقات به دست می آید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *