MapleSim in Engineering Education

Dear all,

The November issue of Maple Transactions is now up (we will be adding a few more items to that issue over the course of the month).  See https://mapletransactions.org/index.php/maple/index for the articles.

More importantly, Maple Primes seems to have a great many interesting posts, some of which could well be worked up into a paper (or a video).  Maple Transactions accepts worksheets (documents, workbooks) for publication, as well, although we want a high standard of readability for that.  I invite you to contribute.

The next issue of Maple Transactions will be the Special Issue that is the Proceedings of the Maple Conference 2021 (see my previous post :)

-r

 

As a student I came across an amazing lab experimentA T-type structure with two masses attached to it showed a sudden change in oscillation mode.  

 

With MapleSim I was able to reproduce the experiment.

At the time I was told that this perplexing phenome happens because there are always imperfections. 

 

Today we would probably say that the symmetry has to be broken. The attached example has two parameter sets that a) break symmetry of boundary conditions and b) by structural asymmetry (i.e imperfection). Asymmetry in the initial conditions should also be possible (but I could make work with flexible beams). 

Compared to coupled oscillators that exchange energy via a coupling spring, this example exchanges energy via masses. In fact in its simplest implementation only one mass and two elastic structures are required for this type of mode coupling. MapleSim multibody library offers plenty of possibilities to demonstrate thisFlexible beams are not required. However, flexible beams show mode coupling beautifully and allow a simple reproduction in real life. For that the worksheet contains a parameter set to build a real model with steel wires. Tuning by adjusting the length of the vertical post is required since nonlinearities already shift frequencies in the model. 

 

I would be interested in other cool examples of mode coupling. I am also interested in solutions for flexible beams that impose asymmetry in the initial conditions. To keep it realistic at the start, the T should be bend as one would bend it with a fingertip in x direction. It would be even more realistic if the arms are flexed by gravity with zero velocity at the start of the simulation. How can this be done? 

 

Flexible_beam_mode_coupling.msim

Hi everyone! It's been a remarkably long time since I posted on MaplePrimes -- I should probably briefly reintroduce myself to the community here. My name is Erik Postma. I manage the mathematical software group at Maplesoft: the team that writes most of the Maple-language code in the Maple product, also known as the math library. You can find a longer introduction at this link.

One of my tasks at Maplesoft is the following. When a request for tech support comes in, our tech support team can usually answer the request by themselves. But no single person can know everything, and when specialized knowledge of Maple's mathematical library is needed, they ask my team for help. I screen such requests, answer what I can by myself, and send the even more specialized requests to the experts responsible for the appropriate part of the library.

Yesterday I received a request from a user asking how to unwrap angles occurring in an expression. This is the general idea of taking the fact that sin(phi) = 'sin'(phi + 2*Pi), and similarly for the other trig functions; and using it to modify an expression of the form sin(phi) to make it look "nicer" by adding or subtracting a multiple of 2*Pi to the angle. For a constant, real value of phi you would simply make the result be as close to 0 as possible; this is discussed in e.g. this MaplePrimes question, but the expressions that this user was interested in had arguments for the trig functions that involved variables, too.

In such cases, the easiest solution is usually to write a small piece of custom code that the user can use. You might think that we should just add all these bits and pieces to the Maple product, so that everyone can use them -- but there are several reasons why that's not usually a good idea:

  • Such code is often too specialized for general use.
  • Sometimes it is reliable enough to use if we can communicate a particular caveat to the user -- "this will not work if condition XYZ occurs" -- but if it's part of the Maple library, an unsuspecting user might try it under condition XYZ and maybe get a wrong answer.
  • This type of code code generally doesn't undergo the careful interface design, the testing process, and the documentation effort that we apply to the code that we ship as part of the product; to bring it up to the standards required for shipping it as part of Maple might increase the time spent from, say, 15 minutes, to several days.

That said, I thought this case was interesting enough to post on MaplePrimes, so that the community can take a look - maybe there is something here that can help you with your own code.

So here is the concrete question from the user. They have expressions coming from an inverse Laplace transform, such as:

with(inttrans):
F := -0.3000*(-1 + exp(-s))*s/(0.0500*s^2 + 0.1*s + 125);
f := invlaplace(F, s, t)*u(t);
# result: (.1680672269e-1*exp(1.-1.*t)*Heaviside(t-1.)*(7.141428429*sin(49.98999900*t-
#         49.98999900)-357.*cos(49.98999900*t-49.98999900))+.1680672269e-1*(-7.141428429*sin
#         (49.98999900*t)+357.*cos(49.98999900*t))*exp(-1.*t))*u(t)

I interpreted their request for unwrapping these angles as replacing the expressions of the form sin(c1 * t + c0) with versions where the constant term was unwrapped. Thinking a bit about how to be safe if unexpected expressions show up, I came up with the following solution:

unwrap_trig_functions := module()
local ModuleApply := proc(expr :: algebraic, $)
  return evalindets(expr, ':-trig', process_trig);
end proc;

local process_trig := proc(expr :: trig, $)
  local terms := convert(op(expr), ':-list', ':-`+`');
  local const, nonconst;
  const, nonconst := selectremove(type, terms, ':-complexcons');
  const := add(const);
  local result := add(nonconst) + (
    if is(const = 0) then
      0;
    else
      const := evalf(const);
      if type(const, ':-float') then
        frem(const, 2.*Pi);
      else
        frem(Re(const), 2.*Pi) + I*Im(const);
      end if;
    end if);
  return op(0, expr)(result);
end proc;
end module;

# To use this, with f defined as above:
f2 := unwrap_trig_functions(f);
# result: (.1680672269e-1*exp(1.-1.*t)*Heaviside(t-1.)*(7.141428429*sin(49.98999900*t+
#         .27548346)-357.*cos(49.98999900*t+.27548346))+.1680672269e-1*(-7.141428429*sin(
#         49.98999900*t)+357.*cos(49.98999900*t))*exp(-1.*t))*u(t)

Exercise for the reader, in case you expect to encounter very large constant terms: replace the calls to frem above with the code that Alec Mihailovs wrote in the question linked above!

This research work demonstrates the use of the MapleSim and Python scientific packages for the correct use of differential equations for engineering students, in the face of the pandemic generated by COVID-19. The main objective is to visualize the teaching and learning process of the subject presented. The methodology used is block diagrams using graphic programming and the one-dimensional symbolic structure. The results are totally optimal since automation was achieved in the differential equations applied to different engineering cases. The applications generated by the scientific software are fully upgradeable and available in the cloud.

Ponencia_CIMAC_2021.pdf

Lenin AC

Ambassador Maple

Using Python and MapleSim versus Basic Science Teaching in Times of Pandemic

Abastract

In the following research work entitled Use of Python and MapleSim against the teaching of Basic Sciences in times of pandemic, due to the social immobility imposed by the government, we saw the need to use scientific software to train our students with modern approaches. The purpose is to raise the learning achievement in the subjects of Mathematics and Physics for engineering. The methodology we used was native syntax programming and graphic component programming. The results that we obtained in modeling and simulation are quite exact, with respect to the traditional results. Finally, all the material can be updated and managed at any time because it is available on maplecloud.

Keywords: Python, MapleSim, modeling, simulation

Ponencia_UNTumbes.pdf

Lenin AC

Ambassador Maple

Hi Mapleprimes,

Per your request.

A_prime_producing_quadratic_expression_2019_(2).pdf

bye

In the present work we are going to demonstrate the importance of the study of vector analysis, with modeling and simulation criteria, using the MapleSim scientific software from MapleSoft. Nowadays, the majority of higher education centers direct their teaching of vector analysis in an abstract way and there are few or no teachers who carry out applications using modeling and simulation. (In spanish)

IPN_CICATA_2020.pdf

Expo_MapleSim_CICATA.zip

 

Playing mini-golf recently, I realized that my protractor can only help me so far since it can't calculate the speed of the swing needed.  I decided a more sophisticated tool was needed and modeled a trick-shot in MapleSim.

To start, I laid out the obstacles, the ball and club, the ground, and some additional visualizations in the MapleSim environment.

 

When running the simulation, my first result wasn't even close to the hole (similar to when I play in real life!).

 

The model clearly needed to be optimized. I went to the Optimization app in MapleSim (this can be found under Add Apps or Templates  on the left hand side).

 

Inside the app I clicked "Load System" then selected the parameters I wanted to optimize.

 

For this case, I'm optimizing 's' (the speed of the club) and 'theta' (the angle of the club). For the Objective Function I added a Relative Translation Sensor to the model and attached a probe to the Vector Norm of the output.

 

