(۳۰)
ادامهی تشریح بخشهای یک کد بهینه سازی
بخش ۲: متغیرهای طراحی
(Design Variables)
– خطوط ۵۱ تا ۱۰۷
این بخش، پارامترهای قابل تنظیم الگوریتم را تعریف میکند. هر متغیر طراحی، یک پروفیل فولادی از لیست SECTION_LIST است:
🔸 کلاس SteelSection
مشخصات کامل یک پروفیل W-shape را ذخیره میکند: نام، مساحت (A)، ممان اینرسی (Ix)، اساس مقطع پلاستیک (Zx)، شعاعهای ژیراسیون (rx, ry) و ابعاد هندسی (d, tw, bf, tf)...
🔸 لیست SECTION_LIST
شامل ۱۵ پروفیل استاندارد از W10×12 تا W21×62 است که از AISC Manual استخراج شدهاند.
در این مسئله، ۱۰ متغیر طراحی داریم: ۴ تیر (۲ تیر در هر طبقه) و ۶ ستون (۳ ستون در هر طبقه). هر متغیر میتواند یکی از ۱۵ پروفیل را انتخاب کند. پس فضای جستجو برابر 10^15 حالت ممکن! بیش از ۵۷۶ میلیارد حرکت!! 😉 🤯
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
.
ادامهی تشریح بخشهای یک کد بهینه سازی
بخش ۲: متغیرهای طراحی
(Design Variables)
– خطوط ۵۱ تا ۱۰۷
این بخش، پارامترهای قابل تنظیم الگوریتم را تعریف میکند. هر متغیر طراحی، یک پروفیل فولادی از لیست SECTION_LIST است:
🔸 کلاس SteelSection
مشخصات کامل یک پروفیل W-shape را ذخیره میکند: نام، مساحت (A)، ممان اینرسی (Ix)، اساس مقطع پلاستیک (Zx)، شعاعهای ژیراسیون (rx, ry) و ابعاد هندسی (d, tw, bf, tf)...
🔸 لیست SECTION_LIST
شامل ۱۵ پروفیل استاندارد از W10×12 تا W21×62 است که از AISC Manual استخراج شدهاند.
در این مسئله، ۱۰ متغیر طراحی داریم: ۴ تیر (۲ تیر در هر طبقه) و ۶ ستون (۳ ستون در هر طبقه). هر متغیر میتواند یکی از ۱۵ پروفیل را انتخاب کند. پس فضای جستجو برابر 10^15 حالت ممکن! بیش از ۵۷۶ میلیارد حرکت!! 😉 🤯
نکته کدنویسی: در الگوریتم PSO، موقعیت هر ذره یک آرایهی ۱۰ عضوی از اعداد صحیح بین ۰ تا ۱۴ است که هر عدد نشاندهندهی اندیس یک پروفیل در SECTION_LIST است..
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
.
🙏5
(۳۱)
ادامهی تشریح بخش های یک کد بهینه سازی
بخش ۳ و ۴: تابع هدف و قیود – خطوط ۱۱۰ تا ۲۶۰
🫀 این بخش، دستگاه سنجش کیفیت و خطقرمزهای مهندسی را پیادهسازی میکند. تابع evaluate_design قلب برنامه است و برای هر طرح (مجموعهای از پروفیلها) این مراحل را انجام میدهد:
مرحلهی ۱: محاسبهی وزن کل سازه
وزن هر عضو از مساحت مقطع × طول × چگالی فولاد (۷۸۵۰ kg/m³) محاسبه میشود.
مرحلهی ۲: محاسبهی بارهای ثقلی (ASCE 7)، به عنوان مثال آورده شده است و باید مطابق با استاندارد یا مبحث ۶ ترکیبات بار مختلف کد نویسی شوند.
بارهای مرده و زنده با ضرایب LRFD ترکیب میشوند (ASCE 7 Section 2.3).
مرحلهی ۳: محاسبهی بار لرزهای (ASCE 7)، مشابه ویرایش پنجم استاندارد ۲۸۰۰ است و مقدار Cs در بخش جدایی از کد با توجه به ورودی های شتاب طیفی محاسبه میشود، پیشنهاد میکنم این بخش چون میتواند تغییر در ساختگاه داشته باشید به عنوان یک کد جدا نوشته شود و در کد بهینه سازی فراخوانی شود. ⚠️
نیروی برش پایه از رابطهی V = Cs × W محاسبه میشود (ASCE 7 Eq. 12.8-1).
مرحلهی ۴: بررسی قیود (AISC 360)
بررسی تیرها (AISC 360 Chapter F و G) و یا فرمول های مبحث ۱۰، این بخش با توجه به سیستم سازه ای شما باید نوشته شود و دقیقا روابط آیین نامه با توجه به شکل پذیری سازه کد نویسی شوند:
بررسی ستونها (AISC 360 Chapter E) یا مبحث ۱۰ مطابق توضیحاتی که برای تیر داده شده است :
این روابط مستقیماً از AISC 360 Eq. E3-2 و E3-3 گرفته شدهاند.
توجه بفرمایید که این بخش همانطور که در بالا اشاره شد فقط به عنوان مثال آورده شده است.
⭕⚠️
مرحلهی ۵: تابع جریمه (Penalty Function)، مهم ترین قسمت این بخش است و با توجه به الگوریتم انتخاب شده و روش های دیگری که در مقالات آمده است میتواند تغییر کند.
اگر هر یک از نسبتهای تنش (در این مثال) از ۱.۰ بیشتر شود (یا سایر معیار های آییننامهها (یعنی قیدها) نقض شده باشند)، یک جریمهی سنگین به وزن (در این مثال که هدف وزن کمینه بود یا سایر اهداف بهینه سازی با توجه به اهداف انتخاب شده) اضافه میشود. این کار باعث میشود الگوریتم، طرحهای غیرمجاز (مغایر الزامات آییننامهها) را بهعنوان طرحهای بد تشخیص دهد و از آنها گذر کند.
همچنین میتوانید به این بخش با توجه به الگوریتم خود یک کد اضافه کنید که فضای پارتو را نیز مرتب (سورت) کند.
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
کانال بله
https://ble.ir/EarthQuakeSoftware
.
ادامهی تشریح بخش های یک کد بهینه سازی
بخش ۳ و ۴: تابع هدف و قیود – خطوط ۱۱۰ تا ۲۶۰
class FrameAnalyzer:
def evaluate_design(self, section_indices: List[int]) -> Dict:
🫀 این بخش، دستگاه سنجش کیفیت و خطقرمزهای مهندسی را پیادهسازی میکند. تابع evaluate_design قلب برنامه است و برای هر طرح (مجموعهای از پروفیلها) این مراحل را انجام میدهد:
مرحلهی ۱: محاسبهی وزن کل سازه
total_weight = 0.0
for idx in beam_indices:
section = SECTION_LIST[idx]
weight = section.A * length * 7850 # چگالی فولاد
total_weight += weight
وزن هر عضو از مساحت مقطع × طول × چگالی فولاد (۷۸۵۰ kg/m³) محاسبه میشود.
مرحلهی ۲: محاسبهی بارهای ثقلی (ASCE 7)، به عنوان مثال آورده شده است و باید مطابق با استاندارد یا مبحث ۶ ترکیبات بار مختلف کد نویسی شوند.
w_u = 1.2 * w_DL + 1.6 * w_LL
بارهای مرده و زنده با ضرایب LRFD ترکیب میشوند (ASCE 7 Section 2.3).
مرحلهی ۳: محاسبهی بار لرزهای (ASCE 7)، مشابه ویرایش پنجم استاندارد ۲۸۰۰ است و مقدار Cs در بخش جدایی از کد با توجه به ورودی های شتاب طیفی محاسبه میشود، پیشنهاد میکنم این بخش چون میتواند تغییر در ساختگاه داشته باشید به عنوان یک کد جدا نوشته شود و در کد بهینه سازی فراخوانی شود. ⚠️
seismic_load = self.calculate_seismic_load(total_weight) # V = Cs × W
نیروی برش پایه از رابطهی V = Cs × W محاسبه میشود (ASCE 7 Eq. 12.8-1).
مرحلهی ۴: بررسی قیود (AISC 360)
بررسی تیرها (AISC 360 Chapter F و G) و یا فرمول های مبحث ۱۰، این بخش با توجه به سیستم سازه ای شما باید نوشته شود و دقیقا روابط آیین نامه با توجه به شکل پذیری سازه کد نویسی شوند:
# ظرفیت خمشی: Mn = Fy × Zx
phi_Mn = inputs.phi_b * inputs.Fy * section.Zx
bending_ratio = Mu / phi_Mn # باید ≤ 1.0
# ظرفیت برشی: Vn = 0.6 × Fy × Aw
phi_Vn = inputs.phi_v * 0.6 * inputs.Fy * section.d * section.tw
shear_ratio = Vu / phi_Vn # باید ≤ 1.0
بررسی ستونها (AISC 360 Chapter E) یا مبحث ۱۰ مطابق توضیحاتی که برای تیر داده شده است :
# تنش کمانش بحرانی (Euler buckling)
lambda_c = (KL / section.ry) * sqrt(Fy / (π² × E))
if lambda_c <= 4.71 * sqrt(E/Fy):
Fcr = (0.658^(Fy/Fe)) × Fy # کمانش غیرالاستیک
else:
Fcr = 0.877 × Fe # کمانش الاستیک
Pn = Fcr × A
compression_ratio = axial_load / (phi_c × Pn) # باید ≤ 1.0
این روابط مستقیماً از AISC 360 Eq. E3-2 و E3-3 گرفته شدهاند.
توجه بفرمایید که این بخش همانطور که در بالا اشاره شد فقط به عنوان مثال آورده شده است.
⭕⚠️
مرحلهی ۵: تابع جریمه (Penalty Function)، مهم ترین قسمت این بخش است و با توجه به الگوریتم انتخاب شده و روش های دیگری که در مقالات آمده است میتواند تغییر کند.
if not constraints_ok:
excess = sum(max(0, r - 1.0) for r in all_ratios)
penalty = 1000 * excess
objective_value = total_weight + penalty
اگر هر یک از نسبتهای تنش (در این مثال) از ۱.۰ بیشتر شود (یا سایر معیار های آییننامهها (یعنی قیدها) نقض شده باشند)، یک جریمهی سنگین به وزن (در این مثال که هدف وزن کمینه بود یا سایر اهداف بهینه سازی با توجه به اهداف انتخاب شده) اضافه میشود. این کار باعث میشود الگوریتم، طرحهای غیرمجاز (مغایر الزامات آییننامهها) را بهعنوان طرحهای بد تشخیص دهد و از آنها گذر کند.
همچنین میتوانید به این بخش با توجه به الگوریتم خود یک کد اضافه کنید که فضای پارتو را نیز مرتب (سورت) کند.
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
کانال بله
https://ble.ir/EarthQuakeSoftware
.
👍5👏1
Forwarded from Dr.Hossein Parvini Sani
چالش_های_طراحی_با_ویرایش_5_آئین_نامه_2800.pdf
13.6 MB
دوره آموزشی "چالش های طراحی با ویرایش 5 آئین نامه 2800" برگزار شده در مورخ 10 شهریور 1405 سازمان نظام مهندسی ساختمان استان زنجان
❤2🙏2
Forwarded from کانال تلگرام مهندس احمدرضا جعفری
✳️ #نکته_آموزشی از ویرایش پنجم #استاندارد_2800 : افزایش نیروی جانبی زلزله در اعضای خاص
🔹 مطابق بند 3-16-3-1 از ویرایش 5 استاندارد 2800 در مواردی که سازه دارای #نامنظمی از نوع نامنظمی جابه جایی خارج از صفحه و یا نامنظمی قطع داخل صفحه عناصر قائم مقاوم لرزه ای بوده و #دیوار_برشی ، #مهاربند و یا ستون تا روی #شالوده ادامه پیدا نمی کند ، اعضای سازه ای که بارهای حاصل از اعضای منقطع را تحمل میکنند باید برای #ترکیب_بار_تشدیدیافته #زلزله طراحی گردند. قابل ذکر است که در ویرایش چهارم این موضوع فقط شامل نیروی محوری منتقل شده از اعضای منقطع است و طراحی برای زلزله تشدیدیافته شامل بقیه تلاشهای منتقل شده ( نظیر لنگر خمشی و پیچشی و نیروی برشی ) نیست. ضمن اینکه اثر تشدید فقط شامل بار منتقل شده از اعضای منقطع می باشد، اما در ویرایش پنجم کل بارهای زلزله وارد بر این اعضا شامل اثر تشدید میگردد. به بیان دیگر اگر به این اعضا نیروهایی همزمان از اعضای منقطع و غیرمنقطع منتقل گردد، کل نیروها باید شامل اثر تشدید گردد که این موضوع در ویرایش چهارم فقط شامل نیروی منتقل شده از اعضای منقطع می باشد
🆔 @jafariar
🔹 مطابق بند 3-16-3-1 از ویرایش 5 استاندارد 2800 در مواردی که سازه دارای #نامنظمی از نوع نامنظمی جابه جایی خارج از صفحه و یا نامنظمی قطع داخل صفحه عناصر قائم مقاوم لرزه ای بوده و #دیوار_برشی ، #مهاربند و یا ستون تا روی #شالوده ادامه پیدا نمی کند ، اعضای سازه ای که بارهای حاصل از اعضای منقطع را تحمل میکنند باید برای #ترکیب_بار_تشدیدیافته #زلزله طراحی گردند. قابل ذکر است که در ویرایش چهارم این موضوع فقط شامل نیروی محوری منتقل شده از اعضای منقطع است و طراحی برای زلزله تشدیدیافته شامل بقیه تلاشهای منتقل شده ( نظیر لنگر خمشی و پیچشی و نیروی برشی ) نیست. ضمن اینکه اثر تشدید فقط شامل بار منتقل شده از اعضای منقطع می باشد، اما در ویرایش پنجم کل بارهای زلزله وارد بر این اعضا شامل اثر تشدید میگردد. به بیان دیگر اگر به این اعضا نیروهایی همزمان از اعضای منقطع و غیرمنقطع منتقل گردد، کل نیروها باید شامل اثر تشدید گردد که این موضوع در ویرایش چهارم فقط شامل نیروی منتقل شده از اعضای منقطع می باشد
🆔 @jafariar
❤4
Forwarded from FarzamBodaghi_STR
کارجویان محترم و علاقمندان به موقعیتها از طریق لینک فوق میتوانید اطلاعات خود را ثبت نمایند.
ماموریت ما ساده است، اما بزرگ:
کم کردن فاصله میان مهندسان توانمند و فرصتهای واقعی.
میخواهیم تخصصها دیده شوند، تجربهها به فرصت تبدیل شوند و هیچ مهندس توانمندی صرفاً به دلیل نداشتن ارتباطات کافی، از مسیر پیشرفت جا نماند.
«شبکه یکپارچه متخصصین عمران کشور» با هدف ایجاد بستری برای شناخت، ارتباط و همکاری میان مهندسان، کارفرمایان و مجموعههای عمرانی شکل گرفته است.
ثبت رزومه شما فقط ثبت چند اطلاعات نیست؛
شما با ثبت این رزومه، توانمندی خود را در نقشه تخصصی عمران کشور ثبت میکنید.
ماموریت ما ساده است، اما بزرگ:
کم کردن فاصله میان مهندسان توانمند و فرصتهای واقعی.
میخواهیم تخصصها دیده شوند، تجربهها به فرصت تبدیل شوند و هیچ مهندس توانمندی صرفاً به دلیل نداشتن ارتباطات کافی، از مسیر پیشرفت جا نماند.
«شبکه یکپارچه متخصصین عمران کشور» با هدف ایجاد بستری برای شناخت، ارتباط و همکاری میان مهندسان، کارفرمایان و مجموعههای عمرانی شکل گرفته است.
ثبت رزومه شما فقط ثبت چند اطلاعات نیست؛
شما با ثبت این رزومه، توانمندی خود را در نقشه تخصصی عمران کشور ثبت میکنید.
❤2
FarzamBodaghi_STR
کارجویان محترم و علاقمندان به موقعیتها از طریق لینک فوق میتوانید اطلاعات خود را ثبت نمایند. ماموریت ما ساده است، اما بزرگ: کم کردن فاصله میان مهندسان توانمند و فرصتهای واقعی. میخواهیم تخصصها دیده شوند، تجربهها به فرصت تبدیل شوند و هیچ مهندس توانمندی…
سایر پست های مربوطه را در کانال تلگرامی دکتر بداغی دنبال کنید.
سپاس از دکتر بداغی گرام بابت این کار ارزشمند 🙏💐
سپاس از دکتر بداغی گرام بابت این کار ارزشمند 🙏💐
❤2
EQ SOFT
(۳۱) ادامهی تشریح بخش های یک کد بهینه سازی بخش ۳ و ۴: تابع هدف و قیود – خطوط ۱۱۰ تا ۲۶۰ class FrameAnalyzer: def evaluate_design(self, section_indices: List[int]) -> Dict: 🫀 این بخش، دستگاه سنجش کیفیت و خطقرمزهای مهندسی را پیادهسازی میکند. تابع…
PSO_code_for_edu_Opti.py
21.6 KB
کد بهینه سازی قاب فولادی دو طبقه با الگوریتم ازدحام ذرات.
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
کانال بله
https://ble.ir/EarthQuakeSoftware
.
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
کانال بله
https://ble.ir/EarthQuakeSoftware
.
🙏3❤1👏1
مقایسهی دو الگوریتم ازدحام ذرات و الگوریتم ژنتیک برای قاب فرض شده جهت آموزش در کانال.
کد الگوریتم ژنتیک را نیز نوشتم و پس از تکمیل توضیح هر دو کد آنرا نیز در کانال ارسال خواهم کرد.
در این دو نمودار قدرت الگوریتم ازدحام ذرات را به خوبی میتوانید مشاهده کنید.
پست شماره ۱۵ را مطالعه کنید.
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
کانال بله
https://ble.ir/EarthQuakeSoftware
.
کد الگوریتم ژنتیک را نیز نوشتم و پس از تکمیل توضیح هر دو کد آنرا نیز در کانال ارسال خواهم کرد.
در این دو نمودار قدرت الگوریتم ازدحام ذرات را به خوبی میتوانید مشاهده کنید.
پست شماره ۱۵ را مطالعه کنید.
پست های قبلی ⬇️
#structural_optimization
کانال تلگرامی
https://t.me/EarthQuakeSoftware
کانال بله
https://ble.ir/EarthQuakeSoftware
.
🙏5