20-sim Changelog

What's new in 20-sim 4.7.2 Build 9375

Dec 24, 2018
  • Editor:
  • Improved: Creating a signal from an existing splitter with color now copies the splitter color.
  • Fixed: Printing of encrypted models should not be possible.
  • Fixed: Splitter delete from right mouse menu crashes 20-sim.
  • Changed: Export to Matlab/Simulink is not allowed in the 20-sim Viewer.
  • Fixed: 20-sim crash during submodel copy-paste when the new submodel has more ports than the existing submodel.
  • Fixed: Dissolve of a submodel with input edge = output edge results in an unhandled exception.
  • Model Processing:
  • Fixed: Strange generation of discrete indices for particular models.
  • FMI support:
  • Fixed: FMI Import: Fix type conversion warnings in FMI 2.0 master import for non-real data types
  • Fixed: FMI Import: 20-sim should set the initial inputs before fmi2ExitInitializationMode()
  • Fixed: Export of an model with an FMU to Matlab/Simulink gives an unhandled exception
  • Simulator:
  • Fixed: Joystick DLL crash when writing force feedback values to a joystick without force feedback interface
  • Scripting:
  • New: Add Octave 4.4.1 x86/x64 support
  • Improved: Code generation from scripting should not start compilation as parallel task. Instead the script call should block until compilation is finished.
  • Fixed: Python version is overwritten when an older 20-sim version is installed.
  • Fixed: Several fixes for scripting functions in case of equation models (no graphical model)
  • MotionProfile Wizard:
  • Fixed: Unitialized use of reference variable with a certain combination of settings
  • Linear Systems Editor:
  • Fixed: Linear system editor with Numerical Values dialog open results in a non-responsive 20-sim session
  • Fixed: File export did not save the file
  • 3D Mechanics Editor:
  • Fixed: a valid floating license says demo version in 3D Mechanics

New in 20-sim 4.7.1 Build 8902 (May 25, 2018)

  • Documentation:
  • Improved: Imported FMU submodels now show FMI documentation when pressing F1
  • Fixed: explanation of sample and hold were swapped
  • Fixed: DLL documentation output/input mistake
  • Model help did not open webpage URLs anymore
  • Editor:
  • Improved: Zooming with Ctrl+MouseWheel has now more intermediate steps
  • Improved: Dissolve of a splitter should introduce an additional intermediate point in the new signal connection if it is located at a corner
  • Fixed: Dissolve ordering of intermediate points in a signal connection was wrong under certain conditions
  • Fixed: port name tool-tips were not working anymore
  • Fixed: Simulator to editor parameter value synchronization did not work for parameters with annotations
  • Fixed: 20-sim crash on a vertical scroll action for specific models
  • Fixed: FMI import: calculated fixed parameters should not be set
  • Fixed: FMI import went wrong when the active model is stored in a read-only folder
  • Processing:
  • Fixed: static matrix index expressions did not longer work. A new model check was too strict.
  • 3D-animation:
  • Fixed: paths disappeared during a file save for non-existing STL files
  • Fixed: Non-existing STL files were continuously checked for, resulting in a lower FPS
  • Simulator:
  • table function: add error message when the table data is not monotonically increasing for the first column
  • Fixed: early stop of a running simulation took multiple seconds on certain PCs
  • Improved: Modified BDF method: better usage of the MeBDFi method arguments for the maximum stepsize
  • Scripting:
  • New: Add support for Octave 4.2.2 and 4.4 (both x86 and x64 Windows)
  • Fixed: xxsimWriteLogToCsv failed under certain conditions
  • Library:
  • Fixed: Discrete LowPassFilter-FO and LowPassFilter-SO blocks had non-zero initials which should have been zero
  • Fixed: Certain library blocks had absolute library paths pointing to 20-sim 4.0
  • Code Generation:
  • Fixed: C-code generation of encrypted submodels
  • Fixed: unexpected rounding errors in generated double literals for certain integer values

