Main Content


Assign kinematic variables from the KinematicsSolver object as guesses


addInitialGuessVariables(ks,ids) assigns as guess variables the kinematic variables listed in the KinematicsSolver object ks under the names given in the ids argument. Both joint and frame variables can serve in this role. Those that do bias the solver toward one of equally plausible solutions when several exist. Guess variables are optional but important solver guides in some kinematic problems.

The output is an updated table with the guess variables—both new and old—in rows. Each row gives the ID of a variable, the type and block path of the joint to which it belongs if a joint variable, the base and follower frames from which it spawns if a frame variable, and the unit for its numerical value. The variables rank in the order added.

Most variables can be assigned individually. A few must be assigned in groups—axis components alongside rotation angle in spherical primitives; bend angle alongside azimuth angle in constant-velocity primitives. (A bend angle can be assigned individually but the azimuth angle cannot.)

No attempt is made to satisfy guess variables. They are a starting point in the search for a solution. Use them merely to bias the solver toward a suitable solution when several exist.

The figure shows the variables of a general KinematicsSolver object. Target (T), guess (G), and output (O) variables can be joint variables (J) or frame variables (F). The same variable can serve as guess and output, but if it serves as target, it cannot double as guess. Assigning a guess variable as target clears it as guess.

Input Arguments

collapse all

A KinematicsSolver object is the representation of a Simscape Multibody model used for kinematic analysis.

Example: ks = simscape.multibody.KinematicsSolver('sm_double_pendulum')

Data Types: KinematicsSolver object

Identifiers of the kinematic variables to use. Enter the identifiers as shown in the ID column of the jointPositionVariables or jointVelocityVariables, for joint variables, or frameVariables, for frame variables.

Example: 'j1.Rz.q'

Data Types: char | string

Introduced in R2019a