Professional Documents
Culture Documents
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
Author: S.A.Stammes
Title (in Dutch) Een berekenende tool voor het design van Pipe Conveyor systemen.
Confidential: No
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
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:
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
Master of Science
in Mechanical Engineering
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
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
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:
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)
𝜋
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:
The formula for the resistance in tangent, belt without load is as follows:
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.
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
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.
• 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.
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:
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.
authentication protocol. It can handle the authentication process based on Anonymous, Email, Phone,
Google, Facebook, Twitter and Github API authentication providers.
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
13
14 4. App Calculation Method
calcThroughput() {
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 ;
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
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
this.varN0 = (this.varSn-this.varSone)*this.varV/1000;
this.varPower = (this.varK*this.varN0)/this.varEta;
}
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.
19
20 5. App Functions
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.
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
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.
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.
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
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
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
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
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
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
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.
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
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.
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.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
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).
[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
.
[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