 Application Center - Maplesoft

# Torus pipe Developing

You can switch back to the summary page by clicking here. Torus pipe Developing

Branko Malesevic
Faculty of Electrical Engineering
University of Belgrade, Serbia
malesevic@etf.bg.ac.yu

Faculty of Technical Sciences
University of Novi Sad, Serbia

Introduction

In this paper a calculation which gives a possibility to make a torus pipe from plain piece of material (usually a piece of metal) is shown. There is only one parallel which does not have any deformation during making torus pipe. Each other torus parallel has plastic deformations and we can calculate deformation of each parallel.

From mathematics point of view the measurement of deformations of torus parallels (circles normal to torus' axis) was determined. Namely, a possibility for torus developing is given.  By using some plastic deformation we can transform this plain piece of metal (developing torus) from 2D to 3D, i.e. we can make a torus pipe.

Surface area of the part of the torus & area of the annulus sector

Let R0 be the great radius and let r be the small radius of a torus. Using polar coordinates, we can transform one quarter of annulus P[0;R0-r,R0+r] (see 2D figure) to the lower  part of torus which is in the first octant (see 3D figure).

 > restart;

 > with(linalg):

 Warning, the protected names norm and trace have been redefined and unprotected

 > assume(R0>r,r>0);

Surface area of the part of the torus.

 > z:=(x,y)->r-sqrt(r^2-(R0-sqrt(x^2+y^2))^2); (2.1)

 > printf("\n   Torus' great radius is R0");printf("\n   Torus' small radius is r");printf("\n");

 Torus' great radius is R0

 Torus' small radius is r

 > G:=(x,y)->simplify(sqrt(1+(diff(z(x,y),x))^2+(diff(z(x,y),y))^2)); (2.2)

 > g:=rho->algsubs(x^2+y^2=rho^2,G(x,y)); (2.3)

 > simplify(g(rho)); (2.4)

One eighth of surface area of the torus :

 > Int(Int(rho*g(rho),rho=R0-r..R0+r),phi=0..Pi/2); (2.5)

 > A:=int(int(rho*g(rho),rho=R0-r..R0+r),phi=0..Pi/2); (2.6)

Surface area of outer part:

 > Int(Int(rho*g(rho),rho=R0..R0+r),phi=0..Pi/2); (2.7)

 > A1:=int(int(rho*g(rho),rho=R0..R0+r),phi=0..Pi/2); (2.8)

Surface area of inner part:

 > Int(Int(rho*g(rho),rho=R0-r..R0),phi=0..Pi/2); (2.9)

 > A2:=int(int(rho*g(rho),rho=R0-r..R0),phi=0..Pi/2); (2.10)

Lemma 1:

 > A=A1+A2; (2.11)

 > printf("\n   Plane radius is R_:");R_:=(r*Pi)/2;

 (2.12)

 Plane radius is R_: (2.12) (2.12)

Area of the annulus sector:

 > B:=((R0+R_)^2-(R0-R_)^2)*Pi/4; (2.13)

Area of  the outer part:

 > B1:=((R_+R0)^2-(R_)^2)*Pi/4; (2.14)

Area of the inner part:

 > B2:=((R_)^2-(R_-R0)^2)*Pi/4; (2.15)

Lemma 2:

 > B=B1+B2; (2.16)

Statement:

 > A=B; (2.17)

Partial deformations:

 > A1/B1; (2.18)

 > simplify(A1/B1); (2.19)

 > A2/B2; (2.20)

 > simplify(A2/B2); (2.21)

 > with(plots):

 Warning, the name changecoords has been redefined

3-D Drawing

 > r:=1; (2.1.1)

 > R0:=2; (2.1.2)

 > printf("\n   Condition of existence R0 - r := %1.2f > 0 ?",R0-r);printf("\n");

 Condition of existence R0 - r := 1.00 > 0 ?

 > printf("\n   Torus' great radius is R0 := %1.2f",R0);printf("\n   Torus' small radius is r := %1.2f",r);printf("\n");

 Torus' great radius is R0 := 2.00

 Torus' small radius is r := 1.00

 > printf("\n   R0 : r = %1.2f : %1.2f",R0,r);printf("\n");

 R0 : r = 2.00 : 1.00

 > printf("\n   One eighth of the torus area Pt := %1.2f",((2*Pi*R0)*(2*Pi*r))/8);printf("\n");

 One eighth of the torus area Pt := 9.87

 > N:=5;M:=5; (2.1.3) (2.1.3)

 > printf("\n  One eighth of the torus area has %d*%d=%d cells",N-1,2*M-2,(N-1)*(2*M-2));printf("\n");

 One eighth of the torus area has 4*8=32 cells

 > # interface(plotdevice);plotsetup(cps,plotoutput=`3D-Figure.ps`,plotoptions=`noborder,portrait,width=16cm,height=12cm,shrinkby=0`);

 > for i from 0 by 1 to (N-1) do

 > x[i]:=R0*cos(Pi/2*i/(N-1));y[i]:=sqrt(R0^2-x[i]^2);

 > a1[i]:=plot3d([(x[i]+x[i]*r/R0*cos(t),y[i]+y[i]*r/R0*cos(t),r+r*sin(t))],t=-Pi/2..0,y=0..2*Pi,grid=[100,100],color=black,thickness=2,style=WIREFRAME,axes=NORMAL,tickmarks=[0,0,0],labels=[``,``,``],scaling=CONSTRAINED):

 > a2[i]:=plot3d([x[i]-x[i]*r/R0*cos(t),y[i]-y[i]*r/R0*cos(t),r-r*sin(t)],t=0..Pi/2,y=0..2*Pi,grid=[100,100],color=black,thickness=2,style=WIREFRAME,axes=NORMAL,tickmarks=[0,0,0],labels=[``,``,``],scaling=CONSTRAINED):

 > end do:

 > for j from (-(M-1)) by 1 to 1 do

 > b[j]:=plot3d([(R0+r*sin(Pi/2*j/(M-1)))*cos(t),(R0+r*sin(Pi/2*j/(M-1)))*sin(t),r*(1-cos(Pi/2*j/(M-1)))],t=0..Pi/2,y=0..2*Pi,grid=[100,100],color=maroon,thickness=2,style=WIREFRAME,axes=NORMAL,tickmarks=[0,0,0],labels=[``,``,``],scaling=CONSTRAINED):

 > end do:

 > for j from 1 by 1 to (M-1) do

 > b[j]:=plot3d([(R0+r*sin(Pi/2*j/(M-1)))*cos(t),(R0+r*sin(Pi/2*j/(M-1)))*sin(t),r*(1-cos(Pi/2*j/(M-1)))],t=0..Pi/2,y=0..2*Pi,grid=[100,100],color=blue,thickness=2,style=WIREFRAME,axes=NORMAL,tickmarks=[0,0,0],labels=[``,``,``],scaling=CONSTRAINED):

 > end do:

 > b:=plot3d([R0*cos(t),R0*sin(t),0],t=0..Pi/2,y=0..2*Pi,grid=[100,100],color=black,thickness=2,style=WIREFRAME,axes=NORMAL,tickmarks=[0,0,0],labels=[``,``,``],scaling=CONSTRAINED):

 > display({seq(a1[i],i=0..(N-1)),seq(a2[i],i=0..(N-1)),seq(b[j],j=(-(M-1))..(M-1)),ARR1,ARR2,ARR3},view=[-0.4*R0..2.1*R0,-0.4*R0..2.1*R0,-0.4*r..2.5*r],orientation=[-30,70]); 2D-Drawing

 > R_:=(r*Pi)/2;printf("\n   Plain radius is R_ = %1.2f",R_);printf("\n"); (2.1.1.1)

 (2.1.1.1)

 Plain radius is R_ = 1.57 (2.1.1.1)

 (2.1.1.1)

 > printf("\n   Condition of existence R0 - r*Pi/2 := %1.2f > 0 ?",R0-r*Pi/2);printf("\n");

 Condition of existence R0 - r*Pi/2 := 0.43 > 0 ?

 > printf("\n   Torus' great radius is R0 := %1.2f",R0);printf("\n   Torus' small radius is r := %1.2f",r);printf("\n");

 Torus' great radius is R0 := 2.00

 Torus' small radius is r := 1.00

 > printf("\n   R0 : r = %1.2f : %1.2f",R0,r);printf("\n");

 R0 : r = 2.00 : 1.00

 > printf("\n   Annulus sector area is B := %1.2f",((R0+R_)^2-(R0-R_)^2)*Pi/4);printf("\n");

 Annulus sector area is B := 9.87

 > N:=5;M:=5; (2.1.1.2) (2.1.1.2)

 > printf("\n  Annulus sector has %d*%d=%d cells",N-1,2*M-2,(N-1)*(2*M-2));printf("\n");

 Annulus sector has 4*8=32 cells

 > # interface(plotdevice);plotsetup(cps,plotoutput=`2D-Figure.ps`,plotoptions=`noborder,portrait,width=16cm,height=12cm,shrinkby=0`);

 > c0:=plot([R0*cos(t),R0*sin(t),t=0..Pi/2],numpoints=100,color=black,thickness=2,axes=NORMAL,tickmarks=[0,0],labels=[``,``],scaling=UNCONSTRAINED):

 > for i from 1 by 1 to (N-1) do

 > w[i]:=i/(N-1);

 > c1[i]:=plot([(R0+w[i]*R_)*cos(t),(R0+w[i]*R_)*sin(t),t=0..Pi/2],numpoints=100,color=blue,thickness=2,axes=NORMAL,tickmarks=[0,0],labels=[``,``],scaling=UNCONSTRAINED):

 > c2[i]:=plot([(R0-w[i]*R_)*cos(t),(R0-w[i]*R_)*sin(t),t=0..Pi/2],numpoints=100,color=navy,thickness=2,axes=NORMAL,tickmarks=[0,0],labels=[``,``],scaling=UNCONSTRAINED):

 > end do:

 > for j from 0 by 1 to (M-1) do

 > d[j]:=plot([[(R0-R_)*cos(j/(M-1)*Pi/2),(R0-R_)*sin(j/(M-1)*Pi/2)],[(R0+R_)*cos(j/(M-1)*Pi/2),(R0+R_)*sin(j/(M-1)*Pi/2)]],numpoints=100,color=black,thickness=2,axes=NORMAL,tickmarks=[0,0],labels=[``,``],scaling=UNCONSTRAINED):

 > end do:

 > display({c0,seq(c1[i],i=1..(N-1)),seq(c2[i],i=1..(N-1)),seq(d[j],j=0..(M-1)),ARR1,ARR2},view=[-3*R_..3.5*R_,-3*R_..3.5*R_]); Partial deformations:

 > AA1:=evalf(1/2*r^2*Pi+1/4*R0*r*Pi^2):BB1:=evalf(((R_+R0)^2-(R_)^2)*Pi/4):printf(`\n  A1 = %f`,AA1);printf(`\n  B1 = %f`,BB1);printf(`\n  A1/B1 = %f`,evalf(r*(2*r+R0*Pi)/R0/(R0+r*Pi)));printf(`\n`);

 A1 = 6.505599

 B1 = 8.076395

 A1/B1 = 0.805508

 > AA2:=evalf(1/4*R0*r*Pi^2-1/2*r^2*Pi):BB2:=evalf(((R_)^2-(R_-R0)^2)*Pi/4):printf(`\n  A2 = %f`,AA2);printf(`\n  B2 = %f`,BB2);printf(`\n  A2/B2 = %f`,evalf(r*(R0*Pi-2*r)/R0/(r*Pi-R0)));

 A2 = 3.364006

 B2 = 1.793210

 A2/B2 = 1.875969

 > # AA1+AA2=BB1+BB2;

Conclusions

Torus surface has a great implementation in technique especially in car industry. Problem of connecting two pipes with different axes and same diameter are usual and for its solving we are using pipe with circular axis. Namely, in that case we are using torus pipe or pipe which is made by connecting several torus pipes. We can use torus surfaces for exhaust made in small series in car industry.

Legal Notice: The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities. 