• Nie Znaleziono Wyników

A calculation tool aiding the design of pipe conveyors

N/A
N/A
Protected

Academic year: 2021

Share "A calculation tool aiding the design of pipe conveyors"

Copied!
61
0
0

Pełen tekst

(1)

Delft University of Technology

FACULTY MECHANICAL, MARITIME AND MATERIALS ENGINEERING

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

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.

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

(2)

T

U

Delft

FACULTY OF M E C H A N I C A L , M A R I T I M E AND M A T E R I A L S E N G I N E E R I N G

Delft University of Technology 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 Supervisor: Dr. ir. Y. Pang Specialization: TEL Creditpoints (EC): 15

Assignment type: Computer Assignment Report number: 2017.TEL.8146 Confidential: NO

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,

(3)

A calculation tool aiding

the design of pipe

con-veyors

S.A.Stammes

Technische Univ ersi tei t Del ft

(4)
(5)

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,

(6)
(7)

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.

(8)
(9)

Summary (Dutch)

Recentelijk hebben pipe conveyor systemen meer populariteit verkregen doordat pipe conveyor sys-temen verschillende lopende band syssys-temen 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.

(10)
(11)

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

(12)

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

(13)

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.

(14)

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.

(15)

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 AppendixB.

The lecture states estimated amounts of the different types of pipe conveyors currently installed as can be seen in Table2.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, splichold-ing, 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

(16)

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.

(17)

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 table2.2.

Table 2.2: Coefficient of resistance in supporting rollers

Condition Parallel supporting rollers

Trough supporting rollers

Hexagon supporting rollers

Clean, dry and no wearing dust indoors

0.018 0.02 0.035∼ 0.045

Few wearing dust un-der normal tempera-ture

0.025 0.03 0.045∼ 0.055

Lots of wearing dust outdoors

0.035 0.04 0.055∼ 0.075

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:

(18)

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:

𝑁 = 𝑃𝑉

1000[𝑘𝑊] (2.10)

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 specificaspecifica-tions 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

(19)

2.3.Standards 7

• user-interface customization cookies such as language or font preferences, for the duration of a session (or slightly longer)

(20)
(21)

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 section2.3need 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.

(22)

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 registraauthentica-tion 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

(23)

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

(24)

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.

(25)

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, Chapter5. 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:

(26)

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) {

(27)

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 }

(28)

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

(29)

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; }

(30)
(31)

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 Chapter4. 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.

(32)

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 Figure5.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 authentiauthenti-cation provider. The getUserData() function as shown in Figure 5.6returns an observable that gets triggered when the authentication state changes to logged out. If

(33)

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 Figure5.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 Figure5.9.

(34)

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 figure5.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.

(35)

5.4.Data generation function 23

Figure 5.5: Throughput calculation function

(36)

24 5.App Functions

Figure 5.7: Facebook Authentication Provider Function

(37)

5.4.Data generation function 25

Figure 5.9: Firebase Console list of users

(38)
(39)

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

(40)

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.1and 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 Figure6.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 Figure6.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

(41)

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 Chapter7.

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.5the 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 Figures6.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 concon-nection 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.

(42)

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 Figure6.9. The client-side bandwidth usage corresponds with the server-side logging.

(43)

6.2.Test Results 31

(44)

32 6.Validation Of App

(45)

6.2.Test Results 33

(46)

34 6.Validation Of App

Figure 6.8: App reset screen

(47)

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 Figure7.1.

Figure 7.1: The App in the App store

After installation is successful a home screen setup as shown in Figure7.2should be shown. 35

(48)

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 Figure7.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.

(49)

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 Figure7.4.

(50)

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 Figure7.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 Figure7.6.

(51)

7.3.Log in user 39

Figure 7.5: The home screen after login

(52)

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 Figure7.8.

(53)

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 Figure7.9.

(54)

42 7.Walk through - Step By Step

(55)

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

(56)

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.

(57)

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.

(58)

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.

(59)

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. 𝜔 = 𝜋𝑛

30 (B.4)

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)

(60)

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.

𝑣 = 𝑛

60(𝜋𝐷 ) (B.7)

Where𝑣 is the longitudinal belt speed, 𝑛 is the pulley mechanical speed and 𝐷 is the diameter of the drive pulley.

Cytaty

Powiązane dokumenty

Z kolei aksjologiczne wnioskowania prawnicze tworzą schematy inferencyjne uzasadniające przejście od stwierdzenia obo- wiązywania określonej normy (albo całego zespołu norm)

Przedstawione powyżej dwa sposoby rozumienia terminu norma tech­ niczna nie wydają się całkowicie uzasadnione. Nie są to zresztą jedyne znaczenia, jakie nadawano temu terminowi, ale

13 Por. Perspectives de l'Economie Française en 1965, op. 14 IV e Plan de développement Economique et Social, op.. Liczbę gospodarstw domowych i jednostek konsumpcyj­ nych w

With minor required input, the calculation tool gives the user information about the key parameters of a belt conveyor system.. The required input is limited to the capacity, the bulk

Met behulp van ditmodel worden de verplaatsingen van sommige knooppunten bepaald voor verschillende waarden voor E x layer4 om de invloed van de trogbaarheid van de transportband op

From a main lay-out, the capacity, the general shape, the forces in the belt and the required power are calculated.. The parts of the belt feeder needed for a functional design

Based on the results of the numerical analysis it could be concluded that the pipe is stable when the troughability (F/W belt ) is greater than 0.12 and smaller than 0.36 because,

With the used sensor and the developed program, we were able to measure the magnet position with an accuracy of ±2 mm within the sensing range of the sensor.. This accuracy can only