Function Generation and the Freudenstein Equation.

Background and History

The Freudenstein Equation is applied to a Four-bar Mechanism.

It is often of engineering importance to design (synthesise) a four-bar mechanism that gives angular positions of an output part (usually a oscillating shaft) that are a function of the angular positions of the input part (usually a oscillating shaft).

This is called 'Function Generation'. The mechanism is called a 'Function Generator'.

Example Functions that you might want to generate are: y = sin(x) , y = 1/x , y = x2 , y = 1 / x2, y = ex , y = log10x

The first step is generate a table in which the input and output shaft angles are specified from the mathematical function.

In this tutorial, you must use Excel®, or equivalent, to calculate the input and output shaft angles. You then select three 'precision points' from the table. The 'Precision Points' are those angles that you want the input and out shaft to match exactly.

The angles of the shafts at other angles, will not necessarily, usually, be exactly same as those in the table. You can minimize the differences by cleverly choosing the three precision-points.

Freudenstein Equation- Input to Output Motion and Function Generation

The 'Standard' Image to show the input and output shafts and variables mapped onto the shaft rotations.

The Freudenstein Equation

Freudenstein published a famous paper in 1955 that gave the equation to calculate the lengths of each part in a four-bar mechanism to give functional relationship between the input and output shafts.

The Freudenstein Equation is:

K1cosΦ + K2cosΨ + K3 = cos ( Φ - Ψ ) .... Freudenstein 's Equation

Where:

Φ = angle of input shaft relative to the frame; Ψ = angle of output shaft relative to the frame

K1 = r1/r4 ; K2 = r1/r2 ;   K3 = r32 - r12 - r22 r42 /2r2r4

r1 = length of frame Part; r2 = length of input Part; r3 = length of coupler Part; r4 = length of output Part

Find a solution for the three unknowns, K1, K2 are K3, by entering three sets of input and output shaft angles (Φii) ; i = 1,2,3.

An Example of Four-bar Function Generation

The Function

Let us say we want a mechanism where the output shaft rotates as a function of the input shaft with the following functional relationship:

 

y = log10(x) ....the 'Function'.

Map the x and y values of the mathematical function on to link angles.

Freudenstein Image - Function Generation

The range for the independent x and the dependent y values are not suitable to use as joint angles for the input and output shafts. Why is this?

Are the angles degrees or radians? A range of angles for x from 1º to 2º, will give an output for y as 0º to 0.3010º. Are these suitable values? Probably not.

We must 'map' the x values to Φ values, and y values to Ψ values.

The process of finding suitable shaft angles,Φ and Ψ , for a function value, x and y, is called Mapping.

We must map three values of x onto three values for Φ - the input shaft angle

We must map three values of y onto three values for Ψ - the output shaft angle

Why three? Because, in the Freudenstein Equation there are three parameters, K1, K2 are K3. To find three unknowns, we need three simultaneous equations.

Function y = log10x

Start

End

Range in to Function (xs, xf)

1.0

2.0

Range of Input Angles (Φs, Φf)

40

100

Range of Output Angles (Ψf, Ψs)

-5.6

54.39

Given the Values in the Table above, we can calculate the corresponding input and output shaft angles at each point between the Start and End of the X range. Use Equation 1 and Equation 2 - see right ...>>>

The Table below gives the numbers for 10 Points from 1.0 to 2.0. We only need three Points. Which three Points?!?

Input (x) to Function

Input (Ф) Angle

Output (y) from Function

y = log10x

Output (Ψ) Angle

1.00

40.0000

0.0000

-5.6000

1.10

46.0000

0.0414

2.6488

1.20

52.0000

0.0792

10.1794

1.30

58.0000

0.1139

17.1069

1.40

64.0000

0.1461

23.5208

1.50

70.0000

0.1761

29.4919

1.60

76.0000

0.2041

35.0775

1.70

82.0000

0.2304

40.3244

1.80

88.0000

0.2553

45.2713

1.90

94.0000

0.2788

49.9507

2.00

100.0000

0.3010

54.3900

Input Shaft Angles

To get three angles, Φi (i=1, 2, 3) we can use the equation:

Φi - Φs / Φf - Φs  = xi - xs / xf - xs ..... Equation 1

We can transpose this to calculate Φi , the angle of the input shaft that corresponds to the value xi.

You must specify three values for xi within the range xs to xf .


To use Equation 1 , you must also specify:

Φs = Start Angle of the Input shaft

Φf  = End Angle of the Input Shaft

xf  = Maximum value of x at which to calculate yf

xs = Minimum value of x at which to calculate ys


Output Shaft Angles

To get three angles, Ψi (i=1, 2, 3) , we can use the equation:

Ψi - Ψs / Ψf - Ψs  = yi - ys / yf - ys .... Equation 2

We can transpose this to calculate Ψi , the angle of the output shaft that corresponds to the value yi.

Calculate three values of yi  at the related three values for xi .

Calculate yf and ys . Use the Function, and xf and xs .


To use Equation 2 , you must also specify:

Ψs  = Start angle of the Output shaft

Ψf  = End Angle of the Output Shaft


Note, that the values in the table to the left are dependent on six values you choose for: xf , xs , Φs , Φf , Ψf , Ψs

Some experience may be necessary to choose them.

We only need three Points. Which three Points?!?

Precision Points and Chebyshev Spacing

Precision Points

A Precision Point is an angle we give to the input shaft at which we precisely get the output shaft angle.

We can choose three arbitrary values for the input to the function.

How do we select the three Precision Points , x1-3

The selections might be:

x1-3 = 1.0, 1.5, 2.0. Given y = log10x, then , y1-3 = 0.0, 0.1761, 0.3010

x1-3 = 1.0, 1.1, 2.0. Given y = log10x, then , y1-3 = 1.0, 0.0414, 0.3010

The selections are endless. What would make a good selection?

There are two general cases. You might want to make a selection:

A.Without regard to other positions within the range
B.With regard to the other positions within the range

In the case B, you can look to minimise the RMS of the error between the actual angles and the real angles of the output shaft, over the actual range . This error is called the 'RMS Structural Error'.

Chebyshev's Spacing

'Chebyshev Spacing' gives us a good first estimate for the three choices we can make for x as the input, to get the corresponding y values.

Position

Input (x) to Function

Input (Ф) Angle

Output (y) from Function

Output (Ψ) Angle

1

1.0669

44.0140

0.0281

0.0046

2

1.5

70.0000

0.1761

29.4919

3

1.933

95.9800

0.2862

51.4410

2-1

Ф2 - Ф1 = 25.9860

Ψ2 - Ψ1 = 29.4873

3-2

Ф3 - Ф2 = 25.9800

Ψ3 - Ψ2 = 21.9491

Without explanation, I can tell you that 'Chebyshev Spacing' suggests the values we should choose for x, to minimise 'Structural Errors', when the x range is 1–2, are:

x1 = 1.0667, to give a Input Shaft Angle of 44.0141

x2 = 1.5, to give a Input Shaft Angle of 70.0000

x3 = 1.933, to give a Input Shaft Angle of 95.98

The corresponding values for y are:

y1 = 0.0280, to give a Output Shaft Angle of 0.0045

y2 = 0.1761, to give a Output Shaft Angle of 29.4919

y3 = 0.2862, to give a Output Shaft Angle of 51.4410

Solving for Link Lengths

Now we have the actual angles for the Input Shaft and the Output Shafts, we can findr the Link Lengths.

We have two methods:

Method 1

Use the three different angles for the input and output shafts calculated at the Chebyshev Spacing, in the Freudenstein Equation.

K1cosΦ1 + K2cosΨ1 + K3 = cos ( Φ1 - Ψ1 )

K1cosΦ2 + K2cosΨ2 + K3 = cos ( Φ2 - Ψ2 )

K1cosΦ3 + K2cosΨ3 + K3 = cos ( Φ3 - Ψ3 )

Method 2

Use the Constraint Based Sketch Editor in MechDesigner!

Use MechDesigner to find the Length of the Input, Output and Coupler Parts.

We can use the Constraint Based Sketch Editor to find the link lengths.

In the Part-Editor we find the lengths of lines. We then map these lengths on to Parts in the Mechanism-Editor

Freduenstein-Constraint Based Programming

In the Part-Editor...

Add a Part for the Frame. Make it fixed length, say 100mm

This is the 'Frame' in the Mechanism.

Freduenstein-Constraint Based Programming 2

Add three Lines, starting at the left of the Line. They represents the input shaft / Part.

Use the Equal Constraint tool, to make the three Lines equal length.

Add three Lines starting at the right of the Line. They represents the output shaft / Part.

Use the Equal Constraint tool, to make the three Lines equal length.

The values in the table we have calculated for the angles of the Input Shaft and the Output Shaft increase together in the same rotation direction.

Therefore, think of the Lines as 1 to 3 in the counter-clockwise directions.

Freduenstein-Constraint Based Programming 3

Add the Angular Dimensions between the first and second Lines on the Input Shaft (25.986)

Add the Angular Dimensions between the second and third Lines on the Input Shaft (25.986)

Add the Angular Dimensions between the first and second Lines on the Output Shaft (29.4873)

Add the Angular Dimensions between the second and third Lines on the Output Shaft (21.9491)

Freduenstein-Constraint Based Programming 4

Add a 'Coupler' Line between the Line 1 on the input shaft and Line 1 on the output shaft.

Then, a different Line between the Line 2 on the input shaft and Line 2 on the output shaft.

Then a different Line between the Line 3 on the input shaft and Line 3 on the output shaft.

Make the three Coupler Lines equal length with the Equal Constraint tool.


At this Point, the Mechanism is acting as a Function Generator. However, we can also specify the Start Angles of the Input and Output Parts.


Freudenstein Function Generation - 3 Postion Synthesis

Add the Angular Dimensions between the first Line at the input shaft and the Frame (44.0140)

Add the Angular Dimension between the first Line at the output shaft and the Frame (0.0046)

The sketch goes black to indicate it is fully defined. Unfortunately, in the Part-Editor, you cannot add dimensions to find the lengths of the Lines.

However, we can add Measurement FBs in the Mechanism-Editor.

If you do not want to give the initial angles to the Input Part and the Output you can give leave them unspecified. Then you can add four and five positions for the Input and Output Shafts.

Freduenstein-Constraint Based Programming 4

The Length of the Frame Part is 100mm.

In the Mechanism-Editor, we can find the:

Length of the Input Part is 97.44
Length of the Output Part is 216.67
Length of the Coupler is 255.71

You can scale the length of the Parts to give the size of the mechanism you need for your application.

Freduenstein-Constraint Based Programming 6

Five Position Function Generation.

If you do not specify the Initial Angles of the mechanism, and possibly leave one of the angles free, it is possible to add two more positions to the Function Generator.

The image to the left shows five positions.

Tutorial and Reference Help Files for MechDesigner and MotionDesigner 13.2 + © Machine, Mechanism, Motion and Cam Design Software by PSMotion Ltd