This paper introduces a general method for analyzing flexure systems of any configuration, including those that cannot be broken into parallel and serial subsystems. Such flexure systems are called interconnected hybrid flexure systems because they possess limbs with intermediate bodies that are connected by flexure systems or elements. Specifically, the method introduced utilizes screw algebra and graph theory to help designers determine the freedom spaces (i.e., the geometric shapes that represent all the ways a body is permitted to move) for all the bodies joined together by compliant flexure elements within interconnected hybrid flexure systems (i.e., perform mobility analysis of general flexure systems). This method also allows designers to determine (i) whether such systems are under-constrained or not and (ii) whether such systems are over-constrained or exactly constrained (i.e., perform constraint analysis of general flexure systems). Although many flexure-based precision motion stages, compliant mechanisms, and microarchitectured materials possess topologies that are highly interconnected, the theory for performing the mobility and constraint analysis of such interconnected flexure systems using traditional screw theory does not currently exist. The theory introduced here lays the foundation for an automated tool that can rapidly generate the freedom spaces of every rigid body within a general flexure system without having to perform traditional computationally expensive finite element analysis. Case studies are provided to demonstrate the utility of the proposed theory.

## Introduction

Flexure systems [1] consist of rigid bodies, shown as rectangles in the schematic portion of Fig. 1, joined together by flexure elements (e.g., wire, blade, or notch flexures), shown as springs in the same portion, that deform to guide the system's rigid bodies along desired motion paths with high precision. According to their geometry, these elements are stiff in certain directions but compliant in other directions. The directions of greatest compliance exhibited by a body constrained by flexure elements within a flexure system are called the body's degrees-of-freedom (DOFs). There are three kinds of rigid bodies within a flexure system—a grounded or fixed body labeled “G” in Fig. 1, intermediate bodies labeled “I”, and a stage labeled “S”. A system's stage is the primary body of interest (i.e., the body that performs the system's desired tasks).

Traditionally, flexure systems are classified into three categories [1,2] (Fig. 1(a))—parallel, serial, and hybrid. Parallel systems consist of two rigid bodies joined directly together by flexure elements as shown in the example of Fig. 1(a). Serial flexure systems consist of two or more parallel subsystems stacked or nested together in a chain-like configuration. Hybrid flexure systems consist of any other configuration of rigid bodies joined together by flexure elements. Most hybrid systems consist of various combinations of both parallel and serial subsystems joined together in parallel. Note that the hybrid system example in Fig. 1(a) consists of three identical serial subsystems or limbs arranged in parallel.

Some hybrid flexure systems, however, are arranged in configurations that cannot be broken into purely parallel and serial subsystems. Two examples of this kind of hybrid system are shown in Fig. 1(b). These systems are called interconnected hybrid flexure systems [2] because they possess at least one set of parallel limbs that are interconnected by flexure subsystems or elements that join the limbs' intermediate bodies together. Screw-theory-based approaches cannot traditionally be used to analyze or synthesize such interconnected hybrid systems because most existing approaches can only analyze or synthesize systems that can be broken into parallel and serial subsystems like the hybrid example of Fig. 1(a).

Thus, the purpose of this paper is to introduce a new systematic analysis approach for determining the DOFs of the rigid bodies within general interconnected hybrid flexure systems (i.e., mobility analysis) and for determining whether such systems are under-constrained or not and whether such systems are exactly constrained or over-constrained (i.e., constraint analysis). Since interconnected hybrid systems are the most complex class of system, this paper will enable the general analysis of flexure systems of any configuration.

The ability to rapidly analyze the mobility and constraint characteristics of interconnected hybrid flexure system designs is becoming increasingly important as more and more applications are emerging that require the use of such designs. Nanopositioners and other flexure-based motion stages, like those shown in the example portion of Fig. 1(b) for instance, require an interconnected hybrid flexure topology to simultaneously achieve their desired stage DOFs while also satisfying their desired load capacity, stiffness, and dynamic requirements. Serial flexure systems that achieve large ranges of motion often suffer from under-constraint, which can be eliminated by the addition of flexure linkages [3] that render the system's topology interconnected. The topologies of repeating unit cells within periodic microarchitectured material lattices [4,5] are often interconnected hybrid in their configuration. Such material lattices, also called mechanical metamaterials [6], can be engineered to exhibit a large variety of tunable bulk properties (e.g., negative Poisson ratio [7], zero or negative thermal expansion coefficient [8], and high strength-to-weight ratio [5]), which are primarily determined by their microstructure's interconnected hybrid flexure topology.

The theory of this paper uniquely utilizes a combination of screw algebra [9–11] and graph theory [12,13] to enable the analysis of interconnected hybrid flexure system topologies. Twist and wrench vectors [9–11] are used in the context of screw algebra to model the DOFs and the constraining forces imposed on the rigid bodies within a general flexure system. Graph theory is used to model the system's rigid bodies as nodes or vertices and flexure elements as edges within a graph to mathematically navigate the graph's complex connections to identify the fewest number of vector equations that need to be solved for completing the mobility analysis of the interconnected hybrid system.

Screw algebra has been used extensively by others to analyze the mobility of rigid mechanisms of various configurations for the past few centuries [9–11,14]. Screw systems that consist of linear combinations of twist and wrench vectors have been studied exhaustively and classified for a variety of rigid mechanism purposes [15–19]. Mohamed and Duffy [20] investigated the instantaneous kinematics of a parallel manipulator with identical serial chain limbs. Kumar [21] used reciprocal twist and wrench vectors for instantaneous kinematic analysis of serial kinematic chains arranged in parallel. Kong and Gosselin [22,23] used wrenches to synthesize 3DOF parallel manipulators. Fang and Tsai [24] synthesized parallel manipulators with identical limbs of 4 and 5DOFs.

Graph theory has also been applied in conjunction with screw algebra to analyze and synthesize rigid mechanisms of various configurations. Freudenstein and Dobrjanskyj [25,26] used graph theory to model the links and joints of general rigid mechanisms as vertices and edges similar to the theory of this paper but utilized different mathematics to identify nonisomorphic graphs for the purpose of type synthesis for various types of mechanisms. Davies [27] applied Kirchhoff's voltage law to rigid mechanisms, treating closed kinematic chains as an analog to closed electrical circuits. Angeles and Gosselin [28] addressed the mobility of multiloop rigid mechanisms by calculating the nullity of a mechanism's Jacobian matrix. Zoppi et al. [29] analyzed parallel manipulators with interconnecting links. Zeng et al. [30] designed a parallel manipulator that also possessed interconnecting links. Lu and Leinonen [31] used graph theory to synthesize a family of unified planar and spatial mechanisms. Chen and Yao [32] used graph theory to create a systematic approach for synthesizing the topology of fractionated geared differential mechanisms.

