Ramberg-Osgood sammenhengen er en fenomenologisk modell for et material med lineær-elastisk oppførsel og plastisk oppførsel med fastning som er uttrykt ved
\begin{equation} \varepsilon = \frac{\sigma}{E} + a \frac{\sigma}{E} \bigg( \frac{\sigma}{\sigma_0} \bigg)^{n-1} \tag{1} \end{equation}hvor $E$, $a$, $\sigma_0$ og $n$ er parameter som bestemmes empirisk (ved kurvetilpasning).
Når $\sigma = \sigma_0$ har ligningen 2 ledd som kan tolkes:
\begin{equation} \varepsilon_0 = \frac{\sigma_0}{E} + a \frac{\sigma_0}{E} \tag{2} \end{equation}Det siste leddet representerer en forskyving $\varepsilon_a$ av tøyning:
$$\varepsilon_{a} = a \frac{\sigma_0}{E}$$slik at:
\begin{equation} a=\varepsilon_{a} \frac{E}{\sigma_0} \tag{3} \end{equation}Eksempel:
import numpy as np
import matplotlib.pyplot as plt
from random import random
%matplotlib inline
sig=np.linspace(0,350,100)
E=70000 # Tilsvarer aluminium
epsa=0.002 # 0.2% offset
sig0=250 # vilkårlig verdi
n=10 # vilkårlig verdi
a=epsa*E/sig0 # ligning (3)
eps0 = sig0/E + epsa # ligning (2)
eps=sig/E + a*(sig/E)*(sig/sig0)**(n-1) # ligning (1)
plt.title('Ramberg-Osgood sammenheng')
plt.plot(eps,sig,c='red')
plt.plot((epsa, epsa+sig0/E),(0,sig0), '--', c='black')
plt.plot((0,epsa+sig0/E),(sig0,sig0), '--', c='black')
plt.plot((eps0,eps0),(0,sig0), '--',c='black')
plt.xlim(0,0.018)
plt.ylim(0,)
plt.text(s='$\sigma_0$', x=0, y=sig0+5, fontsize=12)
plt.text(s='$\epsilon_0$', x=eps0, y=10, fontsize=12)
plt.text(s='$\epsilon_a$', x=epsa, y=10, fontsize=12, horizontalalignment='right')
plt.grid()
plt.show()
I eksempelet over, vil $\sigma_0$ være lik flytestyrken definert som spenningen ved 0.2% offset av den lineære delen av kurven. Se Blackboard/forlesning for mer detaljert forklaring samt case-studiet Kurvetilpasning av en strekktest
Ved plastisk deformasjon kan vi anta at volumet er bevart:
\begin{equation} A_0 L_0 = AL \Rightarrow A = \frac{A_0 L_0}{L} \tag{1} \end{equation}Siden total deformasjon (eller tøyning) består av både elastisk og plastisk tøyning, blir jo ikke dette helt korrekt siden vi allered vet at elastisk tøyning generelt gir endring av volum. Ved betydelig plastisk deformasjon, er den elastiske tøyningen imidlertid mye mindre enn den plastiske tøyningen. Vi kan dermed neglisjere den elastiske tøyningen.
Fra ligning (1) kan vi nå finne en sammenheng mellom nominell spenning og sann spenning:
\begin{equation} \sigma_{sann} = \frac{F}{A} = \frac{FL}{A_0 L_0} =\frac{F}{A_0}\bigg(\frac{L_0 + dL}{L_0}\bigg) = \sigma(1+\varepsilon) \tag{2} \end{equation}Sammenhengen mellom nominell tøyning og sann tøyning blir:
\begin{equation} \varepsilon_{sann} = \text{ln}\big(\frac{L}{L_0}\big) = \text{ln}\big(\frac{dL + L_0}{L_0}\big) = \text{ln}(1+\varepsilon) \tag{3} \end{equation}Eksempel:
toyning_nominell = [0.000, 0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.010, 0.011,
0.012, 0.013, 0.014, 0.015, 0.016, 0.017, 0.018, 0.019, 0.020, 0.025, 0.030, 0.035,
0.040, 0.045, 0.050, 0.055, 0.060, 0.065, 0.070, 0.075, 0.080, 0.085, 0.090, 0.095,
0.100, 0.105, 0.110, 0.115, 0.120, 0.125, 0.130, 0.135, 0.140, 0.145, 0.150, ]
spenning_nominell=[ 0.0, 70.0, 139.7, 199.7, 232.7, 250.6, 262.5, 271.2, 278.2, 283.9, 288.9, 293.2,
297.0, 300.5, 303.6, 306.5, 309.2, 311.7, 314.0, 316.2, 318.2, 327.1, 334.2, 340.2,
345.4, 350.0, 354.1, 357.8, 361.2, 364.3, 367.2, 370.0, 372.5, 374.9, 377.2, 379.3,
381.4, 383.4, 385.2, 387.0, 388.8, 390.4, 392.0, 393.6, 395.0, 396.5, 397.9, ]
Spenning-tøyningskurve:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(toyning_nominell, spenning_nominell)
plt.grid()
plt.xlim(0,)
plt.ylim(0,)
plt.show()
Vi kan nå finne tilsvarende data for sann spenning versus sann tøyning ved hjelp av ligning (2) og (3):
toyning_sann = []
spenning_sann = []
for eps, sig in zip(toyning_nominell, spenning_nominell):
toyning_sann.append(np.log(1+eps))
spenning_sann.append(sig*(1+eps))
Plotter begge kurver i samme diagram:
plt.plot(toyning_nominell, spenning_nominell, label='nominell')
plt.plot(toyning_sann, spenning_sann, label='sann')
plt.grid()
plt.xlim(0,)
plt.ylim(0,)
plt.legend()
plt.show()