From becf0545e8be9cf23152c27fc26199413e0450e9 Mon Sep 17 00:00:00 2001 From: HOS Date: Tue, 30 Sep 2025 14:22:17 +0200 Subject: [PATCH 1/4] Correcting the issues in #3732 --- chapters/classes.tex | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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. From 7b1e0c9ef1a8aa4c8dc0ae5007e1046593a333d1 Mon Sep 17 00:00:00 2001 From: HOS Date: Tue, 30 Sep 2025 14:24:20 +0200 Subject: [PATCH 2/4] Rename "number of variables" to "number of potential variables" to reduce confusion. --- chapters/connectors.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chapters/connectors.tex b/chapters/connectors.tex index f450c8c17..77365948e 100644 --- a/chapters/connectors.tex +++ b/chapters/connectors.tex @@ -622,9 +622,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. From 747815d862d8c2a0274a5d46d6c2a16c38b872aa Mon Sep 17 00:00:00 2001 From: HOS Date: Tue, 30 Sep 2025 14:29:52 +0200 Subject: [PATCH 3/4] Break tie for input/output causality. --- chapters/connectors.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/chapters/connectors.tex b/chapters/connectors.tex index 77365948e..80f5fa145 100644 --- a/chapters/connectors.tex +++ b/chapters/connectors.tex @@ -125,6 +125,7 @@ \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. \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. From e8afd7e38a3fe9defa959a8e19fba334743a76f2 Mon Sep 17 00:00:00 2001 From: HOS Date: Tue, 30 Sep 2025 14:34:15 +0200 Subject: [PATCH 4/4] For N2 case. --- chapters/connectors.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/chapters/connectors.tex b/chapters/connectors.tex index 80f5fa145..58c5f50d0 100644 --- a/chapters/connectors.tex +++ b/chapters/connectors.tex @@ -126,6 +126,7 @@ \subsection{Expandable Connectors}\label{expandable-connectors} \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.