Prostý ohyb

$$D.T.$$

In [1]:
%matplotlib inline
import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
from IPython.core.display import Image
sp.init_printing()

Príklad 1

Pri ráme zaťaženom podľa obrázku určite bezpečnosť vzhľadom k medznému stavu pružnosti, ak dané parametre sú: rozmery prútov $a$ a $b$, líniové zaťaženie $q$, rozmery obdĺžnikového priečneho prierezu $H$ a $B$, Youngov modul pružnosti $E$ a medza klzu $\sigma_K$.

In [2]:
Image(filename='Ohyb1a.PNG', width=700, height=300)
Out[2]:

Daný prút je symetrický podľa osí $o_1$ a $o_2$. Zaťaženie je rozložené symetricky vzhľadom k osi $o_1$, avšak vzhľadom k osi $o_2$ nie je rozložené ani symetricky ani antimetricky. Z toho vyplýva, že môžme zaviesť symetriu a riešiť iba $\frac{1}{2}$ prútu a nie $\frac{1}{4}$. Podmienky symetrie sa môžu zapísať nasledovne

\begin{align*} u_{F_B} = & \frac{\partial{W}}{\partial{F_B}} = 0\\ \varphi_{M_B} = & \frac{\partial{W}}{\partial{M_B}} = 0\\ \end{align*}

a čiastočné uvoľnenie bude vyzerať týmto spôsobom:

In [3]:
Image(filename='Ohyb1b.PNG', width=800, height=400)
Out[3]:

Zavedenie potrebných symbolov

In [4]:
a, b, q = sp.symbols('a b q')
H, B = sp.symbols('H B')
x1, x2, x3, x4 = sp.symbols('x_1 x_2 x_3 x_4')
FB, MB = sp.symbols('F_B M_B')
E, J, S = sp.symbols('E J S')

Výsledné vnútorné účinky sa vyjadria nasledovne, keďže v prípade zalomeného prútu uvoľňujeme od voľného konca:

VVÚ:

Úsek I:

pre $x_1\in(0;a)$

\begin{align*} N_1 = & - F_B\\ T_1 = & \,\,0 \\ M_1 = & - M_B\\ \end{align*}

Úsek II:

pre $x_2\in(0;b)$

\begin{align*} N_2 = & \,\,0\\ T_2 = & -F_B\\ M_2 = &\,\, F_Bx_2 - M_B\\ \end{align*}

Úsek III:

pre $x_3\in(0;b)$

\begin{align*} N_3 = & \,\,0\\ T_3 = & \,\, qx_3 - F_B\\ M_3 = &\,\, F_B(x_3 + b) - M_B - \frac{qx_3^{2}}{2}\\ \end{align*}

Úsek IV:

pre $x_4\in(0;a)$

\begin{align*} N_4 = &\, F_B - qb\\ T_4 = & \, 0\\ M_4 = & \,F_B(2b) - M_B - \frac{qb^{2}}{2}\\ \end{align*}

Zapísané do Pythonu:

In [5]:
N1 = -FB
M1 = -MB
N1, M1
Out[5]:
$$\left ( - F_{B}, \quad - M_{B}\right )$$
In [6]:
T2 = - FB
M2 = FB * x2 - MB
T2, M2
Out[6]:
$$\left ( - F_{B}, \quad F_{B} x_{2} - M_{B}\right )$$
In [7]:
T3 = q*x3 - FB
M3 = FB*(x3 + b) - MB - q*x3**2/2
T3, M3
Out[7]:
$$\left ( - F_{B} + q x_{3}, \quad F_{B} \left(b + x_{3}\right) - M_{B} - \frac{q x_{3}^{2}}{2}\right )$$
In [8]:
N4 = FB - q*b
M4 = FB*2*b - MB - q*b**2/2
N4, M4
Out[8]:
$$\left ( F_{B} - b q, \quad 2 F_{B} b - M_{B} - \frac{b^{2} q}{2}\right )$$

Derivácie vnútorných účinkov podľa $M_B$ a $F_B$:

In [9]:
dM1dMB = M1.diff(MB)
dM2dMB = M2.diff(MB)
dM3dMB = M3.diff(MB)
dM4dMB = M4.diff(MB)
dM1dFB = M1.diff(FB)
dM2dFB = M2.diff(FB)
dM3dFB = M3.diff(FB)
dM4dFB = M4.diff(FB)
In [10]:
dM1dMB, dM2dMB, dM3dMB, dM4dMB
Out[10]:
$$\left ( -1, \quad -1, \quad -1, \quad -1\right )$$
In [11]:
dM1dFB, dM2dFB, dM3dFB, dM4dFB
Out[11]:
$$\left ( 0, \quad x_{2}, \quad b + x_{3}, \quad 2 b\right )$$

Podmienky symetrie môžu byť zapísané nasledovne,

\begin{align*} \frac{1}{EJ_p}\left[\int\limits_{0}^{a}M_1 \frac{\partial{M_1}}{\partial{M_B}}dx_1 + \int\limits_{0}^{b}M_2 \frac{\partial{M_2}}{\partial{M_B}}dx_2 +\ \int\limits_{0}^{b}M_3 \frac{\partial{M_3}}{\partial{M_B}}dx_3 + \int\limits_{0}^{a}M_4 \frac{\partial{M_4}}{\partial{M_B}}dx_4 \right] = 0 \\ \frac{1}{EJ} \left[\int\limits_{0}^{a}M_1 \frac{\partial{M_1}}{\partial{F_B}}dx_1 +\ \int\limits_{0}^{b}M_2 \frac{\partial{M_2}}{\partial{F_B}}dx_2 + \int\limits_{0}^{b}M_3 \frac{\partial{M_3}}{\partial{F_B}}dx_3 +\ \int\limits_{0}^{a}M_4 \frac{\partial{M_4}}{\partial{F_B}}dx_4\right] = 0\\ \end{align*}

Keďže obe rovnice sú homogénne, môžeme ich zjednodušiť prenásobením a zapísať do tvaru:

In [12]:
rov1 = sp.Integral(M1*dM1dMB,[x1,0,a]) + sp.Integral(M2*dM2dMB,[x2,0,b]) + \
       sp.Integral(M3*dM3dMB,[x3,0,b]) + sp.Integral(M4*dM4dMB,[x4,0,a])
rov2 = sp.Integral(M1*dM1dFB,[x1,0,a]) + sp.Integral(M2*dM2dFB,[x2,0,b]) + \
       sp.Integral(M3*dM3dFB,[x3,0,b]) + sp.Integral(M4*dM4dFB,[x4,0,a])
rov1, rov2
Out[12]:
$$\left ( \int_{0}^{a} M_{B}\, dx_{1} + \int_{0}^{b} - F_{B} x_{2} + M_{B}\, dx_{2} + \int_{0}^{a} - 2 F_{B} b + M_{B} + \frac{b^{2} q}{2}\, dx_{4} + \int_{0}^{b} - F_{B} \left(b + x_{3}\right) + M_{B} + \frac{q x_{3}^{2}}{2}\, dx_{3}, \quad \int_{0}^{a} 0\, dx_{1} + \int_{0}^{a} 2 b \left(2 F_{B} b - M_{B} - \frac{b^{2} q}{2}\right)\, dx_{4} + \int_{0}^{b} x_{2} \left(F_{B} x_{2} - M_{B}\right)\, dx_{2} + \int_{0}^{b} \left(b + x_{3}\right) \left(F_{B} \left(b + x_{3}\right) - M_{B} - \frac{q x_{3}^{2}}{2}\right)\, dx_{3}\right )$$

Integráciou dostaneme sústavu rovníc o dvoch neznámych $M_B$ a $F_B$ a ich riešenie vyzerá nasledovne:

In [13]:
rov1_, rov2_ = rov1.doit(), rov2.doit()
rov1_ = sp.expand(rov1_)
rov2_ = sp.expand(rov2_)
vysl1 = sp.linsolve([rov1_,rov2_],[MB, FB])
MB_vysl, FB_vysl = next(iter(vysl1))
MB_vysl, FB_vysl
Out[13]:
$$\left ( \frac{b^{3} q \left(21 a + 5 b\right)}{144 a^{2} + 192 a b + 48 b^{2}}, \quad \frac{3 b q \left(4 a + b\right)}{48 a + 16 b}\right )$$

Dosadenie čísel pre numerický výpočet

\begin{align*} a = & \,500 \, mm\\ b = & \,750 \, mm\\ q = & \,15 \, Nmm^{-1}\\ B = & \,20\, mm\\ H = & \,50\, mm\\ \end{align*}

In [14]:
a_, b_ = 500., 750.
q_= 15.
B_, H_ = 20., 50.

Dosadenie numerických hodnôt do vyjadrených neznámych $M_B$ a $F_B$:

In [15]:
MB_ = MB_vysl.subs({a:a_,b:b_,q:q_})
FB_ = FB_vysl.subs({a:a_,b:b_,q:q_})
MB_, FB_
Out[15]:
$$\left ( 667968.75, \quad 2578.125\right )$$

Dosadenie číselných hodnôt a hodnôt $M_B$ a $F_B$ do výsledných vnútorných účinkov:

In [16]:
N1_ = N1.subs(FB,FB_)
M1_ = M1.subs(MB,MB_)
N1_, M1_
Out[16]:
$$\left ( -2578.125, \quad -667968.75\right )$$
In [17]:
T2_ = T2.subs(FB,FB_)
M2_ = M2.subs({FB:FB_,MB:MB_})
T2_, M2_
Out[17]:
$$\left ( -2578.125, \quad 2578.125 x_{2} - 667968.75\right )$$
In [18]:
T3_ = T3.subs({FB:FB_,q:q_})
M3_ = M3.subs({FB:FB_,MB:MB_,q:q_,b:b_})
T3_, M3_
Out[18]:
$$\left ( 15.0 x_{3} - 2578.125, \quad - 7.5 x_{3}^{2} + 2578.125 x_{3} + 1265625.0\right )$$
In [19]:
N4_ = N4.subs({FB:FB_,q:q_,b:b_})
M4_ = M4.subs({FB:FB_,MB:MB_,q:q_,b:b_})
N4_, M4_
Out[19]:
$$\left ( -8671.875, \quad -1019531.25\right )$$

Vykreslenie výsledných vnútorných účinkov

Vyjadrenie VVÚ rovnomerne pozdĺž strednice:

In [20]:
x1_ = np.linspace(0,a_,20)
N1_plot = [float(N1_) for ii in x1_]
M1_plot = [float(M1_) for ii in x1_]
x2_ = np.linspace(0,b_,20)
T2_plot = [float(T2_) for ii in x2_]
M2_plot = [float(M2_.subs(x2,ii)) for ii in x2_]
x3_ = np.linspace(0,b_,20)
T3_plot = [float(T3_.subs(x3,ii)) for ii in x3_]
M3_plot = [float(M3_.subs(x3,ii)) for ii in x3_]
x4_ = np.linspace(0,a_,20)
N4_plot = [float(N4_) for ii in x4_]
M4_plot = [float(M4_) for ii in x4_]

Vykreslenie vnútorných normálových účinkov $N(x)$:

In [21]:
fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,6))
fig.subplots_adjust(wspace=0.5)

ax1.fill_betweenx(x1_,0,N1_plot,facecolor='blue')
ax2.fill_betweenx(x4_,0,N4_plot,facecolor='blue')

ax2.invert_xaxis()
ax2.invert_yaxis()

ax1.grid(True)
ax2.grid(True)

ax1.set_ylim(0,500)
ax1.set_xlim(-2800,0)
ax2.set_ylim(500,0)
ax2.set_xlim(0,-9500)

ax1.set_xlabel(r'$N_1\,[N]$').set_fontsize(14)
ax1.set_ylabel(r'$x_1\,[mm]$').set_fontsize(14)
ax2.set_ylabel(r'$x_4\,[mm]$').set_fontsize(14)
ax2.set_xlabel(r'$N_4\,[N]$').set_fontsize(14)
ax1.set_title('Výsledný vnútorný účinok '+r'$N_1$'+'\n').set_fontsize(16)
ax2.set_title('Výsledný vnútorný účinok '+r'$N_4$'+'\n').set_fontsize(16)

Vykreslenie šmykových vnútorných účinkov $T(x)$:

In [22]:
fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,6))
fig.subplots_adjust(wspace=0.5)

ax1.fill_between(x2_,0,T2_plot,facecolor='green')
ax2.fill_between(x3_,0,T3_plot,facecolor='green')

ax1.set_xlim(750,0)
ax1.set_ylim(-2700,0)
ax2.set_xlim(750,0)
ax2.set_ylim(-3000,9000)

ax1.grid(True)
ax2.grid(True)
ax1.set_xlabel(r'$x_2\,[mm]$').set_fontsize(14)
ax1.set_ylabel(r'$T_2\,[N]$').set_fontsize(14)
ax2.set_ylabel(r'$T_3\,[N]$').set_fontsize(14)
ax2.set_xlabel(r'$x_3\,[mm]$').set_fontsize(14)
ax1.set_title('Výsledný vnútorný účinok '+r'$T_2$'+'\n').set_fontsize(16)
ax2.set_title('Výsledný vnútorný účinok '+r'$T_3$'+'\n').set_fontsize(16)

Vykreslenie momentových vnútorných účinkov $M(x)$

In [23]:
fig,((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8))=plt.subplots(2,4,figsize=(15,13))
fig.subplots_adjust(wspace=0.2 , hspace=0.5)
ax1.axis('off')
ax3.axis('off')
ax5.axis('off')
ax7.axis('off')

ax2.fill_betweenx(x1_,0,M1_plot,facecolor='red')
ax4.fill_between(x2_,0,M2_plot,facecolor='red')
ax6.fill_between(x3_,0,M3_plot,facecolor='red')
ax8.fill_betweenx(x4_,0,M4_plot,facecolor='red')

ax2.invert_xaxis()
ax4.invert_xaxis()
ax4.invert_yaxis()
ax6.invert_xaxis()
ax8.invert_yaxis()

ax2.set_xlim(-8e5,0)
ax2.set_ylim(0,500)
ax4.set_xlim(750,0)
ax4.set_ylim(-0.8e6,1.5e6)
ax6.set_xlim(750,0)
ax8.set_xlim(0,-1.25e6)
ax8.set_ylim(500,0)

ax2.grid(True)
ax4.grid(True)
ax6.grid(True)
ax8.grid(True)
ax2.set_xlabel(r'$M_1\,[Nmm]$').set_fontsize(14)
ax2.set_ylabel(r'$x_1\,[mm]$').set_fontsize(14)
ax4.set_ylabel(r'$M_2\,[Nmm]$').set_fontsize(14)
ax4.set_xlabel(r'$x_2\,[mm]$').set_fontsize(14)
ax6.set_xlabel(r'$x_3\,[mm]$').set_fontsize(14)
ax6.set_ylabel(r'$M_3\,[Nmm]$').set_fontsize(14)
ax8.set_xlabel(r'$M_4\,[Nmm]$').set_fontsize(14)
ax8.set_ylabel(r'$x_4\,[mm]$').set_fontsize(14)
ax2.ticklabel_format(style='sci', axis='x', scilimits=(0,0))
ax4.ticklabel_format(style='sci', axis='y', scilimits=(0,0))
ax6.ticklabel_format(style='sci', axis='y', scilimits=(0,0))
ax8.ticklabel_format(style='sci', axis='x', scilimits=(0,0))

ax2.set_title('Výsledný vnútorný účinok '+r'$M_1$'+'\n').set_fontsize(16)
ax4.set_title('Výsledný vnútorný účinok '+r'$M_2$'+'\n').set_fontsize(16)
ax6.set_title('Výsledný vnútorný účinok '+r'$M_3$'+'\n').set_fontsize(16)
ax8.set_title('Výsledný vnútorný účinok '+r'$M_4$'+'\n').set_fontsize(16)

Extrémne napätie vyjadríme iba z momentových vnútorných účinkov $M(x)$. Z uvedených grafov je zrejmé, že globálnu extrémnu hodnotu nadobúda moment $M_3(x_{3})$ v bode $x_{3max}$, ktorý nájdeme riešením rovnice $$\frac{d}{dx}M_3(x) = T_3(x) = 0$$

In [24]:
vysl2 = sp.solve(T3_,x3)
x3_max = float(vysl2[0])
x3_max
Out[24]:
$$171.875$$

Hodnota vntorného momentu $M_3$ v tomto bode má hodnotu $(Nmm)$:

In [25]:
M3_max = abs(float(M3_.subs(x3,x3_max)))
M3_max
Out[25]:
$$1487182.6171875$$

Príslušné ohybové napätie pre zaťaženie momentom $M_{3max}$ sa spočíta podľa vzťahu $$\sigma_o = \frac{M_3(x_{3max})}{W_o}$$

$$W_o = \frac{1}{6}BH^{2}$$

In [26]:
Wo = B_*H_**2/6
sigma_max = M3_max/Wo
o = 'Maximálny ohybový moment je ' +repr(round(M3_max,3))+ ' Nmm a maximálne ohybové napätie je ' +repr(round(sigma_max,3))+ ' MPa.'
print(o)
Maximálny ohybový moment je 1487182.617 Nmm a maximálne ohybové napätie je 178.462 MPa.

Pokiaľ je daná $\sigma_K =\,350\, MPa$ bezpečnosť vzhľadom k medznému stavu pružnosti je:

In [27]:
sigma_K = 350.
kk=sigma_K/sigma_max
kk
Out[27]:
$$1.9612027688856055$$