diff --git a/chapters/classes.tex b/chapters/classes.tex index 43f113d33..10005d872 100644 --- a/chapters/classes.tex +++ b/chapters/classes.tex @@ -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} @@ -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. diff --git a/chapters/connectors.tex b/chapters/connectors.tex index f450c8c17..58c5f50d0 100644 --- a/chapters/connectors.tex +++ b/chapters/connectors.tex @@ -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. @@ -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.