AOKI's copy&paste archive

高専から駅弁大学から東工大を経て大企業へ 浅く広い趣味とかキャリアの日記を

断面二次モーメントを求める(1).py

pytho.hatenablog.com
これを直せなかったのでリニューアル

# -*- coding: utf-8 -*-
"""
Created on Sat Dec 15 12:32:26 2018

@author: Aoki
"""
import random
import ini
#s:steel,c:concrete
#corrosion
decdist=ini.corr_a*ini.time**ini.corr_b
#%%
#random thickness
thick_upfl=random.gauss(1.00,0.01)*ini.thick_upfl#-decdist
thick_web =random.gauss(1.00,0.01)*ini.thick_web#-decdist
thick_dwfl=random.gauss(1.00,0.01)*ini.thick_dwfl-decdist
deck=random.gauss(1.00,0.01)*ini.deck
#%%
#calculate area
area_upfl=thick_upfl*ini.width_upfl
area_web =thick_web*ini.width_web
area_dwfl=thick_dwfl*ini.width_dwfl
area_s=area_upfl+area_web+area_dwfl
area_c=deck*ini.width_deck
area_v=area_s+area_c/ini.n
#%%
#geometrical moment of area G(gm) from up@upfl
gm_upfl=thick_upfl/2
gm_web =thick_upfl+ini.width_web/2
gm_dwfl=thick_upfl+ini.width_web+thick_dwfl/2
gm=(area_upfl*gm_upfl+area_web*gm_web+area_dwfl*gm_dwfl)/area_s#guader
#%%
#geometrical moment of inertia I
Ic=ini.width_deck*deck**3/12
Is=(ini.width_upfl*thick_upfl**3+thick_web*ini.width_web**3+ini.width_dwfl*thick_dwfl**3)/12
Is=Is+area_upfl*(gm-gm_upfl)**2+area_web*(abs(gm-gm_web))**2+area_dwfl*(gm_dwfl-gm)**2
ys=thick_upfl+ini.width_web+thick_dwfl-gm
#%%
#composite
dist = deck/2+gm+ini.len_haunch
dist_s=area_c*dist/ini.n/area_v
dist_c=area_s*dist/area_v+ini.len_haunch
Iv=Is+Ic/ini.n+area_s*dist_s**2+area_c*dist_c**2/ini.n
yv=thick_upfl+ini.width_web+thick_dwfl+deck/2-dist+dist_s
#%%
#check
if not 0.9<Iv/ini.Iv<1.2:
    print('Iv error')
    print(Iv/ini.Iv)
if __name__ == '__main__':
    print(Iv)