Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions chapters/classes.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1033,8 +1033,11 @@ \section{Balanced Models}\label{balanced-models}
\item
For each declared component of specialized class \lstinline!connector! component, it is the number of unknown variables inside it (i.e., excluding parameters and constants and counting the elements after expanding all records and arrays to a set of scalars of primitive types).
\item
For each declared component of specialized class \lstinline!block! or \lstinline!model!, it is the sum of the number of inputs and flow variables in the (top level) public connector components of these components (and counting the elements after expanding all records and arrays to a set of scalars of primitive types).
For each declared component of specialized class \lstinline!block! or \lstinline!model!, it is the sum of the number of inputs and non-causal non-flow variables in the (top level) public connector components of these components (and counting the elements after expanding all records and arrays to a set of scalars of primitive types).
\end{itemize}
\begin{nonnormative}
For normal physical connector the number of flow variables matches the non-causal non-flow variables, but for overdetermined connectors there is a difference.
\end{nonnormative}
\end{definition}

\begin{definition}[Local equation size]\index{local equation size}\label{local-equation-size}
Expand Down Expand Up @@ -1130,7 +1133,7 @@ \section{Balanced Models}\label{balanced-models}
\end{example}
\item
In a declarations of a component of a \lstinline!model! or \lstinline!block! class, modifiers shall only contain redeclarations of replaceable elements and binding equations.
The binding equations in modifiers for components may in these cases only be for parameters, constants, inputs and variables having a default binding equation.
The binding equations in modifiers for components may in these cases only be for parameters, constants, non-connector inputs and variables having a default binding equation.
For the latter case of variables having a default binding equation the modifier may not remove the binding equation using \lstinline!break!, see \cref{removing-modifiers-break}.
\item
Modifiers of base-classes (on extends and short class definitions) shall only contain redeclarations of replaceable elements and binding equations.
Expand Down
8 changes: 5 additions & 3 deletions chapters/connectors.tex
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ \subsection{Expandable Connectors}\label{expandable-connectors}
Introducing elements in an array gives an array with at least the specified elements, other elements are either not created or have a default value (i.e., as if they were only potentially present, and the same note regarding the use of \lstinline!size! also applies here).
\item
If the variable on the other side of the \lstinline!connect!-equation is \lstinline!input! or \lstinline!output! the new component will be either \lstinline!input! or \lstinline!output! to satisfy the restrictions in \cref{restrictions-of-connections-and-connectors} for a non-expandable connector.
If both would be valid it shall be \lstinline!input! to ensure that there is a source of the signal.
If the corresponding connection set contain two or more variables in expandable connectors that are deduced to be input it is an error as there should only be one source of the signal.
\begin{nonnormative}
The general rule ensures consistency for inside and outside connectors, and handles multiple connections to the new component.
In the simple case of no other connections involving these variables and the existing side referring to an inside connector (i.e., a connector of a component), the new variable will copy its causality (i.e., \lstinline!input! if \lstinline!input! and \lstinline!output! if \lstinline!output!) since the expandable connector must be an outside connector.
Expand Down Expand Up @@ -622,9 +624,9 @@ \section{Restrictions of Connections and Connectors}\label{restrictions-of-conne

\subsection{Balancing Restriction and Size of Connectors}\label{balancing-restriction-and-size-of-connectors}

For each non-partial non-simple non-expandable connector class the number of flow variables shall be equal to the number of variables that are neither \lstinline!parameter!, \lstinline!constant!, \lstinline!input!, \lstinline!output!, \lstinline!stream! nor \lstinline!flow!.
The \emph{number of variables} is the number of all elements in the connector class after expanding all records and arrays to a set of scalars of primitive types.
The number of variables of an overdetermined type or record class (see \cref{overconstrained-equation-operators-for-connection-graphs}) is the size of the output argument of the corresponding \lstinline!equalityConstraint!() function.
For each non-partial non-simple non-expandable connector class the number of flow variables shall be equal to the number of potential variables that are neither \lstinline!parameter!, \lstinline!constant!, \lstinline!input!, \lstinline!output!, \lstinline!stream! nor \lstinline!flow!.
The \emph{number of potential variables} is the number of all elements in the connector class after expanding all records and arrays to a set of scalars of primitive types.
The number of potential variables of an overdetermined type or record class (see \cref{overconstrained-equation-operators-for-connection-graphs}) is the size of the output argument of the corresponding \lstinline!equalityConstraint!() function.
A simple connector class is not expandable, has some time-varying variables, and has neither \lstinline!input!, \lstinline!output!, \lstinline!stream! nor \lstinline!flow! variables.
\begin{nonnormative}
Expandable connector classes are excluded from this, since their component declarations are only a form of constraint.
Expand Down