Beispiel #1
0
def _test2():
    f = Pile(γ0=1.1,
             forces_fu=(1940.88, 529.22, 672.31, 21.69, 1286.92, 279.24),
             forces_ac=(0, 0, 0, 0, 0, 0),
             forces_fr=(1940.88, 529.22, 672.31, 21.69, 1286.92, 279.24),
             forces_qp=(1940.88, 529.22, 672.31, 21.69, 1286.92, 279.24),
             forces_ch=(1940.88, 529.22, 672.31, 21.69, 1286.92, 279.24),
             concrete='C30',
             rebar='HRB400',
             L1=3,
             d=1.3,
             h=23,
             h1=0,
             h2=5.6,
             A2=0.8 * 1,
             b2=1.0,
             kf=0.9,
             Ec=30000.0,
             m=5000,
             C0=300000,
             bottom_fixed='True',
             As=28 * 490.9,
             layers=('粉质粘土', '强风化片麻岩', '中风化片麻岩'),
             li=(18, 1.4, 6),
             qik=(70, 110, 220),
             fa0=(370, 400, 1100),
             frk=(0, 0, 17.5e3),
             γ2=18,
             status=(-1, -1, 1))
    f.solve()
    print(f.text())
Beispiel #2
0
def _test1():
    f = Pile(As=20 * 615.8)
    f.solve()
    print(f.text())