New in 20-sim 4.7.0 Build 8692 (Mar 2, 2018)

  • General:
  • 20-sim 4.7 has been updated to support the Microsoft Windows 10 Creators Update and Fall Creators Update. While older versions of 20-sim will (mostly) work under Windows 10, 20-sim 4.7 has been specially developed and tested for latest releases of Windows 10.
  • We have continued our efforts to support the FMI standard for co-simulation.
  • Editor:
  • You can now delete a submodel but keep the connected signals or ports with the Dissolve command.
  • FMU import: You can now import models from other programs (supporting FMI 2.0 co-simulation export) into 20-sim. Simply drag and drop the model (with the extension .fmu) into 20-sim and connect!
  • FMU export: You can now export a 20-sim model as an FMU with a variable step integration method (using VODE Adams).
  • FMU export is now part of the File - Export menu.
  • (Re-)drawing of large models in the Editor is faster.
  • In the Interface Editor use the Move Up and Move Down buttons to order the list of ports.
  • Drawing closed curves has been improved.
  • The Search box now also shows port names of graphical models.
  • Flat drawing style for new submodels. A shadow is no longer added by default.
  • The Interface Editor now as support for ordering ports.
  • "Edit Globals" added to the right-click menu.
  • Connecting boolean signals now allows for inserting And/Or/Xor/Nand/Nor blocks similator to the PlusMinus/MultiplyDivide blocks for real and integer signals.
  • Simulator:
  • In the Parameters Editor You can set initial values to zero with the Initials to Zero command.
  • In plots you can now select parameters to be displayed.
  • Faster plotting for fixed step-size simulations (pre-allocates required memory).
  • The Variable Chooser dialog for selecting plot variables now also shows parameters.
  • It is now possible to copy and paste curves from one plot to another.
  • It is now possible to copy and paste plots from one window to another.
  • Real-time simulation timer is now more accurate.
  • Language:
  • The function settoolsetting has been added to set specific simulation options from within the model during simulation.
  • Type casting is supported to prevent warnings when converting data types.
  • Library:
  • You can now play a sound during a simulation our couple a sound at event generated during a simulation.
  • A hydraulic line model has been added.
  • Most of the valves and pumps in the Hydraulics library now have parasitic volumes to minimize algebraic loops and speed up simulations of hydraulic models.
  • The Joystick library block and example model are updated to support multiple joysticks.
  • Examples:
  • Added a PlaySound example model.
  • 3D Animation Toolbox:
  • Import of large STL-files in the 3D Animation toolbox is faster.
  • 3D Mechanics Toolbox:
  • The center of mass is shown when you select a body.
  • Real Time Toolbox:
  • All code generation templates:
  • Support for the Event, EventUp/EventDown and TimeEvent functionality of 20-sim.
  • Generate more efficient code for matrix manipulations.
  • Extra code filtering to generate only the code necessary for the selected model
  • Visual Studio 2017 Solution and build support added
  • Arduino support: the Arduino code generation template now supports all AVR and ARM boards that are supported by the Arduino IDE and not only the Arduino Uno and Due.
  • FMU 1.0/2.0 export for 20-sim submodel:
  • Multi-instance support
  • Allow parameter updates during co-simulation.
  • Vode-Adams integration method support.
  • fmi2GetFMUstate/fmi2SetFMUstate support (fixed step-size integration methods only)
  • Many small improvements & compatibility fixes.
  • Scripting:
  • Support for Octave 4.2.0 / 4.2.1 for Windows (32-bit and 64-bit).
  • Allow set/reset of the endless simulation option from scripting using xxsimSetSettings (Octave) / set_settings (Python).
  • New Octave/Matlab scripting functions:
  • xxsimAddPlotWindow
  • xxsimAddPlotToWindow
  • xxsimAddCurveToPlot
  • xxsimGetCurveIDFromName
  • xxsimGetCurvesFromPlot
  • xxsimGetSubmodelProperties
  • xxsimHideCurve
  • xxsimHidePlot
  • xxsimHidePlotWindow
  • xxsimRemoveCurveFromPlot
  • xxsimRemovePlotFromWindow
  • xxsimReplaceSubmodel
  • xxsimSaveSubmodel
  • xxsimGotoSubmodel
  • xxsimGetWindowSize
  • xxsimSetWindowSize
  • New Python scripting functions:
  • add_plot_window
  • add_plot_to_window
  • add_curve_to_plot
  • get_curves_from_plot
  • hide_curve
  • hide_plot
  • hide_plot_window
  • remove_curve_from_plot
  • remove_plot_from_window
  • remove_plot_window
  • replace_submodel
  • save_submodel
  • goto_submodel
  • get_submodel_properties
  • get_window_size
  • set_window_size
  • Installer:
  • Keep C-code, M-code and library path settings on 20-sim update
  • Installation in a different directory (other than the default) did uninstall an existing installation in the default directory
  • Bugfixes & Minor improvements General:
  • Use the Windows 7 "Browse for folder" dialog
  • Updated Dutch translation
  • License:
  • Connection to license server now uses SSL
  • Editor:
  • Drag-drop a new model on an equation model did not open the new model. Drag-drop only worked on graphical models
  • Fixed: Drag-drop items from the explorer to 20-sim did not work anymore in Windows 10 Fall Creators update
  • MLP Network Editor: fix faulty display of names of inputs & outputs
  • Improved: submodel implementation switching is now faster
  • Fixed: Spline figures were drawn with rounding effects
  • Quantities and units: Make sure that the domain name does not contain spaces (not supported)
  • Fixed: Tooltip evaluation of an expression could freeze 20-sim
  • Graph editor open could result in a weird window size and position on multi-display systems
  • Bond graph: Fixed: a node submodel was introduced into a bond-graph connection instead of a junction when drawing a new connection onto an existing bond
  • Fixed: Selection of items close to a submodel with long text labels was difficult
  • Fixed a stability issue when selecting a search result line
  • Fixed a stability issue during model open
  • Fixed: XML parsing error: 'no element found' at line 1
  • Fixed: Implode action looses non-zero initialvalues for variable names that end with numbers
  • Fixed: File Open sometimes asked twice if you would like to save the current model
  • Library:
  • Fixed: The model "Block Diagram Mainmodel" from "Getting Started Manual" did not open
  • Code generation:
  • Targets.ini learned a new (optional) option to clear the target directory for code generation: cleartargetdirectory=true
  • Added: New token %INITIALIZE_PARAMETERS2% to assign parameter values to a constant array like "const XXDouble xx_P = {...};"
  • Initialize variables memory to 0.0
  • Simulink: code generation failed for initial state values that are calculated in initialequations
  • FMI Export: FMU did not create an output signal when the output is a state
  • FMI Export: 20-sim exports with hierarchical names. Add the missing "variableNamingConvention='structured' to the modelDescription.xml
  • FMI Export: Array index starts with 0 => should be 1
  • Documentation:
  • Plot modes documentation updates
  • Added: PhaseSensor block
  • Updated keyboard shortcut key list
  • Reference Manual: removed the non-existing 3D-animation beam element
  • Simulator:
  • Fixed: 3D plot name was not stored in the model
  • Fixed: hidden variables were not shown as initial values
  • Fixed: new plot windows did not have a default name
  • Fixed a division by zero livelock during linearization
  • Fixed: CSV file reader livelock when reading an invalid CSV file
  • Fixed: Stopping the simulation occasionally showed "Message not understood: #checkForAutoAccept'
  • Fixed a stability issue in the numerical values dialog
  • Parameter dialog: unit combo box sometimes showed the wrong unit
  • 3D Animation:
  • Fixed: 3D object spring: Lower Side Closed flag was not stored in the model
  • Fixed: Unapplying a background image in a 3D plot was not stored in the model
  • Fixed: Spot Exponent in Light 3D object was not stored in the model
  • Fixed: Light objects in 3D animation cannot get Map color types.
  • 3D Mechanics editor:
  • Fixed: Joint3D wrong if checked in UpdateHingePoints
  • Scripting:
  • Allow starting 20-sim with a non-default scripting port
  • Fixed model open/save/close/process for model names and paths that contain an ampersand

