Wolfram Blog
Håkan Wettergren

Building Hydraulics Applications with Wolfram SystemModeler

January 18, 2016 — Håkan Wettergren, Applications Engineer, SystemModeler (MathCore)

Explore the contents of this article with a free Wolfram SystemModeler trial.Wolfram SystemModeler is a tool for multidomain analysis. One area with many multidomain applications is hydraulics: fluid power systems. Fluid power is one of three main methods of transmitting power. The other two are mechanical transmission, via gears and shafts, and electrical transmission, via wires. In SystemModeler, all three can be used at the same time without any restrictions or simplification.

This blog describes how the SystemModeler hydraulic library can be used in education, but the focus is not only on the hydraulic part. The idea is also to show how to build up an interesting, real application where hydraulics play an essential role. In the model it is then possible to study the effects of filter locations, choose valves, adjust settings, study different oil grades, etc. This post may also give ideas to hydraulic engineers used to working with conventional software as to what more can be done with SystemModeler compared to the standard software.

Mechanical parts—scissors lift


First, we need a mechanical system where a hydraulic system is needed. In this case we chose a scissors lift. The model is built using the standard libraries included in SystemModeler, such as the MultiBody and StateGraph libraries. In this section the mechanical part will be shown. This lift uses a wagon as a base:

Mechanical parts of the wagon

The scissor:

Mechanical parts of the scissor

The basket:

Mechanical parts of the basket

And finally, the assembly:

Mechanical parts of the assembly
Mechanical parts of the assembly

The mechanical parts of this system are now in place. We need the hydraulics to get the lifting force and a control and maneuvering system.



First, we need a motor and a pump. A good first approximation of a motor is to assume a constant rpm, i.e. 1500 rpm (= 157 rad/s):

Motor and pump

The pump needs oil and something to drive—for instance, an actuator:

Pump with oil and actuator

There are several ways to model this piston force in SystemModeler. A common way in SystemModeler is to use the prismatic joint and “use flange” option. Let the prismatic joint lift a mass. We now have a very simple hydraulic system:

Simple hydraulic system

This system will, of course, only work in one direction, which is not a very good design for a scissors lift. If we introduce a double piston and a directional control valve, it will be possible to have forces in both directions. Exchanging the “mass” in the above example to “connections” in the structure causes the system to look like this:

System with mass exchanged to connections

This system fulfills the requirements for the simulation; however, in reality we need to have at least one filter to remove foreign particles so as to avoid damage to the actuator and valves. The filter location is not obvious. We can have one filter directly after the tank to prevent contaminated oil in the system. Other possible locations are after the pump, prior to the valves and/or actuators, or on the return line. There are drawbacks and benefits with all locations. If all three are used, which seldom is the case, it would look like this:

System using all three filter placements

And finally, especially if the system works in cold environments, we should have a pressure relief valve to avoid working with too-high viscosity. The system will idle until the oil is warm enough:

System with pressure relief valve

From an educational point of view, there are many questions that can be discussed. What kind of motor is realistic? Will the system work better with a variable pump? How is the pressure in the system affected by filter positions? Can the directional control valve be replaced with something else, for instance a simpler valve and a check valve? Can the system be changed to one with a rotational hydraulic motor and a gear to fulfill the lifting task?

Control system


It is very common for hydraulic systems to need some kind of control system. In this blog, state graphs will be used to illustrate how simply a complex workflow can be modeled. Proportional–integral–derivative (PID) controllers and other types of controllers can also easily be used.

The StateGraph library is used for sequence control and procedure handling. It supports, for instance, steps and transitions with parallel and alternative paths.

The control system for this lift is divided into two blocks, one for the lifting of the basket/person and one for the work to be done when the basket is in its working position:

Control system is divided into two blocks

The controller for the lifting of the basket with the hydraulic cylinder and scissor design looks like this:

Controller for lifting of basket

The first thing that happens is that a signal is sent, telling the directional control valve to open. When the position reaches 3.2 m, the signal for lifting stops and the valve closes. A signal is sent to the controller basket to perform an action, in this case open the almost-closed doors. When the controller basket is ready, a signal is sent back to the controller hydraulics and the basket is lowered. When the position reaches 1.4 m, the signal for lowering stops and the valve closes again. It is easy to build this kind of controller with StateGraph, and also easy to expand it to include things such as PID controllers.



Hydraulic systems often require multidomain analysis. By using the Hydraulic library in SystemModeler together with other SystemModeler library components, many more complex and realistic systems can be analyzed without the need for common simplifications. The Hydraulic library includes many of the most common components. If necessary, it is simple to add new ones.

From an educational standpoint, the drag-and-drop modeling makes it easy to study complex systems behavior using different components and locations.

Download this post as a Computable Document Format (CDF) file.

Posted in: Education, SystemModeler
Leave a Comment

One Comment

Saurabh Pandey

Really a nice article! you define very well about System modeler hydraulic library you describe very useful information i appreciate you.

Posted by Saurabh Pandey    April 9, 2016 at 2:27 am

Leave a comment


Or continue as a guest (your comment will be held for moderation):