Knowledge Base

Simbus Product Issues Knowledge Base

The table below lists the known issues of Simbus products.  Search for keywords relating to the issue that you are encountering below.  Please note that the desktop site has superior keyword search capability.  This may also apply if your mobile device has suitable resolution in landscape mode.

REVISION DATE: 2023-12-14 (DECEMBER 14, 2023)

Issue IDIssue NameImmediately Affected Files, Directories, or BlocksDescriptionImpact SummaryWorkarounds
I118Causality assignment algorithm is missing from Simbus Bondgraphs.Simbus Bondgraphs librariesSimbus Bondgraphs has all the basic 1-port elements but does not contain blocks for field elements.It is not possible currently to assign the causality of Simbus Bondgraphs blocks automatically. Causal assignment must be performed manually currently.Causality assignment for a model needs to be performed manually.
I121Simbus Core Toolbox blocks cannot be accessed through the Simulink Library Browser.Simbus Core Toolbox libraryThe Simbus Core Toolbox library is not integrated into the Simulink Library Browser currently.Access to the Simbus Core Toolbox library is not possible from the Simulink Library Browser.The Simbus Core Toolbox library can be opened from the MATLAB command line by issuing lib_simbus_core.
I169get_adjacent_bond does not work on the make multibond / split multibond blocks.get_adjacent_bond.mCalling get_adjacent_bond on any of the multibond blocks results in an error stating that the multibond block is not a bond. The error is E00120.In a complex model with many subsystems, it is useful to be able to determine an adjacent bond. This cannot be done if the bond in question is a multibond block.Bond blocks adjacent to to the make / split multibond blocks can be found using the get_source_block and get_dest block functions. The CFUNC parameter for these functions should be specified as being a handle to the is_bond function. Type “doc get_source_block” and “doc get_dest_block” for help on the required input arguments.
I200Units management not integrated into Simbus Bondgraphs.All Simbus Bondgraphs blocks.It is not possible to specify the units for the 1-port and 2-port parameters and it is not possible to specify the units for the power variables.The end user has to keep track of units in the model manually.A combination of block naming and partitioning into subsystems may help in this regard.
I202Domains not integrated into Simbus Bondgraphs.All Simbus Bondgraphs blocksSimbus Bondgraphs only supports the “generic” domain currently.The end user has to keep track of physical modeling domains and domain changes throughout the model.A combination of block naming and partitioning into subsystems may help in this regard.
I214Field blocks are missing from Simbus Bondgraphs.lib_simbus_bondgraphs.slxSimbus Bondgraphs has all the basic 1-port elements but does not contain blocks for field elements.Additional work on the part of the end user is required to get the energy variables.If fields are genuinely required, then they can be implemented using structures of 1, 0, and 1-port elements to create implicit fields. The textbooks cited in the Simbus Bondgraphs User Guide discuss this topic.
I264Simbus product files are editable.AllFiles in the product installation directory are editable.The installation can get messed up by the end user. The only recovery mechanism would be to uninstall the toolbox and then re-install it.Avoid editing any file within the Simbus products installation directory. If the product files become modified in any way, then the product can be removed and reinstalled.
I283LFR backup capability is missing in GetMyLicenseFile.GetMyLicenseFile.mWhen GetMyLicenseFile asks the end user to overwrite or append, no backup of the existing LFR is made.The lack of a backup LFR being made when the user needs to overwrite or append to the LFR could be annoying if a mistake was made.Copy any existing LFRs to a backup location prior to appending to them using GetMyLicenseFile.
I296is_fcn_expr does not allow parameters.is_fcn_expr.mis_fcn_expr does not allow parameters e.g. u*A, where A is defined in the base workspace as a scalar. Also not allowed by a one-port block mask.The lack of this feature means that end users have to hard-code parameters into the expression.Provide numeric literals rather than variables when constructing your expressions.
I298The limit_magnitude block uses hard-coded parameters.lib_limit_magnitude.slxThe behavior of this block is controlled through the tinynum and hugenum functions.It would also be very easy for someone to set tinynum or hugenum and forget to change it back.No workaround currently.

