Point On Curve Constraint

Kinematic constraint between a frame origin and a curved path

Library

Constraints

  • Point on Curve Constraint block

Description

This block represents a kinematic constraint between a point and a curve. The constraint allows the follower frame origin to translate only along the curve connected to the base geometry port. The follower frame is free to rotate depending on other constraints in the model. Use this block to model point-on-curve constraints, such as that between a roller coaster and a track or a cam follower and a cam.

Examples of Point-on-Curve Constraints

Specify the constraint curve by connecting a curve block to the base geometry port. As a best practice, always use the curve block as part of a rigid body, for example, by keeping it inside a rigid body subsystem. This enables you to quickly switch, for example, between different cams or roller coaster tracks. Avoid curves with sharp changes in slope, as these can cause simulation issues.

Parameters

Constraint Force Sensing

Direction

Select the force in the constraint action-reaction force pair to sense. You can sense the force that the follower frame exerts on the base curve or vice-versa. The default setting is Follower on Base.

Resolution Frame

Select the frame to resolve the constraint force measurement in. You can select the base or follower frame. The default setting is Base.

Force Vector

Select the check box to sense the constraint force. The block exposes physical signal output port f, which outputs the force measurement as a three-dimensional vector, [Fx, Fy, Fz].

Ports

The block contains two ports:

  • B — Geometry port associated with the constraint curve (set by connecting the port to a Spline block).

  • F — Frame port associated with the constraint point (defined as the origin of the frame).

An optional port appears when you select constraint force sensing:

  • f — Physical signal with the constraint force components [Fx, Fy, Fz]

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Introduced in R2015b