New in 20-sim 4.6.4 Build 8004 (Oct 2, 2017)

  • 3D Animation:
  • Fixed: Range issue in Spot Angle.
  • Code Generation:
  • Fixed: Directly mapping to an R(ate)-variable if a submodel takes the integral/previous of an input.
  • Fixed: Initial equations in a FMU cannot influence initial states.
  • Fixed: Crash when running a generated FMU in a FMI 1.0 master simulator.
  • Fixed: FMU 2.0 Export: Table2D implementation for source code FMU does not work on Linux/MacOSX
  • Documentation:
  • Reference Manual: Fixed: Unclear statement about 'while do' and 'reapeat until'.
  • Reference Manual: Fixed: Orientation of Euler angles in 3D animation window (ZXZ instead of XYZ).
  • Simulator:
  • Fixed: Not saving a model when closing 20-sim during a simulation.
  • Fixed: A issue when writing a data file of multiple run results (parameter sweep).
  • Fixed: A issue that unnamed nodes can generate instructions for a continuous time block instead of the corresponding discrete block.
  • Fixed: A crash during a multiple run simulation with parameter sweep.

New in 20-sim 4.6.0 build 6684 (Dec 11, 2015)

  • General Improvements:
  • GUI look-and-feel now adapts to the Windows version dependent look-and-feel.
  • FMI support: The Functional Mockup Interface (FMI) is a tool-independent standard to support model exchange. 20-sim now supports exporting models as FMUs (Functional Mockup Units).
  • Python Scripting: 20-sim supports now scripting from a Python script. This means that you can now use Python to automate and control 20-sim next to the existing Octave/Matlab scripting support.
  • 20-sim can be used to develop training simulators.
  • Editor:
  • Gradient Fill of submodels is standard on. You can turn this off in the General Properties (click Tools - Options).
  • Version numbers can be defined for each 20-sim model. The version numbers can be shown in the model background image. Version numbers are also available as tokens during the C-code generation.
  • Use Ctrl + Mouse Wheel to zoom in and out.
  • 20-sim now also supports the 64-bit version of Matlab for the exchange of data between 20-sim and Matlab. This applies to the domatlab, tomatlab, frommatlab functions and the Matlab buttons in the 20-sim GUI (e.g. the Linear System Editor)
  • Drawing closed curves has been improved.
  • Simulator:
  • Using the C-code generation command, you can now export models using the FMI standard. Both version 1.0 and 2.0 of the FMI standard are supported.
  • The Variables Chooser allows you to show or hide knots.
  • Faster plot curve drawing on multi-core systems
  • Language:
  • A new function realtime is added. It can be used to check if the simulation runs slower or faster than the wall-clock time.
  • The bitshift operator now also supports right shift.
  • Library:
  • Bond graph II-element added.
  • Double clicking a library model opens it in the editor.
  • 3D Animation Toolbox:
  • You can show plots and 3D animations in full screen.
  • Multiple 3D animations are drawn more efficiently resulting in higher frame rates.
  • You can show or hide individual objects by clicking the Solo or Hide option.
  • You can show the frame rate in a 3D Animation and set the frame rate to a maximum.
  • You can connect the transparency to a variable.
  • 3D Mechanics Toolbox:
  • Support of global parameters for inertia's and global parameters for joints with spring/dampers.
  • Support of flexibility in joints by overriding constraint settings.
  • Ctrl + Mouse Wheel to zoom in and out.
  • Scripting:
  • Scripting from Python is now supported with similar functions as in Octave/Matlab.
  • MIMO linearization support added to xxsimLinearizeModel in Octave/Matlab.
  • New Octave/Matlab scripting functions:
  • xxsimClose
  • xxsimSavePlotAsBitmap
  • xxsimStartSimulation
  • xxsimStopSimulation
  • xxsimIsSimulating
  • xxsimCopyStatesToInitials
  • xxsimOpenSimulator
  • xxsimSetTimeout
  • xxsimGetImplementations
  • xxsimGetMemoryUsage
  • xxsimGetPlotIDFromName
  • xxsimGetPlotsFromWindow
  • xxsimGetPlotWindowIDFromName
  • xxsimGetPlotWindows
  • Support of Octave 4.0 (with GUI).
  • Scripting API documentation is now also accessible from the Help menu.
  • Bugfixes and Improvements:
  • General:
  • All open 20-sim windows will be closed when the Editor is closed.
  • Editor:
  • When changing the colors of models directly in the Graph Editor these changes are stored after saving the model.
  • Models cannot be placed any more outside the border and get out of view.
  • Line drawing can be stopped with the escape key and stops with right mouse button.
  • When removing a submodel implementation, it is first asked which implementation to remove.
  • Drag-drop of a submodel with one implementation does not ask anymore which implementation you want to select.
  • The Global Relations Editor is now also accessible from the Tools menu.
  • Simulator:
  • Endless simulation does not call finalequations anymore.
  • Warning given by incorrect input of eye function.
  • The last selected code-generation path will now be remembered and stored in the model.
  • Code generation templates
  • Add support for XXRealtime() (ANSI-C version of the realtime function).
  • Slightly faster RungeKutta4 integration routine.
  • Added VS2015 solutions.
  • starttime and finishtime are not generated as hardcoded values anymore.
  • Library:
  • Updated the icons of various sensor blocks to show a proper +/- pair after a rotation with 90 degrees.
  • Updated all library blocks with integral symbols to use the Unicode compatible Lucida Sans font now instead of SymbolProp. This allows proper HTML export for 20-sim drawings.

