Commit 2b03e133 authored by Kristian Soltesz's avatar Kristian Soltesz
Browse files

Started writing some documentation

parent 3148c0f2
author={Soltesz, Kristian and Grimholt, Chriss and Skogestad, Sigurd},
title={Simultaneous Design of {PID} Controller and Measurement Filter by Optimization},
journal={{IET Control Theory \& Applications}},
author={Grimholt, Chriss and Skogestad, Sigurd},
title={Improved Optimization-based Design of {PID} Controllers Using Exact Gradients},
booktitle={12th International Symposium on Process Systems Engineering and 25th European Symposium on Computer Aided Process Engineering},
address={Copenhagen, Denmark},
isbn={978-0-444-63445-0 (eBook)}
author={Hast, Martin and {\AA}str\"{o}m, Karl Johan and Bernhardsson, Bo and Boyd, Stephen},
title={{PID} Design by Convex-Concave Optimization},
booktitle={{IEEE} European Control Conference ({ECC})},
address={Z\"{u}rish, Switzerland},
isbn={978-3-033-03962-9 (eBook)}
\title{{PIDopt} -- Matlab software for robust optimization-based {PID} controller design}
\author{Kristian Soltesz}
The software consists of three scripts for {PID} design, exaplained later. The underlying methods for these files are:
\item \verb=pidfIAE.m=\\
\item \verb=pidIAE.m=\\
Please acknowledge these works through citation if you use the methods in your research. The code present in the \verb=PIDopt= package is due to the authors of the above works.
\section{Getting started}
The software can be downloaded from the git repository \url{}, accessible online at \url{}. See \url{}{\verb=example.m=} at the base of the repository for an example illustrating how to run and evaluate the designs. Feel free to report/correct bugs through the issue system available at the \url{}{web page of the repository}.
The remainder of this document is dedicated to briefly describe the design method (\secref{}), and to provide . If you remain with any questions, please send them to \url{}{kristian at control dot lth dot se}.
\section{Design Methods}
\subsection{Design problem}
All the design methods consider a closed-loop system as depicted in \figref{cc}. The process model $P$ is a SISO LTI system. The design objective is to minimize the influence of an additive (unit) load disturbance step $l$, entering at the process input at $t=0$, on the control error $e$.
In \verb=pidIE.m=, the objective is to minimize the integral error,
\text{IE} = \int_0^\infty e(t) dt,
whereas \verb=pidIAE.m= and \verb=pidfIAE.m= aim to minimize the $\mathcal{L}_1$-norm of $e$, also known as the integrated absolute error,
\text{IAE} = \int_0^\infty |e(t)| dt.
These constraints are standard within process control, and sound within a much broader application scope.
Robustness of the control loop is enforced by constraining the sensitivity function
S = \dfrac{1}{1+L},
the complementary sensitivity function
T = \dfrac{L}{1+L},
as well as the noise sensitivity function $KS$. We use $L=KP$ to denote the loop transfer function. Interpretation of The sensitivity function $S$ and its complement $T=1-S$ are thoroughly covered in most introductory control textbooks. The noise sensitivity $KS$ is the transfer function from $y$ to $u$ in \figref{cc}, and determines how much measurement noise is attenuated (or amplified). The methods covered here impose robustness through $\mathcal{H}_\infty$-constraints:
\|S\|_\infty &\leq M_s,\nonumber\\
\|T\|_\infty &\leq M_t,\nonumber\\
\|KS\|_\infty &\leq M_{ks}.\nonumber
Smaller values of $M_s$, $M_t$, and $M_{ks}$, correspond to better robustness, but typically correspond to an increase in objective. A reasonable default is $M_s=M_t=1.5$. It is not possible to give a default for $M_{ks}$ as it is unit dependent -- it is affected by the gain of $P$.
\subsection{Controller and filter structure}
Process and controller representation herein is in continuous time. (Adapting the code to discrete time settings should be straightforward.) The controllers synthesized by \verb=pidIE.m= and \verb=pidIAE.m= are on the form
K(s) = k_p+\dfrac{ki}{s}+k_ds.
Their parallel form representation
has parameters ??, and exists if ??. (The code can be modified to include \eqref{} as a constraint if it is crucial that the resulting controllers have a parallel form representation.)
The controllers synthesized by \verb=pidfIAE.m= are a series connection of a controller on the form \eqref{pid}
and a second-order low-pass filter
F(s) = \dfrac{}{}.
The role of the filter is to ensure high-frequency roll-off. In order to achieve this also with \verb=pidIE.m= and \verb=pidIAE.m= simply design a low-pass filter and include it as a series connected component of $P$ prior to conducting the design.
\subsection{{IE} vs. {IAE}}
\subsection{Numerical aspects}
All the scripts aim at minimizing the effect of a (unit) loadon the process output.
\section{Other considerations}
The latest version of the source files can be downloaded from the git repository
\section{Bug reporting and questions}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment