OIQ-Exam-Question-1 (Version 2)

Technical exam question from Ordre des ingénieurs du Québec. Obviously meant to be done using moment-distribution, but even easier using slope-deflection. This version use a newer 'sdutil' that also computes end shears.


In [1]:
from sympy import *
init_printing(use_latex='mathjax')
from IPython import display

In [2]:
display.SVG('oiq-exam-1.svg')


Out[2]:
image/svg+xml Pin Support Roller Support Roller Support Roller Support 180kN 45kN/m I 2I I 4m 2m 6m 8m 6m a b c d

In [3]:
from sdutil2 import SD, FEF
var('EI theta_a theta_b theta_c theta_d')
Mab,Mba,Vab,Vba = SD(6,EI,theta_a,theta_b) + FEF.p(6,180,4)
Mbc,Mcb,Vbc,Vcb = SD(8,2*EI,theta_b,theta_c) + FEF.udl(8,45)
Mcd,Mdc,Vcd,Vdc = SD(6,EI,theta_c,theta_d)

In [4]:
Mab


Out[4]:
$$\frac{EI}{6} \left(4 \theta_{a} + 2 \theta_{b}\right) - 80.0$$

Solve equilbrium equations for rotations:


In [5]:
soln = solve( [Mab,Mba+Mbc,Mcb+Mcd,Mdc],[theta_a,theta_b,theta_c,theta_d] )
soln


Out[5]:
$$\left \{ \theta_{a} : \frac{75.0}{EI}, \quad \theta_{b} : \frac{90.0}{EI}, \quad \theta_{c} : - \frac{190.0}{EI}, \quad \theta_{d} : \frac{95.0}{EI}\right \}$$

Member end moments:


In [6]:
[m.subs(soln) for m in [Mab,Mba,Mbc,Mcb,Mcd,Mdc]]


Out[6]:
$$\left [ 0, \quad 245.0, \quad -245.0, \quad 95.0, \quad -95.0, \quad 0\right ]$$

Member end shears:


In [7]:
[v.subs(soln).n(4) for v in [Vab,Vba,Vbc,Vcb,Vcd,Vdc]]


Out[7]:
$$\left [ 19.17, \quad -160.8, \quad 198.8, \quad -161.3, \quad 15.83, \quad 15.83\right ]$$

Reactions:


In [8]:
Ra = Vab
Rb = Vbc - Vba
Rc = Vcd - Vcb
Rd = -Vdc
[r.subs(soln).n(4) for r in [Ra,Rb,Rc,Rd]]


Out[8]:
$$\left [ 19.17, \quad 359.6, \quad 177.1, \quad -15.83\right ]$$

Check overal equilibrium


In [9]:
# sum forces in vertical dirn.
(Ra+Rb+Rc+Rd - 180 - 45*8).subs(soln)


Out[9]:
$$0$$

In [10]:
# sum moments about left
(-Rb*6 - Rc*(6+8) -Rd*(6+8+6) + 180*4 + 45*8*(6 + 8/2.)).subs(soln)


Out[10]:
$$0$$

In [11]:
Ra.expand()


Out[11]:
$$- \frac{EI \theta_{a}}{6} - \frac{EI \theta_{b}}{6} + 46.6666666666667$$

In [ ]: