設計 圧縮材のせん断強度と圧縮強度・引張強度の関係
Relationship between Shear Strength and Uniaxial Strength
The definitions of symbols are shown below in this discussion considering compression members such as concrete or rock material.
cohesion of material | |
internal friction angle of material | |
uniaxial compressive strength of material (negative value) | |
uniaxial tensile strength of material (positive value) |
Considering a parameter , a cohesion can be expressed as follow.
A radius of Mohr circle for a compressive strength can be expressed as follow.
Using same manner, a radius of Mohr circle for a tensile strength can be expressed as follow.
From above relationships, a compressive strength and a tensile strength can be obtained as functions of and by erasing parameter .
Next, using above relations, following equation can be obtained.
Using above, a cohesion can be obtained as follow.
作図プログラム
import numpy as np import matplotlib.pyplot as plt # global variables sigt=3 sigc=-8 phi=np.arcsin((np.abs(sigc)-sigt)/(np.abs(sigc)+sigt)) cc=np.abs(sigc)*sigt/(np.abs(sigc)+sigt)/np.cos(phi) aa=cc/np.tan(phi) def barrow(x1,y1,x2,y2,ss,dd,ii): # (x1,y1),(x2,y2):両矢印始点と終点 # 両矢印始点と終点座標は文字列の傾きを考慮して決定する # ss:描画文字列 # dd:文字列中央の寸法線からの距離 # ii:1なら寸法線の上側,2なら寸法線の下側にテキストを描画 col='#333333' arst='<->,head_width=3,head_length=10' aprop=dict(arrowstyle=arst,connectionstyle='arc3',facecolor=col,edgecolor=col,shrinkA=0,shrinkB=0,lw=1) plt.annotate('', xy=(x1,y1), xycoords='data', xytext=(x2,y2), textcoords='data', fontsize=0, arrowprops=aprop) al=np.sqrt((x2-x1)**2+(y2-y1)**2) cs=(x2-x1)/al sn=(y2-y1)/al rt=np.degrees(np.arccos(cs)) if y2-y1<0: rt=-rt if ii==1: xs=0.5*(x1+x2)-dd*sn ys=0.5*(y1+y2)+dd*cs plt.text(xs,ys,ss,ha='center',va='center',rotation=rt) else: xs=0.5*(x1+x2)+dd*sn ys=0.5*(y1+y2)-dd*cs plt.text(xs,ys,ss,ha='center',va='center',rotation=rt) def draw_axes(xmin,xmax,ymin,ymax): # 座標軸描画 col='#000000' arst='<|-,head_width=0.3,head_length=0.5' aprop=dict(arrowstyle=arst,connectionstyle='arc3',facecolor=col,edgecolor=col,lw=1) plt.annotate(r'$\sigma$', xy=(xmin,0), xycoords='data', xytext=(xmax,0), textcoords='data', fontsize=20, ha='left',va='center', arrowprops=aprop) plt.annotate(r'$\tau$', xy=(0,0), xycoords='data', xytext=(0,ymax), textcoords='data', fontsize=20, ha='center',va='bottom', arrowprops=aprop) def drawfig(xmin,xmax,ymin,ymax,fsz): # x-y axses draw_axes(xmin,xmax,ymin,ymax) # failure criterion x1=aa ; y1=0 x2=sigc ; y2=cc-sigc*np.tan(phi) plt.plot([x1,x2],[y1,y2],'-',color='#ff0000',lw=3) xs=0.5*sigc; ys=cc-xs*np.tan(phi) strs="Mohr-Coulomb's Failure Criteria\n$\\tau=c-\sigma\cdot\\tan{\phi}$" plt.text(xs,ys+0.08*(ymax-ymin),strs,ha='center',va='center',rotation=-np.degrees(phi),fontsize=fsz-4) theta=np.linspace(np.pi-phi,np.pi,20,endpoint=True) r1=0.07*(xmax-xmin) x=r1*np.cos(theta)+aa y=r1*np.sin(theta) plt.plot(x,y,'-',color='#000000',lw=1) r2=r1*0.9 x=r2*np.cos(theta)+aa y=r2*np.sin(theta) plt.plot(x,y,'-',color='#000000',lw=1) plt.text(aa-r1,0,r'$\phi$',ha='right',va='bottom',color='#000000') # Mohr circle theta=np.linspace(0,np.pi,180,endpoint=True) rr=sigt/2 x=rr*np.cos(theta)+rr y=rr*np.sin(theta) plt.plot(x,y,'-',color='#0000ff',lw=2) rr=-sigc/2 x=rr*np.cos(theta)-rr y=rr*np.sin(theta) plt.plot(x,y,'-',color='#0000ff',lw=2) # points x=np.array([sigc,sigc/2,0,sigt/2,sigt,aa]) y=np.array([0,0,0,0,0,0]) plt.plot(x,y,'o',color='#000000',clip_on=False) ds=0.02*(ymax-ymin) ss=[r'$\sigma_c$',r'$\frac{\sigma_c}{2}$',r'$0$',r'$\frac{\sigma_t}{2}$',r'$\sigma_t$',r'$a$'] for i in range(len(ss)): plt.text(x[i],-ds,ss[i],va='top',ha='center',fontsize=fsz) plt.plot([0],[cc],'o',color='#000000') plt.text(0.1,cc,r'$c$',va='bottom',ha='left',fontsize=fsz) ds=0.08*(ymax-ymin) x2=-cc*np.cos(phi); y2=cc+cc*np.sin(phi); x1=sigc/2; y1=0; barrow(x1,y1,x2,y2,r'$\frac{|\sigma_c|}{2}$',ds,1) x2=cc*np.cos(phi); y2=cc-cc*np.sin(phi); x1=sigt/2; y1=0; barrow(x1,y1,x2,y2,r'$\frac{\sigma_t}{2}$',ds,1) def main(): xmin=sigc-1; xmax=aa+1 ymin=0 ; ymax=cc-xmin*np.tan(phi) fsz=20 # fontsize iw=10 # image width ih=iw*(ymax-ymin)/(xmax-xmin) plt.figure(figsize=(iw,ih),facecolor='w') plt.rcParams['font.size']=fsz plt.rcParams['font.family']='sans-serif' plt.xlim([xmin,xmax]) plt.ylim([ymin,ymax]) plt.axis('off') plt.gca().set_aspect('equal',adjustable='box') drawfig(xmin,xmax,ymin,ymax,fsz) plt.tight_layout() fnameF='fig_mohr1.jpg' plt.savefig(fnameF, dpi=200, bbox_inches="tight", pad_inches=0.1) plt.show() #============== # Execution #============== if __name__ == '__main__': main()