Inside the app, I switched to the Objective Function section.  Selecting Probes, I added the new probe as the Objective Function by giving it a weight of 1.

 

 

Scrolling down to "Execute Parameter Optimization", I checked the "Use Global Optimization Toolbox" checkbox, and clicked Run Parameter Optimization.

 

Following a run time of 120 seconds, the app returns the graph of the objective function. 

 

Below the plot, optimal values for the parameters are given. Plugging these back into the parameter block for the simulation we see that the ball does in fact go into the hole. Success!

 

 

Mini_golf_Global_Optimization.msim

Application of MapleSim in Science and Engineering: a simulationbased approach

In this research work I show the methods of embedded components together with modeling and simulation carried out with Maple and MapleSim for the main areas of science and engineering (mathematics, physics, civil, mechanical etc); These two latest scientific softwares belonging to the company Maplesoft. Designed to be generated and used by teachers of education, as well as by university teachers and engineers; the results are highly optimal since the times saved in calculations are invested in analyzes and interpretations; among other benefits; in this way we can use our applications in the cloud since web technology supports Maple code with procedural and component syntax.

FAST_UNT_2020.pdf

kinematics_curvilinear_updated_2020.mw

Lenin AC

Ambassador of Maple

Application developed using Maple and MapleSim. You can observe the vector analysis using Maple and the simulation using MapleSim. Also included a video of the result. It is a simple structure. A pole fastened by two cables and a force applied to the top. The results are to calculate tensions one and two. Consider the mass of each rope. In spanish.

POSTE_PARADO.zip

Lenin Araujo Castillo

Ambassador of Maple

 

Analysis in Dynamics of Structures with Maplesim for Engineering
Here is the power of Maplesim in modeling and simulation. With Maplesim you can model structures at rest and dynamics. Considering real patterns of our world for better optimization.Project developed for students of Civil Engineering, Architecture, Mechatronics and all those professional careers related to structures.

CIMAC_UNALM_2019.pdf

Lenin Araujo Castillo

Ambassador of Maple

The Railway Challenge is a competition designed by the Institute of Mechanical Engineers (IMechE), aimed at engaging young engineers with the rail industry.  The challenge, now in its seventh successive year, brings together teams of university students, as well as apprentices and graduates working in industry across the world to test their business knowledge, design ability and technical skills in a live test environment.

The Railway Challenge at Sheffield (RCAS) is an extracurricular student-led activity within the Mechanical Engineering department at the university of Sheffield, that designs, codes and manufactures a 10 1/4 inch gauge miniature locomotive to compete in the IMechE’s  Railway Challenge.  The locomotive is assessed in accordance with a set of strict rules and a detailed technical specification, such as traction, ride comfort, and a business case. The locomotives are tested live at a competition, which takes place in June at the Stapleford Miniature Railway in Leicestershire, where several categories of winners and an overall Railway Challenge champion is crowned.

The team consists of around twenty members, and students studying Mechanical Engineering and even cross discipline can get involved as soon as they come to the University, getting into to the design of components within the suspension or braking systems for example, before proceeding to manufacture and test; allowing the students to experience all the stages of an engineering product as well as skills gained by working in the team such as effective communication, time management and financial planning.

Last year the team was granted a sponsorship from Maplesoft, and as a result, huge improvements were made within the team. Overall the team jumped from finishing in 7th place to in the summer winning the maintainability challenge and finishing in 4th place overall – mostly down to the electronics working for the first year ever!

 

Using Maplesoft’s donation the team switched form a central CRIO control system to a distributed network using I2C protocols and Arduino hardware. This did away with some of the electrical teething problems the team has suffered in previous years. It also introduced our Mechanical Engineers to coding that they would otherwise not do in their course.

This year Maplesoft have again sponsored RCAS. The team is hoping to use the licenses to perform their structures calculations in an easy way to keep track of them for use in the design report. They are also hoping to use MapleSim for dynamics modelling, to assist with suspension design, and designing any electronics or control elements, such as filter design and motor control.