Although screw algebra and graph theory have been applied extensively to rigid mechanisms, the combination of these principles have not yet been commonly applied to compliant mechanisms—particularly for solving the mobility of interconnected hybrid flexure systems. Murphy et al. [33] included flexures as a type of joint to enumerating nonisomorphic compliant mechanisms. Pucheta and Cardona [34] applied graph theory to perform the type synthesis of compliant mechanisms that derive from rigid mechanism analogs. Adding to the contributions of Merlet [35] and Hao and McCarthy [36], Hopkins created the freedom and constraint topologies (FACT) synthesis approach [37–39], which utilizes a comprehensive library of intuitive shapes that help designers leverage the geometry of screw systems toward visualizing the topologies and mobility of general compliant mechanisms. The mathematics underlying the FACT approach was furthered by Su et al. [40–42] and Yu et al. [43] to enhance the computational analysis and synthesis of flexure systems of various parallel and serial flexure configurations. Other approaches have also utilized screw algebra to analyze and synthesize compliant mechanisms [44,45]. More recently, an approach was created that normalizes the compliance matrices of flexure systems to identify the directions of greatest compliance (i.e., the DOFs) [46,47].

The approach introduced in this paper enables the mobility analysis of any compliant mechanism (both interconnected or not interconnected) in that it allows users to identify the DOFs of the rigid bodies within the mechanism regardless of how they are joined together by flexure elements. The approach is able to identify these DOFs rapidly in part because the calculations inherent to the approach only consider the topology of the system's flexure elements (i.e., the kind, location, and orientation of the elements within the system). The shapes of the rigid bodies, the properties of the constituent materials used, and the geometric parameters of the flexure elements (e.g., the lengths, widths, or thicknesses of rectangular prism elements) that make up the topology are not considered in the mathematical treatment. This simplification is made possible because of the assumption used in this paper that all flexure elements within flexure systems can be modeled as ideal constraints [37–39], which are infinitely stiff along the directions they constrain while being infinitely compliant in all other directions. Thus, the theory proposed here is well suited to enable an automated approach for rapidly analyzing the mobility and constraint characteristics of compliant mechanisms, structures, and materials that consists of large numbers of flexible elements of various geometries joined together in an interconnected fashion.

## Freedom and Constraint Spaces

This section reviews the mathematics underlying the freedom and constraint spaces of the FACT synthesis approach. These spaces will be integral to the new mobility and constraint analysis method introduced later in this paper.

The instantaneous permissible motions of a general body can be represented as lines (Fig. 2(a)) that are mathematically modeled as 6 × 1 twist vectors, **T**, [9–11] defined as

*ω*is the magnitude of the body's angular velocity about the motion's line,

**n**is a 1 × 3 unit vector that points along the line's axis,

**c**is a 1 × 3 location vector that points from the origin of the coordinate system to any point along that line, and

