Skip to content

Commit

Permalink
Upgrade from BibTeX to biblatex
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikt-ma committed Nov 26, 2020
1 parent 49f6393 commit 32c9d03
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 15 deletions.
6 changes: 3 additions & 3 deletions MLS.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
\NeedsTeXFormat{LaTeX2e}
\usepackage[utf8]{inputenc}
\input{preamble.tex}
\addbibresource{mls.bib}

% Define title for use by LaTeXML.
% An extended title is defined separately in the 'titlepage'.
Expand Down Expand Up @@ -165,10 +166,9 @@
% Modelica Revision History
\input{chapters/revisions}

\clearpage
\phantomsection
\clearpage\phantomsection
\addcontentsline{toc}{chapter}{\bibname}
\bibliography{mls}
\printbibliography

% Literature
\input{chapters/literature}
Expand Down
4 changes: 2 additions & 2 deletions chapters/statemachines.tex
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
\chapter{State Machines}\label{state-machines}

This chapter defines language elements to define clocked state machines.
These state machines have a similar modeling power as Statecharts \citep{Harel1987Statecharts} and have the important feature that at one clock tick, there is only one assignment to every variable (for example, it is an error if state machines are executed in parallel and they assign to the same variable at the same clock tick; such errors are detected during translation).
These state machines have a similar modeling power as Statecharts \parencite{Harel1987Statecharts} and have the important feature that at one clock tick, there is only one assignment to every variable (for example, it is an error if state machines are executed in parallel and they assign to the same variable at the same clock tick; such errors are detected during translation).
Furthermore, it is possible to activate and deactivate clocked equations and blocks at a clock tick.
An efficient implementation will only evaluate the equations and blocks that are active at the current clock tick.
With other Modelica language elements, this important feature cannot be defined.

The semantics of the state machines defined in this chapter is inspired by mode automata and is basically the one from Lucid Synchrone 3.0 \citep{Pouzet2006LucidSynchrone30}.
The semantics of the state machines defined in this chapter is inspired by mode automata and is basically the one from Lucid Synchrone 3.0 \parencite{Pouzet2006LucidSynchrone30}.
Note, safety critical control software in aircrafts is often defined with such kind of state machines.
The following properties are different to Lucid Synchrone 3.0:
\begin{itemize}
Expand Down
12 changes: 6 additions & 6 deletions chapters/synchronous.tex
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ \chapter{Synchronous Language Elements}\label{synchronous-language-elements}
clock only at a few places (above only in the sampler, whereas in the
discrete controller and the hold the sampling period is inferred).
\item
The approach in this chapter is based on the clock calculus and inference system proposed by \citet{ColacoPouzet2003ClocksFirstClass} and implemented in Lucid Synchrone version 2 and 3 \citep{Pouzet2006LucidSynchrone30}.
However, the Modelica approach also uses multi-rate periodic clocks based on rational arithmetic introduced by \citet{ForgetEtAl2008MultiPeriodic}, as an extension of the Lucid Synchrone semantics.
These approaches belong to the class of synchronous languages \citep{BenvenisteEtAl2003SynchronousTwelveYearsLater}.
The approach in this chapter is based on the clock calculus and inference system proposed by \textcite{ColacoPouzet2003ClocksFirstClass} and implemented in Lucid Synchrone version 2 and 3 \parencite{Pouzet2006LucidSynchrone30}.
However, the Modelica approach also uses multi-rate periodic clocks based on rational arithmetic introduced by \textcite{ForgetEtAl2008MultiPeriodic}, as an extension of the Lucid Synchrone semantics.
These approaches belong to the class of synchronous languages \parencite{BenvenisteEtAl2003SynchronousTwelveYearsLater}.
\end{itemize}
\section{Rationale for Clocked Semantics}\label{rationale-for-clocked-semantics}

Expand Down Expand Up @@ -127,7 +127,7 @@ \section{Rationale for Clocked Semantics}\label{rationale-for-clocked-semantics}
For a standard when-clause the condition (sampling) must be explicitly
propagated to all blocks, which is tedious and error prone for large systems.
\item
Possible to use general continuous-time models in synchronous models (e.g.\ some advanced controllers use an inverse model of a plant in the feedforward path of the controller, see \citet{ThummelEtAl2005InverseModels}).
Possible to use general continuous-time models in synchronous models (e.g.\ some advanced controllers use an inverse model of a plant in the feedforward path of the controller, see \textcite{ThummelEtAl2005InverseModels}).
This powerful feature of Modelica to use a nonlinear plant model in a controller would require to export the continuous-time model with an embedded integration method and then import it in an environment where the rest of the controller is defined.
With clocked equations, clocked controllers with continuous-time models can be directly defined in Modelica.
\item
Expand Down Expand Up @@ -1021,7 +1021,7 @@ \section{Continuous-Time Equations in Clocked Partitions}\label{continuous-time-
\begin{nonnormative}
The goal is that every continuous-time Modelica model can be utilized in a sampled data control system.
This is achieved by solving the continuous-time equations with a defined integration method between clock ticks.
With this feature, it is for example possible to invert the nonlinear dynamic model of a plant, see \citet{ThummelEtAl2005InverseModels}, and use it in a feedforward path of an advanced control system that is associated with a clock.
With this feature, it is for example possible to invert the nonlinear dynamic model of a plant, see \textcite{ThummelEtAl2005InverseModels}, and use it in a feedforward path of an advanced control system that is associated with a clock.

This feature also allows defining multi-rate systems: Different parts of the continuous-time model are associated to different clocks and are solved with different integration
methods between clock ticks, e.g., a very fast sub-system with an implicit solver with a small step-size and a slow sub-system with an explicit solver with a large step-size.
Expand Down Expand Up @@ -1249,7 +1249,7 @@ \subsection{Solver Methods}\label{solver-methods}
\begin{nonnormative}
For the implicit integration methods the efficiency can be enhanced by utilizing the discretization formula during the symbolic transformation of the equations.
For example, linear differential equations are then mapped to linear and not non-linear algebraic equation systems, and also the structure of the equations can be utilized.
For details see \citet{ElmqvistOtterCellier1995InlineIntegration}.
For details see \textcite{ElmqvistOtterCellier1995InlineIntegration}.
It might be necessary to associate additional data for an implicit integration method, e.g.\ the relative tolerance to solve the non-linear algebraic equation systems, or the maximum number of iterations in case of hard realtime requirements.
This data is tool specific and is typically either defined with a vendor annotation or is given in the simulation environment.
\end{nonnormative}
Expand Down
14 changes: 10 additions & 4 deletions preamble.tex
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,20 @@
\fi
\setcounter{totalnumber}{1000}
\raggedbottom
\usepackage[backref=page]{hyperref}

\usepackage{hyperref}
% The bookmarks are used as table-of-contents in Acrobat
% The default (magenta for urls and red for internal links) isn't nice
\hypersetup{bookmarksnumbered=true, hidelinks, urlcolor=blue, linkcolor=blue}
\usepackage{multirow} % for multirow entries in tables

\usepackage[round,authoryear]{natbib}
\bibliographystyle{plainnat}
\usepackage[
style=authoryear,
backref=true,
maxnames=6,
]{biblatex}
\setlength\bibitemsep{0.5\baselineskip}

\usepackage{multirow} % for multirow entries in tables

% When producing PDF, the ttfamily looks better in size \small, but with LaTeXML this becomes too small,
% and the size is applied deep down on the HTML elements, making it hard to adjust using CSS.
Expand Down

0 comments on commit 32c9d03

Please sign in to comment.