| |Pierre Proulx, ing, professeur|
|:---|:---|
|Département de génie chimique et de génie biotechnologique |** GCH200-Phénomènes d'échanges I **|

### Section10.2, chauffage d'un conducteur électrique

>  Le développement fait dans Transport Phenomena sera répété ici en développant les solutions avec le calculateur formel sympy et en traçant la solution avec sympy.plot. Les développements sont très similaires à la section 2.3, Les coordonnées cylindriques sont utilisées, évidemment. Remarquez bien comment la courbure de la géométrie a un effet sur le bilan. 


```python
#
# Pierre Proulx
#
# Préparation de l'affichage et des outils de calcul symbolique
#
import sympy as sp          
from IPython.display import *
sp.init_printing(use_latex=True)
%matplotlib inline
```


```python
# Paramètres, variables et fonctions
#
r,delta_r,L,k,S_c,R=sp.symbols('r,delta_r,L,k,S_c,R')
C1=sp.symbols('C1')
qr=sp.symbols('q_r')
T=sp.Function('T')(r)
```


```python
#
# Équation du bilan d'énergie
#
eq=2*sp.pi*r*L*qr(r)-2*sp.pi*(r+delta_r)*L*qr(r+delta_r)    # conduction
eq=eq+2*sp.pi*r*delta_r*L*S_c                                #source
#
# pose de la limite quand dr tends vers 0
#
eq=eq/(2*sp.pi*L*delta_r)
display(eq)
```


```python
eq0=sp.Limit(eq,delta_r,0)
display(eq0)
eq0=sp.limit(eq,delta_r,0)    # encore une fois, remarquez ici la différence entre les fonctions Limit et limit
display(eq0)
eq1=eq0.doit()
display(eq1)
```


```python
eq2=sp.dsolve(eq1)
display(eq2)
```


```python
# Loi de Fourier.
Fourier=-k*sp.Derivative(T,r)
eq2=eq2.subs(qr(r),Fourier)
display(eq2)
```


```python
eq2=sp.dsolve(eq2)
display('Le profil de température général, avant de poser les conditions aux limites',eq2)
eq2=eq2.rhs # 
```


```python
T_0=sp.symbols('T_0')
condition_1=sp.Eq(eq2.diff(r).subs(r,0),0)     # flux nul en r=0
condition_2=sp.Eq(eq2.subs(r,R),T_0)           # température connue en r=R
display('Les conditions aux limites, en r=0 flux nul et en r=R T=T_0',condition_1,condition_2)
constante=sp.solve([condition_1,condition_2],sp.symbols('C1,C2'),dict=True) 

display('Les constantes',constante[0])  # les constantes apparaissent dans une liste de 1 élément, dans un dictionnaire
constante=constante[0] # 
```


```python
T=eq2.subs(constante)
display(T)
```


```python
I,k_e=sp.symbols('I k_e')
source=I**2/k_e
T=T.subs(S_c,source)
display(T.simplify())
```

> #### Exemple 10.2-2
>> La différence est maintenant que la condition à la paroi est la loi de refroidissement de Newton au lieu de température fixée à T_0 , c'est l'équation 10.2-22:

>><center>
en r=R, $-k\frac {dT}{dr}=h(T-T_{air})$
</center>

>> On peut reprendre la solution au moment ou on a posé cette condition


```python
# constante=sp.solve(sp.Eq(eq2.rhs.subs(r,R),T_0),'C1',dict=True)   # T=T_0 à la paroi
#
# remplacé par
#
eqx=eq2
display(eq2)
T_air,h=sp.symbols('T_air h')
condition_1=sp.Eq(-k*eqx.diff(r).subs(r,R)-h*(eqx.subs(r,R)-T_air),0)
condition_2=sp.Eq(eq2.diff(r).subs(r,0),0)
display('Les conditions aux limites, en r=R flux de Fourier=flux de Newton et flux = 0 en r=0',
        condition_1,condition_2)
constanten=sp.solve([condition_1,condition_2],sp.symbols('C1,C2'),dict=True) 
constanten=constanten[0]            # sort de la liste
display('les constantes avec une condition de coefficient de transfert en r=R',constanten)
T=eq2.subs(constanten)
display(T)
```

3667bfa13ee4fb490f28823f90a2086ef8836586
ipynb
Jupyter Notebook
Chap-10-Section-10-2.ipynb
pierreproulx/GCH200
66786aa96ceb2124b96c93ee3d928a295f8e9a03
MIT
2018-02-26T16:29:58.000Z
2018-02-26T16:29:58.000Z
Chap-10-Section-10-2.ipynb
pierreproulx/GCH200
66786aa96ceb2124b96c93ee3d928a295f8e9a03
MIT
Chap-10-Section-10-2.ipynb
pierreproulx/GCH200
66786aa96ceb2124b96c93ee3d928a295f8e9a03
MIT
2018-02-27T15:04:33.000Z
2021-06-03T16:38:07.000Z
Qwen/Qwen-72B
1. YES
2. YES