Beispiel #3
0
class Abutment(abacus):
    """
    验算桥台多排桩竖向承载力、极限承载力及裂缝宽度
    《公路桥涵地基与基础设计规范》(JTG D63-2007)附录P.0.6~P.0.7
    """

    __title__ = '桥台多排桩验算'
    __inputs__ = OrderedDict((
        ('γ0', ('<i>γ</i><sub>0</sub>', '', 1.0, '重要性系数')),
        ('G', ('', 'kN', 0, '桥台自重', '向下为正')),
        ('Pb_D', ('', 'kN', 0, '上部恒载作用力', '向下为正')),
        ('Pb_L', ('', 'kN', 0, '上部活载作用力', '向下为正')),
        ('ep', ('', 'm', 0, '上部作用力偏心', '上部力作用点相对于承台中心的偏心')),
        ('E', ('', 'kN', 0, '土压力', '向下为正')),
        ('C', ('', 'm', 0, '土压力距基底距离', '土压力距承台底距离')),
        material_base.concrete_item,
        material_base.rebar_item,
        ('L1', ('<i>L</i><sub>1</sub>', 'm', 2, '平行于水平力作用方向的桩间净距')),
        ('d', ('<i>d</i>', 'm', 1.0, '桩径或垂直于水平外力作用方向桩的宽度')),
        ('h', ('<i>h</i>', 'm', 20, '桩长')),
        ('h1', ('<i>h</i><sub>1</sub>', 'm', 0, '桩顶高出地面或局部冲刷线的长度')),
        ('h2', ('<i>h</i><sub>2</sub>', 'm', 10, '柱高')),
        ('hc', ('<i>h</i><sub>c</sub>', 'm', 0, '承台底面埋深',
                '承台底面埋入地面或局部冲刷线下的深度')),
        ('A2', ('<i>A</i><sub>2</sub>', 'm<sup>2</sup>', 0, '柱横截面面积')),
        ('b2',
         ('<i>b</i><sub>2</sub>', '', 1.0, '系数',
          '与平行于水平力作用方向的一排桩的桩数n有关的系数, n=1时取1.0;n=2时取0.6;n=3时取0.5;n=4时取0.45')),
        ('kf', ('<i>k</i><sub>f</sub>', '', 0.9, '桩形状换算系数',
                '圆形或圆端形取0.9;矩形取1.0')),
        ('Ec', ('<i>E</i><sub>c</sub>', 'MPa', 3.0E4, '混凝土抗压弹性模量')),
        ('m', ('<i>m</i>', 'kN/m<sup>4</sup>', 5000, '非岩石地基水平向抗力系数的比例系数')),
        ('C0', ('<i>C</i><sub>0</sub>', 'kN/m<sup>3</sup>', 300000,
                '桩端地基竖向抗力系数', '非岩石地基C0=m0*h, h≥10;岩石地基查表P.0.2-2')),
        ('桩底嵌固', ('桩底嵌固', '', False, '', '', {
            True: '是',
            False: '否'
        })),
        ('As', ('<i>A</i><sub>s</sub>', 'mm<sup>2</sup>', 0, '纵向受拉钢筋面积')),
        # 岩土参数
        ('soil', ('地层名称', '', ('填土', '粘土', '中风化砂岩'), '',
                  '输入各地层名称,示例:(填土,淤泥,粘土,强风化砂岩)')),
        ('li', ('<i>l</i><sub>i</sub>', 'm', (3, 5, 6), '土层厚度',
                '输入各地层厚度,之间用逗号隔开')),
        ('qik', ('<i>q</i><sub>ik</sub>', 'kPa', (50, 60, 120), '侧摩阻力标准值',
                 '输入各地层侧摩阻力标准值,之间用逗号隔开')),
        ('fa0', ('[<i>f</i><sub>a0</sub>]', 'kPa', (220, 250, 800), '承载力基本容许值',
                 '输入各地层承载力基本容许值,之间用逗号隔开')),
        ('frk', ('<i>f</i><sub>rk</sub>', 'kPa', (0, 0, 20000),
                 '岩石饱和单轴抗压强度标准值', '输入各地层承载力标准值,之间用逗号隔开')),
        ('γ2', ('<i>γ</i><sub>2</sub>', 'kN/m<sup>3</sup>', 18, '土层重度',
                '可直接输入桩端以上各土层的加权平均重度,也可输入各层土的重度,之间用逗号隔开')),
        ('status', ('岩石层情况', '', (-1, -1, 1), '', '土=-1,完整=0,较破碎=1,破碎=2')),
        ('bottom_fixed', ('桩底嵌固', '', False, '', '', {
            True: '是',
            False: '否'
        })),
        ('z', ('<i>z</i>', 'm', 1, '计算内力处桩深', '从地面或局部冲刷线起算')),
        ('xi', ('<i>x</i><sub>i</sub>', 'm', [-1.5, 1.5], '第i排桩至承台中心的距离')),
        ('Ki', ('<i>K</i><sub>i</sub>', '', [2, 2], '第i排桩根数')),
        ('ξ', ('<i>ξ</i>', '', 1, '系数',
               '端承桩=1;对于摩擦桩(或摩擦支承管桩),打入或振动下沉时=2/3;钻(挖)孔时=1/2')),
        ('ψ', ('<i>ψ</i>', '', 1, '土层平均内摩擦角', '桩所穿过土层的平均内摩擦角')),
    ))
    __deriveds__ = OrderedDict((
        # 桩基内力计算
        ('α', ('<i>α</i>', 'm<sup>-1</sup>', 0, '桩的变形系数')),
        ('b1', ('<i>b</i><sub>1</sub>', 'm', 20, '桩的计算宽度')),
        ('kh', ('<i>k</i><sub>h</sub>', '', 1.0, '土抗力对变形的影响系数')),
        ('x0', ('<i>x</i><sub>0</sub>', 'm', 0, '水平位移')),
        ('φ0', ('<i>φ</i><sub>0</sub>', 'rad', 0, '转角')),
        ('M0', ('<i>M</i><sub>0</sub>', 'kN·m', 0, '地面或局部冲刷线处剪力弯矩')),
        ('H0', ('<i>H</i><sub>0</sub>', 'kN', 0, '地面或局部冲刷线处剪力')),
        ('Mmax', ('<i>M</i><sub>max</sub>', 'kN·m', 0, '桩身最大弯矩')),
        ('z_Mmax', ('<i>z</i><sub>Mmax</sub>', 'm', 0, '最大弯矩处桩身深度')),
        ('Qmax', ('<i>Q</i><sub>max</sub>', 'kN', 0, '桩身最大剪力')),
        ('z_Qmax', ('<i>z</i><sub>Qmax</sub>', 'm', 0, '最大剪力处桩身深度')),
        ('Mz', ('<i>M</i><sub>z</sub>', 'kN·m', 0, '深度z处桩身弯矩')),
        ('Qz', ('<i>Q</i><sub>z</sub>', 'kN', 0, '深度z处桩身剪力')),
        # 桩基竖向承载力
        ('ζs', ('<i>ζ</i><sub>s</sub>', '', 0, '覆盖层土的侧阻力发挥系数')),
        ('Ra', ('[<i>R</i><sub>a</sub>]', 'kN', 0, '桩基竖向承载力')),
        ('Rt', ('<i>R</i><sub>t</sub>', 'kN', 0, '桩顶反力标准值')),
        ('R', ('<i>R</i>', 'kN', 0, '桩底竖向力')),
    ))
    __toggles__ = {}
    __toggles__.update(material_base.material_toggles)

    def solve(self):
        # 支座反力
        G = self.G  # 桥台自重
        Pb_D = self.Pb_D  # 恒载反力
        Pb_L = self.Pb_L  # 活载反力
        ep = self.ep  # m, 偏心
        E = self.E  # 土压力
        C = self.C  # m, 土压力距基底距离

        # 内力组合(P,H,0,0,0,M)
        forces = [('dead', (G + Pb_D, 0, 0, 0, 0, Pb_D * ep)),
                  ('live', (Pb_L, 0, 0, 0, 0, Pb_L * ep)),
                  ('soil', (0, E, 0, 0, 0, E * C))]
        fu = load_combination.combinate(forces, load_combination.uls_fu)
        ch = load_combination.combinate(forces, load_combination.sls_ch)
        fr = load_combination.combinate(forces, load_combination.sls_fr)
        qp = load_combination.combinate(forces, load_combination.sls_qp)

        # 计算不同荷载组合下桩顶作用力
        cbns = []
        for cbn in [fu, ch, fr, qp]:
            P = cbn[0]
            H = cbn[1]
            M = cbn[5]
            f = pile_group_effects_P06(L1=self.L1,
                                       d=self.d,
                                       h=self.h,
                                       l0=self.h1,
                                       h2=self.h2,
                                       hc=self.hc,
                                       b2=self.b2,
                                       kf=self.kf,
                                       Ec=self.Ec,
                                       m=self.m,
                                       C0=self.C0,
                                       P=P,
                                       H=H,
                                       M=M,
                                       bottom_fixed=self.bottom_fixed,
                                       z=self.z,
                                       xi=self.xi,
                                       Ki=self.Ki,
                                       ξ=self.ξ,
                                       ψ=self.ψ)
            f.solve()
            cbns.append([max(f.Ni), f.H0, 0, 0, 0, f.M0])

        # 桩基计算
        self.pile = Pile(γ0=1,
                         forces_fu=cbns[0],
                         forces_ac=[0, 0, 0, 0, 0, 0],
                         forces_fr=cbns[2],
                         forces_qp=cbns[3],
                         forces_ch=cbns[1],
                         concrete="C40",
                         rebar="HRB400",
                         L1=self.L1,
                         d=self.d,
                         h=self.h,
                         h1=self.h1,
                         h2=self.h2,
                         A2=self.A2,
                         b2=self.b2,
                         kf=self.kf,
                         Ec=self.Ec,
                         m=self.m,
                         C0=self.C0,
                         桩底嵌固=self.bottom_fixed,
                         As=self.As,
                         soil=self.soil,
                         li=self.li,
                         qik=self.qik,
                         fa0=self.fa0,
                         frk=self.frk,
                         γ2=self.γ2,
                         status=self.status)
        self.pile.solve()
        return

    def html(self, digits=2):
        return self.pile.html()
