Hopsan
   HOME

TheInfoList



OR:

Hopsan is a free
simulation A simulation is an imitative representation of a process or system that could exist in the real world. In this broad sense, simulation can often be used interchangeably with model. Sometimes a clear distinction between the two terms is made, in ...
environment for
fluid In physics, a fluid is a liquid, gas, or other material that may continuously motion, move and Deformation (physics), deform (''flow'') under an applied shear stress, or external force. They have zero shear modulus, or, in simpler terms, are M ...
and
mechatronic Mechatronics engineering, also called mechatronics, is the synergistic integration of mechanical, electrical, and computer systems employing mechanical engineering, electrical engineering, electronic engineering and computer engineering, and also ...
systems, developed at
Linköping University Linköping University (LiU; ) is a public university, public research university based in Linköping, Sweden. Originally established in 1969, it was granted full university status in 1975 and is one of Sweden's largest academic institutions. T ...
. Although originally developed for simulation of fluid power systems, it has also been adopted for other domains such as
electric power Electric power is the rate of transfer of electrical energy within a electric circuit, circuit. Its SI unit is the watt, the general unit of power (physics), power, defined as one joule per second. Standard prefixes apply to watts as with oth ...
,
flight dynamics Flight dynamics in aviation and spacecraft, is the study of the performance, stability, and control of vehicles flight, flying through the air or in outer space. It is concerned with how forces acting on the vehicle determine its velocity and at ...
, and
vehicle dynamics Vehicle dynamics is the study of vehicle motion, e.g., how a vehicle's forward movement changes in response to driver inputs, propulsion system outputs, ambient conditions, air/surface/water conditions, etc. Vehicle dynamics is a part of engineer ...
. It uses bi-directional delay lines (or transmission line elements) to connect different components.


History

The development on Hopsan first began in 1977 at the Division of Hydraulics and Pneumatics at Linköping University. The first version was written in FORTRAN, with a
drag-and-drop In computer graphical user interfaces, drag and drop is a pointing device gesture in which the user selects a virtual object by "grabbing" it and dragging it to a different location or onto another virtual object. In general, it can be used to ...
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
written in
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to: * Visual Basic (.NET), the current version of Visual Basic launched in 2002 which runs on .NET * Visual Basic (classic), the original Visual Basic suppo ...
. In addition to the simulation capability it also had features for simulation based
optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
. This used the COMPLEX direct search optimization method or a
generic algorithm Generic programming is a style of computer programming in which algorithms are written in terms of data types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneer ...
(GA). It also had features for
frequency analysis In cryptanalysis, frequency analysis (also known as counting letters) is the study of the frequency of letters or groups of letters in a ciphertext. The method is used as an aid to breaking classical ciphers. Frequency analysis is based on th ...
and
transfer function In engineering, a transfer function (also known as system function or network function) of a system, sub-system, or component is a function (mathematics), mathematical function that mathematical model, models the system's output for each possible ...
analysis, on simulated results. It also supported co-simulation under
Simulink Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offe ...
. Component models were written as FORTRAN subroutines. A separate tool called COMPGEN, written in
Mathematica Wolfram (previously known as Mathematica and Wolfram Mathematica) is a software system with built-in libraries for several areas of technical computing that allows machine learning, statistics, symbolic computation, data manipulation, network ...
, was also developed, which can be used to generate component models in a more straightforward way. In 1991 the method of bi-directional delay lines (or transmission line modelling TLM) was introduced for system simulation. In 2009 the development of the first version of Hopsan was dropped in favor for a brand new generation of the software, written in C++. This working name of the project is Hopsan NG, and the first
beta version The software release life cycle is the process of developing, testing, and distributing a software product (e.g., an operating system). It typically consists of several stages, such as pre-alpha, alpha, beta, and release candidate, before the fi ...
was released in February 2011. Parts of the source code in Hopsan was used in the OpenModelica Connection Editor (OMEdit) in a collaboration with the OpenModelica project.


Program Overview

The current generation of Hopsan consists of two parts, a graphical user interface and a simulation core library. These are completely separated, so that the core can be used stand-alone, for example in
embedded systems An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is em ...
or target computers. System models are built using components from the built-in or external libraries. This includes components for hydraulic, pneumatic, electrical, mechanical and control systems (filters, non-linear functions and arithmetic). The library components are pre-compiled, so that no compilation is required during runtime. Custom user models can be created and compiled as separate
library A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
files, which can be loaded into Hopsan. There is also a built-in automated equation based component generator using Modelica syntax. Models can also be generated from equations by using Mathematica. Numerical optimization can be performed by a built-in tool, using COMPLEX-RF, COMPLEX-RFP or particle swarm algorithms. It is also possible to perform Monte Carlo sensitivity analysis. The plotting tool is capable of generating frequency spectrums and performing frequency analysis to generate Bode diagrams and Nyquist plots. Hopsan models can be exported to Simulink. Plot data can be exported to
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
, CSV, gnuplot and
Matlab MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
. Experiments with including the Hopsan simulation core to LabVIEW Simulation Interface Toolkit by using a
wrapper library Wrapper libraries (or library wrappers) consist of a thin layer of code (a " shim") which translates a library's existing interface into a compatible interface. This is done for several reasons: * To refine a poorly designed or complicated interfa ...
have been successful. Support for model exchange, both import and export, by using the Functional Mock-up Interface is currently being implemented. Hopsan is a
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
project, with the intention of running on
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and
Macintosh Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
systems. The current beta release is only available for Windows and Linux, but the intention is to create versions for the other systems as well. The transmission line element method is very suitable for parallel execution, due to physically motivated time delays between certain components. Hopsan has support for dividing simulations in separate threads, making it possible to take advantage of
multicore processor A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
s. Features in the graphical user interface include
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
scripting, an
undo Undo is an interaction technique which is implemented in many computer programs. It erases the last change done to the document, reverting it to an older state. In some more advanced programs, such as graphic processing, undo will negate the las ...
/redo function,
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
-based model and configuration files, hydraulic symbols according to the ISO 1219-1 standard and global system parameters that can be shared between components.


References

{{reflist


External links


GitHub repository
Fortran software C++ software Simulation software