<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <!-- 2021-02-20 sam. 23:08 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>Simscape Model</title> <meta name="generator" content="Org mode" /> <meta name="author" content="Dehaeze Thomas" /> <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/> <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script> </head> <body> <div id="org-div-home-and-up"> <a accesskey="h" href="./index.html"> UP </a> | <a accesskey="H" href="../../index.html"> HOME </a> </div><div id="content"> <h1 class="title">Simscape Model</h1> <div id="table-of-contents"> <h2>Table of Contents</h2> <div id="text-table-of-contents"> <ul> <li><a href="#org0e399eb">1. Solid bodies</a></li> <li><a href="#org8fe7328">2. Frames</a></li> <li><a href="#orgf4c96ec">3. Joints</a></li> <li><a href="#orge58c3e3">4. Measurements</a></li> <li><a href="#org6556ccd">5. Excitation</a></li> </ul> </div> </div> <p> A <a href="https://.mathworks.com/products/simscape.html">simscape</a> model permits to model multi-physics systems. </p> <p> <a href="https://mathworks.com/products/simmechanics.html">Simscape Multibody</a> permits to model multibody systems using blocks representing bodies, joints, constraints, force elements, and sensors. </p> <div id="outline-container-org0e399eb" class="outline-2"> <h2 id="org0e399eb"><span class="section-number-2">1</span> Solid bodies</h2> <div class="outline-text-2" id="text-1"> <p> Each solid body is represented by a <a href="https://mathworks.com/help/physmod/sm/ref/solid.html">solid block</a>. The geometry of the solid body can be imported using a <code>step</code> file. The properties of the solid body such as its mass, center of mass and moment of inertia can be derived from its density and its geometry as defined by the <code>step</code> file. They also can be set by hand. </p> </div> </div> <div id="outline-container-org8fe7328" class="outline-2"> <h2 id="org8fe7328"><span class="section-number-2">2</span> Frames</h2> <div class="outline-text-2" id="text-2"> <p> Frames are very important in simscape multibody, they defined where the forces are applied, where the joints are located and where the measurements are made. </p> <p> They can be defined from the solid body geometry, or using the <a href="https://mathworks.com/help/physmod/sm/ref/rigidtransform.html">rigid transform block</a>. </p> </div> </div> <div id="outline-container-orgf4c96ec" class="outline-2"> <h2 id="orgf4c96ec"><span class="section-number-2">3</span> Joints</h2> <div class="outline-text-2" id="text-3"> <p> Solid Bodies are connected with joints (between frames of the two solid bodies). </p> <p> There are various types of joints that are all described <a href="https://mathworks.com/help/physmod/sm/ug/joints.html">here</a>. </p> <table id="org7462d76" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <caption class="t-above"><span class="table-number">Table 1:</span> Degrees of freedom associated with each joint</caption> <colgroup> <col class="org-left" /> <col class="org-right" /> <col class="org-right" /> </colgroup> <thead> <tr> <th scope="col" class="org-left">Joint Block</th> <th scope="col" class="org-right">Translational DOFs</th> <th scope="col" class="org-right">Rotational DOFs</th> </tr> </thead> <tbody> <tr> <td class="org-left">6-DOF</td> <td class="org-right">3</td> <td class="org-right">3</td> </tr> <tr> <td class="org-left">Bearing</td> <td class="org-right">1</td> <td class="org-right">3</td> </tr> <tr> <td class="org-left">Bushing</td> <td class="org-right">3</td> <td class="org-right">3</td> </tr> <tr> <td class="org-left">Cartesian</td> <td class="org-right">3</td> <td class="org-right">0</td> </tr> <tr> <td class="org-left">Constant Velocity</td> <td class="org-right">0</td> <td class="org-right">2</td> </tr> <tr> <td class="org-left">Cylindrical</td> <td class="org-right">1</td> <td class="org-right">1</td> </tr> <tr> <td class="org-left">Gimbal</td> <td class="org-right">0</td> <td class="org-right">3</td> </tr> <tr> <td class="org-left">Leadscrew</td> <td class="org-right">1 (coupled)</td> <td class="org-right">1 (coupled)</td> </tr> <tr> <td class="org-left">Pin Slot</td> <td class="org-right">1</td> <td class="org-right">1</td> </tr> <tr> <td class="org-left">Planar</td> <td class="org-right">2</td> <td class="org-right">1</td> </tr> <tr> <td class="org-left">Prismatic</td> <td class="org-right">1</td> <td class="org-right">0</td> </tr> <tr> <td class="org-left">Rectangular</td> <td class="org-right">2</td> <td class="org-right">0</td> </tr> <tr> <td class="org-left">Revolute</td> <td class="org-right">0</td> <td class="org-right">1</td> </tr> <tr> <td class="org-left">Spherical</td> <td class="org-right">1</td> <td class="org-right">3</td> </tr> <tr> <td class="org-left">Telescoping</td> <td class="org-right">1</td> <td class="org-right">3</td> </tr> <tr> <td class="org-left">Universal</td> <td class="org-right">0</td> <td class="org-right">2</td> </tr> <tr> <td class="org-left">Weld</td> <td class="org-right">0</td> <td class="org-right">0</td> </tr> </tbody> </table> <p> Joint blocks are assortments of joint primitives: </p> <ul class="org-ul"> <li><b>Prismatic</b>: allows translation along a single standard axis: <code>Px</code>, <code>Py</code>, <code>Pz</code></li> <li><b>Revolute</b>: allows rotation about a single standard axis: <code>Rx</code>, <code>Ry</code>, <code>Rz</code></li> <li><b>Spherical</b>: allow rotation about any 3D axis: <code>S</code></li> <li><b>Lead Screw</b>: allows coupled rotation and translation on a standard axis: <code>LSz</code></li> <li><b>Constant Velocity</b>: Allows rotation at constant velocity between intersection through arbitrarily aligned shafts: <code>CV</code></li> </ul> <table id="orgac35e84" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <caption class="t-above"><span class="table-number">Table 2:</span> Joint primitives for each joint type</caption> <colgroup> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> </colgroup> <thead> <tr> <th scope="col" class="org-left">Joint Block</th> <th scope="col" class="org-left">Px</th> <th scope="col" class="org-left">Py</th> <th scope="col" class="org-left">Pz</th> <th scope="col" class="org-left">Rx</th> <th scope="col" class="org-left">Ry</th> <th scope="col" class="org-left">Rz</th> <th scope="col" class="org-left">S</th> <th scope="col" class="org-left">CV</th> <th scope="col" class="org-left">LSz</th> </tr> </thead> <tbody> <tr> <td class="org-left">6-DOF</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Bearing</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Bushing</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Cartesian</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Constant Velocity</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Cylindrical</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Gimbal</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Leadscrew</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> </tr> <tr> <td class="org-left">Pin Slot</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Planar</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Prismatic</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Rectangular</td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Revolute</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Spherical</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Telescoping</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Universal</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left">x</td> <td class="org-left">x</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">Weld</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> </tbody> </table> <p> For each of the joint primitive, we can specify the dynamical properties: </p> <ul class="org-ul"> <li>The <b>spring stiffness</b>: either linear or rotational one</li> <li>The <b>damping coefficient</b></li> </ul> <p> For the actuation, we can either specify the motion or the force: </p> <ul class="org-ul"> <li>the force applied in the corresponding DOF is provided by the input</li> <li>the motion is provided by the input</li> </ul> <p> A sensor can be added to measure either the position, velocity or acceleration of the joint DOF. </p> <p> Composite Force/Torque sensing: </p> <ul class="org-ul"> <li>Constraint force</li> <li>Total force: gives the sum across all joint primitives over all sources: actuation inputs, internal springs and dampers.</li> </ul> </div> </div> <div id="outline-container-orge58c3e3" class="outline-2"> <h2 id="orge58c3e3"><span class="section-number-2">4</span> Measurements</h2> <div class="outline-text-2" id="text-4"> <p> A transform sensor block measures the spatial relationship between two frames: the base <code>B</code> and the follower <code>F</code>. </p> <p> It can give the rotational and translational position, velocity and acceleration. </p> <p> The measurement frame should be specified: it corresponds to the frame in which to resolve the selected spatial measurements. The default is <code>world</code>. </p> <p> If we want to simulate an <b>inertial sensor</b>, we just have to choose <code>B</code> to be the <code>world</code> frame. </p> <p> <b>Force sensors</b> are included in the joints blocks. </p> </div> </div> <div id="outline-container-org6556ccd" class="outline-2"> <h2 id="org6556ccd"><span class="section-number-2">5</span> Excitation</h2> <div class="outline-text-2" id="text-5"> <p> We can apply <b>external forces</b> to the model by using an <a href="https://mathworks.com/help/physmod/sm/ref/externalforceandtorque.html">external force and torque block</a>. </p> <p> Internal force, acting reciprocally between base and following origins is implemented using the <a href="https://mathworks.com/help/physmod/sm/ref/internalforce.html">internal force block</a> even though it is usually included in one joint block. </p> </div> </div> </div> <div id="postamble" class="status"> <p class="author">Author: Dehaeze Thomas</p> <p class="date">Created: 2021-02-20 sam. 23:08</p> </div> </body> </html>