SimMechanics Second Generation

SimMechanics users, the first time you opened the Simulink Library Browser in R2012a, you probably noticed a big change: SimMechanics Second Generation

SimMechanics Second Generation is a complete redesign of SimMechanics. Let's see what this means.

A new way of thinking: Frame Centered

In the First Generation, all rigid body coordinate systems are defined in the Body block, using a dialog. Coordinate systems can be defined relative to different frames, including both local and the global World frame.

In SimMechanics Second Generation, each coordinate frame is defined locally, using a Rigid Transform block:

Notice that the lines in the diagram correspond to coordinate frames in your model. This makes reusing coordinate frames much easier – you just branch the line any time you want to connect something new to that frame.

Improved Joints

Let's look at the dialog of the Revolute Joint:

We can see that:

• Standard Z axis: In SimMechanics Second Generation, the revolute joint has a standard convention for its degree of freedom that is always defined locally by the parts it connects. This local definition makes it easy to reuse mechanisms in other configurations. Other joints have similar standardized axes, following the standards used in robotics.

• State Target Priority: When designing complex closed-loop mechanisms, it can be difficult to specify the initial condition of joints consistently. With the low priority, you can specify a value close to the desired configuration and SimMechanics will calculate the exact consistent initial condition for you.

• Internal Mechanics: No more need to connect sensors and actuators to add stiffness and damping to your joints!

• Integrated Sensors: No need for joint sensor blocks anymore.

Mechanics Explorer

Compared to the First Generation visualization, the Mechanics Explorer offers a lot advantages:

• Speed: Negligible effect on the simulation speed. No more need to close the visualization to speed up your simulation.

• Control Animation Speed: Many options to display the animation: as fast as possible, real-time, step-by step, etc.

• Replay: Replay the animation without re-running the simulation... this can save a lot of time!

• Multiple Views Simultaneously: You can view your system from multiple viewpoints at the same time.

• Tree Browser: Easily navigate through complex models with a tree structure that matches your block diagram hierarchy

Here is what it looks like:

Interface to Simscape

SimMechanics Second Generation is built on the Simscape Engine. This means that you can directly connect Simscape components to SimMechanics joints, without going through Simulink signals.

I am not going into details here because I am planning a future post on this topic, but I think this is a significant advantage.

In need to warn you that some features from First Generation are not yet available in Second Generation.

Before converting your models to Second Generation, I recommend going through the documentation to verify it meets your needs.

Give SimMechanics Second Generation a try by opening some demonstration models, including sm_stewart_platform and sm_wing_landing gear.

You can also watch a video, such as Modeling an Engine, or download an example from MATLAB Central like Mini Golf.

Let us know what you think by leaving a comment here.

8 Responses to “SimMechanics Second Generation”

1. Pietro replied on :

Simmechanics second generation is great, but it misses an important feature to be very competitive as a multibody tool: the position actuator, that it was present in the first generation. Hopefully to have it in the next release.

2. qing replied on :

That’s true. Without position actuator I cannot evaluate even basic kinematic simulation with 2nd generation. This actuator doesn’t appear in 2012b again.

3. John Beard replied on :

I would like to use the SimMechanics, gen 2, for my class, but it doesn’t have a position actuator. When will that be available?

4. Guy Rouleau replied on :

I am not able to say when motion actuation will be available in SimMechanics Second Generation. this is also a feature I miss.

All I can say is that we are working actively to provide motion actuation as soon as possible.

5. Pietro replied on :

Hi,

I need to create a multibody model where I need to actuate few joints in terms of displacement, but simmechanics 2nd generation doesn’t allow it. Since simmechanics 1st generation allows it, is it possible to connect 1st gen block with 2nd gen ones?

thanks

Cheers

Pietro

6. Jakub replied on :

Hi,

As a temporary workaround for a lack of position actuation one can implement simple high-gain tracking controller.

Cheers,
Jakub

7. Jakub replied on :

Hi again,

Sorry for double post.
Feature I really miss in second generation is reaction forces sensing. Do you know if such functionality will be ever possible in second generation?

Cheers,
Jakub

8. Guy Rouleau replied on :

@Jakub: We are working very hard to provide motion actuation and reaction forces in SimMechanics Second Generation as soon as possible. I cannot guarantee in which release this will be available, but I will definitely publish a post on this blog when it is.

For now, you need to use the temporary workaround of implementing a controller to get the desired motion. This also applies to reaction forces.

 Name (required) E-mail (required, will not be published) Website (optional) Spam protection (required): What is 5 + 9 ?

Wrap code fragments inside <pre> tags, like this:

<pre class="code">
a = magic(3);
sum(a)
</pre>


If you have a "<" character in your code, either follow it with a space or replace it with "&lt;" (including the semicolon).

Guy Rouleau and Seth Popinchalk are Application Engineers for MathWorks. They write here about Simulink and other MathWorks tools used in Model-Based Design.

These postings are the author's and don't necessarily represent the opinions of MathWorks.