"Human-sized mechs" are a common thing on in society right now, these are an "interesting" alternative to exoskeletons that can snap the spine of its users in half.

They can and are used on logistics, construction sites or just television entertainment with fighting giant mechs.

These Mechs are maximum 2,55 meters (8,3 feet) tall on practical civilian applications, but can exceed that for other reasons.

I'm still looking at the alternatives, but for now I'm trying to calculate/model the McKibben hydraulic membrane actuators (or just artificial muscles) because they are simple, cheap, light and resistant to impacts (since these mechs will be running and falling).

The Problem:

My problem is that I can't find out a way of calculating the dimensions and pressures required for certain applications. I tried actual scientific papers, but throwing their equations on calculators just gives me completely different answers (some times error messages, some times negative numbers).

From what I could calculate from mechanical levers, if I had human-like forearm with 30 cm of length, and the artificial muscles where also 30cm of length, I would need to apply more or less 5 tons of lifting force (if the muscle was attached to the limb in a 20cm distance from the hand) in order to lift 1 ton of weight.

(Don't worry about the mechanical lever implications such as its structural integrity, the question is about the artificial muscles lifting 5 tons by its own).

Illustration demonstrating the mechanical lever of the forearm.

Normally McKibben artificial muscles use pressures around 0,4 MPa (60 PSI), so that's the pressure I normally use to calculate, although I don't know if is a useful amount of pressure or if I should use even less pressure due to its bigger area.

First I thought that I should use the "FPA triangle equation" (the F = P x A or P = F ÷ A), but that are meant for solid hydraulic cylinders, not membrane actuators. Basically, depending on what number you want to find (Force, Pressure or Area), you can use the equation "F = P x A" or "A = F ÷ P".

But I tried to use the area of the insides of the membrane, so I can somewhat calculate the force it will apply.

The specifications of the McKibben Artificial muscle I initially intended for it to have:

  • 5 cm of radius (10cm of diameter) with cylindrical shape. That are the dimensions of both the outer sleeve and the inner bladder, I hope it doesn't make problems.
  • 30 cm of length. Normally McKibben Muscles have a contraction rate of 20%, so I can assume this will shorten in length by 6 cm. But I do not know how much its diameter will expand.
  • The ends of the artificial muscle will be two steel connections, just like in a Festo membrane actuator.

If the McKibben membrane actuator had 5cm of radius with 30cm of length, I would have 1099cm² (170.3 in²) of total area accordingly to this cylinder area calculator.

  • F = P x A
  • F = 60 x 170
  • 10200 pounds (4626,6422 kg).

This is the force applied to the area, but the area I used is the membrane. How to translate it to lifting force?​

The question:

If I want a McKibben Artificial muscle with 30cm of length to lift 5 tons at 0,8 MPa of pressure, what diameter I would need this artificial muscle to have?

  • 1
    $\begingroup$ 10,200 pounds (assuming 3 significant digits) is about 4,630 kg. 4,626.6422 (with 8 obvious significant digits) is 10,200.000 pounds. Are you really intending to calculate the force with a precision of 10 parts per billion? (And I, for one, would be very much more concerned with the strength of the bar of unobtainium representing the radius bone. One ton is a lot of force to apply on the tip of a thin cantilevered bar.) $\endgroup$
    – AlexP
    Dec 11, 2022 at 21:39
  • $\begingroup$ Tha synthetic muscle is called "McKibben" because it is a real artificial muscle. Diameter space for my mecha? I don't know if i understood what you meant correctly, but the idea is for the muscle to lift 5 ton by its own, I didn't add the length of the arms because my focus is on the muscles. $\endgroup$
    – Fulano
    Dec 11, 2022 at 21:53
  • 1
    $\begingroup$ I'm good. Thanks for the clarifications. $\endgroup$
    – JBH
    Dec 11, 2022 at 23:22
  • 1
    $\begingroup$ Seeing a number like that would be very traumatic for a calculator ;D $\endgroup$ Dec 12, 2022 at 3:58
  • 1
    $\begingroup$ pressure will mostly depend on the geometric nature or weave pattern of the muscle fiber, if it can expand from 1 to 1.5 diameter or 1 to 4 diameter for the same shrinking distance, its "reduction ratio" will also vary, like the stroke to bore ratio of an ICE engine $\endgroup$
    – user35577
    Dec 14, 2022 at 15:30

1 Answer 1


The McKibben artificial muscle is made from a cylinder of braided fibers closely surrounding an inner inflatable tube. When the tube is inflated, the cylinder of fibers expands in circumference, meaning that the length of the cylinder shortens.

One way to think of these muscles is that they operate like a lever: the product of the force put in and the distance you apply it over should equal the product of the working force taken out and the distance it acts over. In this case, the input force is given by the product of the gas pressure and the area it applies pressure to, which is the area of the braided cylinder, and the distance it works over is given by the increase in the radius of the cylinder; but this is not quite right because you also have to take into account the decrease in height of the cylinder.

Supposing that the cylinder has height $h$ and volume $V$, is inflated with gas with pressure $P$, and is pulling with force $F$, the principle of virtual work says that

$$ P dV = -F dh. $$

If the filaments that make up the braided cylinder have length $S$, wrap around the cylinder $N$ times, and make an angle of $\theta$ from the vertical, then the circumference of the cylinder equals $(S/N) \sin \theta$, so its radius will be $r=(S/(2\pi N)) \sin \theta$, and its height will be $h=S\cos \theta$. As the cylinder inflates, $\theta$ and $r$ will increase from their initial resting values $\theta_0$ and $r_0$ and $h$ will decrease from its resting value $h_0$, while $S$ and $N$ stay the same. A typical value of $\theta_0$ is $20^\circ$.

Using the formula for the volume of a cylinder, $V=\pi r^2 h$, some mathematical work with the above equations gives you the formula $$ F=P \pi r_0^2 (3( \cot^2 \theta_0) (1-\epsilon)^2 - \csc^2 \theta_0), $$ where $$ \epsilon:=1-\frac{h}{h_0} $$ is the fraction of the muscle's height which has contracted and is 0 at rest (1, (4), p. 19; 2, (7)). This means that you get less and less force as the muscle contracts, until at full contraction it exerts no force.

This formula does not take into account:

  • Friction;
  • stretching of the threads in the braided cylinder;
  • the non-cylindrical shape of the ends of the muscle;
  • energy used in deforming the inflatable tube; or
  • failure of the inner tube to fully conform to the braided outer cylinder.

After doing some experiments, Tondu and Lopez (1, (7), p. 20; see also Figure 7) decided that this formula would be more accurate with a fudge factor $k$ multiplying the contraction: $$ F=P \pi r_0^2 (3 (\cot^2 \theta_0 )(1-k\epsilon)^2 - \csc^2 \theta_0). \qquad \qquad (*) $$ A typical value of $k$ might be $k=1.30$.

Given your specifications of $P=800\ \rm kPa$, $F=49000 \ \rm N$ of around 5 tons, taking $k=1.30$ and $\theta_0=20^\circ$ as above, and assuming you wish to exert the lifing force $F$ even when the muscle has contracted by $\epsilon=0.2$, solving for the radius using (*) gives a rather large value of

$$ r_0=71.1 \ \rm mm. $$ Accepting smaller maximum contraction factors of $\epsilon=0.1$ or $\epsilon=0.05$ would decrease $r_0$ to 47.6 or 41.6 mm.


1: "Modeling and Control of McKibben Artificial Muscle Robot Actuators", Bertrand Tondu and Pierre Lopez, DOI 10.1109/37.833638.

2: $\S$ 4.1.1, "Pneumatic Artificial Muscles: actuators for robotics and automation", Frank Daerden and Dirk Lefeber.

  • $\begingroup$ Hello, I know this is quite late since the date of your answer, but... I did try to make the equation again a few times and I got widly different results. $\endgroup$
    – Fulano
    Feb 21, 2023 at 14:22
  • $\begingroup$ For example, I inserted your 71.1mm radius in the original equation to see if the Newtons would match, but the results are allow billions of newtons. $\endgroup$
    – Fulano
    Feb 21, 2023 at 14:22
  • $\begingroup$ 400*pi71.1^2*(3(cot(20)^2)*(1-1.30*0.2)^2-csc(20)^2) this is the equation I put on scientific calculators on degree mode. $\endgroup$
    – Fulano
    Feb 21, 2023 at 14:24
  • $\begingroup$ (just appearing again to say that although the equation I listed above is incorrect, because the "r" value is receiving the radius value, I actually made the equation again in the correct manner and it still gave a few millions of newtons). $\endgroup$
    – Fulano
    Feb 22, 2023 at 0:27
  • 1
    $\begingroup$ The units all have to match. For example, if you measure $F$ in Newtons, $P$ in Pascals and $r_0$ in meters, you could have approximately $F=49000$, $P=800000$, $r_0=0.0711410$. $\endgroup$ Feb 22, 2023 at 15:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .