Thursday, October 27, 2016

Going model-based

Why do good engineering practices often include some kind of models?
To better understand the underlying technical problems, and in order to engineer a really good design, certain aspects are typically stated in an abstracted way, a model. It allows e.g. to express, then simulate its behavior. Models provide means to explore the solution space. They help to formulate and iteratively improve the design in a virtual world, without the costs and limitations of real physical prototypes. Even better, tools exist which can more or less automatically translate the solution from the model representation to a design (code, drawings, even 3D-printed parts) for the "real world", keyword: model-based design. Good news: there were some activities started at CAMPUS02 (https://www.campus02.at/automatisierungstechnik/) by Johannes about a month ago, addressing how to express TreppenSchlepper in a model approach. We are looking forward and hope to report on results soon.
In the meantime, let's dig a bit more into modelling certain aspects.
Fortunately  there are lots of simulation tools available for domains like system architecture, physics, or software design. Some of them are free, some even in open source.
For me as an E/E engineer, the biggest question-marks in TreppenSchlepper's design lie in its mechanic. First, will it move the way we intended it to (kinematics)? What is the power, the torque required at the motors, how shall we control it? Can we be sure it will be intrinsically safe in any situation, i.e. with all the loads and dynamics involved, on challenging surfaces of stairs with a step pitch for example?  How do we determine the boundaries of such safe operation? We need this to provide the path planning of TreppenSchlepper with information ("safe envelops") so it can decide on go/no-go.
Being a layman in kinematics I turned to a web search, which brought up HOTINT from LCM (Linz Center of mechatronics), see https://www.hotint.org/.

Hotint
According to its description it is a flexible multibody system dynamics modeling and simulation tool, offered as freeware. And it integrates with another tool called X2C, which "is an open source tool for the model-based development and code generation of real time control algorithms for micro processor units" (cited from its web page http://www.mechatronic-simulation.org/x2c/x2c-home/).
So why not try it? There are even user manual and a reference manual available, although I have to admit some things became only clear after looking at the tutorials, and try and error it myself.

After spending a free afternoon with HOTINT I had my first DIY project ready, which involved 3 bodies: two masses experiencing gravity pull, hovering (at time t=0) above a third, fixed body, which should represent the step of a stair. There is a "collide"-relation called "Contact1D" between one of these masses (actually, the red box) and the stair, so while the blue body just transits through on its way down to minus infinite, the red box really bumps onto the stair and sits there. By defining material properties like spring stiffness and damping, we can simulate this bump in more detail (depth of penetration for example). Hotint allows to define "Sensors" which probe and record certain properties through simulation, like the acceleration of red box. Playing with these is fun, you can find it ("PeterTest1.hmc", done with Hotint Version 1.2.41) here.


These hmc files can be read into Hotint for simulation and visualization, or it can be used with a text editor like notepad++, with support for syntax highlighting via an extension from Hotint 




So what will come next?
It would be nice to model a simple scenario with two masses, representing the "Outer Shell" (with wheels) and the "Inner Shell" (with a lifter) of a TreppenSchlepper. Such a simplified system shall climb up one step of a stair, with the main forces/loads modeled as well. So far I'd expect to model
  • gravity
  • vertical lift force (between outer and inner shell)
  • horizontal drive (wheels of outer shell)
  • horizontal friction (between outer shell and step floor, and during lifting between inner shell and step floor)

Let's see how that works….

2 comments:

  1. Hello everybody, Johannes here.

    I lecture "Model-Based Engineering" at CAMPUS02 master degree's program "Automation Technology" in Graz. Currently, 36 students divided in six working groups are on their way to setup simulation models based on their TreppenSchlepper system specifications. Two groups are focused on mechanics/kinematics/actuators for the TreppenSchlepper, two on energy management and two groups have the task to think of constraints regarding path planning in non-standardized environments.

    I will come back to provide an update in the upcoming weeks.

    ReplyDelete
  2. Update: HOTINT is now available as version 1.3.47. Let's try again and see if the bugs from verion I tried in 2016 are gone...
    Another option would be FreeDyn (http://www.freedyn.at/), currently available as version 2020.1. Let's see...

    ReplyDelete