*p*is the pitch of the motion (i.e., the ratio of how much the body translates along the line's to how much the body rotates about that axis). If the pitch is zero, the motion is a rotation and its line will be colored red in this paper (see figure online for color). If the pitch is nonzero but finite, the motion is a screw and its line will be colored green (see figure online for color). If the pitch is infinite, the motion is a translation and its line will be shown as a thick black arrow. Thus, twist vectors used to model translations can be simplified according to

where *v* is the magnitude of the body's linear velocity along the translation's arrow, **0** is a 1 × 3 zero vector, and **n** is a 1 × 3 unit vector that points in the direction of that same arrow.

Constraint loads imposed on a general body can also be represented as lines (Fig. 2(b)) that are mathematically modeled as 6 × 1 wrench vectors, **W**, [9–11] defined according to Eq. (1) except that **T** is replaced by **W**, *ω* is replaced by *f*, **c** is replaced by **r**, and *p* is replaced by *q*. The scalar value *f* is the magnitude of the constraining force imposed on the body along the load's line, **r** is a 1 × 3 location vector that points from the origin of the coordinate system to any point along that line, and *q* is the ratio of the magnitude of the constraining moment imposed on the body about the line's axis to the magnitude of the constraining force along the same line. If *q* is zero, the load is a pure force and its line will be colored blue in this paper. If *q* is nonzero but finite, the motion is a wrench with a coupled moment and force and its line will be colored orange. If *q* is infinite, the load is a pure moment and its line will be shown thick black with a circular arrow about its axis. Thus, wrench vectors used to model pure moments can be simplified according to Eq. (2) except **T** is replaced by **W**, *v* is replaced by *τ*, and *τ* is the magnitude of the body's pure moment about its line with circular arrows.

**T**and

_{1}**T**, and one translational twist vector,

_{2}**T**. The body can also move with every combination of these DOF twist vectors according to

_{3}where **T _{fre}_{,}_{e}** is a twist vector that represents these DOF combinations,

*ω*

_{1}and

*ω*

_{2}are the magnitudes of the angular velocities of

**T**and

_{1}**T**, respectively, and

_{2}*v*

_{3}is the magnitude of the linear velocity of

**T**. If all the motion lines that are modeled by

_{3}**T**are graphically depicted for all real combinations of

_{fre}_{,}_{e}*ω*

_{1},

*ω*

_{2}, and

*v*

_{3}, the freedom space of the element is produced. A freedom space is a geometric shape, which consists of motion lines, that represents all the ways a body is free to move. The freedom space of the blade element,

**T**, is thus a red plane of rotation lines and an orthogonal black translation arrow shown in Fig. 2(d). Thus, a body constrained by a blade element can rotate about any line on the plane of the blade and translate in the direction perpendicular to the blade's plane. Note that the number of independent twist vectors,

_{fre}_{,}_{e}*n*, that constitute a freedom space is the number of its DOFs. For a blade element,

*n*= 3.

The blade flexure element can also impart three independent constraining loads onto its body as shown in Fig. 2(e)—two pure force wrench vectors, **W _{1}** and

**W**, and one pure moment wrench vector,

_{2}**W**. Additionally, the blade element can constrain the body with every combination of these independent wrench vectors according to Eq. (3) but where

_{3}**T**is replaced by

_{fre}_{,}_{e}**W**,

_{con}_{,}_{e}**T**,

_{1}**T**, and

_{2}**T**are replaced by

_{3}**W**,

_{1}**W**, and

_{2}**W**, respectively, and

_{3}*ω*

_{1},

*ω*

_{2}, and

*v*

_{3}are replaced by

*f*

_{1},

*f*

_{2}, and

*τ*

_{3}, respectively. The

**W**vector represents all the load combinations that the element can impart onto the body,

_{con}_{,}_{e}*f*

_{1}and

*f*

_{2}are the magnitudes of the pure forces of

**W**and

_{1}**W**, respectively, and

_{2}*τ*

_{3}is the magnitude of the pure moment of

**W**. If all the load lines that are modeled by

_{3}**W**are graphically depicted for all real combinations of

_{con}_{,}_{e}*f*

_{1},

*f*

_{2}, and

*τ*

_{3}, the constraint space of the element is produced. A constraint space is a geometric shape, which consists of load lines, that represents all the constraining loads impart to a body that restrict its motions in certain directions. The constraint space of the blade element,

**W**, is thus a blue plane of force lines and an orthogonal black moment line with a circular arrow about its axis as shown in Fig. 2(e). Thus, a body constrained by a blade element is restricted from moving by all the force lines that lie on the plane of the blade and by a moment line that is perpendicular to the blade's plane.

_{con}_{,}_{e}where [0] is a 3 × 3 zero matrix and [*I*] is a 3 × 3 identity matrix.

**T**,

_{1}**T**, and

_{2}**T**, and two translational twist vectors,

_{3}**T**and

_{4}**T**, that are orthogonal and align with the axes of

_{5}**T**and

_{1}**T**, respectively, as shown in the figure. The wire element's freedom space,

_{2}**T**, results from the combination of these five twist vectors as

_{fre}_{,}_{e}*ω*

_{1},

*ω*

_{2}, and

*ω*

_{3}are the magnitudes of the angular velocities of

**T**,

_{1}**T**and

_{2}_{,}**T**, respectively, and

_{3}*v*

_{4}and

*v*

_{5}are the magnitudes of the linear velocities of

**T**and

_{4}**T**. The element's freedom space is graphically depicted in Fig. 2(g) as (i) red planes of rotation lines that intersect along the wire's axis, (ii) a black disk of translation arrows that point in directions that are perpendicular to the wire's axis, and (iii) green screw lines that are described in Hopkins [37,38] but not shown in the figure to avoid visual clutter. The element's complementary constraint space,

_{5}**W**, can be calculated using Eqs. (4) and (5) and consists of the single blue line shown in Fig. 2(h) modeled by

_{con}_{,}_{e}where *f*_{1} is the magnitude of the constraining force wrench vector, **W _{1}**, imparted by the wire element along its axis to the body in Fig. 2(h).

The mobility analysis of a flexure system is successfully achieved when the freedom space of the system's stage is identified (i.e., when one knows all the ways the system's stage is free to move). One of the primary objectives of this paper is to introduce a systematic approach for successfully navigating the freedom and constraint spaces of a system's constituent elements and subsystems such that the mobility analysis of a general flexure system can be achieved. The other primary objective of this paper is to introduce a systematic approach for successfully navigating these freedom and constraint spaces such that designers can identify the system's constraint characteristics (i.e., perform constraint analysis).

## Traditional Flexure-System Mobility Analysis

This section reviews the principles currently used to perform the mobility analysis of flexure systems that are not considered interconnected hybrid (i.e., systems that can be divided into parallel and serial subsystems). Current mobility analysis hinges on two primary principles

- (1)
*Parallel Configurations:*A system's constraint space can be found by linearly combining the constraint spaces of its constituent flexure elements and/or systems when they are arranged in parallel. A system's freedom space can be found by identifying the intersection of the freedom spaces of its constituent flexure elements and/or systems when they are arranged in parallel. - (2)
*Serial Configuration:*A system's freedom space can be found by linearly combining the freedom spaces of its stacked flexure subsystems when they are arranged in series. A system's constraint space can be found by identifying the intersection of the constraint spaces of its stacked flexure subsystems when they are arranged in series.

To demonstrate principle (1), consider the parallel system shown in Fig. 3(a) that consists of a blade element, *e*1, arranged in parallel with a wire element, *e*2. The constraint space of element *e*1 is the blue plane from Fig. 2(e). Given the coordinate system shown in Fig. 3(b), this constraint space, **W _{con}_{,}_{e}_{1}**, can be expressed as

*f*

_{1}and

*f*

_{2}are the force magnitudes of

**W**and

_{1}**W**in Fig. 3(b), respectively,

_{2}*τ*

_{3}is the moment magnitude of

**W**, and

_{3}*D*is a scalar distance labeled in the same figure. The constraint space of element

*e*2 is the blue line from Fig. 2(h). Given the coordinate system in Fig. 3(b), this constraint space,

**W**, can be expressed as

_{con}_{,}_{e}_{2}where *f*_{4} is the force magnitude of **W _{4}** in Fig. 3(b). Thus, according to principle (1), since elements

*e*1 and

*e*2 are arranged in parallel, the constraint space of the parallel system,

**W**, could be calculated by linearly combining Eq. (7) with Eq. (8) (i.e.,

_{con}_{,}_{ps}**W**=

_{con}_{,}_{ps}**W**+

_{con}_{,}_{e}_{1}**W**). The resulting parallel system's constraint space is shown in Fig. 3(c). This space consists of (i) a plane of blue force lines that is coplanar with the system's blade element, (ii) a box of parallel blue force lines that are parallel with the axis of the system's wire element, (iii) a disk of black pure moment lines that point in directions perpendicular to the wire's axis, and (iv) orange wrench lines that are described in Hopkins [37,38] but are not shown in Fig. 3(c) to avoid visual clutter.

_{con}_{,}_{e}_{2}**T**, can be calculated using

_{fre}_{,}_{ps}**W**in Eq. (4). This space, shown in Fig. 3(d), consists of (i) a plane of parallel red rotation lines that are parallel to the axis of the wire element but are coplanar with the plane of the blade element, and (ii) a black translation arrow that is perpendicular to the same plane. This freedom space,

_{con}_{,}_{ps}**T**, results from the linear combination of two independent twist vectors (e.g.,

_{fre}_{,}_{ps}**T**and

_{1}**T**in Fig. 3(d)) according to

_{2}where *ω*_{1} is the magnitude of the angular velocity of **T _{1}** in Fig. 3(d), and

*v*

_{2}is the magnitude of the linear velocity of

**T**in the same figure. Note that in accordance with principle (1), the parallel system's freedom space (Fig. 3(d)) is the intersection of the freedom spaces of the system's constituent elements (i.e.,

_{2}**T**and

_{fre}_{,}_{e}_{1}**T**shown in Fig. 3(e)). In other words, the motion lines that constitute the space of Fig. 3(d) are the same motion lines that are commonly shared between the two spaces shown in Fig. 3(e). Recall that the freedom space of a blade element was given in Fig. 2(d) and the freedom space of a wire element was given in Fig. 2(g).

_{fre}_{,}_{e}_{2}**T**, can be expressed as

_{fre}_{,}_{ps}_{1}where *ω*_{1} is the angular velocity magnitude of **T _{1}**, and

*v*

_{3}is the linear velocity magnitude of

**T**in Fig. 3(g). Thus, according to principle (2), since the parallel subsystems ps1 and ps2 are arranged in series, the freedom space of the serial system,

_{3}**T**, could be calculated by linearly combining Eq. (10) with Eq. (11) (i.e.,

_{fre}_{,}_{s}_{s}**T**=

_{fre}_{,}_{ss}**T**+

_{fre}_{,}_{ps}_{1}**T**). The resulting serial system's freedom space, shown in Fig. 3(h), consists of (i) a box of parallel red rotation lines that are parallel with the axes of the system's wire elements, and (ii) a disk of black translation arrows that point in directions that are perpendicular to these axes.

_{fre}_{,}_{ps}_{2}**W**, can be calculated using

_{con}_{,}_{ss}**T**in Eq. (4). This space, shown in Fig. 3(i), consists of (i) a box of parallel blue force lines that are parallel with the axes of the system's wire elements, and (ii) a disk of black moment lines that point in directions that are perpendicular to these axes. This constraint space,

_{fre}_{,}_{ss}**W**, results from the linear combination of three independent wrench vectors (e.g.,

_{con}_{,}_{s}_{s}**W**,

_{1}**W**, and

_{2}**W**in Fig. 3(i)) according to

_{3}where *f*_{1} is the force magnitude of **W _{1}** in Fig. 3(i), and

*τ*

_{2}and

*τ*

_{3}are the moment magnitudes of

**W**and

_{2}**W**in the same figure. Note that in accordance with principle (2), the serial system's constraint space (Fig. 3(i)) is the intersection of the constraint spaces of the system's stacked parallel subsystems (i.e.,

_{3}**W**and

_{con}_{,}_{ps}_{1}**W**shown in Fig. 3(j)). In other words, the load lines that constitute the space of Fig. 3(i) are the same load lines that are commonly shared between the two spaces shown in Fig. 3(j). Recall that the constraint space of each parallel subsystem was given in Fig. 3(c).

_{con}_{,}_{ps}_{2}Since principles (1) and (2) pertain to flexure elements and/or subsystem's arranged in parallel or series, these principles can only be used to perform the mobility analysis of flexure systems that can be broken into parallel and serial subsystems. Consider the hybrid system in Fig. 4(a) that consists of two serial subsystems (i.e., limbs) arranged in parallel. Once the constraint spaces of each parallel subsystem, ps1 through ps4, have been identified according to the principles reviewed in this section, the freedom space of the system's stage can be determined using an operator, *Z*. This operator utilizes Eq. (4) to determine the complementary freedom space of a constraint space and vice versa (i.e., *Z*(**W _{con}**) =

**T**and

_{fre}*Z*(

**T**) =

_{fre}**W**). Thus, if

_{con}**W**,

_{con}_{,}_{ps}_{1}**W**,

_{con}_{,}_{ps}_{2}**W**, and

_{con}_{,}_{ps}_{3}**W**, are the constraint spaces of the parallel subsystems, ps1 through ps4, in Fig. 4(a), respectively, the hybrid system's freedom space,

_{con}_{,}_{ps}_{4}**T**, (i.e., the freedom space of the system's stage) can be calculated according to

_{fre}_{,}_{hs}This freedom space, shown in Fig. 4(b), consists of (i) a plane of red rotation lines that is coplanar with the front face of the system's stage, (ii) a box of parallel red rotation lines that are directed vertically, (iii) a disk of black translation arrows that point in directions perpendicular to these parallel rotation lines, and (iv) green screw lines that are described in Hopkins [37,38] but are not shown in Fig. 4(b) to avoid visual clutter. If, however, the intermediate bodies of the example system are joined together by another parallel subsystem, ps5, as shown in Fig. 4(c), principles (1) and (2) cannot be applied to the system's mobility analysis because the system cannot be broken into parallel and serial subsystems. Thus, the system of Fig. 4(c) is an interconnected hybrid system, which requires new theory to analyze (i.e., determine its stage's freedom space).

## Interconnected-Hybrid-System Mobility Analysis

This section introduces two complementary screw-algebra and graph-theory approaches for systematically performing the mobility analysis of flexure systems of any configuration and complexity—including and especially interconnected hybrid flexure systems. Although similar to prior approaches [27,28,48], the first approach focuses on the mobility analysis of compliant mechanisms (i.e., flexure systems) instead of rigid mechanisms. It should also be used to identify whether a system is under-constrained or not. The second approach is complementary to the first approach (i.e., it uses complementary constraint spaces instead of freedom spaces) but it should be used to identify if a system is over-constrained or exactly constrained (i.e., the second approach is necessary to perform constraint analysis). The interconnected hybrid system of Fig. 4(c) will be analyzed as a case study for the theory of this section.

### Freedom-Space-Based Approach to Mobility Analysis.

This section introduces a freedom-space-based approach for calculating the freedom space of a general flexure system's stage (i.e., for performing mobility analysis). To determine the freedom space of a flexure system's stage using this approach, it is first necessary to identify the freedom spaces of each set of flexure elements that join the system's rigid bodies together. Such sets of flexure elements are analogous to the joints of traditional rigid mechanisms (e.g., revolute or prism joints) that guide the motions of their rigid links and join them together. Thus, the “compliant joints” of the interconnected hybrid flexure system of Fig. 4(c) are the five parallel subsystems labeled ps1 through ps5 in the figure. Their respective freedom spaces, **T _{fre}_{,}_{ps}_{1}** through

**T**, can each be identified using the theory of Sec. 3. For the example of Fig. 4(c), these freedom spaces are shown in Fig. 5(a). They are the blade flexure's freedom space from Fig. 2(d) and thus consist of a red plane of rotation lines and a black translation arrow that is perpendicular to that plane.

_{fre}_{,}_{ps}_{5}*n*independent twist vectors from within the freedom space and linearly combining them. Recall that

*n*is the number of DOFs or independent twist vectors that constitute a freedom space. For the example system of Fig. 5(a), the freedom spaces of the compliant joints each possess three independent twist vectors within their geometry (i.e.,

*n*= 3). Thus, the freedom space,

**T**, of the parallel subsystem ps1 joint could be mathematically modeled by the following linear combination

_{fre}_{,}_{ps}_{1}**T**,

_{1}**T**, and

_{2}**T**, are the independent twist vectors shown and defined according to the global coordinate system in Fig. 5(b),

_{3}*ω*

_{1},

*ω*

_{2}, and

*v*

_{3}are the velocity magnitudes of these twist vectors, respectively,

*L*is the length defined in the same figure, [

*jft*]

_{ps}

_{1}is the joint-freedom-topology matrix of the parallel subsystem ps1 defined according to

Note that **T _{1}**,

**T**, and

_{2}**T**in Fig. 5(b) are not the only set of independent twist vectors that could have been selected to model

_{3}**T**. Any arbitrary set of three independent twist vectors that lie within the ps1 freedom space could have been selected as the basis of the space.

_{fre}_{,}_{ps}_{1}**T**, of the parallel subsystem ps2 could also be modeled using the

_{fre}_{,}_{ps}_{2}**T**,

_{4}**T**, and

_{5}**T**independent twist vectors in Fig. 5(b) to construct the corresponding [

_{6}*jft*]

_{ps}

_{2}matrix according to

where *ω*_{4}, *ω*_{5}, and *v*_{6} are the velocity magnitudes of **T _{4}**,

**T**, and

_{5}**T**in Fig. 5(b), respectively.

_{6}Once all the system's compliant-joint freedom spaces, **T _{fre}_{,}_{ps}_{1}** through

**T**, have been modeled by constructing their corresponding joint-freedom-topology matrices, [

_{fre}_{,}_{ps}_{5}*jft*]

_{ps}

_{1}through [

*jft*]

_{ps}

_{5}, and their corresponding velocity magnitude vectors,

**x**through

_{ps}_{1}**x**, the system's rigid bodies should be labeled with numbers. In Fig. 5(a), the system's ground is labeled

_{ps}_{5}*b*1, the stage is labeled

*b*4, and the intermediate bodies are labeled

*b*2 and

*b*3. A graph can be constructed that details what rigid bodies, shown as point nodes or vertices in Fig. 5(c), are connected by what compliant-joint freedom spaces, shown as edges or arrows in the same figure. The direction of these arrows can be arbitrarily defined at the beginning of the analysis process, but it is important to recognize that the way they are defined establishes an important convention that must be adhered to throughout the remainder of the analysis process to produce correct results.

**T**+

_{fre}_{,}_{ps}_{1}**T**,

_{fre}_{,}_{ps}_{3}**T**+

_{fre}_{,}_{ps}_{2}**T**,

_{fr}_{e}_{,}_{ps}_{4}**T**+

_{fr}_{e}_{,}_{ps}_{1}**T**+

_{fr}_{e}_{,}_{ps}_{5}**T**,

_{fr}_{e}_{,}_{ps}_{4}**T**−

_{fre}_{,}_{ps}_{2}**T**+

_{fre}_{,}_{ps}_{5}**T**). Note that the freedom space's sign is positive if the path moves from the specified arrow's tail to its head, but is negative if the path moves from the arrow's head to its tail. The permissible motions of the system's stage (i.e., the stage's freedom space) can be calculated by equating different combinations of these freedom-space paths according to

_{fre}_{,}_{ps}_{3}where [0] is a 6 × 6 matrix of zeros, [*jft*]_{ps}_{1} through [*jft*]_{ps}_{5} are the system's joint-freedom-topology matrices that correspond with the freedom spaces of each compliant joint labeled **T _{fre}_{,}_{ps}_{1}** through

**T**in Fig. 5(a),

_{fre}_{,}_{ps}_{5}**x**through

_{ps}_{1}**x**are the velocity magnitude vectors that correspond with the same freedom spaces, and

_{ps}_{5}**0**is a vector of zeros.

Note that the velocity magnitudes that satisfy the combination of equations in Eq. (19) result from the null space of the matrix consisting of the system's joint-freedom-topology matrices in Eq. (20). The significance of these velocity magnitudes toward finalizing the system's mobility analysis will be discussed later in this section. For now, it is sufficient to note that each row in Eqs. (19) and (20) corresponds with a unique closed-loop path that links the system's ground to its stage (i.e., the linear combinations on the left side of Eq. (19)) and then back to its ground (i.e., the negative values of the linear combinations on the right side of Eq. (19)). Thus, the matrix in Eq. (20) represents six unique closed-loop paths throughout the interconnected system. It is important here to emphasize, however, that not all of these closed-loop paths are necessary to calculate the system's desired velocity magnitude vectors.

*C*], can be constructed using the schematic graph of any flexure system of interest, similar to the one diagrammed in Fig. 5(c) for the system of this section's example. A general incidence matrix possesses as many rows as there are edges or arrows in the graph being analyzed and as many columns as there are vertices or nodes in the same graph. The component in row

*e*and column

*u*of the matrix will be 1 if the edge's arrow that corresponds with the freedom space labeled

*e*(i.e.,

**T**), points into the node or vertex labeled

_{fre}_{,}_{pse}*u*(i.e.,

*bu*). This component will be −1 if the edge's arrow points out of the vertex and will be 0 if the edge's arrow does not point into or out of the vertex. The incidence matrix of the system of Fig. 5(c) is

*Q*] matrix of the system of Fig. 5(c) can thus be calculated using Eq. (21) in Eq. (22) according to

*jft*]

_{ps}

_{1}through [

*jft*]

_{ps}

_{5}, are then inserted inside their respective columns within the transpose of the [

*Q*] matrix from Eq. (23) and the resulting matrix is multiplied by the velocity magnitude vectors according to

*FT*], is the system's freedom-topology matrix. This matrix always possesses as many rows as the number of independent closed-loop paths within the system multiplied by six. The matrix possesses as many columns as there are DOFs or independent twist vectors within each of the system's compliant joints (e.g., the parallel subsystems ps1 through ps5 in Fig. 4(c)) summed together. For the example of Fig. 5, the [

*FT*] matrix can be determined by inserting the system's joint-freedom-topology matrices (e.g., Eqs. (15) and (17)) into Eq. (24) according to

*H*is the length defined in Fig. 5(b). The

**X**vector in Eq. (24) contains the system's velocity magnitude vectors,

**x**through

_{ps}_{1}**x**. The

_{ps}_{5}**X**vector is calculated by finding the null space of the system's [

*FT*] matrix. The number of independent vector solutions that result by performing the null space of this matrix is the number of system DOFs,

*N*, (i.e., the number of independent ways all the bodies within the system are compatible to move with respect to one another given their interconnected constraint topologies). For the example system of Fig. 5, the null space of the matrix in Eq. (25) consists of three 15 × 1

**X**vector solutions (i.e.,

*N*= 3).

*N*independent

**X**vectors must be multiplied by a path matrix, [

*P*]. Path matrices always possess six rows and as many columns as there are DOFs or independent twist vectors within the system's compliant-joint freedom spaces summed together. Every component within a general path matrix is zero except for the components that correspond with the joint-freedom-topology matrices used in the chosen path from the ground to the body of interest. As an example, suppose we wished to identify the freedom space of the system's stage, labeled

*b*4 in Fig. 5(a). It is clear from the graph of Fig. 5(c) that one potential path starts from ground,

*b*1, and progresses through the parallel subsystem ps1 and then through ps3 where it then ends at the system's stage,

*b*4. This path's corresponding path matrix, [

*P*

_{ps}

_{1}

_{,ps}

_{3}], is

Note that the sign of each joint-freedom-topology matrix corresponds with the graph's arrow convention and the path chosen as discussed previously. Once a potential path matrix that points from the system's ground to the body of interest is identified, the matrix should be multiplied by all *N* independent **X** vectors found from the null space of Eq. (24) to produce *N* twist vectors. These *N* twist vectors should then be linearly combined to generate the freedom space of the rigid body to which the path matrix pointed.

For the example of Fig. 5, the stage's freedom space, **T _{fre}_{,}_{b}_{4}**, was calculated using this approach. This freedom space, shown in Fig. 5(e), is the freedom space in Fig. 2(d) that consists of a black translation arrow that is perpendicular to a red plane of rotation lines that lies on the front face of the stage as shown. The freedom spaces of the two intermediate bodies,

**T**and

_{fre}_{,}_{b}_{2}**T**, can also be identified by multiplying all

_{fre}_{,}_{b}_{3}*N*independent

**X**vectors with path matrices that point from ground to their respective bodies. These freedom spaces are also shown in Fig. 5(e). The freedom space of

*b*2 is a red disk of rotation lines and the freedom space of

*b*3 is a single vertical red rotation line as shown.

*A*], possesses as many rows and columns as there are nodes or vertices in the system's graph. The component in row

*h*and column

*u*of the matrix is 1 if the body labeled

*h*(i.e.,

*bh*) is joined to the body labeled

*t*(i.e.,

*bu*) by a compliant joint. Otherwise, the component will be zero. The adjacency matrix, [

*A*] of the graph in Fig. 5(c) is

Once the system's adjacency matrix has been identified, this matrix can be fed to the Dijkstra's algorithm to find the shortest path between the vertex that corresponds with the grounded body and the vertex that corresponds with the rigid body of interest. This path can then be used to generate the best path matrix for rapidly calculating the body's freedom space.

Thus, the systematic mobility analysis approach of this section is summarized by the following seven steps:

*Step 1*: Identify the freedom spaces of a system's compliant or rigid joints.

*Step 2*: Use these freedom spaces to create their corresponding joint-freedom-topology matrices (i.e., [*jft*]_{ps}_{e}).

*Step 3*: Construct the incidence matrix, [*C*], using a simplified graph of the system.

*Step 4*: Construct the system's freedom-topology matrix, [*FT*], by inserting the matrices of step 2 into their corresponding columns within the transpose of the left null space of the matrix in step 3.

*Step 5*: Find the system's *N* independent **X** vectors by taking the null space of [*FT*] from step 4.

*Step 6*: Use the system's adjacency matrix, [*A*], in conjunction with Dijkstra's algorithm to construct the optimal path matrix, [*P*], that leads from the system's ground to the body of interest (usually the stage).

*Step 7*: Multiply the path matrix in step 6 with all *N* of the **X** vectors from step 5 and linearly combine the resulting twist vectors to generate the freedom space of the body of interest.

Note that although the freedom spaces of the compliant joints, ps1 through ps5, of the case study of Fig. 5(a) are all the same type of freedom space, the approach of this paper works for general systems with any variety of different compliant-joint freedom spaces.

### Constraint-Space-Based Approach to Mobility Analysis.

This section introduces an alternate but complementary constraint-space-based approach to the freedom-space-based approach introduced in Sec. 4.1 for performing the mobility analysis of general flexure systems. Another way to determine the freedom space of a flexure system's stage is to first identify the constraint spaces of each set of flexure elements (i.e., compliant joints) that join the system's rigid bodies together. The respective constraint spaces, **W _{con}_{,}_{ps}_{1}** through

**W**, of the compliant joints, ps1 through ps5, in the example of Fig. 4(c) can each be calculated by individually inserting their complementary freedom spaces,

_{con}_{,}_{ps}_{5}**T**(i.e., Eq. (14)) through

_{fre}_{,}_{ps}_{1}**T**, found previously and depicted in Fig. 5(a), into Eq. (4). These resulting constraint spaces coincidentally look similar to their complementary freedom spaces (Fig. 5(a)) except for the fact that their planes are blue instead of red because they consist of force lines instead of rotation lines, and they possess orthogonal black moment lines with circular arrows about their axes instead of black translation arrows (Figs. 2(d) and 2(e)). Thus, for the same coordinate system shown in Fig. 5(b) but with the independent twist vectors labeled

