Values of $\int_0^L m M dx$
Some day we will have some better figures to help …
In the meantime - have a look at this:
And also see this:
from sympy import init_printing, var, solve
init_printing()
var('m0 m1 M0 M1 V0 V1 x w EI L')
Express virtual moment as a function of $x$, $x = 0$ at left end and increasing rightward. Fairly simple as the virtual moment is always linear, $m_0$ at left end and $m_1$ at the right:
mx = m0 + (m1-m0)*x/L
mx
Prove that this gives the correct value at the right end, by substituting $x=L$:
mx.subs({x:L})
Determine the shear at the left end of the real moment diagram, by solving $\sum M = 0$ about the right end, +ive CW:
V = solve( M0 + V0*L - M1 - w*L*L/2, V0 )[0]
V
Now express real moment as a function of $x$:
Mx = M0 + V*x - w*x*x/2
Mx
Thats too complex for easy checking. Does it at least deliver the correct value, $M_1$ at $x=L$?
Mx.subs({x:L})
Now integrate the product of the virtual and the real, for $x$ from $0$ to $L$:
I1 = (mx*Mx).integrate((x,0,L))
I1
Gnarly! Lets try to simplify:
I2 = I1.simplify()
I2
Thats quite a bit better, but we can see some additional factorizations that sympy
may not be able to find on its
own. Lets try this one, by factoring out $m_0$ and $m_1$ manually:
I3 = (L/24)*(m0*(w*L*L + 8*M0 + 4*M1) + m1*(w*L*L + 4*M0 + 8*M1))
I3
And confirm that they are equal:
(I2-I3).simplify()
The Result
So thats it! Here is the formula we will use to give us the integral of the product of the most general virtual moment and a general real moment (subjected to a UDL only):
I3
And in a format that is suitable for copying and pasting into computer software:
str(I3)
Special Cases
The following generates the special case values in the table provided by N. Holtz.
var('m M')
virtual_specials = [{m0:m,m1:m}, # m0=m1=m, virtual equal at both ends
{m1:0}, # m1=0, virtual 0 at right end
{m0:0}, # m0=0, virtual 0 at left end
{}] # general
real_specials = [{w:0,M0:M,M1:M}, # w=0, M0=M1=M, no UDL, end moments equal
{w:0,M1:0}, # w=0, M1=0, no UDL, right end moment 0
{w:0,M0:0}, # w=0, M0=0, no UDL, left end moment 0
{w:0}, # w=0, no UDL, end moments differ
{M0:0,M1:0,w:8*M/(L*L)}, # M0=M1=0, UDL, end moments 0
{w:-2*M1/(L*L),M0:0}, # M0=0, moment and shear at left end 0
{w:2*(M0-M1)/(L*L)}, # shear at left end 0, end moments unequal
{}] # general
for col,rs in enumerate(real_specials):
for row,vs in enumerate(virtual_specials):
s = I3.subs(rs).subs(vs).simplify()
print(' ')
print("Column",col+1," Row",row+1)
print(rs)
print(vs)
display(s)