Brock Institute for Advanced Studies
P. O. Box 302, RoxburyCT 06783        all rights reserved

Return to the Function Generator animation 

Sensitivity Analysis for a fourbar function generator

1.0 Purpose

As one example of an application of a four-bar linkage, I posted an animated function generator on my Java page. This MathCAD calculation shows how I arrived at the particular geometry I used. The subject mechanism, described in the Encyclopaedia Britannica, 1973, Machines and Machine Components page 11-241, is intended to produce angular displacement of its output link that is proportional to the square of the angular displacement of the input link. Beginning with geometry scaled from the encyclopedia drawing that accompanied the article, I optimized the design with this analysis.

2.0 Geometry

The geometry of the problem is as follows. The input link AC, pivoted at point A, starts at CAB0 and travels counterclockwise 60 degrees. This arc travel represents a range for the input variable X from 1 to 6. The drag link CD follows AC and drives the output link BD, which pivots at point B. While AC swings through its 60 degrees, it is desired that the output link BD swing through an arc (starting at ABD0) of 70 degrees in a way that the angular displacement of BD from its initial position is proportional to the square of the input variable X. The input variable ranges from 1 to 6, so the output variable, Y, ranges from 1^2 = 1 to 6^2 = 36.

Numerical Values









Yes +/- 10.0






Yes +/- 10.0

Travel span for the input link (AC) is 60 degrees. In this arc, the input number (X) is supposed to range from 1 to 6. This gives 12 degrees per input unit. The range of the output arc is to be 70 degrees. In this range, the output (Y, representing the square of the input) should go from 1 to 36. Make it go from 0 to 36 - 2 degrees per unit.

Y = X^2

X = 1 + (1/12)*(BAC0 - BAC)

Y = 1 + (1/2)*(ABD - ABD0)

3.0 Approach

We'll start with the input range. We'll use  to run X over its range from 1..6 while the input angle ranges over , starting at  .

The input angle, then, is:

, and 

We'll fix the distance between AB and the input crank length AC and we'll parameterize the lengths of the drag link CD and the output link BD:


4.0 Solution

First, given the length of the input crank and the input angle, we get the location of point C: , and . We need to calculate the position of D from here, so we need both the angle and length of BC. The length of BC's component along the x-axis is , the angle , and the length of CB is .

Next, owing to some limitations in the way that MathCAD handles arrays that I don't understand, we have to make the 3D array for the angle CBD a function:

The output angle is measured in the usual way - positive counterclockwise from 3 o'clock even though I called it ABD.

At n=0 the output crank is at angular position ABD(0,i,j), and at n=0, the input variable X=1, and the output variable Y=X^2=1. Further, Y should advance one unit for each 2 degrees of arc of the output angle ABD.

The output span, intended to be 70 degrees depends on the parameters:

5.0 Results

First, look at the range of the output angle. That'll give us an idea of how the parameters are related. The desired angle (70 degrees) runs right through the middle of the parameter range, so we must be on the right track.

Then, take a look at Y vs X in the middle of our parametric range at i = j = 2:  and compare it to the target function X^2

If we look at the error relative to the full scale, things look pretty good

Then, look at the parameter map(s). In the contour map below, the error is plotted against the parametric variables. The left side (y) scale is the length of the output link BD. It ranges from 98 +/- 10 = 88 to 108. The horizontal axis (x) represents the length of the drag link CD, which ranges 83 +/- 10 = 73 to 93. The nominal values shown in the table at the beginning fall in the center of the parameter maps

The square root of the sum of the squares of the errors compared to full scale:

6.0 Conclusions

Keep what we've got. The nominal point on the parametric range is right in the fat part of the error performance, so there's not much improvement to be had, given the constraints that I gave myself. We cross the zero error line four times in the operating range, and I think that I could show that we don't have degrees of freedom to get more crossings. We could move the crossings around some to reduce the peaks by loosening up on some of the constraints (e. g. starting at (1, 1) and leaving ab, ac unparameterized), but the magnitudes aren't going to change that much.

7.0 Publishing

A secondary purpose for publication of this analysis is to experiment with putting technical articles on the web. I used MathCAD to do the calculations and generate the graphs; I exported the MathCAD analysis as an *.rtf (rich text format) file that I then loaded into Microsoft Word. After cleaning it up some, I used Microsoft Internet Assistant from within Word to convert to HTML.

The conversion results in a fairly legible document, but the equations and the graphs each have their own GIF file, almost 40 in all. On the one hand, the upload is tedious in the extreme, but the fact that it's possible at all is amazing. 

Return to the Function Generator animation 

Return to the top of the Brock Engineering home page.
Your comments and suggestions are welcomed.
07-09-03 3:55 PM