We have just released a major update to MapleSim and the MapleSim family of products. This update includes significant enhancements in the areas of model development and toolchain connectivity, including:

  • Live simulations let you see results as the simulation is running, so you can track progress and react to problems immediately.
  • A new 3-D overlay option lets you easily compare simulation visualizations by overlaying one visualization on top of another
  • Tools for revision control enable a structured approach to managing and tracking changes to your model, making it easier to manage projects when multiple engineers are working on the same model and reducing development risk.
  • MapleSim now supports direct import of models created in other FMI-compatible software, providing even greater cross-tool compatibility and opportunities for co-simulation.
  • The MapleSim Connector, for connectivity with Simulink®, and the MapleSim Connector for FMI, for exporting MapleSim models to other FMI-compatible tools, have been expanded to allow you to explore simulation results involving exported MapleSim models from within MapleSim, even though the simulation was done in the target tool.

 

This update is being distributed through the automatic Check for Updates system, and is also available from our website. See the MapleSim 2016.2  downloads page for details on obtaining this update.

eithne

 

Graphical Programming with MapleSim in Vector Mechanics to Structures 2D

At the present time before constructing or starting to develop a mechanical structures project it is necessary to model it using graphic programming; In this opportunity and used MapleSim as a computational tool belonging to the company Maplesoft. The modern approach to modeling and simulation makes the fabrication of complex designs easy to solve. We will cover some examples taken from the engineering being implemented in Maplesim with insertion of physical objects; To be seen in real time through video output; Then integrates with Maple to analyze the equations and data through the static and dynamic behavior of the fabricated. Solved methods of physical block components include functionality for many domains: rotational and translational mechanics, multi-body dynamics, logic, and structural blocks; With techniques like: Drag-and-Drop Physical Modeling Environment and Create Custom Components Directly From Their Equations, thus the systems that would take hours or days to build from equations; In principle they can be created in a fraction of time using MapleSim, so it can incorporate significantly more complex graphical algorithms. In MapleSim, I use the revolutionary multibody technology that perfectly combines advanced multi-domain modeling tools to provide all the functionality you need in one environment.

FAST_UNT_2017.pdf

Lenin Araujo Castillo

Ambassador Maple - Perú

 

 

This MaplePrimes guest blog post is from Dr. James Smith, an Assistant Lecturer in the Electrical Engineering and Computer Science Department of York University’s Lassonde School of Engineering. His team has been working with Maplesim to improve the design of assistive devices.

As we go through our everyday lives, we rarely give much thought to the complex motions and movements our bodies go through on a regular basis. Motions and movements that seem so simple on the surface require more strength and coordination to execute than we realize. And these are made far more difficult as we age or when our health is in decline. So what can be done to assist us with these functions?

In recent years, my research team and I have been working on developing more practical and streamlined devices to assist humans with everyday movements, such as standing and sitting. Our objective was to determine if energy could be regenerated in prosthetic devices during these movements, similar to the way in which hybrid electric vehicles recover waste heat from braking and convert it into useable energy.

People use – and potentially generate – more energy than they realize in carrying out common, everyday movements. Our research for this project focused on the leg joints, and investigated which of the three joints (ankle, knee or hip) was able to regenerate the most energy throughout a sitting or standing motion. We were confident that determining this would lead to the development of more efficient locomotive devices for people suffering from diseases or disabilities affecting the muscles around these joints.

In order to identify the point at which regenerative power is at its peak, we determined that MapleSim was the best tool to help us gather the desired data. We took biomechanical data from actual human trials and applied them to a robotic model that mimics human movements when transitioning between sitting and standing positions. We created models to measure unique movements and energy consumption at each joint throughout the identified movements to determine where the greatest regeneration occurred.

To successfully carry out our research, it was essential that we were able to model the complex chemical reactions that occur within the battery needed to power the assistive device. It is a challenge finding this feature in many engineering software programs and MapleSim’s battery modeling library saved our team a great deal of time and effort during the process, as we were able to use an existing MapleSim model and simply make adjustments to fit our project.

Using MapleSim, we developed a simplified model of the human leg with a foot firmly planted on the ground, followed by a more complex model with a realistic human foot that could be raised off the ground. The first model was used to create a simplified model-based motion controller that was then applied to the second model. The human trials we conducted produced the necessary data for input into a multi-domain MapleSim model that was used to accurately simulate the necessary motions to properly analyze battery autonomy.

The findings that resulted from our research have useful and substantial applications for prostheses and orthoses designs. If one is able to determine the most efficient battery autonomy, operation of these assistive devices can be prolonged, and smaller, lighter batteries can be used to power them. Ultimately, our simulations and the resulting data create the possibility of more efficient devices that can reduce joint loads during standing to sitting processes, and vice versa.

1 2 3 Page 1 of 3