_{fre}_{,}_{ps}_{5}**T**though

_{1}**T**replaced by independent wrench vectors labeled

_{6}**W**though

_{1}**W**, the constraint space of ps1,

_{6}**W**, can be mathematically modeled using Eq. (14) where

_{con}_{,}_{ps}_{1}**T**is replaced by

_{fre}_{,}_{ps}_{1}**W**,

_{con}_{,}_{ps}_{1}*n*is replaced by

*m*,

*i*is replaced by

*j*,

**T**is replaced by

_{i}**W**,

_{j}*ω*

_{1}is replaced by

*f*

_{1},

*ω*

_{2}is replaced by

*f*

_{2},

*v*

_{3}is replaced by

*τ*

_{3}, [

*jft*]

_{ps}

_{1}is replaced by [

*jct*]

_{ps}

_{1}, and

**x**is replaced by

_{ps}_{1}**y**. The matrix [

_{ps}_{1}*jct*]

_{ps}

_{1}is called the joint-constraint-topology matrix of the parallel subsystem ps1 and is defined according to Eq. (15) where [

*jft*]

_{ps}

_{1}is replaced by [

*jct*]

_{ps}

_{1}, and

**y**is the load magnitude vector of ps1 defined according to Eq. (16) where

_{ps}_{1}**x**is replaced by

_{ps}_{1}**y**, and

_{ps}_{1}*ω*

_{1},

*ω*

_{2}, and

*v*

_{3}are replaced by

*f*

_{1},

*f*

_{2}, and

*τ*

_{3}, respectively. Thus, by identifying the

*m*independent wrench vectors within each compliant joint's constraint space, all the system's joint-constraint-topology matrices, [

*jct*]

_{ps}

_{1}through [

*jct*]

_{ps}

_{5}, can be constructed similar to the system's joint-freedom-topology matrices, [

*jft*]

_{ps}

_{1}through [

*jft*]

_{ps}

_{5}, in Sec. 4.1.

Note that, unlike the example of Fig. 5, the constraint spaces of most flexure-systems' compliant joints are significantly different in appearance from their complementary freedom spaces (e.g., Figs. 2(g), 2(h), 3(c) and 3(d)). Furthermore, these constraint spaces typically consist of different numbers, *m*, of independent wrench vectors than the numbers of independent twist vectors, *n* = 6 − *m*, that constitute their complementary freedom spaces. Thus, their 6 × *n* joint-freedom-topology matrices and their 6 × *m* joint-constraint-topology matrices are typically different sizes and consist of different components. The case study example of Fig. 5 with coincidentally identical joint-freedom-topology matrices and joint-constraint-topology matrices was selected to simplify this paper's mathematics and to condense its length.

*jct*]

_{ps}

_{1}through [

*jct*]

_{ps}

_{5}, and their corresponding load magnitude vectors,

**y**through

_{ps}_{1}**y**, have been constructed, they can be used to calculate the freedom space of the system's stage. To do this, imagine loading each of the system's rigid bodies, labeled

_{ps}_{5}*b*1 through

*b*4 in Fig. 5(a), with external wrench vectors,

**W**through

_{b}_{1}**W**, respectively. For the flexure system to be in static equilibrium, the compliant joints surrounding each of the system's rigid bodies would need to resist their corresponding external load. In other words, the external loads imparted on each rigid body subtracted by the loads within their surrounding parallel-subsystem constraint spaces must equal zero according to

_{b}_{4}**W**through

_{con}_{,}_{p}_{1}**W**instead of

_{con}_{,}_{p}_{5}**T**through

_{fre}_{,}_{p}_{1}**T**, respectively. Just as Eq. (19) can be reformulated as Eq. (20) in Sec. 4.1, Eq. (29) can also be reformulated according to

_{fre}_{,}_{p}_{5}*CT*] is called the system's constraint-topology matrix and

**Y**is a vector that contains the system's load magnitude vectors,

**y**though

_{ps}_{1}**y**. Note that a system's [

_{ps}_{5}*CT*] matrix contains as many rows as there are rigid bodies within the system multiplied by six and as many columns as the number of independent wrench vectors within each of the system's compliant-joint constraint spaces summed together. The sign of each joint-constraint-topology matrix within the system's constraint-topology matrix is positive if its corresponding arrow in the graph of Fig. 5(c) points into the rigid body that corresponds with the row within which the join-constraint-topology matrix resides in the [

*CT*] matrix. Otherwise, if the arrow points away from the rigid body, the sign is negative. It is most significant to note that the [

*CT*] matrix defined in Eq. (30) is the transpose of the system's incidence matrix defined in Eq. (21) with the system's joint-constraint-topology matrices, [

*jct*]

_{ps}

_{1}through [

*jct*]

_{ps}

_{5}, inserted within their respective columns. This observation is not coincidental to this example, but is true for all flexure systems.

*b*4, in the example of Fig. 5(a), where body

*b*1 is the fixed ground. To do this, imagine only loading the body of interest, (i.e., the stage) with an external wrench vector,

**W**. To maintain static equilibrium, the grounded body,

_{b}_{4}*b*1, would be loaded with an equal but opposite wrench vector

**W**= −

_{b}_{1}**W**to keep it from moving. Since the other bodies within the system are not loaded,

_{b}_{4}**W**and

_{b}_{2}**W**in Eq. (30) are zero vectors. If we then eliminate the rows within Eq. (30) that do not correspond with those unloaded bodies, the resulting equation is

_{b}_{3}*B*

_{b}_{2}

_{,b}_{3}] is called a rigid-body matrix that only contains the rows in the system's constraint-topology matrix that corresponds with body

*b*2 and

*b*3 in the system, and

**Y**is the null space of that particular rigid-body matrix. The number of independent vectors within that null space,

_{b}_{2}_{,b}_{3}*M*, is the number of independent load-magnitude combinations that could be imposed throughout the compliant joint topology of the system to keep bodies

*b*2 and

*b*3 in static equilibrium in response to the loaded body of interest. Thus, if another rigid-body matrix, [

*B*

_{b}_{4}] is extracted from the row within the system's constraint-topology matrix (i.e., Eq. (30)) that corresponds with the loaded body of interest (i.e., the stage