Beispiel #4
0
 from callex.pile import Pile
 f = Pile(γ0=1,
          forces_fu=(1940.88, 529.22, 672.31, 21.69, 1286.92, 279.24),
          forces_ac=(0, 0, 0, 0, 0, 0),
          forces_fr=(1354.01, 381.35, 479.49, 16.41, 919.21, 202.16),
          forces_qp=(1354.01, 380.34, 479.49, 16.25, 919.21, 201.41),
          forces_ch=(1337.67, 382.36, 477.24, 16.57, 918.33, 202.92),
          concrete='C40',
          rebar='HRB400',
          L1=2,
          d=1,
          h=20,
          h1=1,
          h2=10,
          A2=0,
          b2=1,
          kf=0.9,
          Ec=30000,
          m=5000,
          C0=300000,
          bottom_fixed='false',
          As=20 * 615.8,
          layers=['填土', '粘土'
                  ',中风化砂岩'],
          li=(3, 5, 6),
          qik=(50, 60, 120),
          fa0=(220, 250, 800),
          frk=(0, 0, 20000),
          γ2=18,
          status=(-1, -1, 1))
 f.solve()
Beispiel #5
0
    def solve(self):
        # 支座反力
        G = self.G  # 桥台自重
        Pb_D = self.Pb_D  # 恒载反力
        Pb_L = self.Pb_L  # 活载反力
        ep = self.ep  # m, 偏心
        E = self.E  # 土压力
        C = self.C  # m, 土压力距基底距离

        # 内力组合(P,H,0,0,0,M)
        forces = [('dead', (G + Pb_D, 0, 0, 0, 0, Pb_D * ep)),
                  ('live', (Pb_L, 0, 0, 0, 0, Pb_L * ep)),
                  ('soil', (0, E, 0, 0, 0, E * C))]
        fu = load_combination.combinate(forces, load_combination.uls_fu)
        ch = load_combination.combinate(forces, load_combination.sls_ch)
        fr = load_combination.combinate(forces, load_combination.sls_fr)
        qp = load_combination.combinate(forces, load_combination.sls_qp)

        # 计算不同荷载组合下桩顶作用力
        cbns = []
        for cbn in [fu, ch, fr, qp]:
            P = cbn[0]
            H = cbn[1]
            M = cbn[5]
            f = pile_group_effects_P06(L1=self.L1,
                                       d=self.d,
                                       h=self.h,
                                       l0=self.h1,
                                       h2=self.h2,
                                       hc=self.hc,
                                       b2=self.b2,
                                       kf=self.kf,
                                       Ec=self.Ec,
                                       m=self.m,
                                       C0=self.C0,
                                       P=P,
                                       H=H,
                                       M=M,
                                       bottom_fixed=self.bottom_fixed,
                                       z=self.z,
                                       xi=self.xi,
                                       Ki=self.Ki,
                                       ξ=self.ξ,
                                       ψ=self.ψ)
            f.solve()
            cbns.append([max(f.Ni), f.H0, 0, 0, 0, f.M0])

        # 桩基计算
        self.pile = Pile(γ0=1,
                         forces_fu=cbns[0],
                         forces_ac=[0, 0, 0, 0, 0, 0],
                         forces_fr=cbns[2],
                         forces_qp=cbns[3],
                         forces_ch=cbns[1],
                         concrete="C40",
                         rebar="HRB400",
                         L1=self.L1,
                         d=self.d,
                         h=self.h,
                         h1=self.h1,
                         h2=self.h2,
                         A2=self.A2,
                         b2=self.b2,
                         kf=self.kf,
                         Ec=self.Ec,
                         m=self.m,
                         C0=self.C0,
                         桩底嵌固=self.bottom_fixed,
                         As=self.As,
                         soil=self.soil,
                         li=self.li,
                         qik=self.qik,
                         fa0=self.fa0,
                         frk=self.frk,
                         γ2=self.γ2,
                         status=self.status)
        self.pile.solve()
        return