New in 20-sim 4.5.4 build 6171 (Dec 11, 2015)

  • Fixes:
  • Editor: improved rendering of background images with transparency
  • C-Code generation: Matrix code generation error with parentheses: c = (a + b)
  • C++ Code generation: (CPPclass template) fix compile error when using XXLinsolve
  • Simulator: right-mouse plot dragging plot does not release when the mouse pointer is outside the plot boundary
  • Linear System Editor: fixed the print button behaviour

New in 20-sim 4.5.3 build 5904 (Dec 11, 2015)

  • Bug fixes:
  • 3D Mechanics Editor: Fixed: adding joints was not possible anymore due to the invalid name checks introduced in 4.5.2

New in 20-sim 4.5.2 build 5872 (Dec 11, 2015)

  • Improvements:
  • C-Code generation: Combine multiple discrete system in code generation if the sample times are equal
  • C-Code generation: Arduino Target now generates proper Arduino Sketch (=Arduino project)
  • C-Code generation: Proper C-Code escaping for strings containing double quotes (")
  • 3D Animation: better handling of mouse during playback with multiple 3D Animation windows open
  • 3D Mechanics Editor: improved checking for invalid names
  • Undo buffer: improved performance
  • Scripting: added following functions: xxsim.simulator.start, xxsim.simulator.stop, xxsim.simulator.isSimulating
  • Scripting: possibility to change the value of a parameter during simulation
  • File save: Connections are now sorted on alphabet for better file comparison possibility
  • Model processing: More clear message if too many arguments are passed to a function
  • Model processing: Better message in case equations can not be sorted
  • Search function: also the global relations editor is now included in search
  • Fixes:
  • Windows XP: Shell extensions does not show 20-sim icon anymore due to stability issues and compatibility with 64-bit windows
  • Scripting: Scripting function "xxsim.model.setImplementations" and "destecs.setImplementations" now also works for hierarchical models
  • Scripting: function "xxsim.model.setImplementations" now also works for models with more than two implementations
  • Numerical values: Fixed an issue where the cursor would jump to a wrong location if clicking on the slider forward/backward
  • Simulation Plots: Fixed an issue where depending on the toggle state of a plot, that after saving the model the plots could disappear
  • C-Code generation: The duration of XXImpulse function now matches that with the 20-sim implementation
  • C-Code generation: Arguments of XXImpulse were missing a comma in some cases
  • C-Code generation: XXArcTangentHyperbolic function now calculates the correct function
  • Global variables: Better performance saving large model with global variables
  • 3D Animation video creation: Fixed an issue where the creation of the video could not be terminated
  • Library: Fixed and issue where update from library did not update the model. Happened only for models saved in 20-sim 4.5
  • Models updates:
  • Library: Fixed an issue in one of the equations for the LoopFlushingValve library model

New in 20-sim 4.5.1 build 5561 (Dec 11, 2015)

  • Fixes:
  • Code generation: Submodel icons with transparency were shown with a black background in 20-sim 4C
  • Model editor: Copy-paste could trigger a crash under certain conditions
  • Interface editor: Open on double-click and selection of the proper ports when adding new ports.

New in 20-sim 4.5.0 (Nov 12, 2014)

  • General Improvements:
  • The code for loading and compiling of models has been rewritten to handle large models more efficiently. Loading and compiling of large models will now be up to 300% faster.
  • The code for plotting graphs has been updated to handle large simulations more efficiently. This will be particularly clear when zooming into plots with many data points.
  • The symbolic solver handles algebraic loops more efficiently.Dynamic Error Budgetting: added a Help button.
  • Editor:
  • Drag and drop of image files (bitmaps, svg images, ..) is now supported in the Editor and Icon Editor.
  • Native support for SVG background images has been added.
  • Multiple align methods for objects have been added.
  • An additional causal form has been added: Likes causality. This causal form can be used for parasitic elements like the parasitic volume.
  • Simulator:
  • The minimum and maximum value of every variable is now shown in the Variables Chooser if you run a simulation in Debug Mode.
  • FFT plots can now be selected in the Simulator tree. Results are updated after every simulation run.
  • FFT plots can show the transfer function, by choosing the the option Pair-wise transfer function.
  • Plots and 3D animations can be shown in Full Screen Mode.
  • Library:
  • An extra implementation has been added to the gearbox and transmission models: ideal transmission with efficiency.
  • The model unbalance has been added.
  • A friction model has been added.
  • The accumulator model has been expanded with a real gas and temperature model.
  • A loop flushing valve has been added.
  • A shuttle valve has been added.
  • A pressure compensator has been added.
  • A parasitic volume has been added.
  • Examples:
  • New example models are added
  • Collision detection: CubesWallCrush, CylinderStack
  • Control: Smith Predictor, AntiWindup, Euler differentiation problems, FiniteStateMachine
  • Signal Processing: Phase locked loop demo
  • Hydraulics: AccumulatorTest, Closed Circuit Drive Train with Loop Flushing Valve, Hydraulic Operated Disk Brake
  • 1D Mechanics: Crank Rod Mechanism
  • 3D Mechanics: KnucleBoomCrane
  • Bond graph: TrolleyWithLoad
  • Language:
  • Support of bitwise operators.
  • Frequency Domain Toolbox:
  • Support of linear systems with time delay. The time delay is now stored in a linear system model and shown with a exponential added to the transfer function.
  • You can choose to unwrap or wrap the phase in a Bode plot.
  • 3D Mechanics Editor:
  • You can override each constraint joint by individual spring dampers by setting the Constraint Properties.
  • A compliant joint (6D spring) has been added.
  • Scripting:
  • New functions are added for code generation: xxsimGenerateCCode, xxsimGenerateMatlabCode, xxsimGetCCodeTargets, xxsimGetMatlabTargets.
  • New functions are added to fetch and modify tool and model settings: xxsimQuerySettings, xxsimSetSettings
  • New functions are added fetch the list of implementations of submodels and to change the implementation: xxsimQueryImplementations, xxsimSetImplementations
  • A new function is added for SISO linearization: xxsimLinearizeModel

New in 20-sim 4.4.2 (Nov 12, 2014)

  • General Improvements:
  • Dynamic Error Budgetting: added a Help button
  • Improved drawing of multi-bonds with intermediate points
  • Documentation: fixed a few broken links in the Help file
  • Documentation: HeatCapacity: T0/C should be T0*C as in the library block
  • Documentation: Added an unattended UNinstall page
  • Documentation: Change the phone number of Controllab Products B.V.
  • Documentation: Improve the formatting of language reference section in the reference PDF manual
  • Text editor dialog: now resizable
  • License manager: Strip all white space characters from the entered key to prevent problems with copy-pasted keys directly from the e-mail
  • Scripting: Add xxsimClearRun() as example call to the MultipleRun script to show how to cleanup old plot data (and free the allocated memory)
  • Model updates:
  • Library: Bond Graph: the icon for the switching 1-junction (X1) was wrong
  • Library: Terminals on the switch block now have a fixed position
  • Example: AnimalPopulation was not stable when running longer than the default run-time
  • Fixes:
  • Graph Editor: Infinite depth library path results in a non-responsive 20-sim editor after search action
  • Graph Editor: Tree selection of a submodel, followed by an "Edit icon" would change the wrong submodel
  • Graph Editor: Plot variables lost on a "Go up" on the main model
  • Graph editor: Check energetic behavior failes when there are port matrices involved
  • Linear System Editor shows a wrong Bode plot for certain Kp values.
  • Printing: Horizontal compression and overlapping letters in text labels (Windows XP only)
  • 3D Mechanics editor: spring damper for constraints were forgotten
  • 3D Mechanics editor: do not accept names that start with a number
  • 3D animation: beam did not work anymore
  • 3D Animation: vector arrow diameter shrinks by a factor of two when writing and reading
  • Stability issue: clicking on "Help" in the interface editor when the editor is already closed could crash 20-sim
  • Stability issue: auto save during 'Check model equations' could crash 20-sim
  • Stability issue: Wine (Linux/MacOSX) fix a crash of the editor when the MS Sans Serif or Arial fonts are missing
  • Scripting: xxsimRun looses the connection with 20-sim on long-running simulations
  • Code generation: ANSI-C: Fixed: warning: suggest parentheses around && within ||
  • Installation: Unattended installation should abort when 20-sim is still running

New in 20-sim 4.4.1 (Nov 12, 2014)

  • General Improvements:
  • Scripting: xxsimList now shows the list itself when this is used as a command. (implicit 'help xxsimList')
  • Linearization: default setting for 'closed loop'/'open loop' now default on 'open loop'
  • Parameter Editor Dialog: Autosizing for quantities and units column in Parameter Editor Dialog
  • Model updates:
  • Quantities and Units: Added Hydraulic Resistance
  • Library: Ground.emx, Changed DegC unit to K to prevent error message when connecting this element to other thermal components
  • Fixes:
  • Multiple Run Results Dialog: Showed overlapping text, now better layout
  • Scripting: added getModelVariables.m in tutorials, to show how to get 20-sim model variables and their properties
  • Scripting: in Matlab variables names with only one character now work also. E.g. xxsimSetVariables('f', 123)
  • Scripting: replaced 'isboolean' with 'islogical' in all script files for Matlab compatibility.
  • Scripting: In matlab check for presence of 'system identification' toolbox in script modelIdentification.m
  • Scripting: retrieving and setting values with xxsimGetVariables and xxsimSetVariables now use the unit value(s) that the variable uses.
  • Scripting: 'addpath' now always adds the absolute path of the 20-sim scripts. So moving to another folder will not result in warning messages of a relative path.
  • Scripting: xxsimRun, if a model needs processing but has errors, the run will not start
  • Scripting: xxsimOpenModel, when opening model created with a newer version of 20-sim a messagebox will no longer pop up in scripting.
  • Matlab Code Generation: Matlab/Octave line continuation ('...') syntax error in generated code. Fixed with additional space.
  • Multiple Run Results: Matlab button now generates proper an m-file and dat-file.
  • Graph Editor : Fixed some errors in Tooltip showing values. In some occasions it could crash 20-sim.
  • Memory leakage in Vode Adams Integration method in combination with events.

New in 20-sim 4.4.0 (Sep 26, 2013)

  • General Improvements:
  • General: Scripting allows you to run tasks in 20-sim automatically using specialized scripting functions. With these functions you can open models, run simulations, change parameters, process the results and much more. You can run your scripts from Octave and Matlab. General: The memory limit for 20-sim has been increased to 3 GB on 32-bit systems and 4 GB on 64-bit systems. General: New units Apparent Power {VA}, Reactive Power {var} and Thermal Conductivity {W/K} and jerk {m/s3} have been added. Editor: If a newer version of 20-sim is available on the 20-sim website, in the Editor automatically an update button will appear. Equation Editor: Auto indenting has been added to the Equation Editor. Equation Editor: Multi-line tab and multi-line untab has been added to the Equation Editor. Graph Editor: Drag and drop of a 3D mechanics file (.3dm) into the Editor is now supported. Equation Editor: The function linsolve allows a non-square matrix to be entered yielding a pseudoinverse. Simulator: Support of High Resolution Export of plots. Library: A centrifugal pump model has been added (Iconic Diagrams\Hydraulics\Pumps). Library: A model to import data from a joystick has been added (Signal\Sources\Joystick). Library: A model to import data from the keyboard has been added (Signal\Sources\Keyboard). An example model shows a scara robot driven by keyboard commands (Examples\2D Mechanics\ScaraRobotKeyboard). Library: A model to test hydraulic valves has been added (Examples\Hydraulics\ValveTest). Library: Two Crank Rod examples have been added (Examples\1D Mechanics\Crank Rod Mechanim and (Examples\1D Mechanics\Crank Rod Mechanim with Sledge). Library: LowPassFilter-FO and LowPassFilter-SO in Signal\Discrete now really discrete. Language: The function stopsimulation has been extended with a silent stop and a normal stop prompting the user.
  • Frequency Domain Toolbox: Closed Loop linearization has been added to the Frequency Response. Linear System Editor: The Linear System Editor now accept values with an exponent form and '+' like: 1e+10. 3D Mechanics Editor: The camera position has been added to the Camera Settings, allowing you to numerically change the camera position.
  • Fixes:
  • General: Some memory leakages have been fixed. Editor: The Zooming option Scale to Fit now takes into account a background image. Editor: Imploding a set of models now maintains the arithmetic type (boolean/real/integer). Equation Editor: Expressions are better evaluated with tooltips. Editor: Printing a model now layouts better. General: Datafiles from Power Spectral Density function are also stored in .emz file. Simulator: FFT plots now have sufficient height. Simulator: Autosave now completely stores simulation data. 3D Mechanics Editor: A mouse click will not move the plot with 2 pixels anymore. 3D Mechanics Editor: For constraint joints that contain spring/dampers, proper code is generated now. Code generation: Fix for code generation of model "Generic Filter"

New in 20-sim 4.3.3 (Jun 14, 2013)

  • General Improvements:
  • Documentation: DataFromFile: add an example for the CSV file format
  • Fixes:
  • 3D animation: Cylinder thickness 0.1 was not allowed for lines
  • Documentation: fixed several broken links and "Help" buttons
  • Model processing: Error in processing dependent states in a multi-bond model (regression from 4.3.2)
  • Graph Editor: improved print results of graphical models (text size, alignment, arrows)
  • Graph Editor: Background images did not show up under certain conditions
  • Simulator: some integration methods seemed to hang when using a resint under certain conditions
  • Simulator: toMatlab/fromMatlab used a '\' separator for hierachical names instead of the intended '.'
  • Toolbox: Neural Network toolbox could not open certain weigth files

New in 20-sim 4.3.2 (Jun 14, 2013)

  • General Improvements:
  • Equation Editor: The equation editor has now a built-in auto-complete function. Type a few characters and then press TAB. Now a menu pops up that shows all known words of declared variables, functions, keywords, etc that correspond with the typed characters.
  • Library: extended the spindle model with a new "Pitch" implementation.
  • Fixes:
  • General: various 20-sim start time improvements
  • Wizards: Speed-up opening of wizards like the MotionProfileWizard
  • License: Speed-up license checking for floating licenses
  • 3D animation: raytracing of lines was incorrect
  • 3D Mechanics editor: improve the importing of bodies from STL files
  • 3D Mechanics editor: improve the positioning of imported STL bodies
  • Documentation: Updated Spindle documentation and corrected the eventup documentation
  • Code generation: generated code for generic filter was incomplete
  • Code generation: correct incomplete code generated for nested if expressions with matrix to scalar assignments
  • Code generation: improve readability for nested if's
  • Graph Editor: importing of old .em model files with an empty 3D animation part did not work
  • Graph Editor: redisplay errors after up/down on large graphical models
  • Model processing: Error processing algebraic loop variables could result in erroneous instructions
  • Library: Windows shortcuts inside a custom library folder could crash 20-sim
  • Library: The discrete blocks: LowPassFilter-FO and LowPassFilter-SO were actually continuous
  • Library: Fixed an incorrect formula in Thermal\Components\Radiation
  • Examples: LQR_and_LQG_with_MATLAB did not work anymore
  • Simulator: automatic coloring of plot curves with more than 17 curves
  • Simulator: finalequations were executed twice
  • Simulator: table file reading returned an error when not starting reading at time=0
  • Simulator: reading a data file with corrupted or incomplete last lines could stall the simulator
  • Recovery: recover also plot settings from autosave files

New in 20-sim 4.3.1 (Jun 14, 2013)

  • General Improvements:
  • Graph Editor: More information in the resulting list of a search
  • Simulation Plot: Automatic adding of plot-variables is now only done if the variables is not yet in a plot.
  • Fixes:
  • Equation Editor: Pasting with Ctrl-V keeps working after save action.
  • Equation Editor: String parameters containing comma's now saves properly.
  • C-Code generation: generating C-Code for function 'initialvalue()' and 'dly()' now always works.
  • C-Code generation: Code generation for matrix max-function inside conditional if-then-else expression fixed
  • 3D Animation: Copying to clipboard is fixed
  • 3D Mechanics Editor: Copy paste of objects works again
  • License: Floating license functionality improved.
  • License: License path field in License Activation wizard is no longer read-only, making it possible to copy-paste a path.
  • License: Graph Editor shows correct license state information after applying key in initial License Activation Dialog.
  • Simulation Window: Numerical Values button fixed.
  • User DLL: The current working directory is set to that path of the user-DLL, so that dependencies for that DLL can be found if they are in the same folder.
  • Editor: Changing a global parameter in equation editor text is now properly parsed.
  • Graph Editor: Special symbols e.g. integrator symbol, are now shown correctly on Chinese Windows versions.
  • Simulator Plot: Toggling to different tiling state now shows time{s} instead of X{s} for the x-axis.
  • Simulator Plot: Default color for first curve is blue, instead of magenta.
  • Stability & memory usage improvements.

New in 20-sim 4.3.0 Build 3214 (Nov 8, 2012)

  • Improved Plot Editing:
  • The distribute curves button which was missing in 20-sim 4.2 is back, making it possible to toggle between different layouts, like stripchart or tiled plot, quickly.
  • It is now possible to move plots and curves among plot windows. All plot windows are listed in a tree at the left window pane.
  • Crystal Clear Drawing:
  • The editor of 20-sim 4.3 uses GDI+ for better drawing. This results in much smoother drawings using anti-aliasing. An example can be seen in the drawing below where a model from 20-sim 4.2 is compared with 20-sim 4.3.
  • Background Image:
  • You can add a background image to graphical models and show this image during printing and document generation. This allows you to easily generated printed documentation of your models, including your company background, project numbers, dates etc.

New in 20-sim 4.2.1.1 (Dec 17, 2011)

  • General Features:
  • Unicode support
  • XMLRPC scripting support
  • New toolbox added: Dynamic Error Budgetting
  • New license manager
  • Editor:
  • Global Relations Editor added
  • Find also searches the library
  • Drag and Drop now supports data files (e.g. CSV) in the Editor
  • Plant sensitivity (PS) and control sensitivity (CS) added to the Controller Design Editor
  • Tool Tips in Editor now show value, quantity, unit and description
  • Motor Wizard: models are no longer encrypted
  • Simulator:
  • Treeview added that shows all plot windows and plot variables
  • Better handling of plot windows
  • Simulation plots can be grouped / combined into panels
  • 3D animation panel has a loop button
  • Library:
  • Bond Graph
  • Connection terminals on Bond Graph elements are now placed next to the element
  • PowerMux and PowerDemux are replaced with a multiple implementations version
  • Signal
  • Mux and Demux models are replaced with a multiple implementations version
  • The model Event has been added
  • The model Noise has been added
  • The model PhaseSensor has been added
  • Examples
  • New Demo models added: Simple State Machine, Car Skid 3D, Keyboard controlled Scara Robot
  • What's Fixed in 4.2:
  • HTML documentation improved
  • CSV File Reading now accepts more formats
  • MATLAB connection fixed (32-bit Matlab only). Read this document for more information on how to set-up Matlab to allow communication with 20-sim.
  • Implode / Explode now keeps the initial values as well
  • Drawings are now also stored in the Undo stack
  • Connection mode when using a zoom-level of more than 100%

New in 20-sim 4.1.2.2 (Mar 1, 2010)

  • General Features:
  • The Parameter Editor and Variables chooser show the model icons in the model tree.
  • Any model or plot can be exported to bitmap (png file).
  • You can enter library paths for library models, c-code generation, export to matlab and template files.
  • Editor:
  • A brand-new Document Editor can be used to generate output files (html) for Word Processors and Presentation software.
  • A Find box has been added to the button bar.
  • Simulator :
  • Simulation buttons have been added to Secondary plot windows.
  • Library:
  • The model derivative has been added.
  • The model second derivative has been added.
  • The square wave generator model has been changed. The internal frequencyevent has been relaxed from 1e-15 to 1e-14 to prevent the integration method from stopping when running stiff models.
  • A hydraulic inertia has been added.
  • The four three way directional valve models now have four spool centers (open, closed, tandem and floating).
  • The four three way proportional valve models now have four spool centers (open, closed, tandem and floating).
  • The pressure relief valve and pressure reducing valve models have updated icons.
  • A counter balance valve has been added.
  • A pilot operated check valve has been added.
  • New hydraulic example models have been added:
  • Cylinder Slip - 1.emx
  • Cylinder Slip - 2.emx
  • Cylinder Cavitation - 1.emx
  • Cylinder Cavitation - 2.emx
  • You can add your own libraries (Windows folders) to be displayed in the library browser.
  • New models have been added to the library.
  • The function linsolve now has optional methods (lu, qr, cholesky, gmres)
  • Various models have been combined into one model (having multiple implementations)
  • Frequency Domain Toolbox:
  • In the Linear System Editor you can reduce the order of a system by pole zero cancelation.
  • In the FFT analysis you can indicate the peaks in an FFT plot.
  • 3D Animation Toolbox:
  • A brand-new Movie Creator will help you to create movies from 3D Animations with few mouse clicks.
  • The 3D Animation window is equipped with a toolbar.
  • 3D Mechanics Toolbox:
  • 3D Mechanics models can be opened from the 20-sim Editor.
  • Acceleration Sensors have been added to the library.
  • You can add a spring and damping to a joint and define endstops.
  • Solved Bugs:
  • Initial Equations with global variables are now correctly solved.
  • Ports of models that are generated with the 3D Mechanics Editor now have the right domain (now: translation or rotation, was: power).
  • In windows Vista, bitmaps are correctly shown in a 3D Animation.
  • Imploding and Exploding models that have an implementation now works fine.
  • Incorrect initialization of matrices in initial equations solved.
  • Showing peaks in FFT plots improved.

New in 20-sim 4.1.0.5 (Dec 9, 2009)

  • Documentation of your models and simulation on the web, Vista and 7 support, even faster, more library elements, support for 20-sim 4C, integrated 3D mechanics editor, etc

New in 20-sim 4.0.1.6 (Oct 9, 2008)

  • Vista support, New look and feel, Faster, Library support, etc