You are on page 1of 61

FACULTY MECHANICAL, MARITIME AND

MATERIALS ENGINEERING
Delft University of Technology Department Marine and Transport Technology

Mekelweg 2
2628 CD Delft
the Netherlands
Phone +31 (0)15-2782889
Fax +31 (0)15-2781397
www.mtt.tudelft.nl

Specialization: Transport Engineering and Logistics

Report number: 2017.TEL. 8146

Title: A calculation tool aiding


the design of pipe conveyors

Author: S.A.Stammes

Title (in Dutch) Een berekenende tool voor het design van Pipe Conveyor systemen.

Assignment: Research Assignment

Confidential: No

Initiator (university): Delft University of Technology

Supervisor: Dr. ir. Y. Pang

Date: July 17, 2017

This report consists of 44 pages and 2 Appendices. It may only be reproduced literally and as a whole. For
commercial purposes only with written authorization of Delft University of Technology. Requests for consult are
only taken into consideration under the condition that the applicant denies all legal rights on liabilities concerning
the contents of the advice.
TUDelft
Delft University of Technology
FACULTY OF MECHANICAL, M A R I T I M E AND
MATERIALS ENGINEERING
Department of Marine and Transport Teclinology

Mekelweg 2
2628 CD Delft
the Netherlands
Phone +31 (0)15-2782889
Fax -H31 (0)15-2781397
www.mtt.tudelft.nl

Student: Sergej Stammes Assignment type: Computer Assignment


Supervisor: Dr. ir. Y. Pang Report number: 2017.TEL.8146
Specialization: TEL Confidential: NO
Creditpoints (EC): 15

Subject: A calculation tool for the design of pipe conveyors

The principle and the calculation of designing various belt conveyors have been taught in WB3420 and
WB3421. In industry practice the current design of pipe conveyor systems is mainly based on the
design principles of conventional belt conveyors. To design a pipe conveyor, empirically derived
formulas can be used to determine the throughput, tension, power consumptions and operating costs.
With varying input characteristics it is difficult to rapidly determine the pipe conveyor configuration,
therefore calculation tools and applications come in handy.

This assignment is to develop a calculation tool that is able to rapidly aid the design applications of
pipe conveyor systems. Further, the knowledge of designing pipe conveyors should be able to be
shared with the applications of the developed calculation tool via an internet environment. The
research in this assignment should cover the following:

• An overview of the design formulas available for pipe conveyor systems.


• A calculation model and model requirements (variables, criteria, cost, etc.) to determine the
key parameters;
• Verification of the calculation model;
• Advanced programming to develop a calculation tool that meets the requirements;
• A report that presents the calculation model, the implementation of the application and the
verification of the results of the calculation tool.

The report should comply with the guidelines of the section. Details can be found on the website.

The mentor,
A calculation tool aiding
the design of pipe con-
veyors

S.A.Stammes
Technische Universiteit Delft
A calculation tool aiding the design
of pipe conveyors

by

S.A.Stammes

in partial fulfillment of the requirements for the degree of

Master of Science
in Mechanical Engineering

at the Delft University of Technology,

Supervisor: Dr. ir. Y. Pang


Summary
Recently, pipe conveyor systems have gained popularity since pipe conveyors can replace multiple belt
conveyor combinations, have less transfer points and provide dust-tight enclosure. To increase rapid
design of conveyor systems, calculation tools have been created and published online.
For pipe conveyor systems there currently are no smart calculation tools available. There are a few
tools online that calculate basic parameters, but there is no integrated system that determines the key
features needed to design a pipe conveyor system.
The purpose of this research assignment is to design a smart pipe conveyor calculation tool that is
simple to use, easy to understand and can handle varying input characteristics in a rapid way. The
main research question of this research computer assignment is:
How can a computational tool be designed and programmed to aid the design of pipe conveyor systems?
The pipe conveyor calculation tool is made as an application for iPhone and Android so that everyone can
conveniently use it while designing the systems. The application is secured through a sign-in solution
for privacy purposes and connected to a real-time database, so previous calculation parameters and
solutions can be saved. The application is able to calculate:
• Throughput
• Belt Width
• Running resistance with load
• Running resistance without load
• Tension in belt
• Tension at any point
• Power
• Operating Cost
The calculations are based on literature research using formulas that are empirically or mathematically
deduced. The formulas are based on conveyors in general and deduced for a pipe conveyor situation,
the coefficients used in the formulas are empirically determined.
The pipe conveyor calculation tool is implemented using future-proof, efficient technologies like An-
gular4, Ionic and TypeScript, compiled to native Swift and Java code using the Open Source, Apache
Cordova project as the compilation framework.
This research paper aims to guide through the development process of a pipe conveyor calculation
application. This paper covers the process from literature research to the final development and veri-
fication of the calculation method used in the calculation model.

iii
Summary (Dutch)
Recentelijk hebben pipe conveyor systemen meer populariteit verkregen doordat pipe conveyor sys-
temen verschillende lopende band systemen kunnen vervangen, er minder transfer punten zijn en er
een stofdichte verplaatsing van materiaal mogelijk is. Om het snelle design van deze band systemen
te kunnen vergemakkelijken zijn er berekentools gecreëerd en online gepubliceerd.
Voor pipe conveyor systemen zijn er momenteel geen slimme berekentools beschikbaar. Er zijn een
paar online rekenmethodes beschikbaar die basale parameters kunnen berekenen, maar er is geen
geïntegreerd systeem dat de hoofdbestanddelen kan berekenen die nodig zijn voor het design van een
pipe conveyor systeem.
Het doel van deze research opdracht is om een slimme pipe conveyor berekentool te ontwerpen die
makkelijk is in het gebruik, die simpel is te begrijpen en die met een variërende input karakteristiek om
kan gaan op een snelle manier. De hoofd onderzoeksvraag van deze research computer opdracht is:
Hoe kan een berekentool gedesigned en geprogrammeerd worden die helpt bij het design van pipe
conveyor systemen?
De pipe conveyor berekentool is gemaakt als applicatie voor iPone en Android zodat iedereen ge-
bruiksvriendelijk de applicatie kan gebruiken terwijl ze een systeem ontwerpen. De applicatie is
beveiligd via een sign-in methode wegens privacy redenen en verbonden met een real-time database
zodat vorige berekende parameters en oplossingen opgeslagen kunnen worden. De applicatie maakt
het mogelijk om het volgende te berekenen:
• Doorvoercapaciteit
• Riem breedte
• Weerstand met lading
• Weerstand zonder lading
• Spanning in riem
• Spanning op elk punt
• Vermogen
• Gebruikers kosten
De berekeningen zijn gebaseerd op een literatuurstudie en de formules zijn empirisch of wiskundig
bepaald. De formules zijn gebaseerd op generieke conveyor systemen en aangepast voor pipe conveyor
systeem situaties. De coëfficiënten gebruikt in de formules zijn empirisch bepaald voor pipe conveyor
systemen.
De pipe conveyor berekentool is geïmplementeerd door gebruik te maken van toekomstbestendige,
efficiënte technologieën zoals Angular4, Ionic en Typescript, gecompileerd naar native Swift en Java
code door gebruik te maken van het Open Source Apache Cordova project als het compilatie framework.
Het doel van deze research opdracht is om de doorloop van het proces van ontwikkeling van deze
pipe conveyor bereken applicatie te omschrijven. Dit stuk omschrijft het hele proces van literatuur
onderzoek tot het einde van het programmeer proces tot verificatie en validatie van het rekenmodel
dat gebruikt is in dit calculatie model.

v
Contents
1 Introduction 1
2 Pipe Conveyors In Theory 3
2.1 Lectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Literature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.1 Pipe conveyor standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.2 User privacy and data security standards . . . . . . . . . . . . . . . . . . . . 6
3 Design Requirements 9
3.1 IT requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Functional requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Programming language requirements . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2 User security requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.3 Database requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 App Calculation Method 13
4.1 Throughput calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Belt width calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 Running resistance with load calculation . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4 Running resistance without load calculation . . . . . . . . . . . . . . . . . . . . . . 16
4.5 Tension in belt calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.6 Power calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.7 Cost calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5 App Functions 19
5.1 General setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2 General variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3 User account creation and security . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.4 Data generation function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6 Validation Of App 27
6.1 Experimental Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.1 iOS and Android requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.2 Correct formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.4 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.5 Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2 Test Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2.1 App Store requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2.2 Correct formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.4 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.5 Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7 Walk through - Step By Step 35
7.1 Download and install in App store. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2 Register user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.3 Log in user. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.4 Example 1: Throughput calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.5 Example 2: Cost calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

vii
viii Contents

8 Conclusion & Future Recommendations 43


8.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.2 Future recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A Discussion 45
A.1 Cordova or truly native development . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
A.2 Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
A.3 Credit card subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
B Additional Formulas 47
Bibliography 49
1
Introduction
Conveyor systems in outdoor applications are mostly used to carry materials like rocks, coal, copper
and bauxite. There has been an increasing demand in pipe conveyor systems since they bring many
benefits compared to traditional conveyor systems. This chapter will explain the working principle of
the pipe conveyor system, will state the benefits of pipe conveyor systems, will describe the trends
regarding conveyor systems and will introduce the computational assignment and research question.
A pipe conveyor system is a conveyor system in which the belt is wrapped into a cylindrical pipe form,
enclosing the content to be conveyed. The belt is guided by multiple idlers around the belt to support
the belt along the path of conveyance. Because the belt encloses the content that can be conveyed,
belt conveyors can transport material up or down a slope and it can convey material along a curve in
both the horizontal and vertical directions.
In a pipe conveyor system, the belt starts as a flat horizontal belt wrapped around a pulley the same
way as it starts in a traditional belt conveyor system. The belt is then guided into a through shape,
where the load is inserted into the belt via a traditional loading system. After the belt is loaded, the
belt is wrapped with the help of multiple idler rollers into a cylindrical pipe form with overlapping ends.
At the end of the conveyor system, the belt is unloaded and guided back into the original horizontal
shape to a pulley. Another benefit of the pipe conveyor system is that the belt can be loaded in the
same way on the return side as well, so bi-directional loading capacity is provided.
Because of all these benefits mentioned before, pipe conveyor systems have gained an increasing
amount of popularity compared to traditional belt conveyor systems. Pipe conveyors do not need
expensive transfer points and chute systems since they are able to transport material up slopes and can
convey material along a curve. Another benefit of the absence of many transfer points is an increase in
the durability of pipe conveyor systems since the transfer points are the links in the conveyance system
where wear and tear takes place.
When looking into the material property degradation of substances conveyed in conveyor systems, the
degradation is less in a pipe conveyor system compared to a belt conveyor system since the material
is dust-tight enclosed and is not influenced by weather conditions like rain. Also, spillage is much less
of a factor which will result in economical benefits.
Current trends in pipe conveyor development are the increase in angle of inclination and cost reduction
strategies. Also, the lengths of pipe conveyor systems are increasing rapidly. Currently there are more
than 700 pipe conveyor systems installed worldwide and this number is increasing.
There are calculation tools available for the design of conveyor systems. These calculation tools are
mostly available for belt conveyor systems, and not specifically for pipe conveyors. Whenever they
are available for pipe conveyor calculations, the tools are not easy to use, not intuitive and do not
have an user-friendly interface. Furthermore, calculation tools need to be easily available and need to
work on different types of devices, like phones, tablets and computers, which is not the case in current
applications.

1
2 1. Introduction

The purpose of this computational research assignment is to develop a computational tool that is able
to aid the design of pipe conveyor systems in a rapid, easy to implement way, therefore the main
research question is:
“How can a computational tool be designed and programmed to aid the design of pipe conveyor sys-
tems?”
The structure of the report is as follows: Chapter 2 describes the pipe conveyor calculation tool in
theory, in this chapter the design is analyzed and formulas are determined from theory that will be the
basis of this application. Chapter 3 will describe the design requirements in terms of IT requirements
and functional requirements. Chapter 4 will describe the calculation methods used, this chapter is the
first step from theory to implementation. Chapter 5 will describe the implementation of the app, the
design choices that were made in regards to the infrastructure and technologies used. Chapter 6 will
provide validation of the calculation method of the application, an experimental plan is presented and
test results are shown. Chapter 6 will walk-through installation to an actual calculation. Chapter 7 will
walk through the installation from installation to calculation. Chapter 7 will hold the conclusion of this
computational research assignment and future recommendations. In the appendices, the discussion is
provided and additional formulas for further improvement of the application are shown.
2
Pipe Conveyors In Theory
In this chapter, the theory section of the pipe conveyor calculation application, the available formulas
and standards available in lectures and literature will be researched. The formulas that are necessary
for the calculations of a pipe conveyor system will be chosen in this chapter.
The calculation tool needs to perform a number of different calculation tasks. To design a pipe conveyor
system, choices need to be made in the layout, dimension, velocity, throughput, belt width and more.
The final choices of output parameters are dependant on the system requirements, design criteria and
costs of the total system. The system requirements include the materials that need to be conveyed
and the capacities that the system needs to transfer.

2.1. Lectures
The courses in the curriculum of the TEL specialization of the TU Delft master Mechanical Engineering
that describe conveyors and that could be useful to the design of pipe conveyors are the courses
WB3419 - Characterization and handling of bulk solid materials [1] and WB3420 - Introduction transport
and logistics engineering [2] [3] [4].
In the introductory course WB3420, basic formulas for belt conveyor calculations are given in lectures
4,5 and 6 of 2015-2016. According to the course, the definition of a belt conveyor is the following:
”A belt conveyor is a continuous conveyor that consists of two or more pulleys, with a continuous loop
of material - the conveyor belt - that rotates about them. At least one of the pulleys is powered, moving
the belt and the load on the belt forward.”
Since a pipe conveyor meets these requirements the formulas for the belt conveyors might be useful
for the computational model.
When further looking into the formulas all are applicable to engine design of a belt conveyor. Since
the engine is a part that mostly will be bought and not designed, only formulas that account for the
Engine specifications are taken into account. The other formulas that estimate the tensions in a regular
belt conveyor system are not relevant since the tensions in a pipe shape are different than those in a
horizontal shape. The formulas from this course can be found in Appendix B.
The lecture states estimated amounts of the different types of pipe conveyors currently installed as can
be seen in Table 2.1.
The lecture states that the important parameters needed in the belt design are the width, length,
strength, stiffness, weight, troughability and wear properties. Issues in the design are the stock hold-
ing, splicing, standardization, replacement times, service times and local representatives since it is a
relatively new technology that is not standardized.
The course WB3419 - Characterization and handling of bulk solid materials does not mention belt con-
veyors and is more material focused. There is no direct relation between the goal of the Pipe Conveyor

3
4 2. Pipe Conveyors In Theory