REVISION DATE: 2022-03-18 (MARCH 18, 2022)

Issue ID Issue Name Immediately Affected Files, Directories, or Blocks Description Impact Summary Workarounds
I118 Causality assignment algorithm is missing from Simbus Bondgraphs. Simbus Bondgraphs libraries Simbus Bondgraphs has all the basic 1-port elements but does not contain blocks for field elements. It is not possible currently to assign the causality of Simbus Bondgraphs blocks automatically. Causal assignment must be performed manually currently. Causality assignment for a model needs to be performed manually.
I121 Simbus Core Toolbox blocks cannot be accessed through the Simulink Library Browser. Simbus Core Toolbox library The Simbus Core Toolbox library is not integrated into the Simulink Library Browser currently. Access to the Simbus Core Toolbox library is not possible from the Simulink Library Browser. The Simbus Core Toolbox library can be opened from the MATLAB command line by issuing lib_simbus_core.
I168 simbus_bio.factory() fails to create bio for image-only masks. simbus_bio.m Calling simbus_bio.factory(gcb) on an icon-only block mask returns E00051 (unknown error) with underlying error Empty keys are no allowed in this container. Limited impact since there is not much value in creating a BIO for a subsystem with an image-only mask. If a BIO for a particular subsystem block is genuinely required, then a full mask for the block should be created. Note that the publicly-accessible interface to the simbus_bio class is experimental currently.
I169 get_adjacent_bond does not work on the make multibond / split multibond blocks. get_adjacent_bond.m Calling get_adjacent_bond on any of the multibond blocks results in an error stating that the multibond block is not a bond. The error is E00120. In a complex model with many subsystems, it is useful to be able to determine an adjacent bond. This cannot be done if the bond in question is a multibond block. Bond blocks adjacent to to the make / split multibond blocks can be found using the get_source_block and get_dest block functions. The CFUNC parameter for these functions should be specified as being a handle to the is_bond function. Type “doc get_source_block” and “doc get_dest_block” for help on the required input arguments.
I172 The getc simbus_bio method does not raise an error when the specified parameter is not a MATLAB identifier. simbus_bio.m If z is a simbus_bio object then a call such as this will not raise an error: getc(z, ‘@123’). The second argument is not a valid MATLAB identifier but no error is raised by getc. Rather, getc returns an empty array. If no error checking is performed on the input to the getc method, then it may appear that the simbus_bio object has the supplied parameter and that parameter is the empty array. The candidate parameter can be checked using the is_cparam simbus_bio method. Note that the publicly-accessible interface to the simbus_bio class is experimental currently.
I173 The getc simbus_bio method does not raise an error when the specified parameter does not exist. simbus_bio.m If z is a simbus_bio object then a call such as this will not raise an error: getc(z, ‘@123’). The second argument is not a valid MATLAB identifier but no error is raised by getc. Rather, getc returns an empty array. If no error checking is performed on the input to the getc method, then it may appear that the simbus_bio object has the supplied parameter and that parameter is the empty array. The candidate parameter can be checked using the is_cparam simbus_bio method. Note that the publicly-accessible interface to the simbus_bio class is experimental currently.
I179 Unknown error E00051 raised when a scalar simbus_bio object is accessed as if it were a vector with more than one element. simbus_bio.m Raised error does not indicate the nature of the error. Error handling does not provide much information on the exact source of the error if the dimension of the simbus_bio object array is not determined prior to access. The size of an array of simbus_bio objects should be checked prior to any attempt to access elements from it. Note that the publicly-accessible interface to the simbus_bio class is experimental currently.
I180 Unknown error E00051 raised when a scalar simbus_bio object is accessed as if it were a 2D array with more than one element. simbus_bio.m Raised error does not indicate the nature of the error. Error handling does not provide much information on the exact source of the error if the dimension of the simbus_bio object array is not determined prior to access. The size of an array of simbus_bio objects should be checked prior to any attempt to access elements from it. Note that the publicly-accessible interface to the simbus_bio class is experimental currently.
I181 Unknown error E00051 raised when a BIO attempts to access a method or data using dot notation when that method or data does not exist. simbus_bio.m Raised error does not indicate the nature of the error. Error handling does not provide much information on the exact source of the error if the end user is not familiar with the methods accessible using the dot notation. Make sure to only use the following simbus_bio methods using the dot noation: load_system, save_system, close_system, open_model, open_system, hilite_system, unhilite_system, pull, push. Note that the publicly-accessible interface to the simbus_bio class is experimental currently.
I194 Access to the transfer function that represents the frequency-limited time derivative transfer function is not possible from the 1-port bond graph blocks that have this capability. 1. generic_capacitance, 2. generic_inertance, 3. modulated_capacitance, 4. modulated_inertance If derivative causality for a 1-port is required and a frequency-limited derivative is selected, then it is not possible to extract the resulting transfer function from the top-level of the 1-port block or its through the block’s simbus_bio object. Getting the transfer function of the frequency-limited derivative approximation requires getting access to the time_derivative block within the 1-port block and accessing the “num” and “den” fields of its simbus_bio object. The time derivative parameters from the 1-port block can be provided to the time_derivative block in a separate model. The numerator and denominator of the approximation can be be obtained using a simbus_bio object for the time_derivative block using: a = simbus_bio.factory(gcb); num = a{‘num’}; den = a{‘den’};
I200 Units management not integrated into Simbus Bondgraphs. All Simbus Bondgraphs blocks. It is not possible to specify the units for the 1-port and 2-port parameters and it is not possible to specify the units for the power variables. The end user has to keep track of units in the model manually. A combination of block naming and partitioning into subsystems may help in this regard.
I202 Domains not integrated into Simbus Bondgraphs. All Simbus Bondgraphs blocks Simbus Bondgraphs only supports the “generic” domain currently. The end user has to keep track of physical modeling domains and domain changes throughout the model. A combination of block naming and partitioning into subsystems may help in this regard.
I213 Getting energy variables (displacement and momentum) from bond connections is not possible. All 1-port blocks and connector block It is not possible to get the energy variables directly from the bond blocks. Additional work on the part of the end user is required to get the energy variables. Generalized displacement can be computed by integrating the generalized velocity and generalized momentum can be computed by integrating the generalized effort.
I214 Field blocks are missing from Simbus Bondgraphs. Simbus Bondgraphs Simbus Bondgraphs has all the basic 1-port elements but does not contain blocks for field elements. Additional work on the part of the end user is required to get the energy variables. If fields are genuinely required, then they can be implemented using structures of 1, 0, and 1-port elements to create implicit fields. The textbooks cited in the Simbus Bondgraphs User Guide discuss this topic.
I264 Simbus product files are editable. All Files in the product installation directory are editable. The installation can get messed up by the end user. The only recovery mechanism would be to uninstall the toolbox and then re-install it. Avoid editing any file within the Simbus products installation directory. If the product files become modified in any way, then the product can be removed and reinstalled.
I283 LFR backup capability is missing in GetMyLicenseFile. GetMyLicenseFile.m When GetMyLicenseFile asks the end user to overwrite or append, no backup of the existing LFR is made. The lack of a backup LFR being made when the user needs to overwrite or append to the LFR could be annoying if a mistake was made. Copy any existing LFRs to a backup location prior to appending to them using GetMyLicenseFile.
I296 is_fcn_expr does not allow parameters. is_fcn_expr.m is_fcn_expr does not allow parameters e.g. u*A, where A is defined in the base workspace as a scalar. Also not allowed by a one-port block mask. The lack of this feature means that end users have to hard-code parameters into the expression. Provide numeric literals rather than variables when constructing your expressions.
I298 The limit_magnitude block uses hard-coded parameters. lib_limit_magnitude.slx The behavior of this block is controlled through the tinynum and hugenum functions. It would also be very easy for someone to set tinynum or hugenum and forget to change it back. No workaround currently.