Polymere materialer viser ofte en viskoelastisk oppførsel, som betyr at materialet har både en viskøs oppførsel og en elastisk oppførsel. En konsekvens av dette er at sammenhenger mellom spenning og tøyning er tidsavhengig.
Viskoelastisitet fører til:
Dersom et material oppfører seg lineært viskoelastisk, kan vi finne en sigekomplians $D(t)$ og en relaxasjonsmodul $E(t)$ fra henholdsvis sigeforsøk og relaksasjonsforsøk ved
\begin{equation} D(t) = \frac{\varepsilon(t)}{\sigma_0} \tag{1} \end{equation}hvor $\varepsilon(t)$ er tidsavhengig tøyning ved en konstant spenning $\sigma_0$
og
\begin{equation} E(t) = \frac{\sigma(t)}{\varepsilon_0} \tag{2} \end{equation}hvor $\sigma(t)$ er tidsavhengig spenning ved en konstant tøyning $\varepsilon_0$
Dermed kan tøyning ved siging uttrykkes som $\varepsilon(t) = D(t) \sigma_0$ og spenning ved relaksasjon er $\sigma(t) = E(t)\varepsilon_0$
Poenget med en viskoelastisk materialmodell er å finne sammenheng mellom spenning, tøyning og tid som kan representere materialets oppførsel. Vi skal kun se på 3-parameter modellen som er vist i figuren under (c), som består av en fjær som er paralellkoblet med en demper, og disse to komponentene er igjen seriekoblet med en ny fjær. 3-parameter modellen er egentlig ikke i stand til å beskrive virkelige viskoelastiske materialer på en presis kvantitative måte, men den er svært nyttig for å beskrive fenomenet viskoelastisitet (og kalles derfor for en fenomenologisk modell som betyr noe sånt som hvordan viskoelastisitet fremstår).
En fjær (a) representerer en lineærelastisk modell:
\begin{equation} \sigma = E \varepsilon \tag{3} \end{equation}eller
\begin{equation} \varepsilon = D \sigma \tag{4} \end{equation}hvor $D$ kalles komplians, som ganske enkelt er invers av modulen $E$.
En demper (b) representerer en viskøs materialmodell (Newtonian fluid) der spenningen er proporsjonal med tøynigsraten:
\begin{equation} \sigma = \mu \frac{d \varepsilon}{dt} \tag{5} \end{equation}hvor $\mu$ er en konstant (tilsvarende viskositet for en fluid).
Tøyning i en demper som funksjon av tid ved en konstant spenning $\sigma_0$ som er påsatt ved $t=0$ blir, fra ligning (5):
$$ \frac{d\varepsilon}{dt} = \frac{\sigma_0}{\mu} \Rightarrow \varepsilon(t) = \frac{\sigma_0}{\mu}t$$Det betyr at $\varepsilon(t)$ ved $t=0$ blir null uansett nivå på spenningen. Dette er en observasjon som blir nyttig å ta med for utledningen som snart kommer...
For kombinasjonen av 2 stk. fjær og en demper som vist i (c) skal vi nå forsøke å etablere en differensialligning som kun inneholder spenning $\sigma$ og tøyning $\varepsilon$ for modellen, men ikke spenninger og tøyninger for enkelt-element i modellen.
Først etablere vi alle sammenhenger og antagelser som eksisterer for modellen:
Summen av spenning i demper og spenning i fjær med modul $E_1$ er lik spenningen for hele modellen:
\begin{equation} \sigma = \sigma_1 + \sigma_2 \tag{6} \end{equation}Total tøyning er lik summen av tøyningen i fjær med modul $E_0$ og tøyningen i fjæra og demperen som er koblet i paralell:
\begin{equation} \varepsilon_2 = \varepsilon_1 \tag{7} \end{equation}\begin{equation} \varepsilon = \varepsilon_0 + \varepsilon_1 \tag{8} \end{equation}Konstitutive relasjoner for de tre elementene:
\begin{equation} \sigma = E_0 \varepsilon_0 \tag{9} \end{equation}\begin{equation} \sigma_1 = E_1 \varepsilon_1 \tag{10} \end{equation}\begin{equation} \sigma_2 = \mu \frac{d \varepsilon_2}{dt} \tag{11} \end{equation}Så gjør vi litt algebraisk akrobatikk, der målet er å eliminere spenninger ($\sigma_1, \sigma_2$) og tøyninger ($\varepsilon_0, \varepsilon_1, \varepsilon_2$) for de enkelte elementene. Det finnes et utall av mulige sekvenser for eliminasjon, og følgende er bare ett eksempel:
Fra (11) og (7):
\begin{equation} \sigma_2 = \mu \frac{d \varepsilon_2}{dt} = \mu \frac{d \varepsilon_1}{dt} \tag{12} \end{equation}Substituerer inn fra (8) og deretter (9)
\begin{equation} \sigma_2 = \mu \frac{d}{dt} \big( \varepsilon - \varepsilon_0 \big) = \mu \frac{d}{dt} \big( \varepsilon - \frac{\sigma}{E_0} \big) \tag{13} \end{equation}Ordner utrykket i (11)
\begin{equation} \sigma_2 = \mu \frac{d \varepsilon}{dt} - \frac{\mu}{E_0} \frac{d \sigma}{dt} \tag{14} \end{equation}Høyre side av (14) er nå på ønsket format, der variabler er kun $\sigma$ og $\varepsilon$. Da gjenstår det å eliminere $\sigma_2$ fra venstre side i utrykket, og starter med (6) og substituerer fortløpende fra (10), (8) og (9):
\begin{equation} \sigma_2 = \sigma - \sigma_1 = \sigma - E_1 \varepsilon_1= \sigma - E_1 (\varepsilon - \varepsilon_0) = \sigma - E_1 (\varepsilon - \frac{1}{E_0}\sigma) \tag{15} \end{equation}Rydder litt opp i (15):
\begin{equation} \sigma_2 = \big( 1 + \frac{E_1}{E_0}\big) \sigma - E_1 \varepsilon \tag{16} \end{equation}Så kombinerer vi (14) og (16) og har kommet i mål med oppgaven:
\begin{equation} \big( 1 + \frac{E_1}{E_0}\big) \sigma - E_1 \varepsilon = \mu \frac{d \varepsilon}{dt} - \frac{\mu}{E_0} \frac{d \sigma}{dt} \tag{17} \end{equation}Siging betyr at spenningen er konstant: $\sigma = \sigma_0$, som igjen betyr at
$$\frac{d \sigma}{dt} = 0$$Dermed blir ligning(17) for tilfellet siging:
$$\big( 1 + \frac{E_1}{E_0}\big) \sigma_0 - E_1 \varepsilon = \mu \frac{d \varepsilon}{dt}$$Med litt reorganisering, ser vi at dette er en helt grei ordinær 1. ordens differensialligning:
\begin{equation} \frac{d \varepsilon}{dt} + \frac{E_1}{\mu} \varepsilon = \frac{E_0+E_1}{\mu E_0} \sigma_0 \tag{18} \end{equation}som har generell løsning
\begin{equation} \varepsilon(t) = c \exp \big(-\frac{E_1}{\mu}t \big) + \frac{E_0+E_1}{E_0 E_1} \sigma_0 \tag{19} \end{equation}hvor $c$ er en konstant som vi skal finne basert på en grenseverdi:
For $t = 0$ kan tøyningen kun være bidraget fra den enkle fjæra i serien siden demperen trenger tid for å tøyes (se argument for dette gitt etter ligning (5). Altså:
\begin{equation} \varepsilon(0) = \frac{1}{E_0}\sigma_0 \tag{20} \end{equation}Setter inn for $t = 0$ i (19):
\begin{equation} \varepsilon(0) = c + \frac{E_0+E_1}{E_0 E_1} \sigma_0 \tag{21} \end{equation}Fra (20) og (21):
\begin{equation} \frac{1}{E_0}\sigma_0 = c + \frac{E_0+E_1}{E_0 E_1} \sigma_0 \Rightarrow c = \frac{1}{E_1}\sigma_0 \tag{22} \end{equation}Dermed:
\begin{equation} \varepsilon(t) = \bigg( \frac{E_0+E_1}{E_0 E_1} - \frac{1}{E_1}\exp \big(-\frac{E_1}{\mu}t \big)\bigg) \sigma_0 \tag{23} \end{equation}Sigekomplians $D(t)$ er definert som forholdet mellom den tidsavhengige tøyningen og den konstante spenningen:
\begin{equation} D(t) = \frac{\varepsilon(t)}{\sigma_0} \tag{24} \end{equation}slik at
\begin{equation} D(t) = \frac{E_0+E_1}{E_0 E_1} - \frac{1}{E_1}\exp \big(-\frac{E_1}{\mu}t \big) \tag{25} \end{equation}Det første konstantleddet kan omskrives til (se materialhomogenisering):
\begin{equation} \frac{E_0+E_1}{E_0 E_1} =\frac{1}{E_0} + \frac{1}{E_1} \tag{26} \end{equation}Ligning (25) får dermed følgende form
\begin{equation} D(t) = \frac{1}{E_0} + \frac{1}{E_1} - \frac{1}{E_1}\exp \big(-\frac{E_1}{\mu}t \big) \tag{27} \end{equation}Vi kan nå substituere moduler med komplianser og identifisere en tidskonstant:
$$ \frac{1}{E_0} = D_0, \quad \frac{1}{E_1} = D_1,\quad D_{\infty} \equiv D_0 + D_1, \quad \tau_{s} = \frac{\mu}{E_1}$$Endelig versjon av sigekompliansen (27) blir dermed
\begin{equation} D(t) = D_{\infty} + (D_0-D_{\infty})\exp \big(-\frac{t}{\tau_s} \big) \tag{28} \end{equation}Definisjon av variabler i koden:
E0
=$E_0 \quad$ E1
=$E_1 \quad$ mu
=$\mu \quad$ D0
=$D_0 \quad$ D1
=$D_1 \quad$ Du
=$D_{\infty} \quad$ Ts
=$\tau_s \quad$ D
=$D(t) \quad$ sig0
=$\sigma_0 \quad$ eps
=$\varepsilon(t) \quad$
# Numerisk eksempel:
import numpy as np
import matplotlib.pyplot as plt
E0 = 1000 # Modul
E1 = 750 # Modul
mu = 75000 # Viskositet
D0 = 1/E0
D1 = 1/E1
Du = D0 + D1
Ts = mu/E1
t = np.linspace(0,500)
D = Du + (D0-Du)*np.exp(-t/Ts) # ligning (28)
sig0 = [30 for ti in t] # konstant spenning ved siging
eps = D*sig0 # ligning (24)
sig0=np.insert(sig0,0,0.0) # for å få et datapunkt før spenningen virker
eps =np.insert(eps ,0,0.0) # for å få et datapunkt før spenningen virker
t = np.insert(t,0,0.0) # for å få et datapunkt før spenningen virker
fig, (ax1,ax2) = plt.subplots(nrows=2,ncols=1, figsize = (6,4))
ax1.plot(t,sig0, c='red')
ax1.set_ylabel('$\sigma$')
ax1.set_ylim(0,)
ax2.plot(t,eps, c='green')
ax2.set_ylabel('$\epsilon$')
ax2.set_xlabel('t')
ax2.set_ylim(0,)
plt.show()
Relaksasjon betyr at tøyningen er konstant: $\varepsilon = \varepsilon_0$, som igjen betyr at
$$\frac{d \varepsilon}{dt} = 0$$Dermed blir ligning(15) for tilfellet relaksasjon:
\begin{equation} \frac{d \sigma}{dt} + \frac{E_0+E_1}{\mu} \sigma = \frac{E_0 E_1}{\mu}\varepsilon_0 \tag{29} \end{equation}med generell løsning
\begin{equation} \sigma(t) = c \exp \bigg( -\frac{E_0+E_1}{\mu}t \bigg) + \frac{E_0 E_1}{E_0 + E_1}\varepsilon_0 \tag{30} \end{equation}Nå skal vi først innføre en ny konstant $E_{\infty}$ med følgende relasjon:
\begin{equation} \frac{1}{E_{\infty}} = \frac{1}{E_1} + \frac{1}{E_0} \Rightarrow E_{\infty} = \frac{1}{E_1^{-1} + E_0^{-1}} = \frac{E_0 E_1}{E_0 + E_1} \tag{31} \end{equation}Ligning (30) for $t=0$ blir dermed
\begin{equation} \sigma(0) = c + E_{\infty}\varepsilon_0 \tag{32} \end{equation}Ved $t=0$ er det kun fjæra i serie som kan tøyes, slik at $\sigma(0) = E_0 \varepsilon_0$ og dermed finner vi $c$ ved
\begin{equation} c + E_{\infty}\varepsilon_0 = E_0 \varepsilon_0 \Rightarrow c = (E_0 - E_{\infty})\varepsilon_0 \tag{33} \end{equation}Ved relaksasjon kan vi også definere en tidkonstant:
$$\tau_r = \frac{\mu}{E_0+E_1}$$og dermed ha vi det endelige utrykket for spenning som funksjon av tid:
\begin{equation} \sigma(t) = \bigg( E_{\infty} + (E_0 - E_{\infty}) \exp \bigg( -\frac{t}{\tau_r} \bigg) \bigg) \varepsilon_0 \tag{34} \end{equation}Relaksasjonsmodul $E(t)$ er definert som forholdet mellom spenning og tøyning ved relaksasjon,
\begin{equation} E(t) = \frac{\sigma(t)}{\varepsilon_0} = E_{\infty} + (E_0 - E_{\infty}) \exp \bigg( -\frac{t}{\tau_r} \bigg) \tag{35} \end{equation}Definisjon av variabler i koden:
E0
= $E_0 \quad$ E1
= $E_1 \quad$ mu
= $\mu \quad$ Eu
= $E_{\infty} \quad$ Tr
= $\tau_r \quad$ E
= $E(t) \quad$ eps0
=$\varepsilon_0 \quad$ sig
= $\sigma(t) \quad$
# Numerisk eksempel:
import numpy as np
import matplotlib.pyplot as plt
E0 = 1000 # Modul
E1 = 750 # Modul
mu = 75000 # Viskositet
Eu = (E0*E1)/(E0+E1) # Ligning (31)
Tr = mu/(E0+E1)
t = np.linspace(0,500)
E = Eu + (E0-Eu)*np.exp(-t/Tr) # ligning (35)
eps0 = [0.03 for ti in t] # konstant tøyning ved relaksasjon
sig = E*eps0
sig =np.insert(sig ,0,0.0) # for å få et datapunkt før tøyningen settes på
eps0=np.insert(eps0,0,0.0) # for å få et datapunkt før tøyningen settes på
t = np.insert(t,0,0.0) # for å få et datapunkt før tøyningen settes på
fig, (ax1,ax2) = plt.subplots(nrows=2,ncols=1, figsize = (6,4))
ax1.plot(t,eps0, c='green')
ax1.set_ylabel('$\epsilon$')
ax1.set_ylim(0,)
ax2.plot(t,sig, c='red')
ax2.set_ylabel('$\sigma$')
ax2.set_xlabel('t')
ax2.set_ylim(0,)
plt.show()
Siging er økende tøyning ved en konstant spenning:
\begin{equation} \varepsilon(t) = D(t) \sigma_0 \tag{36} \end{equation}hvor sigekompliansen er
\begin{equation} D(t) = D_{\infty} + (D_0-D_{\infty})\exp \big(-\frac{t}{\tau_s} \big) \tag{37} \end{equation}Relaksasjon er avtagende spenning ved konstant tøyning:
\begin{equation} \sigma(t) = E(t) \varepsilon_0 \tag{38} \end{equation}hvor relaksasjonsmodulen er
\begin{equation} E(t) = E_{\infty} + (E_0 - E_{\infty}) \exp \bigg( -\frac{t}{\tau_r} \bigg) \tag{39} \end{equation}Sammenhenger mellom konstanter:
$$ D_0 = \frac{1}{E_0}, \quad D_1 = \frac{1}{E_1}, \quad D_{\infty} = D_0 + D_1, \quad E_{\infty} = \frac{E_0 E_1}{E_0 + E_1} = \frac{1}{D_{\infty}}, \quad \tau_s = \frac{\mu}{E_1}, \quad \tau_r = \frac{\mu}{E_0+E_1}, \quad \tau_s = \tau_r \big(\frac{E_0}{E_{\infty}}\big)$$Definisjon av variabler i koden:
E0
= $E_0 \quad$ Eu
= $E_{\infty} \quad$ D0
= $D_0 \quad$ Du
=$D_{\infty} \quad$ Ts
=$\tau_s \quad$ Tr
=$\tau_r \quad$ D
= $D(t) \quad$ E
= $E(t) \quad$
sig0
=$\sigma_0 \quad$ sig
=$\sigma(t) \quad$ eps0
=$\varepsilon_0 \quad$ eps
=$\varepsilon(t) \quad$
# Numerisk eksempel:
import numpy as np
import matplotlib.pyplot as plt
E0 = 1000 # Modul ved t=0
Eu = 250 # Modul ved t=uendelig
Tr = 100 # Tidskonstant for relaksasjon
D0 = 1/E0
Du = 1/Eu
Ts = Tr*(E0/Eu)
t = np.linspace(0,500)
D = Du + (D0-Du)*np.exp(-t/Ts) # ligning (37)
E = Eu + (E0-Eu)*np.exp(-t/Tr) # ligning (39)
sig0 = [30 for ti in t] # konstant spenning ved siging
eps0 = [0.03 for ti in t] # konstant tøyning ved relaksasjon
eps = D*sig0 # tøyning ved siging
sig = E*eps0 # spenning ved relaksasjon
sig0=np.insert(sig0,0,0.0) # for å få et datapunkt før last er påsatt
sig =np.insert(sig ,0,0.0) # for å få et datapunkt før last er påsatt
eps0=np.insert(eps0,0,0.0) # for å få et datapunkt før last er påsatt
eps =np.insert(eps ,0,0.0) # for å få et datapunkt før last er påsatt
t = np.insert(t,0,0.0) # for å få et datapunkt før last er påsatt
fig, ax = plt.subplots(nrows=2,ncols=2, figsize = (10,4))
ax[0,0].set_title('Siging')
ax[0,0].plot(t,sig0, c='red')
ax[0,0].set_ylabel('$\sigma$')
ax[0,0].set_ylim(0,)
ax[1,0].plot(t,eps , c='green')
ax[1,0].set_ylabel('$\epsilon$')
ax[1,0].set_xlabel('t')
ax[1,0].set_ylim(0,)
ax[0,1].set_title('Relaksasjon')
ax[0,1].plot(t,eps0, c='green')
ax[0,1].set_ylabel('$\epsilon$')
ax[0,1].set_ylim(0,)
ax[1,1].plot(t,sig , c='red')
ax[1,1].set_ylabel('$\sigma$')
ax[1,1].set_xlabel('t')
ax[1,1].set_ylim(0,)
plt.show()
Legg merke til at
$$E_i = \frac{1}{D_i}\quad \text{for } i=0,1,\infty$$mens
\begin{equation} E(t) \ne \frac{1}{D(t)} \tag{40} \end{equation}plt.subplots(figsize = (4,2))
plt.plot(t[1:], E, label = 'E(t)')
plt.plot(t[1:],1/D, label = '1/D(t)')
plt.legend()
plt.ylim(0,)
plt.grid()
plt.show()
Et alternativ til den lange utledningen av 3-parameter modellen, er å hoppe rett på et sett av enkle antagelser om relaksasjon basert på hvordan en typisk relaksasjonskurve ser ut:
Dette er oppfylt med følgende uttrykk:
\begin{equation} E(t) = A - B \big( 1- \exp \big( -\frac{t}{\tau_r} \big ) \big) \tag{41} \end{equation}I henhold til figuren over og (41),
$$E_0 = E(0) = A - B + B = A \Rightarrow A = E_0$$$$E_{\infty} = E(\infty) = A - B \Rightarrow B = E_0 - E_{\infty} $$slik at
$$E(t) = E_0 - (E_0 - E_{\infty}) \big( 1- \exp \big( -\frac{t}{\tau_r} \big ) \big)$$som kan omorganiseres til (39):
$$E(t) = E_{\infty} + (E_0 - E_{\infty}) \exp \bigg( -\frac{t}{\tau_r} \bigg)$$Vi kan formulere antagelsene enda enklere (!)
som er oppfylt med
\begin{equation} E(t) = a + b \exp \big( -\frac{t}{\tau_r} \big ) \tag{42} \end{equation}...og samme øvelse igjen:
$$E_{\infty} = E(\infty) = a \Rightarrow a = E_{\infty}$$$$E_0 = E(0) = a + b \Rightarrow b = E_0 - E_{\infty}$$som også gir ligning (39).
Betydningen av $E_0, D_0, E_{\infty}$ og $D_{\infty}$ er jo grei å forstå fra figuren over, men hva med $\tau_s$ og $\tau_r$ ?
Numerisk eksempel:
import numpy as np
import matplotlib.pyplot as plt
E0, Eu = 1000, 250 # Moduler
Tra, Trb, Trc = 10, 50, 100 # Ulike tidskonstanter for relaksasjon
D0 = 1/E0
Du = 1/Eu
Tsa, Tsb, Tsc = Tra*(E0/Eu), Trb*(E0/Eu), Trc*(E0/Eu)
t = np.linspace(0,500,10000)
Da = Du + (D0-Du)*np.exp(-t/Tsa)
Ea = Eu + (E0-Eu)*np.exp(-t/Tra)
Db = Du + (D0-Du)*np.exp(-t/Tsb)
Eb = Eu + (E0-Eu)*np.exp(-t/Trb)
Dc = Du + (D0-Du)*np.exp(-t/Tsc)
Ec = Eu + (E0-Eu)*np.exp(-t/Trc)
fig, ax = plt.subplots(nrows=1,ncols=2, figsize = (10,4))
ax[0].set_title('Sigekomplians')
ax[0].plot(t,Da, label = r'$\tau_s$ = {}'.format(Tsa))
ax[0].plot(t,Db, label = r'$\tau_s$ = {}'.format(Tsb))
ax[0].plot(t,Dc, label = r'$\tau_s$ = {}'.format(Tsc))
ax[0].set_ylabel('$D(t)$')
ax[0].set_xlabel('$t$')
ax[0].legend()
ax[0].set_ylim(0,)
ax[1].set_title('Relaksasjonsmodul')
ax[1].plot(t,Ea, label = r'$\tau_r$ = {}'.format(Tra))
ax[1].plot(t,Eb, label = r'$\tau_r$ = {}'.format(Trb))
ax[1].plot(t,Ec, label = r'$\tau_r$ = {}'.format(Trc))
ax[1].set_ylabel('$E(t)$')
ax[1].set_xlabel('$t$')
ax[1].legend()
ax[1].set_ylim(0,)
plt.show()
Resultatet over kan vi beskrive på følgende vis:
For store verdier av tidskonstantene, vil siging og relaksasjon skje senere. I diagram med logaritmisk tidsakse ser vi dette enda tydligere: kurvene blir bare forskjøvet langs tidsaksen:
fig, ax = plt.subplots(nrows=1,ncols=2, figsize = (10,4))
ax[0].set_title('Sigekomplians')
ax[0].semilogx(t,Da, label = r'$\tau_s$ = {}'.format(Tsa))
ax[0].semilogx(t,Db, label = r'$\tau_s$ = {}'.format(Tsb))
ax[0].semilogx(t,Dc, label = r'$\tau_s$ = {}'.format(Tsc))
ax[0].set_ylabel('$D(t)$')
ax[0].set_xlabel('$t$')
ax[0].legend()
ax[0].set_ylim(0,)
ax[1].set_title('Relaksasjonsmodul')
ax[1].semilogx(t,Ea, label = r'$\tau_r$ = {}'.format(Tra))
ax[1].semilogx(t,Eb, label = r'$\tau_r$ = {}'.format(Trb))
ax[1].semilogx(t,Ec, label = r'$\tau_r$ = {}'.format(Trc))
ax[1].set_ylabel('$E(t)$')
ax[1].set_xlabel('$t$')
ax[1].legend()
ax[1].set_ylim(0,)
plt.show()
Hva skjer med 3-parameter modellen ved en konstant tøyningsrate $k$? Nå er altså hverken spenning eller tøyning konstant så vi har ikke siging eller relaksjon men
\begin{equation} \varepsilon(t) = kt \Rightarrow \frac{d\varepsilon}{dt}=k \tag{43} \end{equation}Vi har jo fortsatt differensialligningen (17) for systemet
$$\big( 1 + \frac{E_1}{E_0}\big) \sigma - E_1 \varepsilon = \mu \frac{d \varepsilon}{dt} - \frac{\mu}{E_0} \frac{d \sigma}{dt}$$og fra (43) får vi
\begin{equation} \big( 1 + \frac{E_1}{E_0}\big) \sigma - E_1 kt = \mu k - \frac{\mu}{E_0} \frac{d \sigma}{dt} \tag{44} \end{equation}som kan ordnes til
\begin{equation} \frac{d \sigma}{dt} + \frac{E_0+E_1}{\mu} \sigma = \frac{E_0 E_1}{\mu}kt + E_0 k \tag{45} \end{equation}som har løsning (takk til Maple..)
$$ \sigma(t) = E_0 \tau k \big( \frac{E_1 \tau}{\mu} -1 \big) \exp \big( -\frac{t}{\tau} \big) + \frac{E_0 E_1 \tau k}{\mu}t - E_0 \tau k \big( \frac{ E_1 \tau}{\mu} -1 \big) $$hvor
$$\tau_r = \frac{\mu}{E0+E1}$$...og da kan vi vise at en spenning-tøyningskurve ikke er lineær, og at tilsynelatende stivhet øker med tøyningshastighet:
# Numerisk eksempel:
import numpy as np
import matplotlib.pyplot as plt
E0 = 1000 # Modul
E1 = 750 # Modul
mu = 75000 # Viskositet
Tr = mu/(E0+E1)
eps = np.linspace(0, 0.03)
k1=0.0005
k2=0.001
k3=0.005
t1 = eps/k1
t2 = eps/k2
t3 = eps/k3
sig1 = E0*Tr*k1*(E1*Tr/mu - 1)*np.exp(-t1/Tr) + E0*E1*Tr*k1*t1/mu - E0*Tr*k1*(E1*Tr/mu - 1)
sig2 = E0*Tr*k2*(E1*Tr/mu - 1)*np.exp(-t2/Tr) + E0*E1*Tr*k2*t2/mu - E0*Tr*k2*(E1*Tr/mu - 1)
sig3 = E0*Tr*k3*(E1*Tr/mu - 1)*np.exp(-t3/Tr) + E0*E1*Tr*k3*t3/mu - E0*Tr*k3*(E1*Tr/mu - 1)
plt.plot(eps,sig1, label='$d \epsilon/dt$ = {}'.format(k1))
plt.plot(eps,sig2, label='$d \epsilon/dt$ = {}'.format(k2))
plt.plot(eps,sig3, label='$d \epsilon/dt$ = {}'.format(k3))
plt.ylabel('$\sigma$')
plt.xlabel('$\epsilon$')
plt.legend()
plt.grid()
plt.show()