Table 2.1: Pipe Conveyor Installations Worldwide [4]

System Manufacturer Number of installations

JPC Pipe Conveyor JPC 500


New Pipe Conveyor Mitsubishi 20
Mitsui Pipe Conveyor Mitsui 20
Tubular Conveyor Beumer/Clouth 5
Rollgurt Conveyor PWH/Continental 5
Super Conveyor (Rondex) Yoshino Rubber 80
Tokai Conveyor Tokai Rubber 80

calculation tool and this course but it might be useful for future app development recommendations.

2.2. Literature
The paper by Maton et al. [5] states a set of parameter calculations and structure design calculations
of pipe conveyor systems. The paper describes formulas that can be used in the relative new type of
special belt conveyor system. The paper by Zhang et al [6] selects the important formulas. In this
section, the formulas as described by Maton are explained.
The throughput can be calculated in the following formula:

𝒬 = 3600𝑉𝐹𝛾𝜙[𝑚 /𝑠] (2.1)

In this formula, V is the belt speed, 𝐹 is the pipe area, 𝛾 is the density of the material conveyed and 𝜙
is the coefficient of material filling, 𝜙=0.44 to 0.8. If the material size is less than one third of the pipe
diameter, 𝜙=0.8. If the material size is one third of the pipe diameter, 𝜙=0.75. If the material size is
half of the pipe diameter, 𝜙=0.58. If the material size is two thirds of the pipe diameter, 𝜙=0.44.
The belt speed is determined taking the characteristic of the material, the throughput, the belt width
and the installation method of the conveyor into account. A high belt speed is beneficial since it can
reduce the belt width and tension in the belt when the throughput is constant. This will have cost
benefits in terms of belt and power consumption. The belt speed is usually between 2 to 5 m/s.
The belt width can be calculated according to the throughput. The belt diameter can be expressed as
the following:
41400𝑉𝛾𝜙
𝑑=√ [𝑚𝑚] (2.2)
𝜋

Where d is the pipe diameter.


The lap of two sides is about one third or half of the pipe diameter. When the belt is tubular, the
relationship between the belt width and pipe diameter is as follow:

𝐵 = (𝜋 + (1/3 ∼ 1/2))𝑑[𝑚𝑚] (2.3)

The running resistance calculation method has no difference in resistance calculation between a pipe
belt conveyor and conventional belt conveyor. Generally, the coefficient of resistance is usually used
in resistance calculations. The tension within the belt is calculated point by point. The extrusion force
is increased because the material is enveloped in the pipe. Therefore the coefficient of resistance in a
pipe belt conveyor system is greater than that in a conventional belt conveyor.
There are two different types of resistance calculations, resistance in tangent and resistance in a
curvature.
2.2. Literature 5

The formula for the resistance in tangent, belt with load is as follows:

𝑊 = (𝑞 + 𝑞 + 𝑞 ) 𝜔𝑔𝑙 cos 𝛽 ± (𝑞 + 𝑞 ) 𝐻𝑔[𝑁] (2.4)

The formula for the resistance in tangent, belt without load is as follows:

𝑊 = (𝑞 + 𝑞 ) 𝜔 𝑔𝑙 cos 𝛽 ∓ 𝑞 𝐻𝑔[𝑁] (2.5)

Where 𝑊 is the resistance in running, 𝑞 is the unit mass of belt per meter, 𝑞 is the average unit mass
of the upper supporting rollers per meter along the belt, 𝑞 is the unit mass of material per meter along
the belt, 𝑞 is the average unit mass of the below supporting rollers per meter along the belt 𝑙 is the
length of conveyance, 𝛽 is the obliquity of conveyance, 𝐻 is the height increase and 𝜔 is the coefficient
of resistance in the supporting rollers, showed in table 2.2.

Table 2.2: Coefficient of resistance in supporting rollers

Condition Parallel supporting Trough supporting Hexagon supporting


rollers rollers rollers

Clean, dry and no 0.018 0.02 0.035 ∼ 0.045


wearing dust indoors
Few wearing dust un- 0.025 0.03 0.045 ∼ 0.055
der normal tempera-
ture
Lots of wearing dust 0.035 0.04 0.055 ∼ 0.075
outdoors

Another resistance is the resistance in curvature. The resistance in curvature is caused by belt ossi-
fication and friction in the roller bearings. It is proportional to the tension at the curvature entrance,
the formula is as follows:
𝑆 = 𝐶𝑆 [𝑁] (2.6)
Where 𝑆 is the tension in belt at curvature exit, 𝑆 is the tension in belt at curvature entrance and
𝐶 is coefficient of resistance.
After the resistance in each section has been calculated, we can calculate the tension at every point.
We can divide the whole path into several tangents and curvatures and number every joint before we
calculate it.
Tension at any point is calculated by the formula as follows:

𝑆 =𝑆 + 𝑊( )∼ [𝑁] (2.7)

Where 𝑆 and 𝑆 are the tension in belt at point 𝑖 and point (𝑖 − 1), 𝑊(𝑖 − 1) ∼ 𝑖 is the resistance
between point 𝑖 and point (𝑖 − 1).
The tension at the driving roller entrance and driving roller exit can be obtained. Circumferential force
on the driving roller can be described by following expression:

𝑃 = 𝑆 − 𝑆 [𝑁] (2.8)

Where 𝑃 is the circumferential force on the driving roller. 𝑆 is the tension in the belt at the driving
roller entrance and 𝑆 is the tension in belt at the driving roller exit.
The following condition must be satisfied because the belt is not permitted to slide on the driving roller:

𝑆 ≤𝑆 𝑒 (2.9)
6 2. Pipe Conveyors In Theory

Where 𝜇 is the coefficient of friction between the belt and driving roller, 𝛼 is the angle of the belt
enveloping on the roller.
The power is mainly consumed in overcoming the running resistance. And some power is used in
elevating material in the sloping conveyor. Power on the driving roller shaft can be calculated by the
following expression:
𝑃𝑉
𝑁 = [𝑘𝑊] (2.10)
1000

So the motor power is:


𝐾𝑁
𝑁= [𝑘𝑊] (2.11)
𝜂
Where 𝐾 is a factor of safety and 𝜂 is the transmission device efficiency.

2.3. Standards
2.3.1. Pipe conveyor standards
There are no standards for pipe conveyors available as yet. A company in South Africa, “CKIT”, pub-
lished their own standard specifications regarding pipe conveyor, but they only have general specifica-
tions and layout specifications and the documents do not contain formulas or explanation.
The industry accepts the Conveyor Equipment Manufacturers Association (CEMA) handbook [7] as
a standard for through belt conveyor systems states that the since the pipe conveyor systems are
relatively new to industry and there is no recognized standard available, modification of the CEMA
handbook standard for the idler selection and horsepower / tension calculation could be used to specify
minimum requirements in the equipment selection of the pipe conveyor systems.

2.3.2. User privacy and data security standards


Regarding the user privacy and data security there are certain standards that need to be followed and
laws that need to be obeyed, they have nothing to do with the calculation method, but are required
to make a functional application. There are the ISO27001 [8], ISO27017 [9] and ISO27018 standards
[10], since the application will feature an authentication method and possible cloud functions for scaling
purposes all are applicable.
The most important regulation that is applicable to the pipe conveyor calculation tool is that data
stored by the application needs to be stored on European servers to assure the privacy of the users.
Furthermore, the connections to the servers need to be encrypted to reduce the risk of a man-in-the-
middle data logger.
The EU legislation on cookies needs to be followed [11]. Cookies that are allowed are the following:
• used for the sole purpose of carrying out the transmission of a communication, and
• strictly necessary in order for the provider of an information society service explicitly required by
the user to provide that service.
• user-input cookies (session-id) such as first-party cookies to keep track of the user’s input when
filling online forms, shopping carts, etc., for the duration of a session or persistent cookies limited
to a few hours in some cases
• authentication cookies, to identify the user once he has logged in, for the duration of a session
• user-centric security cookies, used to detect authentication abuses, for a limited persistent dura-
tion
• multimedia content player cookies, used to store technical data to play back video or audio
content, for the duration of a session
• load-balancing cookies, for the duration of session
2.3. Standards 7

• user-interface customization cookies such as language or font preferences, for the duration of a
session (or slightly longer)
• third-party social plug-in content-sharing cookies, for logged-in members of a social network.
3
Design Requirements
In this chapter, the minimum design requirements for the application are highlighted. The design
requirements are divided into the minimum ICT requirements which are then transformed into concrete
functional requirements. These functional requirements are researched in depth and choices are made
in the use of platform and services.

3.1. IT requirements
For the calculation model there are several criteria that need to be met before the architecture can be
chosen. The requirements are the following sorted in importance:
• Stable computational capabilities
• Fast computational capabilities
• Multi-Platform capable
• No vendor-lock
• Open Source
• Scalable architecture
• Secure architecture
• Cost effective programming
Furthermore, another requirement is that all the regulation criteria described in section 2.3 need to be
met. This includes the ISO standards 27001 [8], 27017 [9] and 27018 [10]. and the EU legislation on
cookies.

3.2. Functional requirements


In this section the functional design choices for the application are discussed and choices are made
in system architecture using a Multi-Criteria Analysis (MCA) and other design choice methodology.
Choices are explained and different available architectures are researched using the digital program-
ming developers application documentation available in Apple Xcode [12] and Android Design Studio
[13].

3.2.1. Programming language requirements


The first functional requirement is the programming language. The choice of programming language
will mostly take the stability, speed, multi-platform capability of the ICT requirements into account.

9
10 3. Design Requirements

There are a few modern architectures available for programming a pipe conveyor calculation tool within
a duration of 2 to 3 months:
• Excel Sheet
• Website
• Native iOS App (Swift)
• Native Android App (Java)
• ReactJS + Apache Cordova App
• Angular2 + Apache Cordova App
A way these different programming languages can be compared objectively is by using a Multi-Criteria
Analysis and then interpreting the outcomes of this analysis and taking this into consideration. This is
done in the following table:

Table 3.1: Multi Criteria Analysis of platform architecture

Platform Weight Excel Website Swift Java React+ Cordova Angular2 + Cordova
Stable 3 5 3 5 5 3 5
Fast 3 3 4 4 4 4 4
Multi-platform 3 1 4 1 1 5 5
No vendor-lock 2 1 2 2 2 5 5
Open Source 2 1 5 5 5 5 5
Scalable 2 1 2 5 5 4 5
Secure 1 5 3 4 4 5 5
Cost effective 1 5 3 3 3 4 4
TOTAL 43 57 61 61 73 81

When measuring these programming language options to the requirements for the calculation model
the Angular2 + Apache Cordova App scores the highest as can be seen in table 3.1. The Angular 2
+ Cordova setup scores the highest on Stability, in combination with high Multi-Platform capability it
forms a strong basis, therefore this programming language will be used in the development of the
application.

3.2.2. User security requirements


The other ICT requirement that stands out is security. It is not a very important factor in the ICT
requirements since every application needs to be made secure by law. The registration process of
users will be outsourced in order to meet the ISO27001 requirement. There are various authentica-
tion providers, called OAuth providers because of protocol usage, that provide user registration and
authentication for multiple platforms. The most common known user authentication services that work
with the Angular 2 architecture are:
• Auth0
• Stormpath
• WatchGuard
• Google Firebase
• Amazon Cognitio
When looking at these Authentication providers there are two that stand out. Google Firebase [14]
and Amazon Cognito [15]. Both Google and Amazon provide other services like server capacity as well
and have a free tier for setup of the app. Google Firebase can handle up to 100 simultaneous users
for free and can store an unlimited amount of users, Amazon Cognito can handle 50.000 users for
free. When the free tier is exceeded costs apply. Google Firebase costs $25,00 per month including
the database service and Amazon Cognito works with a pay-as-you-go payment plan, the first 100.000
users cost $275,00 per month. Because of scalability and costs Google Firebase is chosen to handle the
3.2. Functional requirements 11

authentication protocol. It can handle the authentication process based on Anonymous, Email, Phone,
Google, Facebook, Twitter and Github API authentication providers.

3.2.3. Database requirements


The Database will take care of the scalability and the cost effectiveness of the application. Databases
can be divided into two categories. For the architecture of the database, the first design choice that
needs to be made is a design choice between a relational database and non-relational database.
Relational databases have the following key features [16]:
• Data is stored in tables and rows.
• A row in a table has set fields.
• A row in a table has a primary key.
• Data can be added, updated and deleted.
• Databases are not scalable, have a maximum size.
• Databases consist of a separate file and database system, cost ineffective.
• Inter table data correlations needs help tables.
Non-relational databases have the following key features [16]:
• Data is stored in a tree file system.
• Data is stored in an object orientated way.
• Data is scalable and does not have a set structure.
• Data is cost effective, since file system is the database.
• Data recovery is fast since no help language is used for querying.
For scalability purposes, flexibility in data attributes and the object orientated way of storing data, a
non-relational database is chosen.
The second design choice that needs to be made is the non-relational database system. There are
several open source projects available, but also some innovative approaches to database behaviour.
The requirements for the database are almost the same as for the application in general. The most
important aspects of the database are that it needs to be a database that is scalable, secure and multi
platform capable. The order of importance of the ICT requirements for the database is the following:
• Scalable
• Open Source
• No vendor-lock
• Stable
• Secure
• Cost effective
• Database As A Service (DaaS)
The following non-relational database providers are available and considered because they meet the
minimum requirements:
• Amazon RDS
• Google Firebase
• MongoDB
• Socket.IO
• Apache Cassandra
12 3. Design Requirements

A multi-criteria analysis could be helpful to make an objective choice in database architecture, but since
Google Firebase will be used for the authentication process and there are no extra costs for database
usage Google Firebase will be preferred. The Firebase project is scalable, based on an open source
architecture, can be exported to the JSON file format, so the vendor-lock is minimized. Furthermore,
it has been out for a couple of years, bought by Google, ISO certified in terms of security and it is a
DaaS project with a matching Software License Agreement (SLA). Hence, the Firebase project meets
all the requirements and will be chosen.
4
App Calculation Method
In this chapter, the calculation method of the pipe conveyor calculation application is discussed without
going into detail on the App implementation, the functions of the App implementation are discussed in
the next chapter, Chapter 5. Each calculation method is explained by defining the variables and going
through the code of the calculation.
The formulas chosen to be calculated within this application are the following:
• Throughput
• Belt Width
• Running resistance with load
• Running resistance without load
• Tension in belt
• Power calculation
• Operating cost calculation

4.1. Throughput calculation


