Kortversjonen av konseptet bruddmekanikk er følgende:
Materialer inneholder sprekker som fører til spenningskonsentrasjon. Denne spenningskonsentrasjonen kan beskrives med en spenningsintensitetsfaktor for den aktuelle bruddmoden (i dette tilfelle mode I):
\begin{equation} K_{I} = Y \sigma \sqrt{\pi a} \tag{1} \end{equation}hvor $Y$ er en enhetsløs geometrifaktor, $\sigma$ er spenningen som virker (på makroskopisk nivå) og $a$ er sprekkens lengde.
Brudd vil forplante seg når spenningsintensiteten $K_I$ tilsvarer den kritiske spenningsintensitetsfaktoren, $K_{IC}$, som vi vanligvis kaller bruddseighet. Denne bruddseigheten er altså en materialparameter eller materialegenskap.
Dette kan formuleres ganske elegant, men noe uformelt, på følgende vis:
\begin{equation} K_{I} \ge K_{IC} \rightarrow \text{@#%!Sh}\text{1}\tau \tag{2} \end{equation}... som indikerer at sprekker som vokser i sprøe material, har en lei tendens til å gi veldig dårlig stemning, med mindre du er flislegger eller glass-kutter.
Du kan komme et lite stykke ved å bruke (1) og (2) helt uten å forstå en døyt, men det er altså et mål i TMM4100 å faktisk forstå, i hovedtrekk, hvor dette kommer fra og hva som egentlig er drifkraften og mekanismen som fører til at en sprekk vokser.
Derfor skal vi begynne med et dagligdags problem: splitting av spisepinner og/eller vedkløyving, med skikkelig fokus på energi
Problemstilligen er illustrert i følgende figur, og siden du enten har vokst opp i byen med sushi, eller på landet med vedkløyving, er det ikke nødvendig med mer omfattende forklaring:
Med bare en liten smule fantasi, ser vi at spisepinnen, eller vedkubben, allerede har en sprekk med lengde $a$, og dette gir oss to utkragerbjelker (!) med kraft $F$ på endene. Vi vet at (Mekanikk 1) sammenhengen mellom nedøying $y$ og kraft for en utkragerbjelke med rektangulært tverrsnitt og lengde $L$ er
$$y = \frac{4FL^3}{Ebh^3}$$Nå er $d = 2y$ og $L = a$ slik at
$$d = \frac{8Fa^3}{Ebh^3}$$som dermed gir oss kraft som funksjon av forkyvingen:
\begin{equation} F = \frac{Ebh^3}{8a^3}d \tag{3} \end{equation}Så kommer det store spørsmålet: Hva skal til for at $a$ vokser med $\Delta a$ ?
Siden disse bjelkene er utsatt for en kraft som gir elastisk deformasjon, vet vi at det er tøyningsenergi i systemet, og denne energien finner vi lett for et slikt lineært system:
\begin{equation} U = \frac{1}{2}F\cdot d \tag{4} \end{equation}Innsatt for $F$ fra ligning (3):
\begin{equation} U = \frac{Ebh^3}{16a^3}d^2 \tag{5} \end{equation}Numerisk eksempel for typisk tre med E-modul lik 10 GPa langs fiber (altså i lengderetning):
E = 10000 # MPa
b = 5 # mm
h = 5 # mm
a = 40 # mm
d = 1 # mm
F1 = ((E*b*h**3)/(8*a**3))*d # ligning (4)
U1 = 0.5*F1*d # ligning (5)
print( 'F={:.3f} og U={:.3f} når a = {} og d = {}'.format(F1,U1,a,d) )
Hva blir kraft og tøyningsenergi ved samme deformasjon $d$ dersom sprekken øker med $\text{d}a$ = 5 mm ?
da = 5 # mm
a = a+da # mm
F2 = ((E*b*h**3)/(8*a**3))*d
U2 = 0.5*F2*d
print( 'F={:.3f} og U={:.3f} når a = {} og d = {}'.format(F2,U2,a,d) )
Vi finner altså at kraften avtar siden stivheten i systemet avtar, og dermed blir det mindre tøyningsenergien:
dU = U2-U1
print('Endring i tøyningsenergi: dU = {:.3f} når da = {}'.format(dU, da))
Da er det store spørsmålet: Hvor ble det av denne differansen i tøyningsenergi? Siden energi ikke forsvinner helt uten å sette spor på ett eller annet vis, kan vi misstenke at det har blitt gjort et arbeid (av ukjent kvalitet...).
Det nye her, er jo at det har blitt produsert en sprekk med areal $b\cdot \text{d}a$, så om vi nå finner ut hvor mye energi som kreves for a lage en sprekk med et gitt areal, så vil vi kunne se på energiballansen.
For treverk av høy kvalitet og tetthet (type eik), trenger vi omtrent 0.1 J/mm2 for å splitte treet på langs i mode I. Denne verdien kalles bruddenergi eller mer formelt critical strain energy release rate med symbol $G_{IC}$ og med enhet energi per. areal.
Arbeidet (eller energi om du vil) som går med til å propagere sprekken blir dermed
\begin{equation} \text{d}W = b \cdot \text{d}a \cdot G_{IC} \tag{6} \end{equation}GIC = 0.1 #J/mm2
dW = b*da*GIC
print('For å lage {} mm lenger sprekk, kreves det en energi lik dW = {}'.format(da,dW))
print('Tilgjengelig, hypotetisk utløst tøyningsenergi var dU = {:.3f} for samme eksempel.'.format(dU))
Da kan vi konkludere som følger: Den tilgjengelige tøyningsenergien er mindre enn det som kreves for å øke sprekkens lengde med den gitte verdien, så mer sprekk blir altså ikke laget.
Alternativt:
$$\text{d}U + \text{d}W > 0$$som betyr at vi må tilføre mer energi for å få dannet den antatte sprekken.
Da kan vi formulere et kriterie for sprekkvekst:
\begin{equation} \text{d}U + \text{d}W < 0 \rightarrow \text{sprekk vokser} \tag{7} \end{equation}Vi fortsetter eksempelet, og skal nå finne verdien av $d$ som gir sprekkvekst. På grunn av ren latskap, kjøres en enkel men ikke spessielt effektiv eller intelligent iterasjon:
a = 40 # startsprekk
da = 5 # sprekklengde-inkrement
d = 1 # må jo begynne et sted... og vet fra før av at d > 1 for tilfellet
fortsett=True
while fortsett: # iterasjon for å finne d
F1 = ((E*b*h**3)/(8*a**3))*d
F2 = ((E*b*h**3)/(8*(a+da)**3))*d
dU = 0.5*(F2-F1)*d
dW = b*da*GIC
if dU+dW < 0:
print('Når d = {:.3f} mm vil en sprekk på {} mm kunne vokse {} mm siden dU + dW < 0'.format(d,a,da))
print('fordi dU = {:.3f} og dW = {:.3f}'.format(dU,dW))
fortsett = False
d=d+0.001
Med litt modifikasjon, kan vi gjøre samme greia for flere inkrement av sprekklengde, samt plotte last v.s. deformasjon:
import matplotlib.pyplot as plt
a = 40 # startsprekk
da = 5 # sprekklengde-inkrement
d = 1 # må jo begynne et sted... og vet fra før av at d > 1 for tilfellet
x=[0] # legger til d'er her
y=[0] # legger til F'er her
for i in range(0,5): # kjører 5 steg i sprekklengde-inkrement
fortsett=True
while fortsett: # itersjon for å finne d
F1 = ((E*b*h**3)/(8*a**3))*d
F2 = ((E*b*h**3)/(8*(a+da)**3))*d
dU = 0.5*(F2-F1)*d
dW = b*da*GIC
if dU+dW < 0:
x.append(d)
x.append(d)
y.append(F1)
y.append(F2)
a=a+da
fortsett = False
d=d+0.001
plt.plot(x,y)
plt.xlim(0,)
plt.ylim(0,)
plt.grid()
Med mindre inkrement på $\text{d}a$:
a = 40 # startsprekk
da = 1 # sprekklengde-inkrement
d = 1 # må jo begynne et sted... og vet fra før av at d > 1 for tilfellet
x=[0] # legger til d'er her
y=[0] # legger til F'er her
for i in range(0,25): # kjører 25 steg i sprekklengde-inkrement
fortsett=True
while fortsett: # itersjon for å finne d
F1 = ((E*b*h**3)/(8*a**3))*d
F2 = ((E*b*h**3)/(8*(a+da)**3))*d
dU = 0.5*(F2-F1)*d
dW = b*da*GIC
if dU+dW < 0:
x.append(d)
x.append(d)
y.append(F1)
y.append(F2)
a=a+da
fortsett = False
d=d+0.001
plt.plot(x,y)
plt.xlim(0,)
plt.ylim(0,)
plt.grid()
Til slutt med $\text{d}a \rightarrow 0$:
a = 40 # startsprekk
da = 0.1 # sprekklengde-inkrement
d = 1 # må jo begynne et sted... og vet fra før av at d > 1 for tilfellet
x=[0] # legger til d'er her
y=[0] # legger til F'er her
for i in range(0,250): # kjører 250 steg i sprekklengde-inkrement
fortsett=True
while fortsett: # itersjon for å finne d
F1 = ((E*b*h**3)/(8*a**3))*d
F2 = ((E*b*h**3)/(8*(a+da)**3))*d
dU = 0.5*(F2-F1)*d
dW = b*da*GIC
if dU+dW < 0:
x.append(d)
x.append(d)
y.append(F1)
y.append(F2)
a=a+da
fortsett = False
d=d+0.001
plt.plot(x,y)
plt.xlim(0,)
plt.ylim(0,)
plt.grid()
Etter flere år med matte i diverse former, så er det ikke unaturlig at $\text{d}a \rightarrow 0$ gir en derivasjons-vibber. Så da gjør vi det:
Fra ligning (5):
\begin{equation} \frac{\text{d}U}{\text{d}a} = -\frac{3Ebh^3}{16a^4}d^2 \tag{8} \end{equation}Fra ligning (6):
\begin{equation} \frac{\text{d}W}{\text{d}a} = bG_{IC} \tag{9} \end{equation}Vilkåret for at en sprekk vokser, er dermed:
$$\frac{\text{d}U}{\text{d}a} + \frac{\text{d}W}{\text{d}a} < 0 \Rightarrow$$$$-\frac{3Ebh^3}{16a^4}d^2 + bG_{IC} < 0 $$\begin{equation} d > \sqrt{\frac{16a^4 bG_{IC}}{3Ebh^3}} \tag{10} \end{equation}import numpy as np
a = np.linspace(40,60)
d = ((16*(a**4)*b*GIC)/(3*E*b*h**3))**0.5 # ligning (10)
F = (d*E*b*h**3)/(8*a**3) # ligning (3)
d = np.insert(d, 0, 0.0) # Setter inn start-verdi (0)
F = np.insert(F, 0, 0.0) # Setter inn start-verdi (0)
plt.plot(d,F)
plt.grid()
plt.xlim(0,)
plt.ylim(0,)
plt.show()
Konklusjon: ved hjelp av enkel bjelketeori, forståelse av mekanisk energi samt verdiene for E-modul og bruddenergi, kan vi estimere når og hvordan brudd forplanter seg i spisepinner og vedkubber.
Det vi har demonstrert i dette eksempelet, er i prinsippet testmetoden double cantilever beam (DCB) testing, som er særlig mye brukt på kompositter og laminat samt limte flater. Her er en god youtube video som anbefales.
En 'uendelig' plate er jo rare greier, så om du sliter med det konseptet så er det tilstrekkelig å tenke at $W >> a$ og $L >> a$ i illustrasjonen under:
Platen har tykkelse $b$ (dimensjon ut av planet) og der er en sprekk med total lengde $2a$ som går gjennom hele tykkelsen til platen. Dette er selvsagt et ideal-tilfelle, og som ofte er tilfelle: det gir nydelige og enkle relasjoner som beskriver fenomenet så enkelt som mulig.
Fra mekaniske egenskaper og mekanisk energi vet vi at tøyningsenergien kan uttrykkes som tøyningsenergitetthet multiplisert med totalt volum, som for dette tilfellet med spenning kun langs en akse og der vi ikke har en sprekk, blir:
$$U = \frac{\sigma^2}{2E}V$$(Du trenger ikke bekymre deg for det uendelige volumet $V$... det skal vi nok få derivert i filler etterhvert)
Hva så med sprekkens bidrag i forhold til tøyningsenergien? Noen smart hoder løste dette for over 100 år siden (Inglis, og sener anvendt av Griffith), en løsning som er både enkel og elegant. Total tøyningsenergi, nå med en sprekk, er
\begin{equation} U = \frac{\sigma^2}{2E}V - \frac{\sigma^2}{2E}b\pi a^2 \tag{11} \end{equation}Tøyningsenergien derivert med hensyn på sprekklengden $a$ blir dermed (og der forsvant det uendelige volumet):
\begin{equation} \frac{\text{d}U}{\text{d}a} = - \frac{\sigma^2}{E}b\pi a \tag{12} \end{equation}Nå vet vi fra jobben med vedkløyving at arbeidet som skal til for å lage en sprekk er deriverbar med hensyn på $a$, og gjentar den relasjonen her:
\begin{equation} \frac{\text{d}W}{\text{d}a} = bG_{IC} \tag{13} \end{equation}Kriteriet for at en sprekk forplanter seg, er som tidligere:
$$\frac{\text{d}U}{\text{d}a} + \frac{\text{d}W}{\text{d}a} = 0 \Rightarrow$$$$\frac{\sigma^2}{E}\pi a = G_{IC} \Rightarrow$$$$\sigma^2\pi a = EG_{IC} \Rightarrow$$\begin{equation} \sigma\sqrt{\pi a} = \sqrt{EG_{IC}} \tag{14} \end{equation}Vi skal da definere spenningsintensitetsfaktoren $K_I$ som venstre side av (14), mens bruddseigheten $K_{IC}$ er høyre side av (14):
\begin{equation} K_I = \sigma\sqrt{\pi a} \tag{15} \end{equation}og
\begin{equation} K_{IC} = \sqrt{EG_{IC}} \tag{16} \end{equation}Dermed blir vilkåret for at en sprekk forplanter seg
\begin{equation} K_I = K_{IC} \tag{17} \end{equation}der bruddseigheten (16) er en materialparameter som kombinerer bruddenergi og elastisitetsmodul.
En av flere utfordringer med 'uendelige' plater er at de selvsagt også blir uendelig dyre, så de blir ikke brukt :-) Det betyr imidlertid ikke at relasjonene her ikke er brukbare: For andre geometrier er det etablert en drøss av verdier for en geometrifaktor $Y$, slik at ligning (15) tar formen:
\begin{equation} K_I = Y\sigma\sqrt{\pi a} \tag{18} \end{equation}Eksempel-1: En skikkelig lang plate har en overflatesprekk på den ene kanten. Bredden på platen er mye større enn lengden på sprekken. Platen svikter ved en spenning på 100 MPa, og bruddseigheten til materialet er 10 MPa(m)1/2. Hva er sprekklengden a?
Løsning: Dette er tilfellet i midten i figuren over. Geometrifaktoren for dette tilfelle er uavhengig av sprekkens lengde, så løsningen er rett frem:
$$K_I = Y\sigma\sqrt{\pi a} \Rightarrow a = \frac{K_{IC}^2}{Y^2 \sigma^2\pi}, \quad \text{hvor } K_I = K_{IC}$$Y = 1.2
KIC = 10
sigma = 100
a = (KIC**2)/((Y**2)*(sigma**2)*np.pi)
print('a = {:.2E} m = {:.2f} mm'.format(a, a*1000))
Eksempel-1: En skikkelig lang plate har en sentersprekk med lengde 2a. Bredden på platen er 5 mm. Platen svikter ved en spenning på 100 MPa, og bruddseigheten til materialet er 10 MPa(m)1/2. Hva er sprekklengden a?
Løsning: Dette er tilfellet til venstre i figuren over. Geometrifaktoren for dette tilfelle er avhengig av sprekkens lengde:
$$K_I = Y\sigma\sqrt{\pi a} \Rightarrow \sigma = \frac{K_{IC}}{Y \sqrt{\pi a}}, \quad \text{hvor } K_I = K_{IC}$$og der
$$Y = \sqrt{\text{sec}\frac{\pi a}{W}}, \quad \text{hvor } \text{sec}\frac{\pi a}{W} = \bigg(\text{cos}\frac{\pi a}{W}\bigg)^{-1}$$Her blir ikke greit å løse ut for $a$, så vi må gjøre en numerisk iterasjon, men først: la oss se på $Y$ som funksjon av forholdet $2a/W$:
# Y som funksjon av 2a/W for uendelig lang plate med endelig bredde og sentersprekk
a=np.linspace(0,2)
W=5
Y=(1/np.cos(np.pi*a/W))**0.5
plt.plot(2*a/W,Y)
plt.xlim(0,)
plt.ylim(0,)
plt.xlabel('2a/W')
plt.ylabel('Y')
plt.grid()
plt.show()
Som forventet: for små verdier av sprekklengde i forhold til bredden, blir $Y$ tilnermet lik 1 (som for en plate med uendelig bredde)
Nå vet vi jo ikke om sprekken er liten, så dermed en enkel numerisk iterasjon med Newtons halveringsmetode:
# Pass på å bruk konsistente enheter!!
KIC = 10 # MPa (m)^0.5
W = 5E-3 # m
sigma_f = 100 # MPa
a_max, a_min = W/2, 0
konvergert = False
a = 2E-3 # første gjetting...
while not konvergert:
Y = (1/np.cos(np.pi*a/W))**0.5
KI = Y*sigma_f*(np.pi*a)**0.5
print('a = {:.3f} mm, Y = {:.3f}, KI = {:.3f}'.format(a*1000, Y, KI))
if abs(KI-KIC) < 0.1: # Nøyaktighet i 1. desimal
konvergert = True
if KI < KIC: # sprekken må være større
a_min = a
if KI > KIC: # sprekken må være mindre
a_max = a
a = (a_min + a_max)/2
Se anvendelse i case-studier: