Commit 50c19364 authored by Markus Mirz's avatar Markus Mirz
Browse files

remove obsolete cps latex docs

parent fd975f42
*.synctex.gz
*.log
*.toc
*.aux
*.pdf
*.bbl
*.blg
*.dvi
*.out
%----------------------------------------------------------
% Packages and other configurations
%----------------------------------------------------------
\documentclass{report}
\usepackage{graphicx} % Needed to insert images into the document
\graphicspath{{img/}} % Sets the default location of pictures
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{xcolor}
\newcommand{\todo}[1]{\textcolor{red}{[TODO: #1]}}
\title{Documentation of the Dynamic Phasor Simulator - DPsim}
\author{Markus Mirz, Jan Dinkelbach, Viviane Sapucaia, Antonello Monti}
\begin{document}
\maketitle
\tableofcontents
%----------------------------------------------------------
% Content
%----------------------------------------------------------
\include{content/introduction}
\include{content/dynamic_phasors}
\include{content/nodal_analysis}
\include{content/powerflow}
\chapter{Models}
\include{content/branches}
\include{content/synchronous_machine}
\include{content/induction_machine}
\include{content/power_converters}
\include{content/appendix}
%----------------------------------------------------------
% Bibliography
%----------------------------------------------------------
\bibliographystyle{ieeetr}
\bibliography{bibliography}
%----------------------------------------------------------
% End
%----------------------------------------------------------
\end{document}
%----------------------------------------------------------
% Books
%----------------------------------------------------------
@book{kundur1994power,
title={Power system stability and control},
author={Kundur, Prabha and Balu, Neal J and Lauby, Mark G},
volume={7},
year={1994},
publisher={McGraw-hill New York}
}
@article{krause2002,
title={Analysis of Electric Machinery and Drive Systems},
author={Krause, Paul and Wasynczuk, Oleg and Sudhoff, Scott and Pekarek, Steven},
journal={IEEE Press},
year={2002}
}
@book{maas2003nonlinear,
title={Nonlinear microwave and RF circuits},
author={Maas, Stephen A},
year={2003},
publisher={Artech House}
}
@book{suarez2009analysis,
title={Analysis and design of autonomous microwave circuits},
author={Su{\'a}rez, Almudena},
volume={190},
year={2009},
publisher={John Wiley \& Sons}
}
@book{haykin2009communication,
title={Communication Systems, 5th Edition},
author={Haykin, Simon and Moher, Michael},
year={2009},
publisher={Wiley}
}
@book{proakis2001communication,
title={Communication Systems, 5th Edition},
author={Proakis, John and Salehi, Masoud},
year={2001},
publisher={Prentice Hall}
}
@book{schreier2010statistical,
title={Statistical signal processing of complex-valued data: the theory of improper and noncircular signals},
author={Schreier, Peter J and Scharf, Louis L},
year={2010},
publisher={Cambridge University Press}
}
%----------------------------------------------------------
% Papers
%----------------------------------------------------------
@article{wang2010methods,
title={Methods of interfacing rotating machine models in transient simulation programs},
author={Wang, L and Jatskevich, J and Dinavahi, V and Dommel, HW and Martinez, JA and Strunz, K and Rioual, M and Chang, GW and Iravani, R},
journal={IEEE Transactions on Power Delivery},
volume={25},
number={2},
pages={891--903},
year={2010},
publisher={IEEE}
}
@article{sanders1991generalized,
title={Generalized averaging method for power conversion circuits},
author={Sanders, Seth R and Noworolski, J Mark and Liu, Xiaojun Z and Verghese, George C},
journal={IEEE Transactions on Power Electronics},
volume={6},
number={2},
pages={251--259},
year={1991},
publisher={IEEE}
}
@article{venkatasubramanian1995fast,
title={Fast time-varying phasor analysis in the balanced three-phase large electric power system},
author={Venkatasubramanian, Vaithianathan and Schattler, Heinz and Zaborszky, John},
journal={IEEE Transactions on Automatic Control},
volume={40},
number={11},
pages={1975--1982},
year={1995},
publisher={IEEE}
}
@article{strunz2006frequency,
title={Frequency-adaptive network modeling for integrative simulation of natural and envelope waveforms in power systems and circuits},
author={Strunz, Kai and Shintaku, Rachel and Gao, Feng},
journal={IEEE Transactions on Circuits and Systems I: Regular Papers},
volume={53},
number={12},
pages={2788--2803},
year={2006},
publisher={IEEE}
}
@inproceedings{demiray2008evaluation,
title={Evaluation study for the simulation of power system transients using dynamic phasor models},
author={Demiray, T and Andersson, G and Busarello, L},
booktitle={Transmission and Distribution Conference and Exposition: Latin America, 2008 IEEE/PES},
pages={1--6},
year={2008},
organization={IEEE}
}
@article{mattavelli1999ssr,
title={SSR analysis with dynamic phasor model of thyristor-controlled series capacitor},
author={Mattavelli, Paolo and Stankovic, Aleksandar M and Verghese, George C},
journal={IEEE Transactions on Power Systems},
volume={14},
number={1},
pages={200--208},
year={1999},
publisher={IEEE}
}
@article{stefanov2002modeling,
title={Modeling of UPFC operation under unbalanced conditions with dynamic phasors},
author={Stefanov, Predrag C and Stankovic, Aleksandar M},
journal={IEEE Transactions on Power Systems},
volume={17},
number={2},
pages={395--403},
year={2002},
publisher={IEEE}
}
@inproceedings{demiray2007dynamic,
title={Dynamic phasor modeling of the doubly-fed induction generator under unbalanced conditions},
author={Demiray, Turhan and Milano, F and Andersson, G{\"o}ran},
booktitle={Power Tech, 2007 IEEE Lausanne},
pages={1049--1054},
year={2007},
organization={IEEE}
}
@article{stankovic2000analysis,
title={Analysis of asymmetrical faults in power systems using dynamic phasors},
author={Stankovic, Aleksandar M and Aydin, Timur},
journal={IEEE Transactions on Power Systems},
volume={15},
number={3},
pages={1062--1068},
year={2000},
publisher={IEEE}
}
@article{stankovic2002dynamic,
title={Dynamic phasors in modeling and analysis of unbalanced polyphase AC machines},
author={Stankovic, Aleksandar M and Sanders, Seth R and Aydin, Timur},
journal={IEEE Transactions on Energy Conversion},
volume={17},
number={1},
pages={107--113},
year={2002},
publisher={IEEE}
}
@article{zhang2007synchronous,
title={Synchronous machine modeling based on shifted frequency analysis},
author={Zhang, Peng and Marti, Jose R and Dommel, Hermann W},
journal={IEEE Transactions on Power Systems},
volume={22},
number={3},
pages={1139--1147},
year={2007},
publisher={IEEE}
}
@inproceedings{ngoya1996envelop,
title={Envelop transient analysis: a new method for the transient and steady state analysis of microwave communication circuits and systems},
author={Ngoya, Edouard and Larchev{\`e}que, R{\'e}mi},
booktitle={Microwave Symposium Digest, 1996., IEEE MTT-S International},
volume={3},
pages={1365--1368},
year={1996},
organization={IEEE}
}
% eof
\ No newline at end of file
This diff is collapsed.
\section{Basic Components}
Every component is a part of the class "BaseComponent", which has as variables the name of the component and the nodes on which they are connected. Furthermore, four functions are defined in "BaseComponent":
\begin{itemize}
\item "init": This function initializes the values of the component variables. For instance, initial values of current and voltage of inductors and capacitors.
\item "applySystemMatrixStamp": This function stamps the conductance matrix $G$.
\item "applyRightSideMatrixStamp": This function stamps the vector $A$.
\item "step": This function updates the values of the vector $A$ in each calculation step.
\item "postStep": This function updates the variables which depends on the solution of the equation $e=G^{-1} \cdot A$.
\end{itemize}
\subsection{Linear Resistor}
The linear resistor has the following parameters defined by the user:
\begin{itemize}
\item name: Name of the component
\item src: First node where the resistor is connected
\item dest: Second node where the resistor is connected
\item resistance: Resistance given in Ohms
\end{itemize}
The function "applySystemMatrixStamp" stamps the resistance to the conductance matrix $G$ as in section \ref{ResistorMatrixStamp} considering $j=src$ and $k=dest$.
\subsection{Inductor}
The inductor model is developed based on the Resistive Companion Method presented in section \ref{ResistiveCompanion}.
For a constant frequency and fixed time step, the value of $R_L$ will be constant. Therefore, the matrix stamp of the conductance matrix will be made just once. By the other hand, the value of $A_L$ needs to be updated each step, since it depends on the voltage and current of the inductor at the previous step.
The inductor has the following parameters defined by the user:
\begin{itemize}
\item name: Name of the component
\item src: First node where the inductor is connected
\item dest: Second node where the inductor is connected
\item inductance: Inductance given in H
\end{itemize}
The function "applySystemMatrixStamp" will stamp $R_L$ to the conductance matrix $G$ as in subsection, considering $j=src$ and $k=dest$. \ref{ResistiveCompanionInductor}
The function "init" defines as zero the initial values of current and voltage of the inductor as well the initial value of the equivalent current source $A_L$.
\begin{align*}
v_L(0)&=0V \\
i_L(0)&=0A \\
A_L(0)&=0A \\
\end{align*}
The function "step" is called each step. It recalculates the value of the equivalent current source $A_L(k)$, using equation \ref{eq:AL} and apply the stamp of the vector $A$ as in subsection \ref{ResistiveCompanionInductor}, considering $j=src$ and $k=dest$.
The function "poststep" will calculate the inductor voltage $v_L$, based on the solution of the vector $e$ at the actual step (k+1) and the inductor current, based on the calculated $v_L$ and on the value of $A_L$ from the previous step (k).
\begin{equation} \label{eq:inductorVoltage}
v_L(k+1) = e_{src}(k+1) - e_{dest}(k+1)
\end{equation}
\begin{equation} \label{eq:inductorCurrent}
i_L(k+1) = \frac{v_L(k+1)}{R_L} + A_L(k)
\end{equation}
\subsection{Capacitor}
The capacitor model is also developed based on the Resistive Companion Method and is similar to the inductor model.
It has the following parameters defined by the user:
\begin{itemize}
\item name: Name of the component
\item src: First node where the inductor is connected
\item dest: Second node where the inductor is connected
\item capacitance: Capacitance given in F
\end{itemize}
The function "applySystemMatrixStamp" will stamp $R_C$ to the conductance matrix $G$ as in subsection \ref{ResistiveCompanionCapacitor}, considering $j=src$ and $k=dest$.
The function "init" defines as zero the initial values of current and voltage of the capacitor as well the initial value of the equivalent current source $A_C$.
\begin{align*}
v_C(0)&=0V \\
i_C(0)&=0A \\
A_C(0)&=0A \\
\end{align*}
The function "step" is called each time step. It recalculates the value of the equivalent current source $A_C(k)$ as in equation \ref{eq:AC} and stamps its value to the vector $A$ as in subsection \ref{ResistiveCompanionCapacitor}, considering $j=src$ and $k=dest$.
The function "poststep" will calculate the capacitor voltage $v_C$, based on the solution of $e$ at the actual step (k+1) and the capacitor current, based on the calculated $v_C(k+1)$ and on the value of $A_C$ from the previous step (k).
\begin{equation}
v_C(k+1) = e_{src}(k+1) - e_{dest}(k+1)
\end{equation}
\begin{equation}
i_C(k+1) = \frac{v_C(k+1)}{R_C} - A_C(k)
\end{equation}
\subsection{Real Voltage Source} \label{sub:RealVoltageSource}
A real voltage source can be represented as a voltage source $V$ in series with a resistance $R$, with
\begin{equation}
V=Va \cdot cos(\omega t + \phi)
\end{equation}
In dynamic phasors the voltage source V becomes
\begin{equation}
V = Va \cdot cos (\phi) + jVa \cdot sin(\phi)
\end{equation}
As nodal analysis does not support voltage source, it is transformed to a current source using the Norton Equivalent as shown in figure \ref{fig:Real_Voltage_Source}.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.6]{img/RealVoltageSource.png}
\caption{Real Voltage Source}
\label{fig:Real_Voltage_Source}
\end{figure}
The matrix stamp for a real voltage source is therefore as in equation \ref{eq:MatrixStampRealVS}.
\begin{align} \label{eq:MatrixStampRealVS}
\begin{split}
&
\begin{matrix}
& \cdots & j & \quad k & \cdots
\end{matrix}\\[-6pt]
\begin{matrix}
\vdots\\[6pt]
j\\[6pt]
k\\[6pt]
\vdots\\
\end{matrix}
&
\begin{bmatrix}
\quad & \quad & \\[6pt]
\quad & \dfrac{1}{R} & \dfrac{-1}{R} & \quad \\[6pt]
\quad & \dfrac{-1}{R} & \dfrac{1}{R} & \quad \\[6pt]
\quad & &
\end{bmatrix}
\begin{bmatrix}
\quad \\[6pt]
e_j(k+1)\\[6pt]
e_k(k+1)\\[6pt]
\quad
\end{bmatrix}
=
\begin{matrix}
\vdots\\[6pt]
j\\[6pt]
k\\[6pt]
\vdots\\
\end{matrix}
\begin{bmatrix}
\quad \\[6pt]
\dfrac{V}{R} \\[6pt]
-\dfrac{V}{R} \\[6pt]
\quad
\end{bmatrix}
\end{split}
\end{align}
The following parameters are defined by the user for the real voltage source:
\begin{itemize}
\item name: Name of the component
\item src: Node connected to voltage source positive terminal (j)
\item dest: Node connected to voltage source negative terminal (k)
\item voltage: Voltage in V
\item phase: Phase shift in degrees
\item resistance: Series resistance in ohms
\end{itemize}
The function "applySystemMatrixStamp" will stamp the resistance at the conductance matrix $G$.
The function "applyRightSideVectorStamp" will stamp the equivalent current source $I=\frac{V}{R}$ to the vector $A$.
The function "step" will repeat the stamp of the vector $A$ each time step.
\subsection{Ideal Voltage Source}
The model of the ideal voltage source uses the modified nodal analysis as presented in subsection \ref{IdealVoltageSource}.
The following parameters are defined by the user:
\begin{itemize}
\item name: Name of the component
\item src: Node connected to voltage source positive terminal
\item dest: Node connected to voltage source negative terminal
\item voltage: Voltage in V
\item phase: Phase shift in degrees
\item num: Number of the voltage source (the voltage sources have to be numbered in sequence)
\end{itemize}
The function "applyMatrixStamp" will stamp the conductance matrix according to subsection \ref{IdealVoltageSource}. The additional unknown $i_{jk}$ of the voltage source number 1 (with variable num=1) will be added in the first line after the last node voltage and so on. Therefore, for a circuit with n voltage sources and m nodes, the vector of unknown variable $e$ and the vector $A$ will have the size $m+n$. The conductance matrix G will have the size $(m+n)X(m+n)$.
\begin{equation}
e=
\begin{bmatrix}
e_1 \\
\vdots \\
e_m \\
i_1 \\
\vdots \\
i_n
\end{bmatrix}
\end{equation}
The function "applyRightSideVectorStamp" will stamp the voltage at the corresponding line of the vector $A$.
The function step will repeat the stamp of the vector $A$ each time step.
\subsection{Current Source}
For the current source, the following parameters are defined by the user:
\begin{itemize}
\item name: Name of the component
\item src: Node connected to current source positive terminal
\item dest: Node connected to current source negative terminal
\item current: Current in A
\item phase: Phase shift in degrees
\end{itemize}
The function "applyRightSideVectorStamp" will stamp the current at the vector $A$ as in subsection \ref{CurrentSourceMatrixStamp}.
\ No newline at end of file
\section{Branches}
\subsection{RX-Line}
The RX Line model corresponds to a resistance in series with a inductance. The inductance is represented using resistive companion and therefore replaced by a resitance in parallel to a current source.
The user can define the RX Line in two ways. The first one is with the following parameters:
\begin{itemize}
\item name: Name of the component
\item node1: First node, where the resistance is connected
\item node2: Second node, where the inductance is connected
\item node3: Node between resistance and inductance
\item resistance: Resistance in ohms
\item inductance: Inductance in H
\end{itemize}
\begin{figure}[h]
\centering
\includegraphics[scale=0.5]{img/RXLine}
\caption{RX Line model}
\label{fig:RxLine}
\end{figure}
In this case, the function "applySystemMatrixStamp" will stamp the resistances $R$ between node1 and node3 and $R_L$ between node3 and node2 to the conductance matrix $G$. The function "step" will recalculate the value of $A_L$ as in equation \ref{eq:AL} and stamp it between node3 and node2 to the vector $A$. The function "poststep" will update the values of inductor current and voltage using equations \ref{eq:inductorCurrent} and \ref{eq:inductorVoltage}.
\begin{align}
\begin{split}
&
\begin{matrix}
& \cdots & node1 & node2 & node3 & \cdots
\end{matrix}\\[-6pt]
G \quad = \quad
\begin{matrix}
\vdots\\[8pt]
node1\\[8pt]
node2\\[8pt]
node3\\[8pt]
\vdots\\
\end{matrix}
&
\begin{bmatrix}
\quad & \quad & \\[8pt]
\quad & \quad \dfrac{1}{R} & \quad & \quad \dfrac{-1}{R} & \quad \\[8pt]
\quad & \quad & \quad \dfrac{1}{R_L} & \quad \dfrac{-1}{R_L} & \quad \\[8pt]
\quad & \quad \dfrac{-1}{R} & \quad \dfrac{-1}{R_L} & \dfrac{1}{R}+\dfrac{1}{R_L} & \quad\\[8pt]
\quad\\
\end{bmatrix}
\end{split}
\end{align}
\begin{align}
\begin{split}
A\quad = \quad
\begin{matrix}
\vdots\\[8pt]
node1\\[8pt]
node2\\[8pt]
node3\\[8pt]
\vdots\\
\end{matrix}
\begin{bmatrix}
\quad \\[8pt]
\quad \\[8pt]
A_L(k) \\[8pt]
-A_L(k) \\[8pt]
\quad
\end{bmatrix}
\end{split}
\end{align}
The second way of define the RX Line is defining only two nodes (node1 and node2). In this case, the equivalent circuit in figure \ref{fig:RxLine2} is considered.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.5]{img/RXLine2}
\caption{RX Line model with two nodes}
\label{fig:RxLine2}
\end{figure}
The function "applySystemMatrixStamp" will stamp the resistance $R+R_L$ between node1 and node2 to the conductance matrix $G$.
\begin{align}
\begin{split}
&
\begin{matrix}
& \cdots & node1 & \quad node2 & \cdots
\end{matrix}\\[-5pt]
G \quad = \quad
\begin{matrix}
\vdots\\[6pt]
node1\\[6pt]
node2\\[6pt]
\vdots\\
\end{matrix}
&
\begin{bmatrix}
\quad & \quad & \\[6pt]
\quad & \dfrac{1}{R+R_L} & \dfrac{-1}{R+R_L} & \quad \\[6pt]
\quad & \dfrac{-1}{R+R_L} & \dfrac{1}{R+R_L} & \quad \\[6pt]
\quad & &
\end{bmatrix}
\end{split}
\end{align}
The function "step" will update the values of $A_L$ as in equation \ref{eq:AL} and $A_{Leq}(k)$. $A_{Leq}$ will be stamped to the vector $A$ as in equation \ref{eq:AleqStamp}.
\begin{equation}
A_{Leq}(k)=A_L(k) \cdot \frac{R_L}{R_L+R}
\end{equation}
\begin{align} \label{eq:AleqStamp}
\begin{split}
A\quad = \quad
\begin{matrix}
\vdots\\[8pt]
node1\\[8pt]
node2\\[8pt]
\vdots\\
\end{matrix}
\begin{bmatrix}
\quad \\[8pt]
-A_{Leq}(k) \\[8pt]
A_{Leq}(k) \\[8pt]
\quad