For the throughput calculation the belt speed, density, pipe area or diameter are needed. The coefficient
of filling is dependant of the material size and pipe diameter. The following global variables need to be
defined within the system for the calculation:
• this.varV = Belt speed
• this.varD = Pipe diameter
• this.varDx = Pipe diameter backup
• this.varF = Pipe area
• this.varPhi = Coefficient of material filling
• this.varD0 = Material size input
• this.CalcThroughput = Throughput output
The first step of the calculation will take care of the pipe diameter calculation, it will read the pipe
area input to calculate the pipe diameter. Then it will transform the diameter to a 2 decimal value for
the app output. After the diameter is written to a fixed point, the switch function is used to efficiently
take care of the coefficient of material filling. After all parameters are set for the formula, they will be
multiplied to form the throughput:

13
14 4. App Calculation Method

calcThroughput() {

this.varD = this.varF/(2 * this.Math.PI);


this.varDx = this.varD;
this.varD = this.varD.toFixed(2);
switch(true) {
case (this.varD0<(0.33333*this.varDx)):
this.varPhi = 0.8;
break;
case (this.varD0<(0.465*this.varDx)):
this.varPhi = 0.75;
break;
case (this.varD0<(0.583*this.varDx)):
this.varPhi = 0.58;
break;
case (this.varD0<(0.6666*this.varDx)):
this.varPhi = 0.44;
break;
default:
this.varPhi = 0;
}
this.varCalcThroughput = this.varV * this.varF * this.varGamma * this.varPhi;

4.2. Belt width calculation


For the belt width, a similar calculation method is used as the throughput calculation with a lot of the
same variables, this function contains a square root, therefore the inner part of the rood first needs to
be calculated, and in the last step the square root is calculated.
Firstly, the following variables need to be defined:
• this.varV = Belt speed
• this.varD = Pipe diameter
• this.varDx = Pipe diameter backup
• this.varF = Pipe area
• this.varGamma = Material Density
• this.varPhi = Coefficient of material filling
• this.varD0 = Material size input
• this.varBeltwidthDig = Belt diameter
• this.varBeltwidth = Belt Width
The first step of the calculation will take care of the pipe diameter as well, after which the switching
function will internally use a number of if-loops to calculate the coefficient of material filling. Then the
inner part of the diameter calculation is calculated and the square root is taken to calculate the final
belt width:
calcBeltwidth = function(){

this.varD = this.varF/(2 * this.Math.PI);


this.varDx = this.varD;
this.varD = this.varD.toFixed(2);
switch(true) {
4.3. Running resistance with load calculation 15

case (this.varD0<(0.33333*this.varDx)):
this.varPhi = 0.8;
break;
case (this.varD0<(0.465*this.varDx)):
this.varPhi = 0.75;
break;
case (this.varD0<(0.583*this.varDx)):
this.varPhi = 0.58;
break;
case (this.varD0<(0.6666*this.varDx)):
this.varPhi = 0.44;
break;
default:
this.varPhi = 0;
}
this.varBeltwidthDia = ((41400*this.varV*this.varGamma*this.varPhi) / Math.PI );
this.varBeltwidthDia = Math.sqrt(this.varBeltwidthDia)/1000;
this.varBeltwidth = ( Math.PI +1/3 ) * this.varBeltwidthDia ;

4.3. Running resistance with load calculation


The next calculation is the running resistance with load calculation. The following variables need to be
defined for this calculation:
• this.varG = Gravity of earth
• this.varH = Increase in height (negative = decrease)
• this.varq0 = Unit mass of belt
• this.varq1 = Unit mass of material
• this.varq2 = Average unit mass of the upper supporting rollers
• this.varOmega = Coefficient of resistance
• this.varL = Belt length
• this.varBeta = Obliquity of conveyance
• this.varRunningLoad = Running resistance with load.
In this calculation the first step is to set the gravity of earth to 9.81. In this calculation the unit
masses that are relevant are added and then multiplied by the coefficient of resistance, the gravitational
acceleration, the length of the belt and the cosine of the obliquity of conveyance. If there is an incline,
the resistance caused by the height will be added or if there is a decline, the resistance caused by the
height will be subtracted (visible by a negative height value):
calcRunningLoad = function(){

this.varG = 9.81;
if (typeof(this.varH)==”undefined”){
this.varH=0;
}
this.varRunningLoad = ( this.varq0 + this.varq1 + this.varq2 ) * this.varOmega
* this.varG * this.varL * Math.cos(this.varBeta*180/Math.PI)
+ (this.varq0 + this.varq1) * this.varH * this.varG

}
16 4. App Calculation Method

4.4. Running resistance without load calculation


The running resistance without load is very similar to the running resistance with load. Only two extra
variables need to be defined:
• this.varq3 = Unit mass of below supporting rollers
• this.varRunningNoLoad = Running resistance without load.
After this and the other variables mentioned in the Running Resistance With Load calculation method
are set, the unit masses are added, the cosine of the obliquity of conveyance is calculated and the rest
of the variables are multiplied:
calcRunningNoLoad = function(){

this.varG = 9.81;
if (typeof(this.varH)==”undefined”){
this.varH=0;
}
this.varRunningNoLoad = ( this.varq0 + this.varq3 ) * this.varOmega
* this.varG * this.varL * Math.cos(this.varBeta*180/Math.PI)
+ this.varq0 * this.varH * this.varG

4.5. Tension in belt calculation


The resistance in curvature calculation is a simple calculation where the coefficient of resistance is
multiplied by the tension in the belt at curvature entrance. This calculation will calculate the tension in
belt at curvature exit.
The following variables are defined for the tension in belt calculation:
• this.varC = Is the coefficient of resistance
• this.varSi = Is the tension in belt at curvature entrance
• this.varTension = Tension in belt at curvature exit
The Tension is calculated as follows:
calcTension = function(){

this.varTension = this.varC * this.varSi;

4.6. Power calculation


The power calculation is calculated by first calculating the circumferential force of the driving roller.
This is done by subtracting the tension in belt at the driving roller exit from the tension in the belt at
the driving roller entrance.
The following variables are defined for the power calculation:
• this.varN0 = Power on the driving roller shaft
• this.varSn = Is the tension in belt at driving roller entrance
• this.varSone = Is the tension in belt at driving roller exit
• this.varV = Belt speed
• this.varK = Factor of safety
4.7. Cost calculation 17

• this.varEta = Transmission device efficiency


• this.varPower = Motor power
In the power calculation first the power on the motor shaft is calculated by multiplying the tensions
and belt speed. Then a safety and efficiency factor are used to correct the motor power for the motor
shaft power. This is calculated as follows:
calcPower = function(){

this.varN0 = (this.varSn-this.varSone)*this.varV/1000;
this.varPower = (this.varK*this.varN0)/this.varEta;

4.7. Cost calculation


The cost is calculated by multiplying the amount of hours, by the amount of energy used, by the price
for one unit of energy. The following variables are defined:
• this.varHours = Hours of operation a year/month/interval
• this.varPower = Is the power used by the motor
• this.varPrice = Price of 1kWh
And then the motor cost is estimated by multiplying the input variables:
calcCost = function(){

this.varCost = this.varHours * this.varPower * this.varPrice;

}
5
App Functions
In this chapter the implementation of functions that are not calculation related are discussed, code
snippets are presented, coding problems and solutions are shown and debugging is highlighted. The
implementation of these functions is based on the calculation model as described in Chapter 4. Fur-
thermore, screen captures are shown and the authentication implementation is explained for a few
calculation methods.

5.1. General setup


The goal is to make the App available in the Google Play Store and the Apple App store, the registration
process requires a D-U-N-S number, company registration and credit card verification.
A choice is made to create both an Android version of the App and an iOS version of the App. They are
coded in a single language and transformed to the relative native coding languages using the Apache
Cordova project. After the projects were transformed to the native languages, debugging had to take
place and App Store setup within the Apple and Android developers accounts.
For the calculation power of out-of-app analytics, cloud servers will be used since they have low la-
tency, are highly available and have high scalability, furthermore maintenance of these servers will be
outsourced. Amazon AWS, Amsio and Google Cloud Platform seem the most reliable options in terms
of scalability, low latency, high performance and relatively low pricing. The final choice is made to use
the Amazon EC2 instance of type t2.micro since it can be used within the free tier for a year.
The app will consist of a module file with the component and page declarations. This module file
will also consist of setting constants responsible for inter-page sliding behaviour and server/database
connection token declaration.
Every module consists of three type of files: Style (SCSS/LESS/CSS), layout (HTML) and behaviour
(Typescript). An import is made up out of a folder allocation where style, layout and behaviour files
are present. The import points toward the folder of the typescript file and the other files are imported
individually through declaration within the typescript file.

5.2. General variables


When analyzing most formulas that are needed for Pipe Conveyor Calculation, certain elements re-
occur in different calculations. Think about material properties and desired capacity. Therefore the
choice is made to first ask the user for general variables that are used in multiple formulas these are
then transferred to the other calculations.
In every calculation these variables need to be able to be altered for a fast calculation process, every
change needs to be put back to the global variable. The following code describing the variable provider
takes care of global variables that need to be placed within different calculation classes.

19
20 5. App Functions

Figure 5.1: Module imports in app.module.ts

Figure 5.2: Firebase setup with API Keys in app.module.ts

The formulas that need to be opted throughout the application are the following:
• Material Size
• Material Bulk Density
• Pipe Diameter
• Belt speed
As an example, the Throughput calculation display method is shown in Figure 5.4. In the angular
syntax double brackets indicate variable output and the [(ngModel)] indicates variable allocation. The
throughput calculation function is shown in Figure 5.5. The other functions work the same way and
have their own inputs and calculation functions. The formulas need to be modular so that the app is
expandable and future proof.

5.3. User account creation and security


The user account security flow is different to and more complex than the calculation method. Where
the script that is connected to the HTML file for the calculation module can be run locally, the security
functions need to be running on the background on a global scale. This is accomplished by using an
authentication provider that runs parallel to the component scripts.
The authentication provider is built up from different functions. Every function regarding the authenti-
cation process is defined in the authentication provider. The getUserData() function as shown in Figure
5.6 returns an observable that gets triggered when the authentication state changes to logged out. If
5.3. User account creation and security 21

Figure 5.3: Initialization procedure of the app in app.module.ts

the authentication fails it returns an error and the authentication token needed to display the page is
destroyed. The getUserData() function also creates a data link to the Firebase database through the
websocket technology and updates changes to the database in real-time. Changes in the web hosted
database get pushed to the local data array.
One of the other functions that uses the log in credentials is the log in with Facebook method. This
accesses another authentication provider and creates credentials based on the Facebook response. If
it is the first time logging in, a user ID is created as well, and the account information needs to be
added to the database. The Facebook authentication function is shown in Figure 5.7.
There are many more authentication functions, the registration process, the password reset email
procedure and the normal log in flow. These functions all are built up the same way and use Cross-
Origin Resource Sharing (CORS) and websocket protocols to access the authentication provider server
to generate tokens, send emails and change data.
The security of the Firebase server is guaranteed by the use of JSON security rules as shown in Figure
5.8. This setup assures that only the data can only be seen and altered by the corresponding user ID.
If the user ID token is not present, the data will not be outputted from the server side, this way the
data is secure. Parts of the database can be accessed by certain user ID’s, or if an admin token is set
for a user ID. The user account data is stored in the database and can be accessed in a list as shown
in Figure 5.9.
22 5. App Functions

Figure 5.4: Throughput calculation display

5.4. Data generation function


To analyze the journey of a user using the calculation tool for the first few times, a data-harvesting
model functionality is needed so that the user experience can be optimized. The user first needs to
register an account, then log in and set preferences after which he will use the calculation tool. The
different stages that are important to the user are shown in figure 5.10.
Within each of these stages data needs to be stored and connected to the user. Using this method,
insights can be given in the bounce rate of the users and stability of the platform at each different
stage of the user interaction with the application. Each usage will be a different state and needs to be
implemented within the application as a variable.
5.4. Data generation function 23

Figure 5.5: Throughput calculation function

Figure 5.6: User Data Authentication Provider Function


24 5. App Functions

Figure 5.7: Facebook Authentication Provider Function

Figure 5.8: Firebase Console security rules


5.4. Data generation function 25

Figure 5.9: Firebase Console list of users

Figure 5.10: The customer journey of a first-time user.


6
Validation Of App

6.1. Experimental Plan


This section provides an experimental plan to test the functions of the application as described in
Chapter 3. The following questions need to be asked in order to verify the implementation of the
application:
• Are all iOS and Android requirements met to be in the App Stores?
• Are the formulas used in a correct way and do they give a correct output?
• Is security complying ISO standard 27001?
• Is the platform stable during production?
• Is the bandwidth to the server kept to a minimum?
These questions of the experimental plan are discussed in depth in the following subsections.

6.1.1. iOS and Android requirements


For the typescript functions to compile to native Swift and Java functions, the code needs to be cleared
of any errors and needs to be signed with a development certificate and development team. This
can be done by using the typescript lint compiler, the Webkit development console and the Xcode
error console. Before a native compilation is made, the script runs and stops the compilation when an
error occurs. Furthermore, the app stores require certificates added to the code in order to declare
responsibility for the code. When the certificates are added, the next step is compilation and another
check takes place, warnings and errors in the newly compiled native code are shown. After this step,
a new debugging cycle needs to be performed.

6.1.2. Correct formulas


After the basic requirements are met, the next step is to check if the formulas are calculating the correct
way. Are the variables the right variables and is the output in the expected range. The formulas need
to be compared to hand calculations to assure the right outputs. Furthermore, the ranges of certain
input values need to be set and warnings need to be shown if the input is out of the normal range, this
needs to be validated for every input with a set range and for every output value.

6.1.3. Security
The security is a high priority in the application, the source code needs to be hidden and the users
should only be able to access pages if they are logged in. If the user is logged out the access parameters
should have a different value. Since the scripts are compiled to native Swift and Java functions, there is
no need to secure the environment for script injections. Since the database is a non-relational database

27
28 6. Validation Of App

with server-side user ID validation, there also is no need to prevent SQL injections. Pages need to be
forced open without log in tokens being set. This can be done by using iPhone emulation software
with a console next to it. If the security parameters are not set correctly, the page should redirect to
the log in screen. The security parameters can be printed in the Xcode debugging console.

6.1.4. Stability
To test stability of the application the application needs to run on a test device. Forced stops and normal
stops need to be simulated. Furthermore, since the application always has an active connection to the
server via Websocket, the app needs to be tested in case of connection flickering and connection loss.
This can be done by using an iOS emulator provided by the Apple Xcode suite. Also, all buttons etc
need to be tested if they give a response and if it does not force the application to give no response
or close.

6.1.5. Bandwidth
The bandwidth needs to be tested since this is one of the main cost controlling aspects of the applica-
tion. High bandwidth usage at the server side will cause high bills when the Amazon free tier is over.
The bandwidth can be measured both server-side and client-side via the analytics, billing and consoles.

6.2. Test Results


In this chapter the test results of the experimental plan are discussed. For the test results only the
iOS application is considered since the Android emulator gives results, but only iPhone devices were
available for actual testing.

6.2.1. App Store requirements


The signing process is a process that lacks proper documentation. Certificates are needed for devel-
opment as seen in Figure 6.1 and testing can take place on an iPhone device. The devices used in
this test are the iPhone 7, iPhone 6s and iPhone 6s plus and all need device permission identifiers and
certificate approval via the developer.apple.com console as seen in Figure 6.2.

Figure 6.1: Development Provisioning Profiles

Figure 6.2: Device Permission Identifiers

When the app is being compiled with the correct certificates a compilation script called Lint will check
for unused classes and functions and unused imports. It will build and compile the application to native
Swift, but in the Xcode console the same unused classes will be thrown out as warnings or errors in
case of data dependency. The lint procedure can be seen in Figure 6.4.

6.2.2. Correct formulas


The formulas are verified according to hand calculations. The MathJS package is responsible for the
divisions, the pi value, trigonometric functions, square roots and bracket handling. First each of these
6.2. Test Results 29

Figure 6.3: App ID’s with permission settings

maths packages are checked and verified for the correct usage.

The next step is to verify each method to hand calculations. The same inputs for the hand calculations
give the same outputs for the application. A walk through of a calculation is shown in Chapter 7.

6.2.3. Security
The security is analyzed by using the Xcode console and Javascript error console of the emulators.

A key aspect of the security of this application is the user authentication process. This process creates
tokens, therefore the authentication flow needs to be emulated and the errors need to be checked and
insertion of the tokens through a console needs to be made impossible. When looking closely at Figure
6.5 the log in tokens created can be seen on one of the lines from the Xcode console. The security is
validated at the server-side of the application, so client side injections are prohibited. The views that
were loaded into the console can be seen in Figures 6.6, 6.7, 6.8.

6.2.4. Stability
Stability is tested using the method described in the test setup, using the Xcode console. At certain
moments during the tests the app was disconnected form the internet, resulting in a lost Websocket
connection to the database. The app was still able to run, and prompted a Websocket internet con-
nection warning. When the internet connection goes back on, the AngularFire package synchronizes
the locally made changes to the Firebase database and overwrites changes based on time if logged
into multiple devices, this assures a stable environment. If the app is closed and reopened, it will
see if the log in token is still valid and will automatically log into the app. The values of the formula
inputs are stored in the Firebase database for analysis but are not written back into the application
when opened. A timer can be used to write back the values of the last session, but this is considered
unwanted behaviour for now so is left out of the application. When the app is put to the background
or another app is opened, the local storage database assures that there is no loss of data.
30 6. Validation Of App

Figure 6.4: Lint debugger during compilation

6.2.5. Bandwidth
The bandwidth is tested both server-side and client-side. When one log-in session takes place the
usage is about 1200bytes as can be seen in Figure 6.9. The client-side bandwidth usage corresponds
with the server-side logging.
6.2. Test Results 31

Figure 6.5: Xcode debugging console


32 6. Validation Of App

Figure 6.6: App home screen


6.2. Test Results 33

Figure 6.7: App login screen


34 6. Validation Of App

Figure 6.8: App reset screen

Figure 6.9: Chrome network console


7
Walk through - Step By Step

7.1. Download and install in App store


This chapter will provide a walk through for installation and usage of the application. The first step
into running the Pipe Conveyor is installing it on the phone. Go to the App Store and search for the
Pipe Conveyor application as can be seen in Figure 7.1.

Figure 7.1: The App in the App store

After installation is successful a home screen setup as shown in Figure 7.2 should be shown.

35
36 7. Walk through - Step By Step

Figure 7.2: The home screen after installation

7.2. Register user

When first time using the application, a registration of the user information needs to take place. Choices
can be made between different authentication methods, user authentication based on a password and
email or social media sign on providers can be used to authenticate the user. The screen can be seen in
Figure 7.3. When the authentication takes place with a password and email, a registration confirmation
email with activation link is send to the mailbox for verification.
7.3. Log in user 37

Figure 7.3: The registration form

7.3. Log in user

After the registration process is completed, the user can log in through the log in screen for the first
time. This can be seen in Figure 7.4.
38 7. Walk through - Step By Step

Figure 7.4: The login form

After being logged in, a disclaimer message is shown with a click-through to the terms of use as seen in
Figure 7.5. The user can then click on calculation at the bottom section of the navigation bar and is then
guided to a calculation selection screen where a choice in calculation can be made. The Calculation
selection screen is shown in Figure 7.6.
7.3. Log in user 39

Figure 7.5: The home screen after login

Figure 7.6: The calculation selection screen


40 7. Walk through - Step By Step

7.4. Example 1: Throughput calculation

For the first calculation method the throughput needs to be calculated. The labels for the input boxes
show normal values and the units of the calculation. This can be seen in Figure 7.7. When the
parameters for the belt speed, pipe area, material density and material size are set, the calculation
can be started by pressing the Calculate Throughput button. Then the results and the calculation are
shown as shown in Figure 7.8.

Figure 7.7: Calculate form for the throughput


7.5. Example 2: Cost calculation 41

Figure 7.8: Answers to a throughput calculation

7.5. Example 2: Cost calculation

The cost calculation method works the same as the throughput calculation method. The parameters
operating hours, motor power and energy price are written in the form after which the calculation can
takes place. The cost calculation can be seen in Figure 7.9.
42 7. Walk through - Step By Step

Figure 7.9: A cost calculation with answer


8
Conclusion & Future
Recommendations

8.1. Conclusion
The goal of this research assignment is to create a calculation tool for a pipe conveyor system. The App
is able to calculate the throughput, belt width, running resistance with and without load, the tension
in belt at a point, the power and an estimation of the operating cost.
The pipe conveyor calculation tool is implemented using technologies that are future-proof, efficient
and safe. Angular2 technology based on the typescript language has been used as the main foundation
of both the iOS and Android versions of the application. The Angular2 application compiles to native
Swift and Java language using the Apache Cordova project as the framework to do so.
The calculation tool developed is made modular, scalable, secure and cost-efficient. The total cost of
the application is made up out of the developer accounts, $ 100,00 for the Apple Developer Account
and $ 25,00 for the Google Developer Account, server costs $ 25,00 per month for Firebase and credit
card costs $40,00 per year. The total costs per year are $465,00 which is acceptable for both an iOS
and Android application.
The calculation tool uses formulas that are derived from conveyor systems in general that are empirically
altered for pipe conveyor systems. Furthermore, the security, stability and bandwidth are tested with
positive outcomes and the application meets the requirements to be published within the app stores.
The app in the iOS app store is placed under the com.pipeconveyor.tudelft identifier.

8.2. Future recommendations


When looking into the calculation model, the main limitations are the formulas. The formulas are not
based on standards since none were published as yet. When the publication takes place of ISO or DIN
standards, these can be implemented in the application.
Furthermore, the authentication provider methods are limited to Facebook and Google as the only
external ones. The resources are available to use Github and Twitter as authentication providers, and
even the iPhone and android devices itself can be used as verification using the phone number and
IMEI number as the identifier, the last would increase the cost per user of the application.
The App is currently only compiled to iOS and Android versions, while Blackberry, Tizen and Windows
Phone have limited but in absolute terms significant market share. In the future it is recommended
that the application could be compiled to the other operating systems mentioned as well, the Cordova
project can handle all, the certificates need to be requested.
The current language of the App is English, but a provider like the authentication and database provider
can be created to automatically detect the language of the application. The application should be

43
44 8. Conclusion & Future Recommendations

available in French, German, Spanish, Portuguese, Russian, Indian, Chinese and Japanese to increase
the amount of users and currently already is translated in English and Dutch.
A
Discussion

This chapter discusses the problems encountered during creation of the application, downsides of using
frameworks and solutions to problems encountered.

A.1. Cordova or truly native development


The choice was made to use Cordova for this pipe conveyor calculation tool to benefit from the low
development time, hence development costs if it was in an application production environment. The
downsides of using a framework like Cordova in combination with frameworks like Ionic, Angular2,
React is that a lot of functions are pre-programmed. The frameworks each have their own manual and
are mostly based on other NodeJS packages. When settings from one package within the framework
are altered, it might cause unwanted changes in the other packages within the framework, for example
the behaviour of the application after changing settings in the Ionic module causes weird style changes
and script changes in the standard elements like the header bar. Since the newest version of the Ionic
framework are not documented properly, there were many difficulties debugging which caused a trial
and error type of work flow. In next projects, the Cordova project would still be recommended because
of the speed of development, but if the Application needs more than just an internet and database
connection and use the built in sensors the recommendation would go out for truly native application
in Swift or Java without a compilation framework.

A.2. Certificates
During the test phase, problems occurred trying to test the application on the iPhone and iPad devices.
Every device has a unique UUID and these need to be verified using the Xcode software package on
the development computer. Every device needs to get a certificate before it can play the unpublished
apps, and synchronization of data and app updates are supposed to be pushed wireless through WiFi.
There are multiple types of certificates needed for the publication of an app on a test device. Firstly,
the developer certificate is needed to sign the code before compilation to native Swift, then an App ID
certificate is needed to assure that certain functions and native components can be used like Apple Pay,
Inter App Audio and associated Domains. The App ID certificate is pending until the app is checked
by staff from the Apple Security office. Another certificate that is needed is the test device certificate
based on the UUID of the device. Finally, a provisioning profile needs to be created for the app to be in
development. The development provisioning profile needs to be added to certain devices before these
devices can run the test application. It is a long process to understand the certificates and to be able
to run the code with the provisioning profile and signatures. The terminal is used to sign the code, but
Xcode needs to be running on the background with the right certificates added to the computers key
chain group.

45
46 A. Discussion

A.3. Credit card subscription


For an App store developers account, a credit card is demanded. The only two parties providing proper
credit cards are ING Bank N.V. and ICS Card Services. The demands for a credit card in the Netherlands
is a company registration of at least one year and has significant cash flow. The only way that start-ups
get a credit card number is through participating in an incubator sponsored by a bank, by having a
venture capital company being a shareholder, or by waiting for more than one year after the setup.
B
Additional Formulas
Since a pipe conveyor meets these requirements the formulas for the belt conveyors might be useful
for the computational model. They are derived from the course WB3420 - Introduction transport and
logistics engineering [2] [3] [4].
For the AC motor the following formulas apply:

60𝑓
𝑛 = (B.1)
𝑝
Where 𝑛 is the AC motor’s synchronous speed, 𝑓 is the motor supply frequency in Hz and 𝑝 is the
number of pole pairs. Note: 𝑓 is 50Hz in Europe and 60Hz in other regions, depending on the power
grid.

𝑛 −𝑛
𝑓𝑠 = (B.2)
𝑛
Where 𝑠 is the difference or slip between actual and synchronous speed of the AC Motor. 𝑛 is the
Synchronous speed and 𝑛 is the rotor actual mechanical speed.
Most of the times gears are needed to control the pulley speed. The gear ratio can be calculated as
follows:
𝑛
𝑖= (B.3)
𝑛
Where 𝑖 is the gear ratio, 𝑛 is the rotor actual mechanical speed and 𝑛 is the pulley actual mechanical
speed.
To calculate the power, we need to calculate the torque and rotational speeds.
𝜋𝑛
𝜔 = (B.4)
30
Where 𝜔 is the rotational speed of the rotor and 𝑛 is the rotor actual mechanical speed. From this
rotational speed, we can calculate the torque.

𝑃
𝑇 = (B.5)
𝜔
Where 𝑇 is the torque in the motor shaft, 𝑃 is the electrical power supply of the motor and 𝜔 is the
rotational speed of the rotor.
According to the lecture the power supplied to the drive pulley is the same as the power generated by
the motor if we neglect the losses in the drive train.

𝑇 = 𝑖𝑇 𝜂 (B.6)

47
48 B. Additional Formulas

Where 𝑇 is the torque in the pulley, 𝑖 is the gear ratio, 𝑇 is the torque in the motor shaft and 𝜂 is
the efficiency of the drive train.
Another formula that is commonly used in practice is the longitudinal belt speed.

𝑛
𝑣= (𝜋𝐷 ) (B.7)
60
Where 𝑣 is the longitudinal belt speed, 𝑛 is the pulley mechanical speed and 𝐷 is the diameter of the
drive pulley.
Bibliography
[1] D. Schott, Wb3419-15 characterization and handling of bulk solid materials, Web Lecture Slides
(2015).
[2] G. Lodewijks, Belt conveyors - 1, Web Lecture Slides (2015).

[3] G. Lodewijks, Belt conveyors - 2, Web Lecture Slides (2015).

[4] G. Lodewijks, Belt conveyors - 3, Web Lecture Slides (2015).


[5] A. Maton, Power and capacity review of tubular pipe and trough conveyors, Bulk Solids Handing,
17, 47 (1997).
[6] Z. Zhang, F. Zhou, and J. Ji, Parameters calculation and structure design of pipe belt conveyer, in
2008 9th International Conference on Computer-Aided Industrial Design and Conceptual Design
(Institute of Electrical and Electronics Engineers (IEEE), 2008) veel formules, deze heeft rank 10.

[7] CEMA, Belt Conveyors for Bulk Materials 7th Edition, 7th ed. (CEMA, 2014).
[8] I. O. for Standardization, ISO/IEC 27001:2013, Second Edition: Information technology - Security
techniques - Information security management systems - Requirements (Multiple. Distributed
through American National Standards Institute (ANSI), 2013).
[9] I. O. for Standardization, ISO/IEC 27017:2015, First Edition: Information technology - Security
techniques - Code of practice for information security controls based on ISO/IEC 27002 for cloud
services (Multiple. Distributed through American National Standards Institute (ANSI), 2015).
[10] I. O. for Standardization, ISO/IEC 27018:2014, First Edition: Information technology - Security
techniques - Code of practice for protection of personally identifiable information (PII) in pub-
lic clouds acting as PII processors (Multiple. Distributed through American National Standards
Institute (ANSI), 2014).
[11] R. Wong, The data protection directive 95/46/ec: Idealisms and realisms, International Review of
Law, Computers & Technology 26, 229 (2012), http://dx.doi.org/10.1080/13600869.2012.698453
.

[12] Apple, Apple xcode documentation, https://developer.apple.com/documentation/ (2017).


[13] Google, Android studio documentation, https://developer.android.com/studio/intro/index.html
(2017).

[14] Google, Google firebase pricing, https://firebase.google.com/pricing/ (2017).


[15] Amazon, Amazon aws pricing, https://aws.amazon.com/pricing/ (2017).

[16] Z. W. Zhiguo Wanga and H. Liu, Research on high availability architecture of sql and nosql, in AIP
Conference Proceedings 1820, 090021 (AIP Publishing, 2017).

49

You might also like