*b*4) according to

and this matrix is multiplied by all *M* of these independent vectors, **Y _{b}_{2}_{,b}_{3}**, another set of independent vectors are generated. If the resulting

*M*vectors are linearly combined, the constraint space of the stage,

**W**, is determined. Note from the last row's corresponding equation in Eq. (30) that the load

_{con}_{,}_{b}_{4}**W**applied to the stage must lie within the stage's constraint space,

_{b}_{4}**W**, for the system to achieve static equilibrium. This insight is further confirmed by the fact that the theory of this paper models flexure elements as ideal constraints that can only impart loads in certain directions but not in others. Once the constraint space of the stage,

_{con}_{,}_{b}_{4}**W**, is known, Eq. (4) can be used to calculate the stage's freedom space,

_{con}_{,}_{b}_{4}**T**, to complete the system's mobility analysis.

_{fre}_{,}_{b}_{4}The systematic constraint-space-based mobility analysis approach can thus be summarized according to the following steps:

*Step 1*: Identify the constraint spaces of a system's compliant or rigid joints.

*Step 2*: Use these constraint spaces to create their corresponding joint-constraint-topology matrices (i.e., [*jct*]_{ps}_{e}).

*Step 3*: Construct the incidence matrix, [*C*], using a simplified graph of the system.

*Step 4*: Construct the system's constraint-topology matrix, [*CT*], by inserting the matrices of step 2 into their corresponding columns within the transpose of the matrix in step 3.

*Step 5*: Create a rigid-body matrix, [*B*], containing the rows of the [*CT*] matrix from step 4 that correspond with the system's bodies that are not the chosen ground and body of interest (usually the stage).

*Step 6*: Find the *M* independent **Y** vectors that constitute the null space of the rigid-body matrix from step 5, and then multiply all of these vectors with another rigid-body matrix, [*B*_{body-of-interest}], containing the row of the [*CT*] matrix from step 4 that corresponds with the body of interest.

*Step 7*: Linearly combine the resulting *M* wrench vectors from step 6 to generate the constraint space of the body of interest and then use Eq. (4) to calculate the body's complementary freedom space.

## General Flexure-System Constraint Analysis

This section introduces a new way to utilize the principles of Sec. 4 to rapidly perform the constraint analysis of general flexure systems—including those that are interconnected hybrid. Constraint analysis is the process by which designers determine whether a flexure system is under-constrained or not and whether the system is over-constrained or exactly constrained. Both of these constraint characteristics depend on which bodies within the system are chosen as the system's stage, intermediate bodies, and ground.

A system is under-constrained [2,38,50] if it possesses intermediate bodies that are not fully constrained (i.e., the intermediate bodies possess unconstrained DOFs) when the system's chosen stage is held fixed with respect to its chosen ground. Under-constraint occurs when subsystem's stacked in series possess redundant DOFs. Although an under-constrained system can typically achieve larger ranges of motion without yielding, such systems are prone to unwanted vibrations along directions that cannot be controlled by system actuators.

A system is over-constrained [2,38,50] if it possess elements or subsystems that are redundant (i.e., they do the same job of constraining a particular DOF or set of DOFs as another element or subsystem within the system). A system is exactly constrained if it is not over-constrained. Although over-constrained systems can exhibit some beneficial characteristics (e.g., increased symmetry, thermal stability, stiffness, and load capacity), exactly constrained systems are preferable for precision applications where repeatability is of greatest importance.

### Determining Whether a System is Under-Constrained.

A general system is not under-constrained if the number of independent twist vectors within the freedom space of its stage equals the number of system DOFs (i.e., *N* independent **X** vectors defined in Eq. (24) from Sec. 4.1). If *N* is larger than this number, the system is under-constrained. The system in Fig. 5(e) is not under-constrained if *b*4 is chosen as its stage and *b*1 is chosen as its ground because the freedom space of *b*4 possesses three independent twist vectors and *N* = 3 in the example system. Thus, if *b*4 is held fixed with respect to the ground *b*1, the system's other rigid bodies are also unable to move. If, however, *b*3 is defined as the system's new stage and *b*1 remains its ground, the system would be under-constrained because the freedom space of *b*3 only possesses one independent twist vector. Thus, if *b*3 is held fixed with respect to the ground *b*1, two other system DOFs will remain unconstrained, allowing *b*2 and *b*4 to move in an uncontrolled way. Note that no rigid-body freedom space can ever possess more independent twist vectors than system DOFs (i.e., *N*) and *N* minus the number of independent twist vectors within the freedom space of the system's chosen stage will be the number of system DOFs that are not properly constrained.

### Determining Whether a System is Exactly or Over-Constrained.

A general system is exactly constrained if the number of independent wrench vectors within the constraint space of its stage equals the number of independent wrench vectors, *M*, within the null space, **Y**, of the rigid-body matrix defined in Eq. (31) from Sec. 4.2 that contains the rows of the system's constraint-topology matrix that correspond with the system's intermediate rigid bodies (i.e., not its stage and ground). If *M* is larger than the number of independent wrench vectors within the chosen stage's constraint space, the system is over-constrained. The system in Fig. 5(e) is exactly constrained if *b*4 is chosen as its stage and *b*1 is chosen as its ground because the constraint space of *b*4 possesses three independent wrench vectors and *M* = 3 in the example system. If *b*3 is defined as the system's new stage and *b*1 remains its ground, the system would still be exactly constrained because the constraint space of *b*3 possesses five independent wrench vectors and the new system's *M* would also be five. Note that no rigid-body constraint space can possess more independent wrench vectors than *M* and *M* minus the number of independent wrench vectors within the constraint space of the system's chosen stage is the number of redundant constraints in the system.

## Conclusions

Systematic steps have been provided that enable the automated mobility and constraint analysis of general flexure systems of any complexity including those classified as interconnected hybrid flexure systems. The theory underlying these steps utilizes screw algebra, graph theory, and simple linear matrix-based calculations to rapidly determine the freedom spaces of thousands of rigid bodies that are joined together by compliant joints of any geometry. Principles of under-constraint and over-constraint are revised in the context of interconnected hybrid flexure systems and a case study is performed to demonstrate the theory's utility.

## Acknowledgment

This work was supported in part by the Air Force Office of Science Research under award number FA9550-15-1-0321. Program officer Byung “Les” Lee is gratefully acknowledged.