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:
And finally, 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):
The pump needs oil and something to drive—for instance, an 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:
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:
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:
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:
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?
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:
The controller for the lifting of the basket with the hydraulic cylinder and scissor design looks like this:
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.