Message Boards Message Boards

2
|
7577 Views
|
5 Replies
|
6 Total Likes
View groups...
Share
Share this post:

How can I model a scissor mechanism in SystemModeler?

Posted 3 years ago

I'm new to SystemModeler and the underlying modeling Language Modelica. I would like to do model a scissor mechanism and I don't quite see how to do it within the Modelica Mechanics Library.

I want an idealized model so I want to neglect the mass of the mechanism and let it act as a linear motion amplificator. That is, given its three connectors a, b and c, I want the component to simply impose the equation xb - xa = lambda * (xc - xa), where lambda is a scalar parameter between 0 and 1.

I want to work in one dimension so I suppose I should be able to use the Modelica.Mechanics.Translational library, but even that seems complicated. As I see it, most components in the library have two flanges, not three. Maybe I should extend PartialTwoFlangesAndSupport? Or should I write my own component without deriving it from the library? If so what would it look like? Would it have a third flange name flange_c?

POSTED BY: Lucien Grondin
5 Replies

You can find a blog with a scissor mechanism here. Unfortunately, I could not find the corresponding model.

However, as the the mechanism moves in two dimension the translational library will not be sufficient. Instead you need to use the multibody library. In that case the base components will be the following:

  • Modelica.Mechanics.MultiBody.Parts.BodyCylinder or Modelica.Mechanics.MultiBody.Parts.FixedTranslation if you want to neglect mass (similar to how the basket fence is made in the blog)
  • Modelica.Mechanics.MultiBody.Joints.Revolute and possibly a Modelica.Mechanics.MultiBody.Joints.RevolutePlanarLoopConstraint to break planar loops

You can also download and use the PlanarMechanics library which is limited to 2D (and therefore probably closer to what you want).

Hope this gives you at least a starting point.

POSTED BY: Jan Brugard

Lucien,

While I agree with Jan completely, you also have two more alternatives:

  1. you can use the built in transmission blocks.
  2. you can also make a Modelica block that behaves like the scissors mechanism (since you have the equations for it).

As you state -- you only need one dimension, the scissors block is merely a transmission ratio between the input and the output. You can successfully model it as a lumped transmission using built-in components. For example, look at idealGear and idealGearR2T. You can model the scissors mechanism as a transmission.

Secondly, you can make your own translation block that has the behavior you need. It is a simple model (probably two equations). The advantage of using the 3D mechanics library is you get 3D animations. The disadvantage is you need to traverse the relatively steep learning curve and get your dimensions right in 3D.

Personally I would start by getting something running in 10-20 minutes by using the built in transmission components (especially since you say it is massless so the changing inertias will not need to be modeled). I would show you a simple example you do not indicate the inputs/outputs. For example: Are you using a motor? or. linear actuator? or Are you just specifying a force or torque or a motion profile on the input? What is the geometry? etc.

Regards,

Neil

POSTED BY: Neil Singer
POSTED BY: Lucien Grondin
POSTED BY: Neil Singer

This is easily modeled with two IdealGearR2T blocks -- one with a 1:1 ratio to move from translation to rotation with no ratio and a second one to go from rotation back to translation with a 1:2 ratio (output is twice the input). The two blocks together form a linear transmission (I do not believe there is a single linear to linear gear block built into WSM).

Indeed that seems like one way to do it. A bit silly and inelegant, but that should work.

Thanks.

POSTED BY: Lucien Grondin
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract