flow diagram !

This commit is contained in:
Pierre-antoine Comby 2019-03-05 11:43:26 +01:00
parent 328b313a9f
commit 2781383039
3 changed files with 352 additions and 11 deletions

View file

@ -302,7 +302,7 @@ Chaque phase du stator possède un couplage magnétique avec les autres phases d
On a les équations suivantes pour le stator:
\begin{align*}
v_{as} &= R_s i_{as}(t)+\deriv[\Phi_{as}(t)]{t}\\
\Phi_{as}(t) &= L_{s} i_{as} + M_s(i_{bs}+i_{bs}) \\&\quad+M_0 (\cos(\theta)i_{ar}(t)+\cos(\theta+\frac{2\pi}{3})i_{br}(t)+\cos(\theta+\frac{2\pi}{3})i_{br}(t)+\cos(\theta-\frac{2\pi}{3})i_{cr}(t))\\
\Phi_{as}(t) &= L_{s} i_{as} + M_s(i_{bs}+i_{bs}) +M_0 (\cos(\theta)i_{ar}(t)+\cos(\theta+\frac{2\pi}{3})i_{br}(t)+\cos(\theta-\frac{2\pi}{3})i_{cr}(t))\\
\Phi_{as}(t) &= (L_s-M_s) i_{as}(t)+\frac{3M_0I_r}{\sqrt{2}}\cos(\theta+\omega_rt+\phi_r+\theta_0) \\
\Phi_{as}(t) &= (L_s-M_s) i_{as}(t)+\frac{3M_0I_r}{\sqrt{2}}\cos(\omega_st+\phi_s)
\end{align*}
@ -318,7 +318,7 @@ On fais les mêmes calculs pour le rotor :
\begin{align*}
v_{ar}(t) &= R_ri_{ar}(t) + \deriv[\Phi]{t}\\
\Phi_{ar}(t) &= (L_{r}-M_r) i_{ar} +M_0( \cos(\theta)i_{as}(t)+\cos(\theta+\frac{2\pi}{3})i_{br}(t)+\cos(\theta+\frac{2\pi}{3})i_{br}(t)+\cos(\theta-\frac{2\pi}{3})i_{cr}(t))\\
\Phi_{ar}(t) &= (L_{r}-M_r) i_{ar} +M_0( \cos(\theta)i_{as}(t)+\cos(\theta+\frac{2\pi}{3})i_{br}(t)+\cos(\theta-\frac{2\pi}{3})i_{cr}(t))\\
\Phi_{ar}(t) &= (L_{r}-M_r) i_{ar} +\frac{3M_0I_s}{\sqrt{2}} \cos(\Omega t-\omega_st+\theta_0-\phi_s) \\
\Phi_{ar}(t) &= L_{rc} i_{ar} +\frac{3M_0I_s}{\sqrt{2}} \cos(\omega_rt +\phi_s')
\end{align*}
@ -418,7 +418,7 @@ Avec:
\end{circuitikz}
\caption{Modèle au synchronisme}
\end{figure}
On mesurre la puissance active $P_0$ et la puissance réactive $Q_0$ et les courants $I_{s0}$ et $V_{s0}$ on obtient les équations:
On mesure la puissance active $P_0$ et la puissance réactive $Q_0$ et les courants $I_{s0}$ et $V_{s0}$ on obtient les équations:
\[
\begin{cases}
@ -459,6 +459,94 @@ Dans le modèle équivalent on est a $\omega_s$. Or dans le rotor les courants s
\[
g =\frac{\omega_s-\omega}{\omega_s}
\]
\begin{figure}[H]
\centering
\begin{tikzpicture}[x=1pt,y=1pt]
\begin{sankeydiagram}[
sankey tot length=90pt,%
sankey tot quantity=6,%
sankey min radius=15pt,%
sankey fill/.style={
draw,line width=0pt,
%fill,
white,
},
sankey draw/.style={
draw=black,
line width=1pt,
line cap=round,
line join=round,
},
]
\sankeynodestart{6}{0}{Pa}{0,100};
\node[left] at (Pa) {$P_a=3UI\cos{\phi}$};
\sankeyadvance{Pa}{50pt}
\sankeyfork{Pa}{5/Pa2,1/Pjs}
\sankeyturn{Pjs}{-90}
\sankeyadvance{Pjs}{15pt}
\sankeynodeend{1}{-90}{Pjs}{Pjs}
\node[below=1em] at (Pjs) {$p_{js}=3R_sI_s^2$};
\sankeyadvance{Pa2}{60pt}
\sankeyfork{Pa2}{4/Ptr,1/Pfs}
\sankeyturn{Pfs}{-90}
\sankeyadvance{Pfs}{30pt}
\sankeynodeend{1}{-90}{Pfs}{Pfs}
\node[below=1em] at (Pfs) {$p_{fs}$};
\sankeyadvance{Ptr}{60pt}
\sankeynodeend{4}{0}{Ptr}{Ptr}
\node[left] at (Ptr) {$P_{tr}=C_{em}\omega_s$};
\sankeyadvance{Ptr}{30pt}
\sankeyfork{Ptr}{3/Pr,1/Pjr}
\sankeyturn{Pjr}{-90}
\sankeyadvance{Pjr}{30pt}
\sankeynodeend{1}{-90}{Pjr}{Pjr}
\node[below=1em] at (Pjr) {$p_{jr}=gP_{tr}$};
\sankeyadvance{Pr}{70pt}
\sankeynodeend{3}{0}{Pr}{Pr}
\node[left] at (Pr) {$P_r=C_{em}p\Omega$};
\sankeyadvance{Pr}{30pt}
\sankeyfork{Pr}{2/Pu,1/Pmec}
\sankeyturn{Pmec}{-90}
\sankeyadvance{Pmec}{30pt}
\sankeynodeend{1}{-90}{Pmec}{Pmec}
\node[below=1em] at (Pmec) {$p_{mec}$};
\sankeyadvance{Pu}{60pt}
\sankeynodeend{2}{0}{Pu}{Pu}
\node[right=1em] at (Pu) {$P_{u}$};
\draw [
very thick,
decoration={
brace,
mirror,
raise=0.5cm
},
decorate
] (-20,0) -- ++ (180,0) node[midway, below=1.5em]{Stator};
\draw [
very thick,
decoration={
brace,
mirror,
raise=0.5cm
},
decorate
] (170,0) -- ++ (190,0) node[midway, below=1.5em]{Rotor};
\end{sankeydiagram}
\end{tikzpicture}
\caption{Bilan de puissance}
\end{figure}
\begin{exemple}
Pour une machine asynchrone , 400V/690V ,1.5kW ,1425 tr/min :
\begin{enumerate}
@ -494,7 +582,7 @@ P_e = 3 \frac{R_r'}{g}I_r^2 = C_e \Omega
On en déduit alors le couple électromagnétique. \emph{en négligeant la resistance du stator}:
\begin{align*}
C_{em} &= 3 p \frac{V_s^2}{\omega_s} \frac{\frac{R_r'}{g}}{\left(\frac{R_r'}{g}\right)^2+(l_{fuites}\omega_s)^2}\\
&= 3 p \frac{V_s^2}{\omega_s} \frac{1}{\left(\frac{g(l_f\omega_s)^2}{R_r'}\right) + \frac{R_r'}{g}}\\
&= 3 p \frac{V_s^2}{\omega_s} \frac{1}{\left(\frac{g(l_f\omega_s)^2}{R_r'}\right) + \frac{R_r'}{g(l_f\omega_s)^2}}\\
&= \frac{3p}{l_f}\frac{V_s^2}{\omega_s^2}\frac{1}{\left(\frac{g(l_f\omega_s)^2}{R_r'}\right)+\left(\frac{R_r'}{g(l_f\omega_s)^2}\right)}\\
\Aboxed{&= 2C_{max}\frac{1}{\left(\frac{g}{g_{max}}\right)+\left(\frac{g_{max}}{g}\right)}}
\end{align*}
@ -536,7 +624,7 @@ Avec la relation glissement vitesse on a:
\includegraphics[width=0.7\textwidth]{Domaines_fonctionnement_MAs.png}
\caption{Mode de fonctionnement de la MAS}
\end{figure}
---
\subsection{Alimentation par un onduleur}
\emph{merci wikipédia}
@ -556,7 +644,7 @@ Pour cela, la machine asynchrone est alimentée par un onduleur délivrant une t
On reprend l'équation générale du couple :
:\[ T_{em}= \frac{3 p}{\mathcal{N}_r} \cdot \frac{V_S^2}{ \omega_S^2} \cdot \frac{1}{\left(\frac{g \mathcal{N}_r \omega_S}{R_r^*}\right)+ \left(\frac{R_r^* }{g \mathcal{N}_r \omega_S }\right)} \,\]
:\[ C_{em}= \frac{3 p}{\mathcal{N}_r} \cdot \frac{V_S^2}{ \omega_S^2} \cdot \frac{1}{\left(\frac{g \mathcal{N}_r \omega_S}{R_r^*}\right)+ \left(\frac{R_r^* }{g \mathcal{N}_r \omega_S }\right)} \,\]
On note $ C_{max} $le couple maximal.
@ -572,11 +660,11 @@ On note $ \Phi_s$ la valeur efficace du flux nominal.
Si on garde le rapport $\frac{V_S}{ \omega_S}$ constant, il est donc possible de déplacer la vitesse à laquelle $ C_{max}$ est disponible. L'expression du couple devient :
\[T_{em}= \frac{2 C_{max}}{\left(\frac{g \mathcal{N}_r \omega_S}{R_r^*}\right)+ \left(\frac{R_r^* }{g \mathcal{N}_r \omega_S }\right)}\]
\[C_{em}= \frac{2 C_{max}}{\left(\frac{g \mathcal{N}_r \omega_S}{R_r^*}\right)+ \left(\frac{R_r^* }{g \mathcal{N}_r \omega_S }\right)}\]
Après un \emph{développement limité} au premier ordre de $T_{em}$ lorsque $g$ tend vers 0, on obtient :
Après un \emph{développement limité} au premier ordre de $C_{em}$ lorsque $g$ tend vers 0, on obtient :
\[T_{em}= Cte \cdot g \cdot \omega_S = Cte \cdot (\omega_S - \omega) = Cte \cdot (n_S - n) \,\]
\[C_{em}= Cte \cdot g \cdot \omega_S = Cte \cdot (\omega_S - \omega) = Cte \cdot (n_S - n) \,\]

View file

@ -1,4 +1,4 @@
\documentclass{../../cours}
\documentclass[openany]{../../cours}
\usepackage{../../raccourcis}
% Mise en page
@ -7,6 +7,7 @@
\teacher{Anthony Juton \& Olivier Villain \& Emmanuel Hoang}
\module{414\\ Production d'électricité\\à partir d'énergie renouvelables}
\renewcommand{\vec}{\overrightarrow}
\input{sankey.tex}
\begin{document}
\maketitle
@ -20,7 +21,7 @@
\subfile{chap3.tex}
\chapter{Physique de la conversion électrovoltaïque}\label{chap:photov}
\subfile{chap6.tex}
\chapter{Électronique de puissance pour les parcs éoliens connectés au réseau}
%\chapter{Électronique de puissance pour les parcs éoliens connectés au réseau}

View file

@ -0,0 +1,252 @@
\usetikzlibrary{calc}
\usepackage{etoolbox}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfdeclarelayer{sankeydebug}
\pgfsetlayers{background,main,foreground,sankeydebug}
\newif\ifsankeydebug
\newenvironment{sankeydiagram}[1][]{
\def\sankeyflow##1##2{% sn, en
\path[sankey fill]
let
\p1=(##1.north east),\p2=(##1.south east),
\n1={atan2(\y1-\y2,\x1-\x2)-90},
\p3=(##2.north west),\p4=(##2.south west),
\n2={atan2(\y3-\y4,\x3-\x4)+90}
in
(\p1) to[out=\n1,in=\n2] (\p3) --
(\p4) to[in=\n1,out=\n2] (\p2) -- cycle;
\draw[sankey draw]
let
\p1=(##1.north east),\p2=(##1.south east),
\n1={atan2(\y1-\y2,\x1-\x2)-90},
\p3=(##2.north west),\p4=(##2.south west),
\n2={atan2(\y3-\y4,\x3-\x4)+90}
in
(\p1) to[out=\n1,in=\n2] (\p3)
(\p4) to[in=\n1,out=\n2] (\p2);
}
\tikzset{
sankey tot length/.store in=\sankeytotallen,
sankey tot quantity/.store in=\sankeytotalqty,
sankey min radius/.store in=\sankeyminradius,
sankey arrow length/.store in=\sankeyarrowlen,
sankey debug/.is if=sankeydebug,
sankey debug=false,
sankey flow/.style={
to path={
\pgfextra{
\pgfinterruptpath
\edef\sankeystart{\tikztostart}
\edef\sankeytarget{\tikztotarget}
\sankeyflow{\sankeystart}{\sankeytarget}
\endpgfinterruptpath
}
},
},
sankey node/.style={
inner sep=0,minimum height={sankeyqtytolen(##1)},
minimum width=0,draw=none,line width=0pt,
},
% sankey angle
sankey angle/.store in=\sankeyangle,
% sankey default styles
sankey fill/.style={line width=0pt,fill,white},
sankey draw/.style={draw=black,line width=.4pt},
}
\newcommand\sankeynode[4]{%prop,orientation,name,pos
\node[sankey node=##1,rotate=##2] (##3) at (##4) {};
\ifsankeydebug
\begin{pgfonlayer}{sankeydebug}
\draw[red,|-|] (##3.north west) -- (##3.south west);
\pgfmathsetmacro{\len}{sankeyqtytolen(##1)/3}
\draw[red] (##3.west)
-- ($(##3.west)!\len pt!90:(##3.south west)$)
node[font=\tiny,text=black] {##3};
\end{pgfonlayer}
\fi
}
\newcommand\sankeynodestart[4]{%prop,orientation,name,pos
\sankeynode{##1}{##2}{##3}{##4}
\begin{scope}[shift={(##3)},rotate=##2]
\path[sankey fill]
(##3.north west) -- ++(-\sankeyarrowlen,0)
-- ([xshift=-\sankeyarrowlen/6]##3.west)
-- ([xshift=-\sankeyarrowlen]##3.south west)
-- (##3.south west) -- cycle;
\path[sankey draw]
(##3.north west) -- ++(-\sankeyarrowlen,0)
-- ([xshift=-\sankeyarrowlen/6]##3.west)
-- ([xshift=-\sankeyarrowlen]##3.south west)
-- (##3.south west);
\end{scope}
}
\newcommand\sankeynodeend[4]{%prop,orientation,name,pos
\sankeynode{##1}{##2}{##3}{##4}
\begin{scope}[shift={(##3)},rotate=##2]
\path[sankey fill]
(##3.north east)
-- ([xshift=\sankeyarrowlen]##3.east)
-- (##3.south west) -- cycle;
\path[sankey draw]
(##3.north east)
-- ([xshift=\sankeyarrowlen]##3.east)
-- (##3.south west);
\end{scope}
}
\newcommand\sankeyadvance[3][]{%newname,name,distance
\edef\name{##2}
\ifstrempty{##1}{
\def\newname{##2}
\edef\name{##2-old}
\path [late options={name=##2,alias=\name}];
}{
\def\newname{##1}
}
\path
let
% sankey node angle
\p1=(##2.north east),
\p2=(##2.south east),
\n1={atan2(\y1-\y2,\x1-\x2)-90},
% sankey prop
\p3=($(\p1)-(\p2)$),
\n2={sankeylentoqty(veclen(\x3,\y3))},
% next position
\p4=($(##2.east)!##3!-90:(##2.north east)$)
in
\pgfextra{
\pgfmathsetmacro{\prop}{\n2}
\pgfinterruptpath
\sankeynode{\prop}{\n1}{\newname}{\p4}
\path (\name) to[sankey flow] (\newname);
\endpgfinterruptpath
};
}
\newcommand\sankeyturn[3][]{%newname,name,angle
\edef\name{##2}
\ifstrempty{##1}{
\def\newname{##2}
\edef\name{##2-old}
\path [late options={name=##2,alias=\name}];
}{
\def\newname{##1}
}
\ifnumgreater{##3}{0}{
\typeout{turn acw: ##3}
\path
let
% sankey node angle
\p1=(##2.north east),
\p2=(##2.south east),
\p3=($(\p1)!-\sankeyminradius!(\p2)$),
\n1={atan2(\y1-\y2,\x1-\x2)-90},
% sankey prop
\p4=($(\p1)-(\p2)$),
\n2={sankeylentoqty(veclen(\x4,\y4))},
\p5=(##2.east),
\p6=($(\p3)!1!##3:(\p5)$)
in
\pgfextra{
\pgfmathsetmacro{\prop}{\n2}
\pgfinterruptpath
% \fill[red] (\p3) circle (2pt);
% \fill[blue](\p6) circle (2pt);
\sankeynode{\prop}{\n1+##3}{\newname}{\p6}
\path (\name) to[sankey flow] (\newname);
\endpgfinterruptpath
};
}{
\typeout{turn acw: ##3}
\path
let
% sankey node angle
\p1=(##2.south east),
\p2=(##2.north east),
\p3=($(\p1)!-\sankeyminradius!(\p2)$),
\n1={atan2(\y1-\y2,\x1-\x2)+90},
% sankey prop
\p4=($(\p1)-(\p2)$),
\n2={sankeylentoqty(veclen(\x4,\y4))},
\p5=(##2.east),
\p6=($(\p3)!1!##3:(\p5)$)
in
\pgfextra{
\pgfmathsetmacro{\prop}{\n2}
\pgfinterruptpath
% \fill[red] (\p3) circle (2pt);
% \fill[blue](\p6) circle (2pt);
\sankeynode{\prop}{\n1+##3}{\newname}{\p6}
\path (\name) to[sankey flow] (\newname);
\endpgfinterruptpath
};
}
}
\newcommand\sankeyfork[2]{%name,list of forks
\def\name{##1}
\def\listofforks{##2}
\xdef\sankeytot{0}
\path
let
% sankey node angle
\p1=(\name.north east),
\p2=(\name.south east),
\n1={atan2(\y1-\y2,\x1-\x2)-90},
% sankey prop
\p4=($(\p1)-(\p2)$),
\n2={sankeylentoqty(veclen(\x4,\y4))}
in
\pgfextra{
\pgfmathsetmacro{\iprop}{\n2}
}
\foreach \prop/\name[count=\c] in \listofforks {
let
\p{start \name}=($(\p1)!\sankeytot/\iprop!(\p2)$),
\n{nexttot}={\sankeytot+\prop},
\p{end \name}=($(\p1)!\n{nexttot}/\iprop!(\p2)$),
\p{mid \name}=($(\p{start \name})!.5!(\p{end \name})$)
in
\pgfextra{
\xdef\sankeytot{\n{nexttot}}
\pgfinterruptpath
\sankeynode{\prop}{\n1}{\name}{\p{mid \name}}
\endpgfinterruptpath
}
}
\pgfextra{
\pgfmathsetmacro{\diff}{abs(\iprop-\sankeytot)}
\pgfmathtruncatemacro{\finish}{\diff<0.01?1:0}
\ifnumequal{\finish}{1}{}{
\message{*** Warning: bad sankey fork (maybe)...}
\message{\iprop-\sankeytot}
}
};
}
\tikzset{
% default values,
declare function={
sankeyqtytolen(\qty)=\qty/\sankeytotalqty*\sankeytotallen;
sankeylentoqty(\len)=\len/\sankeytotallen*\sankeytotalqty;
},
sankey tot length=100pt,
sankey tot quantity=100,
sankey min radius=30pt,%
sankey arrow length=10pt,%
% user values
#1}
}{
}