UNIVERSITY OF NAIROBI DEPARTMENT OF MECHANICAL AND MANUFACTURING ENGINEERING PROJECT NUMBER GMN 02 / 2011 DEVELOPMENT OF DESIGN SOFTWARE FOR PUMPING SYSTEMS IN HORTICULTURAL AND FLORICULTRUAL INDUSTRIES This report is submitted in partial fulfilment of the requirements for the award of the degree of Bachelor of Science in Mechanical and Manufacturing Engineering. Authors: 1. MARGARET KAMAU WAKONYO F18 / 10700 / 2006 2. ALLAN BOGONKO OKINYI F18 / 11105 / 2006 Project Supervisor: ENGINEER GEORGE MAKARI NYORI Page | 1 Margaret Kamau Wakonyo Allan Bogonko Okinyi You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) DECLARATION Unless where stated, acknowledged or referenced, we (Margaret Kamau Wakonyo and Allan Bogonko Okinyi) declare that the project report which includes research work, development, findings, discussions and conclusions is entirely our quintessential effort and to the best of our knowledge is original. The project details entailed in our report has not been presented before to the best of our knowledge. 1. Bogonko Allan Okinyi, Signature........................................................... This day.................................of......................... 2. Kamau Margaret Wakonyo, Signature........................................................... This day.................................of......................... 3. Project Supervisor: Eng. Nyori Makari George, Signature........................................................... This day.................................of......................... Page | 2 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) DEDICATION This project is dedicated to Pete, Kate and Nate for there never was, there never could be a better way to thank them. For the motivation and ability to stir up our inner capabilities, strength and imagination to believe in ourselves and further manage to bring out the best in us. Page | 3 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) ACKNOWLEDGEMENT We humbly thank the Almighty God for his unending blessings of good health, wisdom and sound minds. We are grateful to Limuru Archdiocesan Farm for giving us the opportunity to validate the software. Lest too we forget our beloved parents, family members, friends and colleagues for their invaluable support, their love for us and most of all for their continued optimism and believe in us. Finally to our project supervisor, Eng. Nyori for his untainted support and guidance. We acknowledge and appreciate you all. Page | 4 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) ABSTRACT Following intense research and development in software technology it is possible to convert design variables in engineering product development using easy–to-learn and code software languages such as Microsoft visual basic and Microsoft C++. The objective of this project was to analyse design variables in development of pumping system for horticultural firms. The ultimate design is based on research work carried out in the previous two years on horticultural farms and the software was developed using Microsoft Visual Basic Programming Language. The design variables include crop water requirement, size of land in use, type of pipe material, static head and the length of the pipeline. This project uses the moody diagram (for friction factor), Kenya pipe standards designation: KS 149: PART 2000 as well as Ajax end suction pumps (elite type) performance curves and data tables. The pumping software developed is able to determine for the user the pipeline flow rate, pipe diameters, net head to be overcome and an approximately suitable pump model. Page | 5 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) TABLE OF CONTENTS DECLARATION.................................................................................................................... DEDICATION........................................................................................................................ ACKNOWLEDGEMENTS....................................................................................................... ABSTRACT........................................................................................................................... NOMENCLATURE................................................................................................................. PROBLEM STATEMENT.................................................................................................. Objective 1. INTRODUCTION............................................................................................................. 1.1. Horticulture 1.2. Horticulture industry in Kenya 1.3. Floriculture 1.4. Problems encountered in Kenya’s horticultural industry 2. LITERATURE REVIEW...................................................................................................... 2.1. Irrigation 2.2. Drip irrigation components 2.3. Crop water requirements (CWR) 2.4. Factors that affect the crops evapotranspiration rate 2.5. Determination of crop water requirement 2.6. Land topography 2.7. Irrigation pumps 2.8. Visual basic 3. PUMPING SYSTEM DESIGN SOFTWARE.......................................................................... 3.1. Methodology 3.2. Variables in the design of a pumping system software 3.3. The programme 4. DISCUSSION, RECOMMENDATION & CONCLUSION....................................................... 4.1. Variables 4.2. Data Collected 4.3. Recommendation 4.4. Conclusions BIBLIOGRAPHY AND REFERENCES ATTACHMENTS Page | 6 Margaret Kamau Wakonyo 2 3 4 5 8 9 9 10 10 10 11 12 13 13 13 14 15 15 18 18 21 25 25 25 29 34 34 35 36 37 39 40 Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) LIST OF TABLES Table 1.1 – Some of Kenya’s main types of exports Table 2.1 – Approximate values of ETo (mm/day) Table 2.2 - Table showing some of the factor limiting Land for horticultural use Table 2.2a – Mean daily percentage of annual daytime hours for different latitudes Table 2.3a – Values of crop factors, Kc for various crops at different stages Table 2.4 – Visual basic 2008 Express edition mathematical operators Table 2.5 – Visual basic 2008 Express edition conditional operators Table 2.6 – Visual basic 2008 Express Edition logical operators Table 4.1 – Table showing the pumping system sample data Table 4.2 – Table showing the parameters designed by the software Pages 11 17 18 Attachment Attachment 24 24 24 35 36 LIST OF FIGURES Figure 2.1 – Major components of drip irrigation Figure 2.2 – Parts of a centrifugal pump Figure 2.3 – An image depicting the positive static suction arrangement for a characteristic water pump Page | 7 Margaret Kamau Wakonyo Pages 14 19 21 Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) NOMENCLATURE Symbols and Abbreviations Symbol CWR ET ETO KC TMAX TMIN TMEAN UPVC Re H Hf Hs k N ns f υ di do Q g Meaning Crop Water Requirement Evapotranspiration Reference Crop Evapotranspiration Crop Factor – KC Maximum temperature Minimum temperature Mean daily temperature Unplasticized Polyvinyl Chloride Reynolds Number Head Friction Head Static Head Internal Roughness Speed of Rotation Specific Speed Friction Factor Kinematic Viscosity of Fluid Internal Diameter Nominal Diameter Flow Rate Acceleration due to Gravity Page | 8 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) PROBLEM STATEMENT To develop a design software suitable for pumping system in horticultural and floricultural industries. OBJECTIVES To un ify all the data available from the previous years’ project work and determine the variables for design of a pumping system for a horticultural industry. To develop a flow chart for the program incorporating its functionality and logical sequence. To develop design software using Microsoft Visual Basic programming language. Page | 9 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) CHAPTER 1 INTRODUCTION 1.1. Horticulture Horticulture is the industry and science of plant cultivation including the process of preparing soil for the planting of seeds, tubers, or cuttings. Crops grown include fruits, berries, nuts, vegetables, flowers, trees, shrubs, and turf. Horticulturists work to improve crop yield, quality, nutritional value, and resistance to insects, diseases, and environmental stresses. Horticulture has a very long history. The origins of horticulture lie in the transition of human communities from nomadic hunter-gatherers to sedentary [1] or semisedentary horticultural communities, cultivating a variety of crops on a small scale around their dwellings or in specialized plots visited occasionally during migrations from one area to the next. Horticulture primarily differs from agriculture in two ways; firstly it generally encompasses a smaller scale of cultivation, using small plots of mixed crops rather than large fields of single crops. Secondly horticultural cultivations generally include a variety of crops, even including fruit trees with ground crops. Agricultural cultivations however as a rule focus on one primary crop. 1.2. Horticulture Industry in Kenya In Kenya agriculture accounts for about 24% of Kenya’s GDP where it’s estimated that 75% of the population depend on the sector either directly or indirectly. Further the horticultural sub-sector of agriculture has grown and earned for itself the status of the fastest growing industry in terms of value, investment prospects and volume in export sales in the last decade to become a major income earner for the country (ranked third in terms of foreign exchange earnings after tourism and tea[2]) especially in terms of foreign exchange and has opened up new potential in the agricultural sector as it creates employment to over two million people since its labour intensive and has become a major contributor of food needs in the country. The premiere horticultural crops nurtured are fruits, vegetables and cut flowers where Kenya’s favourable tropical and temperate climatic conditions make it possible for horticulture production whilst supporting the growth of a wide range of horticultural crops. Horticulture in Kenya is mainly rain fed though a number of farms, especially the ones growing horticultural crops for export, also use irrigation. The sub-sector is characterised by a remarkable variety in terms of farm sizes, variety of produce, geographical area of production as well as the level of skilled labour in use and complexity of inputs used. A well-developed and dynamic private sector has profitably marketed a wide range of horticultural products to diverse international markets. Government intervention in this area has been minimal, mainly facilitating the sectoral growth through infrastructure 1 2 Sedentary - abiding in one place not migratory Ministry of Tourism, Trade and Industry Report on Horticulture on Commercial Farming for October 2009 Page | 10 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) development, incentives and support services. Structural and macroeconomic reforms, as well as the introduction of more moderate trading environment has also provided a major boost to the country’s horticultural prospects. 1.3. Floriculture Floriculture is a highly specialised industry and capital intensive. Flowers form a major part and account for about half of Kenya’s fresh horticultural exports. The Kenyan flower industry is expanding, with roses continuing to dominate the export market with sales up from 24.6 million kilograms in 1999 to 28.4 million kg in 2003, a 15% increase. The major flower varieties grown and exported from Kenya are roses, carnations, statice, cutfoliage, carthhamus, solidaster/solidago, chrysanthemums, arabicum, trelizia, rudbeckia, gypsophilia, lilies, molucella, erynngium and tuberoses. Cut Flowers Fruits and Nuts Vegetables Roses and Lilies Avocados French and Runner beans Carnations and Statice Apples Snow and Garden peas Chrysanthemums Mangoes Asparagus and Aubergines Alstroemesia Melons Chillies and Onions Arabicum Strawberries Beetroot and Broccoli Ornithogalum Passion fruits Asian vegetables Cut foliage Pineapples Carrots and Cauliflower Carthhamus Cashew nuts Spices and herbs Solidaster and solidago Macadamia nuts Courgettes and Cucumber Table 1.1: Some of Kenya’s main types of exports, 2000 [3] 3 Economic Survey: Central Bureau of Statistics Page | 11 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 1.4. Problems encountered in Kenya’s horticultural industry 1.4.1. Threat i. Trade barriers ii. Competition from other exporting countries iii. Dynamic market requirements iv. Over-dependency of donor funding v. Unstructured local market 1.4.2. Major constrains a. Competition from other exporting countries b. Small fragmented production units c. In cohesive and unstable farmer groups d. Poor post harvest handling e. Price fluctuation f. Poor infrastructure e.g. road network, cold storage, electricity and other communication channels g. High freight charges h. Multiple taxes from local authorities i. Bureaucracies of license and taxation j. Poor investment policies Page | 12 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) CHAPTER 2 LITERATURE REVIEW 2.1. Irrigation Irrigation plays a major role in horticulture; it provides artificial application of water to the soil. It assists in the growing of agricultural crops, maintenance of landscapes, and revegetation of disturbed soils in dry areas and during periods of inadequate rainfall. Additionally, irrigation also has a few other uses in crop production, which include protecting plants against frost [4] and helping in preventing soil consolidation. Agriculture that relies only on direct rainfall is referred to as rain-fed or dry land farming. Irrigation systems are also used for dust suppression, disposal of sewage, and in mining. Irrigation is often studied together with drainage, which is the natural or artificial removal of surface and sub-surface water from a given area. Thus mechanical engineering comes in as a substantive tool for designing and establishing the essential machinery for supplying the required amount of water at the most technological conscious methods, energy saving and efficient. The main irrigation system considered was drip irrigation which is practised in most flower farms. Drip irrigation (trickle irrigation or micro irrigation), is an irrigation technique which saves water and fertilizer by allowing water to drip slowly to the roots of plants, either onto the soil surface or directly onto the root zone, through an arrangement of valves, pipes, tubing, and emitters. Drip irrigation may also use devices called micro-spray heads, which spray water in a small area, instead of dripping emitters [5]. These are generally used on tree and vine crops with wider root zones. Careful study of all the relevant factors like land topography, soil, water, crop and agro-climatic conditions are needed to determine the most suitable drip irrigation system and components to be used in a specific installation. 2.2. Drip irrigation components The following flow chart gives the major components of a drip irrigation system from water source to the plants. 4 Snyder, R. L.; Melo-Abreu, J. P. (2005). "Frost protection: fundamentals, practice, and economics – Volume 1". Food and Agriculture Organization of the United Nations. 5 http://www.engineeringtoolbox.edu Page | 13 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Water Filter(s) Pump or pressurized water source Filtration Systems: a. Sand Separator like HydroCyclone b. Screen filters c. Media filters Fertigation Systems 1. Venturi injector 2. Dosser Pumps 6. Delivery Lines a. Main line, Sub – main, Distribution Pipes b. Fittings Control and Safety Valves c. Hand-operated, electronic, or hydraulic control valves Control and Safety Valves Hand-operated, electronic, or hydraulic control valves Pressure Control Valve Backwash Controller Pressure Regulator Backflow Preventer Emitting Devices at plants Emitter or Drippers, micro spray heads, inline drippers, trickle rings Note: An emitter is also identified as a dripper and is used to transmit water from a pipe or tube to the vicinity that is to be irrigated. Figure 2.1: Major components of drip irrigation. Note: Drip irrigation systems may be manually or automatically operated by a controller. 2.3. Crop Water Requirements (CWR) Crop Water Requirement (CWR) is the total amount of water required to balance the evaporation and transpiration losses from the crop. For the crops to receive their full water requirements for their efficient productivity, water must be provided either by rain or supplied through irrigation. Thus Irrigation requirement is the water supplied through irrigation to enable meets the full water requirement. 2.3.1. Evaporation It is the process by which liquid water is transformed to water vapour (vaporisation) and removed from the evaporating surface such as soil, water or plant surfaces into the atmosphere. 2.3.2. Transpiration It is the process by which liquid water contained in the plant tissues vaporises and the vapour is lost to the atmosphere. This process occurs through the stomata [6]. 6 Stomata - These are small openings on the leaves of the plants that allow gases and water vapour to pass. Page | 14 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 2.3.3. Evapotranspiration, ET Evapotranspiration is the combination of evaporation and transpiration where in evaporation, water is lost from the soil surface while in transpiration; water is lost from the crops and thus the two processes occur concurrently. The evaporation rate of the atmosphere is expressed in terms of the reference crop evapotranspiration, ETO which represents the evapotranspiration from a standardized vegetated surface. Magnitude of ET is generally tenths of an inch per day and varies with type of plant, growth stage, weather, and soil water content and soil fertility. 2.4. Factors that affect the crops evapotranspiration rate Weather parameters - These include solar radiation, air temperature, humidity and wind speed. Crop factors - Crop type, variety and stage of development, resistance to transpiration, crop height and roughness, reflection to solar radiation, ground cover, canopy formation and crop rooting characteristics results to different ET levels for different crop types even under identical water and environmental conditions. Management and Environmental conditions - Soil salinity, poor land fertility due to insufficient fertilizer application, consolidated and impenetrable soil horizons, poor control of diseases and pests are management factors that limit the crop development and consequently affect evapotranspiration. Ground cover by natural vegetation and canopy, plant density and soil water content and its retaining capacity are some of the environmental factors. 2.5. Determination of crop water requirement Reference crop evapotranspiration, ETo - The reference crop evapotranspiration ETo, sometimes called potential evapotranspiration, PET, is defined as the rate of evapotranspiration from a large area covered by green grass which grows actively, completely shades the ground and which is not short of water. Crop evapotranspiration under standard conditions, ETc - It’s the evapotranspiration from disease- free, well fertilized crops grown in large fields, under optimum conditions while achieving full production under the given climatic conditions. Crop Coefficient (Kc) - It is the empirical coefficient which incorporates type of crop, stage of growth and soil water status. A dry soil can limit ET while a wet soil surface can increase soil evaporation. An equation relating Crop evapotranspiration under standard conditions, ETc and Reference crop evapotranspiration, ETO is given below; = 7 + Equation A [7] http://www.fao.org/docrep/u3160e Page | 15 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 2.5.1. Method of calculating ETo (The Blaney - Criddle Method[8]) If no measured data on evaporation is available, the Blaney-Criddle method can be used to calculate ETO. This method is straight forward and requires only data on mean daily temperatures. However, with this method, only approximations of ETO are obtained which can be inaccurate in extreme conditions. The Blaney-Criddle formula is: ETO = p (0.46Tmean + 8) Equation B Where ETO is the reference crop evapotranspiration (mm/day) Tmean is the mean daily temperature (° C) p is the mean daily percentage of annual daytime hours. The Blaney-Criddle Method always refers to mean monthly values, both for the temperature and the ETO. If in a local meteorological station the daily minimum and maximum temperatures are measured, the mean daily temperature is calculated as follows: = Equation C = Equation D = Equation E To be able to obtain the p value, it is essential to know the approximate latitude of the area: the number of degrees north or south of the Equator. (See Attachment for Mean daily percentage of annual daytime hours for different latitudes). Model Calculation For example, when p = 0.29 and Tmean = 21.5 °C, The ETO is calculated as follows: ETO = 0.29 (0.46 x 21.5 + 8) = 5.2 mm / day. The approximate values for ETO above may be used in the absence of measured or calculated figures. 8 http://www.fao.org/docrep/u3160e Page | 16 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Climatic zone Desert/arid Semi-arid Sub-humid Humid Mean daily temperature 1515° 25° 25°C 4-6 7-8 9-10 4-5 6-7 8-9 3-4 5-6 7-8 1-2 3-4 5-6 Table 2.1: Approximate Values of ETo (mm/day) [9] 2.5.2. Crop Factor – KC In order to obtain the crop water requirement, ETC, the reference crop evapotranspiration, ETO, is added to the crop factor, Kc. The crop factor ("crop coefficient") varies according to the growth stage of the crop. There are four growth stages to distinguish: a) b) c) d) The initial stage: when the crop uses little water The crop development stage, when the water consumption increases The mid-season stage, when water consumption reaches a peak The late-season stage, when the maturing crop once again requires less water. The crop factor, Kc, mainly depends on: the type of crop, the growth stage of the crop and the climate. Thus, to determine the crop factor Kc, it is necessary, for each crop, to know the total length of the growing season and the lengths of the various growth stages. (See Attachment for values of crop factors Kc for various crops at different stages). 2.5.3. Factors influencing crop water requirement for irrigation Climatic Influence - Certain crops grown in sunny and hot climate need more water per day than the same crops grown in a cloudy and cooler climate. Humidity and wind speed also affect CWR. When it’s dry the crop water needs are higher than when it’s humid. Likewise, in windy climates the crops use more water than in calm climates. Type of crop - The crop type has an influence on the daily water needs of a fully grown crop and on the duration of the total growing season. Different types of crops have diverse rates of evapotranspiration thus the water requirement also fluctuates. Soil media - The physical, chemical and biological property of the soil determines amount of water and frequency of water supply to the plants. Ideally the soil in the cultivated area should be a deep, fertile loam. 9 www.fao.org/docrep/u3160e/u3160e04.htm Page | 17 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 2.6. Land Topography The climatic condition of a land varies largely with topography and altitude. Average temperature decreases as elevations increase in the mountains. The areas that experience heavy rainfall, and as a result, most of the rivers and streams are highly inflated. Although heavy rains help regeneration of forests, it is also responsible for speedy soil erosion and landslides which make the maintenance of roads quite costly. A land considered good should at least have a combination of good quality water, suitable sites for large farm dams and suitable soils which favour irrigated horticulture. Degree of Limitation Factor Dam Sites Soil Drainage Erosion Hazard Soil Depth Good Moderate Severe Suitable, undulating hilly topography, clay Sub-soils, large catchment area. Well drained but with good water-holding capacity for plant growth Gentle to moderate slopes, either loamy or sandy soils Marginal, slightly undulating or upper slopes with small catchments. Unsuitable: flat topography, poor sandy sub-soils. Deep soils, gravel and stone free Excessively well drained with very 1cm water holding capacity Poorly drained, subject to water logging. Steeper slopes with loamy soils Steeper slopes with sandy soils. Moderately deep, soils with gravel Shallow soils with much gravel and massive rock outcrop Table 2.2: Table showing some of the factor limiting Land for horticultural use 2.7. Irrigation Pumps The heart of water movement is a big job in itself and a pump is expected to work for a long time with little maintenance, to do its job quietly and efficiently under stress, and to be readily repairable or disposable the moment anything wears out. A pump is a device used to move fluids, such as liquids, gases or slurries. A pump displaces a volume by physical or mechanical action. Page | 18 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 2.7.1. Classification of Pumps [10] The most basic classification criterion for differentiating the pumps, whether it is for analysis purposes or for commercial usage, is the fluid flow pattern. There are also other important classifications based on the power rating range and fluid discharge rate i.e. the flow rate. The flow supplied by a pump can be sporadic or uninterrupted. The pumps with sporadic flow are all positive displacement pumps and pumps with continuous flow are all Roto-Dynamic pumps. 2.7.2. Positive Displacement Pumps Positive displacement of a fluid is that a closed volume of the fluid is moved from one part of the machine to the other part. The construction of the positive displacement pumps is such that the moving parts along with the fixed ones inside it can form moving enclosed volumes. They open on one side, take the fluid, enclose it and open on the other side, discharging the fluid. 2.7.3. Centrifugal pump A centrifugal pump is a roto - dynamic pump that uses a rotating impeller to increase the pressure and flow rate of a fluid. Centrifugal pumps are the most common type of pump used to move liquids through a piping system. The fluid enters the pump impeller along or near to the rotating axis and is accelerated by the impeller, flowing radially outward or axially into a diffuser or volute chamber, from where it exits into the downstream piping system. Centrifugal pumps are typically used for large discharge through smaller heads. Figure 2.2: Parts of a Centrifugal Pump. [11] 2.7.3.1. Principle of operation of a centrifugal pump Like most pumps, a centrifugal pumps’ purpose is to convert energy of a prime mover (e.g. an electric motor or turbine) first into velocity or kinetic energy and then into pressure energy of a fluid that is being pumped. The energy changes occur by virtue of two main parts of the pump, the impeller 10 http://www.engineeringpage.com/technology/pumps/centrifugal_pump_sizing.html 11 http://www.engineeringtoolbox.edu Page | 19 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) and the volute [12] or diffuser. The impeller is the rotating part that converts driver energy into the kinetic energy. The volute or diffuser is the stationary part that converts the kinetic energy into pressure energy. Note: All of the forms of energy involved in a liquid flow system are expressed in terms of feet of liquid i.e. head. 2.7.3.2. Generation of centrifugal force The process fluid enters the suction nozzle and then into the impeller section. When the impeller rotates, it spins the liquid occupying the cavities between the vanes outward and provides centrifugal acceleration. As the liquid leaves the eye of the impeller a low-pressure area is created causing more liquid to flow toward the inlet. Since the impeller blades are curved, the fluid is pushed in a tangential and radial direction by the centrifugal force. 2.7.3.3. Conversion of kinetic to pressure energy The amount of energy given to the liquid is proportional to the velocity at the edge or vane tip of the impeller. The faster the impeller revolves or the bigger the impeller is, then there will be a corresponding influence on the fluid in that the velocity of the fluid imparted will have an increased velocity head. This kinetic energy of a liquid coming out of an impeller is harnessed by creating a resistance to the flow. The first resistance is created by the pump volute (casing) that catches the liquid and slows it down. In the discharge nozzle, the liquid further decelerates and its velocity is converted to pressure according to Bernoulli’s principle. Therefore, the head (pressure in terms of height of liquid) developed is approximately equal to the velocity energy at the periphery of the impeller. 2.7.4. Pump characteristics i. Head - Height of a vertical column of water ii. Total static head – The vertical distance the pump must lift the water; the difference in height between the source and the destination of the water being pumped. Static head is independent of flow and depends on physical conditions between suction points and discharge points. iii. Friction head – The total energy or pressure loss due to friction as water flows through pipe networks and fittings from suction to the discharge. It depends on pipe material, size, length, type and number of fittings iv. Velocity head- The energy of the water due to its velocity 12 Volute – Forming a spiral curve or curves (Oxford Dictionary of Contemporary English) Page | 20 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) v. Suction head - The suction head includes not only the vertical suction lift, but also the friction losses through the pipe, elbows, foot valves and other fittings on the suction side of the pump vi. Total dynamic head - The sum of the total static head, pressure head, friction head, and the velocity head, to be overcome by the pumping system. 2.7.4.1. Static head A pump should be raised above the ground level to allow for positive suction thus improving efficiency of other pumps. The static head depends on site conditions between the suction and the delivery reservoir, and the location of suction and discharge points on the reservoirs. It is determined by a survey of site conditions. Figure 2.3: An image depicting the positive static suction arrangement for a characteristic water pump. [13] 2.8. Visual Basic Visual Basic is a tool that allows the user to develop Windows (Graphic User Interface GUI) applications. The applications have a familiar appearance to the user. Visual Basic is event-driven, meaning code remains idle until called upon to respond to some event (button pressing, menu selection ...). Visual Basic is governed by an event processor. Nothing happens until an event is detected. Once an event is detected, the code corresponding to that event (event procedure) is executed. Program control is then returned to the event processor. 2.8.1. Structure of a Visual Basic Application The design software is made up of the following applications: a. Forms - Windows that you create for user interface b. Controls - Graphical features drawn on forms to allow user interaction (text boxes, labels, scroll bars, command buttons, etc.) 13 lightmypump.com Page | 21 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Note that: Forms and Controls are objects c. Properties - Every characteristic of a form or control is specified by a property. Example properties include names, captions, size, colour, position, and contents. Visual Basic applies default properties. You can change properties at design time or run time d. Methods - Built-in procedure that can be invoked to impart some action to a particular object e. Event Procedures - Code related to some object. This is the code that is executed when a certain event occurs f. General Procedures - Code not related to objects. This code must be invoked by the application g. Modules - Collection of general procedures, variable declarations, and constant definitions used by application. Visual Basic operates in three modes. 1. Design mode - used to build application 2. Run mode - used to run the application 3. Break mode - application halted and debugger is available. 2.8.2. Basic tools in the tool box a. Pointer: This is the only item in the Toolbox that doesn't draw a control. It is used to resize or move a control after it's been drawn on a form. b. Label: Used for text that you don't want the user to change, such as a caption under a graphic. c. Command Button: Used to create a button that the user can choose to carry out a command. d. Text Box: Used to hold text that the user can either enter or change. e. Main Menu: Adds menus under the titles bar of the form i.e. File, Edit. f. List Box: Used to display a list of items from which the user can choose one. The list can be scrolled if it has more items than can be displayed at one time. g. Tool Bar: Allows the programmer to add a toolbar to his form. h. Error Provider: Provides a non-intrusive way of showing that there is an error with the input or in a data set. An exclamation mark in a red square is displayed next to the error. Page | 22 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 2.8.3. Properties window The Properties window contains the list of design-time properties for a selected form, control, class, module, or menu. These properties can be changed at design time, and the properties window shows each property's current setting. When you select multiple controls, the properties window contains a list of the properties common to all the selected controls. 2.8.4. Data types in VB A variable is a named location that holds data and can only hold one data type. A program can have as many variables as you need but one needs to declare the variables before using them by assigning names and data types. They are normally declared in the general section of the codes' windows using the Dim statement where DIM stands for dimension, a storage location in memory using the format: Dim VarName as Datatype. The Dim statement causes the computer to set aside a location in memory with the name VarName. 2.8.4.1. Numerical data type Numeric data is data that consists of numbers, which can be computed mathematically with various standard operators such as, add, minus, multiply, divide and so on. They include; integer, double, long, single, decimal, and currency. a) Integer - An Integer is a positive or negative number with no value past the decimal point and no fractions but has a limitation on the range of values it can hold. b) Single and Double – These are data types used to represent real numbers are commonly used as floating point values. The single uses 4 bytes and the double uses 8 bytes, so the double can store larger values than the single. 2.8.4.2. Non numerical data type Include string (fixed and variable length) and text, where a string refers to data that consists of 0 to 65,400 characters of alphanumeric data including special characters such as @, ^, ½. Also consists of textual data and are enclosed in double-quotes. They are represented as a sequence of bit patterns that match to alphanumeric values. Two strings can be combined to form a new string. The joining operation is called concatenation and is represented by an ampersand (&). The difference between strings and integers is that strings are simply a sequence of encoded bit patterns, while integers use the binary number format to represent values. We will often convert back and forth between string and number data types. Page | 23 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 2.8.5. Mathematical Operators These are used to compute inputs from users and to generate results. They include; Operator ^ * / + - Meaning 1. Exponential 2. Multiplication 3. Division 4. Addition 5. Subtraction Table 2.4: Visual Basic 2008 Express Edition Mathematical Operators 2.8.6. Conditional Operators Conditional operators are very powerful tools, they let the VB program compare data values and then decide what action to take, whether to execute a program or terminate the program. They include: Operator Meaning = 1. Equal to > 2. More than < 3. Less Than Table 2.5: Visual Basic 2008 Express Edition Conditional Operators 2.8.7. Logical Operators In addition to conditional operators, there are a few logical operators which offer added power to the VB programs. These include; Operator And Or Meaning 1. Both sides must be true 2. One side or other must be true but not both Table 2.6: Visual Basic 2008 Express Edition Logical Operators 2.8.8. Functions The general format of a function is: Public Function functionName (Arg As dataType ...) as dataType Or Private Function functionName (Arg As dataType ...) as dataType Where Public indicates that the function is applicable to the whole program and Private indicates that the function is only applicable to a certain module or procedure. Page | 24 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) CHAPTER 3 PUMPING SYSTEM DESIGN SOFTWARE 3.1. Methodology Variables in the design of a pumping system for horticultural industry, irrespective of the geographical location and the type of crop grown were found by; 1. Analysing and reviewing the past two years submitted projects 2. Through analysis of calculations provided and determining which variables were mostly involved 3. Referring to theoretical books on fluid dynamics to correlate obtained data with known theoretical equations 4. Microsoft Visual Basic Programming language was used to design the pumping system software. 3.2. Variables in the design of a pumping system software The design of a pumping system proceeds in three steps; Survey of site conditions - This determines the opportunities and constraints of the environment at which the pumping system is to be located. This physical survey determines the length of the pipeline and intended route and the static head to be overcome by pumping. Selection of a pipeline - The pressure loss due to friction depends on pipeline factors such as pipe size, material, length, fittings and velocity. Consequently, the total head to be overcome depends on the pipeline data which in turn influences the selection of pump. Selection of pump - Once the selection of pipe size and pipe material has been done, the pressure head loss due to fluid friction in the pipeline is determined. The pump type required is then selected by considering the total head to be overcome together with the demand flow rate required. 3.2.1. Demand The crop water requirement is obtained from the dripper capacity which is in cubic metres per hour and is determined by, = Where + Equation 1 ETC, Crop evapotranspiration under standard conditions ETO, Reference crop evapotranspiration KC, Crop Coefficient. Page | 25 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) The number of drippers was calculated for from the relation; = Where Equation 2 δ, Spacing between the drippers Χ, Sample bed length , The number of drippers. The flow rate through the distribution pipe line, Q was therefore found by using the equation; = Equation 3 Where Q, Flow rate through the distribution pipeline , Number of drip lines per distribution pipe. Note: This flow rate was used to determine the preliminary size of the distribution pipe and consequently the actual velocity of flow in the distribution pipeline. The Flow rate per sub – main pipe, was obtained as follows; = Equation 4 Where is the number of distribution lines per sub-main pipe Note: This flow rate in the later stages of the study was used to establish the preliminary size of sub-main pipe and its flow velocity in the sub – main pipeline. For β being the number of valves being supplied with water at a go by the pump, the Pump demand i.e. the flow rate in the main pipeline, was calculated for using the relationship; = Equation 5 Note: This flow rate should be used to determine the preliminary size of main pipe and its flow velocity. Using the flow rates calculated for each line and applying a guide line velocity, a preliminary design was done which gave the preliminary internal diameter for each of the lines. The criteria applied in choosing the guideline velocity was based on information from Handbook of Piping Design. Thus from the continuity equation; = Equation 6 It follows that flow rate; Q depends on pipe diameter and flow velocity. For the main pipe, m m m a guide velocity of 2 /s was applied, sub-main 1.8 /s and distribution line 1.6 /s. Page | 26 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) The decrease in guide velocity was based on reduction in flow rate Q and expected decrease in diameter from source to delivery end. The preliminary pipeline size is obtained from continuity equation; = { } Equation 7 3.2.2. Pipeline characteristics data The programme is able to give an approximate pipeline size (preliminary design) based on the guideline velocity then it further goes ahead to choose the most appropriate and available size from the Kenya Standard KS 149: PART 2: 2000. The pipe material specified by Kenya Standard is UPV-C and the format designation adopted was UPV-C d/t-p [14], where; UPV-C – Unplasticized polyvinyl chloride D – The nominal diameter (mm) t – Thickness (mm) P – The pressure capacity (MPa) 3.2.3. Determination of the Flow velocity (u) The flow velocity through the distribution, sub – main and main pipe was obtained by applying the equation; = Equation 8 Where The flow velocity in the specific pipe The flow rate through the distribution pipe The internal diameter from the Kenya Standard of the respective pipe the flow velocity is being determined. 3.2.4. Reynolds Number (ReD) The Reynolds number in the pipelines is calculated in terms of pipe diameter, flow velocity and kinematic viscosity of water. Similarly, for each of the distribution, sub-main and the main pipeline the Reynolds number was calculated from the relation; = Where 14 Equation 9 The flow velocity in the depending on the pipe being analysed The kinematic viscosity of water taken at room temperature Kenya Bureau of Standards Pipe Material Standard Page | 27 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 3.2.5. Head loss due to friction (Hf) The head loss due to friction in the pipeline is calculated as outlined below; Note: The friction factor in the pipeline depends on the pipe material and its size. Using the above values of Reynolds Number and the pipe’s relative roughness given by ( ) ( Equation 10 ) The value of the friction coefficient is obtained from the Moody Chart. Therefore, the head loss due to friction through the pipeline being investigated is calculated using the known theoretical equation given as; = Where Equation 11 . The coefficient of friction in the pipeline being investigated for The length of the specific pipe in our case being the three distinct pipes; distribution, sub – main and main pipeline . - The value of acceleration due to gravity 3.2.6. Total head (H) Total head through the pipelines is calculated from the simple relation; = Where + Equation 12 the static head in the specific pipeline 3.2.7. Selection of pumps 3.2.7.1. Specific speed (n s) The specific speed ns for the pumps being used is calculated from the fluid mechanics expression; = Where √ ∜ Equation 13 The rotational speed of the pump feeding the pipeline of interest. Page | 28 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 3.3. The Programme START 3.3.1. Flow Chart 1. 2. 3. 4. Read Dripper capacity Dripper spacing Bed length Number of drip lines, distribution lines and valves being supplied with water TOTAL FLOW RATE Output - Preliminary Design of Pipeline Diameters Is preliminary design diameter the KS standard? NO YES Output – KS Standard Diameter The diameter obtained in the preliminary design is standardized with a KS standard one PROCESS FLOW VELOCITY Output - Flow Velocity A Page | 29 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) A 1. PROCESS FLOW REYNOLDS NUMBER 2. RELATIVE ROUGNESS Output - Flow Reynolds Number & Relative Roughness Enter 1. Friction Factor and pipeline 2. Pipeline Length PROCESS THE HEAD LOSS DUE TO FRICTION Output - Head loss due to friction Input - Static Head PROCESS THE TOTAL HEAD Output - Total Head B1 Page | 30 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) B1 Is Head < 30 m YES Choose 1450 RPMS NO Output – Error message “Head obtained is beyond design software specification.” Is Head > 30m but < 120 m NO YES Choose 2900 RPMS PROCESS PUMP’S SPECIFIC SPEED Output - Specific Speed and Pump Model STOP 3.3.2. Start page The page contains an end user license agreement that the user has to accept in order to gain access to the features of the application. The validation process requires the user to enter the correct license key on acquiring the design software. (See Code 1A in Attachment). 3.3.3. Flow rate calculator This is the second page of the program that calculates the flow rates through each pipeline from distribution pipe to main pipeline. It is a public class form in that Page | 31 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) throughout the pumping design software, values obtained on it can be called or referred upon by other forms. The crop water requirement is obtained from the dripper capacity which should be in cubic metres per hour. The designer/user has to know the crop water requirement and enters a value for the crop water requirement which is handled as a value based string and stored in the Drippercapacity.Text. Similarly the spacing between the drippers, entered by the user is stored in Dripperspacing.Text. For the bed length entered by the user, the code fool proofs the value by using If statement. If the value entered is zero or less than, the program shuts down else it returns the value of the number of drippers to the nearest whole number. (See Code 1 in Attachment). The user enters the value of the number of drip lines per distribution pipe. Using the coded equation three and the values obtained above, the flow rate in the distribution pipe is calculated by the program and the final value is output in Distri_flowrate.Text label. (See Code 2 in Attachment). The user then enters the number of distribution lines per sub-main pipe he intends to design for and the software calculates and outputs the flow rate through the sub-main pipe in Sub_flowrate.Text. (See Code 3 in Attachment). Finally the user enters the number of valves being supplied with water at a go to be designed for and the software, computes and outputs flow rate through the main pipeline in Main_flowrate.Text. (See Code 4 in Attachment). Subsequently, the flow rate through the main pipe to the reservoir is twice that in the supply pipeline. (See Code 4 in Attachment). 3.3.4. Diameter designer The third page is also a public class form which calls the values of the flow rate from the second page and stores them in “FromChildHandle(Textbox.Text).” Then using the called flow rates and applying a preliminary guideline velocity of 1.6, 1.8,2 and 3 m/s respectively to the 4 different pipes, a preliminary design diameter is obtained. (See Code 6 in Attachment). From the preliminary design diameters obtained are passed through arrays for KS Standard (KS 149: PART 2: 2000) pipe diameters and thickness, where the software picks the appropriate design diameter. (See Code 7 in Attachment). Using these KS standard diameter and the flow rates obtained previously, the velocity of flow in each specific pipeline is determined and is further used to establish the Reynolds number. (See Code 7 in Attachment). Page | 32 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 3.3.5. Net Head Calculator The fourth page requires the user to enter values of the co-efficient of friction, the pipeline length and the total static head to be overcome. All values to be used in the page are called from the various pages or forms and stored/handled with the following code, where the present form is also a public class thus values can be called from it and used in another form/page. (See Code 10 in Attachment). For the relative roughness, a specific value of 0.1 for the internal roughness of the KS standard pipe was applied in obtaining the relative roughness of each pipe. (See Code 11 in Attachment). Using the actual flow velocities and the respective internal diameters of the pipelines, the software is able to calculate and display the friction head and the net head being experienced in each pipeline. (See Code 12 in Attachment). 3.3.6. Pump Design The software was developed based on Ajax, Elite type end – suction centrifugal pump model. For a flow with net head equal to or less than 30 metres, the software chooses a pump model whose speed of rotation is 1450 rpm. Similarly for a net head of greater than 30 but less than 120 metres pumps with a speed of rotation of 2900 rpm are chosen. An If statement is used to execute the loop. Based on the head and the speed of rotation the specific speed(s) of the respective pumps is determined. (See Code 15 in Attachment). To determine suitable pumps to feed the four pipelines, arrays for the net head and flow rate were created from Ajax Pump Specification Charts with their corresponding elite pump models. Then computed values of the net head and the flow rate are passed through the created two arrays. A difference function is used to assist the program in selecting the approximate pump model using the values of the flow rate and head the software had calculated. This is facilitated by creation of a minimum difference array that stores the modular (absolute) values of the difference between the heads and the flow rates being compared. The code loops through the minimum difference array and calls the least difference value’s position, it then calls and outputs the pump model at the least difference position. (See Code 16 in Attachment). Page | 33 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) CHAPTER 4 DISCUSSIONS, RECOMMENDATIONS & CONCLUSION 4.1. Variables in the design Crop water requirement - The dripper should be designed to discharge the amount of water required by the plant without waste or deficit. This depends on type of crop, type of soil, humidity control among others as outlined in the literature review. Spacing between drippers and number of drippers - This depends on the type of crop, size of the bed, crop development behaviour. Total land under use - This determines the number of crops, layout, number and length of distribution lines, the total amount of water required, number of green houses and valves, size and number of beds. Static head - The static head depends on site conditions between the suction and the delivery reservoir, and the location of suction and discharge points. Source of water - This can be rivers, springs, lakes, boreholes or reliable rain water catchment. The nature of the source of water determines water treatment and other chemical processes and its reliability, whether permanent or seasonal may determine whether an intermediate reservoir is required. Distance from source to delivery point – This determines the number of pumps to design for and also the length of the pipeline to be used. 4.1.1. Assumptions Guideline velocity - According to the Handbook of Piping Design [15], the design velocities for pipelines delivering water with medium flows; to be applied during the preliminary design is between 1 and 3 m/s. These velocities are chosen such that pressure losses due to fluid friction in the pipeline are kept within acceptable limits which ensure that pumping equipment size and costs are kept within certain limits. Internal roughness – A value of 0.1 was assumed for the internal roughness of the pipe since our design is based on UPVC pipe material. Pipe material – For all the pipelines that were designed for, the pipe material was assumed to be UPVC. Net head – The design assumed the maximum net head based on Ajax (Elite type) pumps is 120 metres. 15 G.K. SAHU, Handbook of Piping Design, Reprint 2006 Page | 34 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Selection of pumps – The model selected is based on the location of the least difference in the minimum difference array. 4.1.2. Requirements the user needs to know / have Survey of site conditions - This determines the length of the pipeline, the layout of the design, the static head, the total land under use, nature of soil, climatic area conditions. Crop Water Requirements - The determination of CWR is outlined in the literature review and an approximate method outlined. Kenya Standard KS 149: PART 2: 2000 - The Kenya Standard KS 149: PART 2: 2000 pipeline specifications for UPV-C pipes with nominal diameters, internal diameters, wall thickness and pressure classes. Moody friction charts - The Moody friction chart is applicable in the determination of the friction factor using the Reynolds number and the relative roughness of the pipes, though this was approximated to 0.025. Pump specification charts - The Ajax (Elite type) range of end suction pump specification charts for 1450 and 2900 RPMs specific speeds, head, flow rate, efficiency. Determination of static head - A survey of the site from the water source to the supply point should assist the user in the determination of the static head. If the discharge pipe end is lower than the liquid surface of the suction tank then the static head will be negative and the flow rate high. And if this negative static head is large then it is possible that a pump is not required since the energy provided by this difference in elevation may be sufficient to move the fluid through the system without the use of a pump. If the liquid surface of the suction tank is at the same elevation as the discharge end of the pipe then the static head will be zero and the flow rate will be limited by the friction in the system, and pump may be required. Microsoft Windows - This software runs on Microsoft Windows Operating System background from Windows XP up to Windows 7 only. 4.2. Data collected The archdiocesan farm in Limuru was our farm of choice for data collection. The total land area in use for horticulture is about 4 hectares. The farm’s source of water is a permanent spring within the farm, and its water is pure hence no treatment is required. Since they have no major expenses in water sourcing, the farm does not have measures to control the amount of water. Page | 35 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 4.2.1. Data Collection Sheet The table below gives the pumping system design data collected from Limuru Archdiocesan Farm. No. Parameter Values 3 1 Crop water requirement (dripper capacity) m /s 1.11328 x 10-3 m3/hr 2 Spacing between Drippers 0.195m 3 Number of drippers 188 4 Number of green houses 6 5 Size of each green house (39.6 x 10) m2 6 Sample bed length 37.6m 7 Number of drip lines per distribution pipe 36 8 Number of distribution lines per sub-main pipe 2 9 Number of valves off main pipe 6 10 Nominal Diameter of the pipes a. Source to Reservoir 136.7 mm b. Main pipe from Reservoir 114.59 mm c. Sub – main pipe 62.2 mm d. Distribution pipe 32.5 mm 11 Length of the pipes a. Source to Reservoir 600m b. Main pipe from Reservoir 120m c. Sub – main pipe 30m d. Distribution pipe 9.35m 12 Static head a. Source to Reservoir 55m b. Main pipe from Reservoir 10m c. Sub – main pipe -5m d. Distribution pipe -2m 12 Soil type in the farm Rich Volcanic Soil (Red Loam) Table 4.1: Table showing the pumping design sample data collected 4.2.2. Program computed values Using the data collected above, our programme gave the following pumping system design parameters; Number 1 2 Parameter Value Nominal diameter of each pipe a. Source to Reservoir 160 mm b. Main pipe from Reservoir 140 mm c. Sub – main pipe 63 mm d. Distribution pipe 50 mm Flow Rate in each pipe Page | 36 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) 3 a. Source to Reservoir b. Main pipe from Reservoir c. Sub – main pipe d. Distribution pipe Net Head in each pipe a. Source to Reservoir b. Main pipe from Reservoir c. Sub – main pipe d. Distribution pipe 4 181.44 m3/hr 90.72 m3/hr 15.12 m3/hr 7.56 m3/hr 105.496 m 14.8776 m - 3.1187 m - 1.6205 m Pump model curve number a. Source to Reservoir 2900 RPM, Elite E80 - 26 b. Main pipe from Reservoir 1450 RPM, Elite E32 – 26 c. Sub – main pipe Flow by gravity d. Distribution pipe Flow by gravity Table 4.2: Table showing the parameters designed by the software 4.3. Recommendations The programming language used has a lot of versatility and should be used to incorporate even broader aspects of the design like cost analysis and other pump models (from different manufacturers). The software should be further developed by another group of final year students by introducing memory locations for saving work, keeping a data base of work done before and transfer the generated data to a work book sheet for printing. From the analysis of the data given and field work carried out, design software's like this one should be adapted into farms to help them audit their energy consumption and reduce operating costs. 4.4. Conclusion The pumping system design software is based on the last two years projects done on three different cut flowers farms. These projects’ data was analysed and the best layout design was based on the Winchester Farm due to its consistency and practical determination of the pump demand, Q. The program is designed to compute the preliminary sizes of the required pipes, based on the flow rate through the pipes (the flow rate varies with the size and diameter of the discharge pipe, the smaller the pipe, the less the flow) and applying a guideline velocity, then selects the available pipe diameters from the Kenya Standard KS 149: PART 2: 2000 whose pipe material is UPV-C – Unplasticized polyvinyl chloride. With the flow rate in the pipeline and the total head, the program subsequently chooses the most appropriate pump from the Ajax Pump (Elite Type) data sheet for End Suction Centrifugal Pumps. Once the user has the appropriate pumps from the program, the motor should then be selected from the Ajax data sheets, according to the pump specific speeds and impeller diameters. Page | 37 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) The software developed has the ability to reduce the time and resources spent in numerous and tedious calculations involved in pumping system design for horticultural / floricultural farms. The data obtained in this design assists in approximating the installation and operational costs of the system. 4.4.1. Challenges The main problem using previous year’s projects data was that we did not know what they assumed, ignored, did not consider important or just did not notice. And having to make a design based on someone else’s assumption and findings was difficult for us since they did not give in detail the pump – piping layout for the farms. It was difficult to get access to farms due to the nature of data we were interested in and most farms denied us access. The other main challenge was measuring variables especially where there were no installed gauges to measure discharge, no written records for pipe material, for pipelines that are underground and pumps that have been repaired or parts replaced hence altering the original specifications or name plate. Page | 38 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) REFERENCES & BIBLIOGRAPHY 1. G.K. SAHU, Handbook of Piping Design New Age Publishers International, First Edition 1998 2. G.K. SAHU, Pumps New Age Publishers International, First Edition 2000 3. JAY MATLEY, Fluid Movers: Pumps, Compressors, Fans and Blowers McGraw Hill Publications, 1979 Page(s) 163 - 290 4. Kenya Bureau of Standards Pipe Material Standard 5. Ministry of Tourism, Trade and Industry Report on Horticulture on Commercial Farming for October 2009 6. Market Intelligence, Horticultural Crops Development Authority ,2004 7. Horticultural Crops Development Authority, 2003 8. http://www.wordiq.com/definition/Horticulture: Copyright 2010 WordIQ.com 9. Economic Survey: Central Bureau of Statistics: www.mfa.gov , 2003 10. Snyder, R. L.; Melo-Abreu, J. P. (2005). "Frost protection: fundamentals, practice, and economics – Volume 1". Food and Agriculture Organization of the United Nations. 11. http://www.engineeringtoolbox.edu as at April 2011 12. http://www.fao.org/docrep/u3160e, Pump classifications. Fao.org. Retrieved on 2011-03-25 13. http://www.engineeringpage.com/technology/pumps centrifugal pump sizing. Retrieved on 2010-12-08 14. Courtesy of Encyclopaedia Britannica, www.britannica.com ,2010 edition 15. Guide on buying of water pumps by Briggs and Stratton Corp., www.briggsandstraton.com, 2008 publication 16. The Microsoft Visual Basic 2008 Express Edition Resource Centre (Brothersoft) http://www.img.brothersoft.com , 2010 web page 17. University of Liverpool, An Introduction to Visual Basic Programming Home Page, http://flylib.com/books/ Lab 8 - CE 311 K – McKinney, www.ce.utexas.edu/prof/mckinney/ce311K/Lab/Lab6.pdf. Page | 39 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) ATTACHMENTS Latitude: North South 60° 55 50 45 40 35 30 25 20 15 10 5 0 Jan July .15 .17 .19 .20 .22 .23 .24 .24 .25 .26 .26 .27 .27 Feb Aug .20 .21 .23 .23 .24 .25 .25 .26 .26 .26 .27 .27 .27 Mar Sept .26 .26 .27 .27 .27 .27 .27 .27 .27 .27 .27 .27 .27 Apr Oct .32 .32 .31 .30 .30 .29 .29 .29 .28 .28 .28 .28 .27 May Nov .38 .36 .34 .34 .32 .31 .31 .30 .29 .29 .28 .28 .27 Jun Dec .41 .39 .36 .35 .34 .32 .32 .31 .30 .29 .29 .28 .27 July Jan .40 .38 .35 .34 .33 .32 .31 .31 .30 .29 .29 .28 .27 Aug Feb .34 .33 .32 .32 .31 .30 .30 .29 .29 .28 .28 .28 .27 Sept Mar .28 .28 .28 .28 .28 .28 .28 .28 .28 .28 .28 .28 .27 Oct Apr .22 .23 .24 .24 .25 .25 .26 .26 .26 .27 .27 .27 .27 Nov May .17 .18 .20 .21 .22 .23 .24 .25 .25 .26 .26 .27 .27 Dec June .13 .16 .18 .20 .21 .22 .23 .24 .25 .25 .26 .27 .27 Table 2.2a: Mean daily percentage (p) of annual daytime hours for different latitudes Crop Initial stage Crop dev. stage Mid-season stage Late season stage Barley/Oats/Wheat Bean, green 0.35 0.35 0.75 0.70 1.15 1.10 0.45 0.90 Bean, dry 0.35 0.70 1.10 0.30 Cabbage/Carrot 0.45 0.75 1.05 0.90 Cotton/Flax 0.45 0.75 1.15 0.75 Cucumber/Squash 0.45 0.70 0.90 0.75 Eggplant/Tomato 0.45 0.75 1.15 0.80 Grain/small Lentil/Pulses Lettuce/Spinach 0.35 0.45 0.45 0.75 0.75 0.60 1.10 1.10 1.00 0.65 0.50 0.90 Maize, sweet 0.40 0.80 1.15 1.00 Maize, grain 0.40 0.80 1.15 0.70 Melon 0.45 0.75 1.00 0.75 Millet Onion, green 0.35 0.50 0.70 0.70 1.10 1.00 0.65 1.00 Onion, dry Peanut/Groundnut Pea, fresh 0.50 0.45 0.45 0.75 0.75 0.80 1.05 1.05 1.15 0.85 0.70 1.05 Pepper, fresh 0.35 0.70 1.05 0.90 Potato 0.45 0.75 1.15 0.85 Radish Sorghum Soybean 0.45 0.35 0.35 0.60 0.75 0.75 0.90 1.10 1.10 0.90 0.65 0.60 Sugar beet 0.45 0.80 1.15 0.80 Sunflower 0.35 0.75 1.15 0.55 Tobacco 0.35 0.75 1.10 0.90 Table 2.3a: Values of crop factors Kc for various crops at different stages Page | 40 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Public Class Start_Page Private Sub Key_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Key.TextChanged Dim Password Password = "20ETES-MAB11" If Key.Text = Password Then Greetings.Text = "Welcome to Pumping Design Software" ElseIf Key.Text < Password Then Greetings.Text = "Enter the LICENSE KEY" End If End Sub Private Sub Designers_Name_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Designers_Name.TextChanged End Sub Private Sub Orgs_Name_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Orgs_Name.TextChanged End Sub Private Sub Cell_No_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cell_No.TextChanged End Sub Private Sub Mail_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mail.TextChanged End Sub Private Sub Client_Name_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Client_Name.TextChanged End Sub Private Sub I_Agree_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles I_Agree.Click If Greetings.Text = "Enter the LICENSE KEY" Then MessageBox.Show("You've entered incorrect LICENSE KEY, the software will close down immediately") Me.Close() Else Flowrate_Calculator.Show() Me.WindowState = FormWindowState.Minimized End If End Sub Private Sub Not_Agree_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Not_Agree.Click Me.Close() End Sub End Class VB Code 1A Public Class Flowrate_Calculator Private Sub Drippercapacity_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DripperCapacity.TextChanged Designers_name.Text = Start_Page.Designers_Name.Text Clients_name.Text = Start_Page.Client_Name.Text End Sub Private Sub Dripperspacing_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dripperspacing.TextChanged End Sub Private Sub Bedlength_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bedlength.TextChanged Dim chkBedlength As Double chkBedlength = Bedlength.Text If chkBedlength < 0 Or chkBedlength = 0 Then MessageBox.Show("ERROR - The bedlength has to be greater than zero.Pumping Design Software will now close down") Me.Close() Else End If Drippers.Text = Val(Bedlength.Text) / Val(Dripperspacing.Text) Dim Rndoff = Convert.ToDouble(Drippers.Text) Page | 41 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Rndoff = Math.Round(Rndoff, 0) Drippers.Text = Rndoff.ToString End Sub VB Code 1 Private Sub Driplines_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Driplines.TextChanged Distri_flowrate.Text = Val(Driplines.Text) * Drippers.Text * DripperCapacity.Text / (3600) Dim Rndoff = Convert.ToDouble(Distri_flowrate.Text) Rndoff = Math.Round(Rndoff, 4) Distri_flowrate.Text = Rndoff.ToString End Sub VB Code 2 Private Sub Distrilines_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Distrilines.TextChanged Sub_flowrate.Text = Val(Distrilines.Text) * Distri_flowrate.Text Dim Rndoff = Convert.ToDouble(Sub_flowrate.Text) Rndoff = Math.Round(Rndoff, 4) Sub_flowrate.Text = Rndoff.ToString End Sub VB Code 3 Private Sub Valves_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Valves.TextChanged Main_flowrate.Text = Val(Valves.Text) * Sub_flowrate.Text Dim Rndoff = Convert.ToDouble(Main_flowrate.Text) Rndoff = Math.Round(Rndoff, 4) Main_flowrate.Text = Rndoff.ToString Reservoir_flowrate.Text = (2 * Main_flowrate.Text) End Sub VB Code 4 Private Sub Next_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Next_Page.Click Diameter_Designer.Show() Me.WindowState = FormWindowState.Minimized End Sub Private Sub Previous_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Previous_Page.Click Start_Page.WindowState = FormWindowState.Normal Me.WindowState = FormWindowState.Minimized End Sub End Class VB Code 5 Public Class Diameter_Designer Private Sub Page_2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load FromChildHandle(Flowrate_Calculator.Distri_flowrate.Text) PreDistri_IntDia.Text = (((4 * Flowrate_Calculator.Distri_flowrate.Text) / (3.141592 * 1.6)) ^ (1 / 2)) * 1000 Dim Rndoff = Convert.ToDouble(PreDistri_IntDia.Text) Rndoff = Math.Round(Rndoff, 4) PreDistri_IntDia.Text = Rndoff.ToString FromChildHandle(Flowrate_Calculator.Sub_flowrate.Text) PreSub_IntDia.Text = (((4 * Flowrate_Calculator.Sub_flowrate.Text) / (3.141592 * 1.8)) ^ (1 / 2)) * 1000 Dim Rndoff1 = Convert.ToDouble(PreSub_IntDia.Text) Rndoff1 = Math.Round(Rndoff1, 4) PreSub_IntDia.Text = Rndoff1.ToString FromChildHandle(Flowrate_Calculator.Main_flowrate.Text) PreMain_IntDia.Text = (((4 * Flowrate_Calculator.Main_flowrate.Text) / (3.141592 * 2)) ^ (1 / 2)) * 1000 Dim Rndoff2 = Convert.ToDouble(PreMain_IntDia.Text) Rndoff2 = Math.Round(Rndoff2, 4) PreMain_IntDia.Text = Rndoff2.ToString Page | 42 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) FromChildHandle(Flowrate_Calculator.Reservoir_flowrate.Text) PreReservoir_IntDia.Text = (((4 * Flowrate_Calculator.Reservoir_flowrate.Text) / (3.141592 * 3)) ^ (1 / 2)) * 1000 Dim Rndoff3 = Convert.ToDouble(PreReservoir_IntDia.Text) Rndoff3 = Math.Round(Rndoff3, 4) PreReservoir_IntDia.Text = Rndoff3.ToString VB Code 6 Dim KS_Dia_ClssB() As Double Dim Max_Thcknes_ClssB() As Double KS_Dia_ClssB = New Double() {25, 32, 40, 50, 63, 75, 90, 110, 125, 140, 160, 180, 200, 225, 250, 280, 315, 355, 400, 450, 500, 560, 630} Max_Thcknes_ClssB = New Double() {1.3, 1.3, 1.5, 1.6, 2.1, 2.4, 2.8, 3.4, 3.8, 4.3, 4.8, 4.9, 5.5, 6.1, 6.8, 7.6, 8.5, 9.6, 10.7, 12, 13.3, 14.8, 16.7} Dim chkDistri_Dia As Double chkDistri_Dia = PreDistri_IntDia.Text For i As Integer = 0 To 22 If (KS_Dia_ClssB(i) >= chkDistri_Dia) Then Distri_IntDia.Text = (KS_Dia_ClssB(i) - (2 * Max_Thcknes_ClssB(i))).ToString NomDia_Distri.Text = KS_Dia_ClssB(i) i = 22 Else Distri_IntDia.Text = "Diameter not in KS 149 Standard" End If Next If (chkDistri_Dia < 25) Then Distri_IntDia.Text = "Diameter not in KS 149 Standard" End If Distri_Flowvelocity.Text = ((4 * Flowrate_Calculator.Distri_flowrate.Text) / (3.14159 * (Distri_IntDia.Text / 1000) ^ (2))) Dim Rndoff4 = Convert.ToDouble(Distri_Flowvelocity.Text) Rndoff4 = Math.Round(Rndoff4, 3) Distri_Flowvelocity.Text = Rndoff4.ToString Distri_Reynolds.Text = (Distri_Flowvelocity.Text * (Distri_IntDia.Text / 1000)) / (10 ^ (-6)) Dim KS_Dia_ClssC() As Double Dim Max_Thcknes_ClssC() As Double KS_Dia_ClssC = New Double() {16, 20, 25, 32, 40, 50, 63, 75, 90, 110, 125, 140, 160, 180, 200, 225, 250, 280, 315, 355, 400, 450, 500, 560, 630} Max_Thcknes_ClssC = New Double() {1.3, 1.3, 1.5, 1.7, 2.1, 2.6, 3.2, 3.8, 4.5, 5.5, 6.1, 6.8, 7.9, 8.1, 8.8, 9.9, 11, 12.2, 13.7, 15.5, 17.4, 19.6, 21.7, 24.3, 27.3} Dim chkSub_Dia As Double chkSub_Dia = PreSub_IntDia.Text For i As Integer = 0 To 24 If (KS_Dia_ClssC(i) >= chkSub_Dia) Then Sub_IntDia.Text = (KS_Dia_ClssC(i) - (2 * Max_Thcknes_ClssC(i))).ToString NomDia_Sub.Text = KS_Dia_ClssC(i) i = 24 Else Sub_IntDia.Text = "Diameter not in KS 149 Standard" End If Next If (chkSub_Dia < 16) Then Sub_IntDia.Text = "Diameter not in KS 149 Standard" End If Sub_Flowvelocity.Text = ((4 * Flowrate_Calculator.Sub_flowrate.Text) / (3.14159 * (Sub_IntDia.Text / 1000) ^ (2))) Dim Rndoff5 = Convert.ToDouble(Sub_Flowvelocity.Text) Rndoff5 = Math.Round(Rndoff5, 3) Sub_Flowvelocity.Text = Rndoff5.ToString Page | 43 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Sub_Reynolds.Text = (Sub_Flowvelocity.Text * (Sub_IntDia.Text / 1000)) / (10 ^ (-6)) Dim KS_Dia_ClssC1() As Double Dim Max_Thcknes_ClssC1() As Double KS_Dia_ClssC1 = New Double() {16, 20, 25, 32, 40, 50, 63, 75, 90, 110, 125, 140, 160, 180, 200, 225, 250, 280, 315, 355, 400, 450, 500, 560, 630} Max_Thcknes_ClssC1 = New Double() {1.3, 1.3, 1.5, 1.7, 2.1, 2.6, 3.2, 3.8, 4.5, 5.5, 6.1, 6.8, 7.9, 8.1, 8.8, 9.9, 11, 12.2, 13.7, 15.5, 17.4, 19.6, 21.7, 24.3, 27.3} Dim chkMain_Dia As Double chkMain_Dia = PreMain_IntDia.Text For i As Integer = 0 To 24 If (KS_Dia_ClssC1(i) >= chkMain_Dia) Then Main_IntDia.Text = (KS_Dia_ClssC1(i) - (2 * Max_Thcknes_ClssC1(i))).ToString NomDia_Main.Text = KS_Dia_ClssC1(i) i = 24 Else Main_IntDia.Text = "Diameter not in KS 149 Standard" End If Next If (chkMain_Dia < 25) Then Main_IntDia.Text = "Diameter not in KS 149 Standard" End If Main_Flowvelocity.Text = ((4 * Flowrate_Calculator.Main_flowrate.Text) / (3.14159 * (Main_IntDia.Text / 1000) ^ (2))) Dim Rndoff6 = Convert.ToDouble(Main_Flowvelocity.Text) Rndoff6 = Math.Round(Rndoff6, 3) Main_Flowvelocity.Text = Rndoff6.ToString Main_Reynolds.Text = (Main_Flowvelocity.Text * (Main_IntDia.Text / 1000)) / (10 ^ (-6)) Dim KS_Dia_ClssC2() As Double Dim Max_Thcknes_ClssC2() As Double KS_Dia_ClssC2 = New Double() {16, 20, 25, 32, 40, 50, 63, 75, 90, 110, 125, 140, 160, 180, 200, 225, 250, 280, 315, 355, 400, 450, 500, 560, 630} Max_Thcknes_ClssC2 = New Double() {1.3, 1.3, 1.5, 1.7, 2.1, 2.6, 3.2, 3.8, 4.5, 5.5, 6.1, 6.8, 7.9, 8.1, 8.8, 9.9, 11, 12.2, 13.7, 15.5, 17.4, 19.6, 21.7, 24.3, 27.3} Dim chkReservoir_Dia As Double chkReservoir_Dia = PreReservoir_IntDia.Text For i As Integer = 0 To 24 If (KS_Dia_ClssC2(i) >= chkReservoir_Dia) Then Reservoir_IntDia.Text = (KS_Dia_ClssC2(i) - (2 * Max_Thcknes_ClssC2(i))).ToString NomDia_Reservoir.Text = KS_Dia_ClssC2(i) i = 24 Else Reservoir_IntDia.Text = "Diameter not in KS 149 Standard" End If Next If (chkMain_Dia < 25) Then Reservoir_IntDia.Text = "Diameter not in KS 149 Standard" End If Reservoir_Flowvelocity.Text = ((4 * Flowrate_Calculator.Reservoir_flowrate.Text) / (3.14159 * (Reservoir_IntDia.Text / 1000) ^ (2))) Dim Rndoff7 = Convert.ToDouble(Reservoir_Flowvelocity.Text) Rndoff7 = Math.Round(Rndoff7, 3) Reservoir_Flowvelocity.Text = Rndoff7.ToString Reservoir_Reynolds.Text = (Reservoir_Flowvelocity.Text * (Reservoir_IntDia.Text / 1000)) / (10 ^ (-6)) End Sub VB Code 7 Page | 44 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Private Sub Next_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Next_Page.Click Net_Head_Calculator.Show() Me.WindowState = FormWindowState.Minimized End Sub VB Code 8 Private Sub Previous_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Previous_Page.Click Flowrate_Calculator.WindowState = FormWindowState.Normal Me.Close() End Sub End Class VB Code 9 Public Class Net_Head_Calculator Private Sub Page3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load FromChildHandle(Diameter_Designer.Distri_Flowvelocity.Text) FromChildHandle(Diameter_Designer.Sub_Flowvelocity.Text) FromChildHandle(Diameter_Designer.Main_Flowvelocity.Text) FromChildHandle(Diameter_Designer.Reservoir_Flowvelocity.Text) FromChildHandle(Diameter_Designer.Distri_IntDia.Text) FromChildHandle(Diameter_Designer.Sub_IntDia.Text) FromChildHandle(Diameter_Designer.Main_IntDia.Text) FromChildHandle(Diameter_Designer.Reservoir_IntDia.Text) VB Code 10 Distri_Roughness.Text = (0.1) / (Diameter_Designer.Distri_IntDia.Text) Dim Rndoff = Convert.ToDouble(Distri_Roughness.Text) Rndoff = Math.Round(Rndoff, 4) Distri_Roughness.Text = Rndoff.ToString Sub_Roughness.Text = (0.1) / (Diameter_Designer.Sub_IntDia.Text) Dim Rndoff1 = Convert.ToDouble(Sub_Roughness.Text) Rndoff1 = Math.Round(Rndoff1, 4) Sub_Roughness.Text = Rndoff1.ToString Main_Roughness.Text = (0.1) / (Diameter_Designer.Main_IntDia.Text) Dim Rndoff2 = Convert.ToDouble(Main_Roughness.Text) Rndoff2 = Math.Round(Rndoff2, 4) Main_Roughness.Text = Rndoff2.ToString Reservoir_Roughness.Text = (0.1) / (Diameter_Designer.Reservoir_IntDia.Text) Dim Rndoff2a = Convert.ToDouble(Reservoir_Roughness.Text) Rndoff2a = Math.Round(Rndoff2a, 4) Reservoir_Roughness.Text = Rndoff2a.ToString End Sub VB Code 11 Private Sub Distri_Frifactor_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Distri_Frifactor.TextChanged End Sub Private Sub Distri_Pipelength_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Distri_Pipelength.TextChanged Dtotal_Frihead.Text = (Val(Distri_Frifactor.Text) * Val(Distri_Pipelength.Text) * ((Diameter_Designer.Distri_Flowvelocity.Text) ^ (2))) / ((Diameter_Designer.Distri_IntDia.Text / 1000) * 9.81 * 2) Dim Rndoff3 = Convert.ToDouble(Dtotal_Frihead.Text) Rndoff3 = Math.Round(Rndoff3, 4) Dtotal_Frihead.Text = Rndoff3.ToString End Sub Private Sub Distri_Statichead_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Distri_Statichead.TextChanged If Val(Distri_Statichead.Text) = 0 And Val(Distri_Statichead.Text) > 0 Then Distri_Nethead.Text = (Val(Distri_Statichead.Text)) + (Dtotal_Frihead.Text) Else Page | 45 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Distri_Nethead.Text = (Val(Distri_Statichead.Text)) + (Dtotal_Frihead.Text) End If End Sub Private Sub Sub_Frifactor_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sub_Frifactor.TextChanged End Sub Private Sub Sub_Pipelength_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sub_Pipelength.TextChanged Stotal_Frihead.Text = (Val(Sub_Frifactor.Text) * Val(Sub_Pipelength.Text) * (Diameter_Designer.Sub_Flowvelocity.Text) ^ (2)) / ((Diameter_Designer.Sub_IntDia.Text / 1000) * 9.81 * 2) Dim Rndoff4 = Convert.ToDouble(Stotal_Frihead.Text) Rndoff4 = Math.Round(Rndoff4, 4) Stotal_Frihead.Text = Rndoff4.ToString End Sub Private Sub Sub_Statichead_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sub_Statichead.TextChanged If Val(Sub_Statichead.Text) = 0 And Val(Sub_Statichead.Text) > 0 Then Sub_Nethead.Text = Val(Sub_Statichead.Text) + (Stotal_Frihead.Text) Else Sub_Nethead.Text = Val(Sub_Statichead.Text) + (Stotal_Frihead.Text) End If End Sub Private Sub Main_Frifactor_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Main_Frifactor.TextChanged End Sub Private Sub Main_Pipelength_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Main_Pipelength.TextChanged Mtotal_Frihead.Text = (Val(Main_Frifactor.Text) * Val(Main_Pipelength.Text) * (Diameter_Designer.Main_Flowvelocity.Text) ^ (2)) / ((Diameter_Designer.Main_IntDia.Text / 1000) * 9.81 * 2) Dim Rndoff4 = Convert.ToDouble(Mtotal_Frihead.Text) Rndoff4 = Math.Round(Rndoff4, 4) Mtotal_Frihead.Text = Rndoff4.ToString End Sub Private Sub Main_Statichead_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Main_Statichead.TextChanged If Val(Main_Statichead.Text) = 0 And Val(Main_Statichead.Text) > 0 Then Main_Nethead.Text = Val(Main_Statichead.Text) + (Mtotal_Frihead.Text) Else Main_Nethead.Text = Val(Main_Statichead.Text) + (Mtotal_Frihead.Text) End If End Sub Private Sub Reservoir_Frifactor_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Reservoir_Frifactor.TextChanged End Sub Private Sub Reservoir_Pipelength_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Reservoir_Pipelength.TextChanged Rtotal_Frihead.Text = (Val(Reservoir_Frifactor.Text) * Val(Reservoir_Pipelength.Text) * ((Diameter_Designer.Reservoir_Flowvelocity.Text) ^ (2))) / ((Diameter_Designer.Reservoir_IntDia.Text / 1000) * 9.81 * 2) Dim Rndoff5 = Convert.ToDouble(Rtotal_Frihead.Text) Rndoff5 = Math.Round(Rndoff5, 4) Rtotal_Frihead.Text = Rndoff5.ToString End Sub Private Sub Reservoir_Statichead_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Reservoir_Statichead.TextChanged If Val(Distri_Statichead.Text) < 0 And Val(Sub_Statichead.Text) < 0 And Val(Main_Statichead.Text) < 0 Then Page | 46 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Reservoir_Nethead.Text = Val(Reservoir_Statichead.Text) + (Rtotal_Frihead.Text) + (Distri_Nethead.Text) + (Sub_Nethead.Text) + (Main_Nethead.Text) Else Reservoir_Nethead.Text = Val(Reservoir_Statichead.Text) + (Rtotal_Frihead.Text) End If End Sub VB Code 12 Private Sub Next_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Next_Page.Click Pump_Design.Show() Me.WindowState = FormWindowState.Minimized End Sub VB Code 13 Private Sub Previous_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Previous_Page.Click Diameter_Designer.WindowState = FormWindowState.Normal Me.Close() End Sub End Class VB Code 14 Public Class Pump_Design Private Sub Page4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Designers_name.Text = Start_Page.Designers_Name.Text Orgs_name.Text = Start_Page.Orgs_Name.Text Label6.Text = Start_Page.Client_Name.Text FromChildHandle(Flowrate_Calculator.Distri_flowrate.Text) FromChildHandle(Flowrate_Calculator.Sub_flowrate.Text) FromChildHandle(Flowrate_Calculator.Main_flowrate.Text) FromChildHandle(Flowrate_Calculator.Reservoir_flowrate.Text) FromChildHandle(Net_Head_Calculator.Distri_Nethead.Text) FromChildHandle(Net_Head_Calculator.Sub_Nethead.Text) FromChildHandle(Net_Head_Calculator.Main_Nethead.Text) FromChildHandle(Net_Head_Calculator.Reservoir_Nethead.Text) FromChildHandle(Net_Head_Calculator.Distri_Statichead.Text) FromChildHandle(Net_Head_Calculator.Sub_Statichead.Text) FromChildHandle(Net_Head_Calculator.Main_Statichead.Text) Dim Head As Double Head = Net_Head_Calculator.Distri_Nethead.Text If Net_Head_Calculator.Distri_Statichead.Text < 0 Then Distri_Specificspeed.Text = " " ElseIf Head < 30 Then Distri_Specificspeed.Text = ((1450 / 60) * (Flowrate_Calculator.Distri_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Distri_Nethead.Text ^ (3 / 4)) Dim Rndoff = Convert.ToDouble(Distri_Specificspeed.Text) Rndoff = Math.Round(Rndoff, 3) Distri_Specificspeed.Text = Rndoff.ToString ElseIf Head < 120 Then Distri_Specificspeed.Text = ((2900 / 60) * (Flowrate_Calculator.Distri_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Distri_Nethead.Text ^ (3 / 4)) Dim Rndoff1 = Convert.ToDouble(Distri_Specificspeed.Text) Rndoff1 = Math.Round(Rndoff1, 3) Distri_Specificspeed.Text = Rndoff1.ToString Else MessageBox.Show(" Error - Head otained in the distribution pipe is beyond the design specifications of the software ") End If Dim Head1 As Double Head1 = Net_Head_Calculator.Sub_Nethead.Text Page | 47 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) If Net_Head_Calculator.Sub_Statichead.Text < 0 Then Sub_Specificspeed.Text = " " ElseIf Head1 < 30 Then Sub_Specificspeed.Text = ((1450 / 60) * (Flowrate_Calculator.Sub_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Sub_Nethead.Text ^ (3 / 4)) Dim Rndoff2 = Convert.ToDouble(Sub_Specificspeed.Text) Rndoff2 = Math.Round(Rndoff2, 3) Sub_Specificspeed.Text = Rndoff2.ToString ElseIf Head1 < 120 Then Sub_Specificspeed.Text = ((2900 / 60) * (Flowrate_Calculator.Sub_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Sub_Nethead.Text ^ (3 / 4)) Dim Rndoff3 = Convert.ToDouble(Sub_Specificspeed.Text) Rndoff3 = Math.Round(Rndoff3, 3) Sub_Specificspeed.Text = Rndoff3.ToString Else MessageBox.Show(" Error - Head otained in the sub main pipe is beyond the design specifications of the software ") End If Dim Head1a As Double Head1a = Net_Head_Calculator.Main_Nethead.Text If Net_Head_Calculator.Main_Statichead.Text < 0 Then Main_Specificspeed.Text = " " ElseIf Head1a < 30 Then Main_Specificspeed.Text = ((1450 / 60) * (Flowrate_Calculator.Main_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Main_Nethead.Text ^ (3 / 4)) Dim Rndoff2a = Convert.ToDouble(Main_Specificspeed.Text) Rndoff2a = Math.Round(Rndoff2a, 3) Main_Specificspeed.Text = Rndoff2a.ToString ElseIf Head1a < 120 Then Main_Specificspeed.Text = ((2900 / 60) * (Flowrate_Calculator.Main_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Main_Nethead.Text ^ (3 / 4)) Dim Rndoff3a = Convert.ToDouble(Main_Specificspeed.Text) Rndoff3a = Math.Round(Rndoff3a, 3) Main_Specificspeed.Text = Rndoff3a.ToString Else MessageBox.Show(" Error - Head otained in the main pipe is beyond the design specifications of the software ") End If Dim Head2 As Double Head2 = Net_Head_Calculator.Reservoir_Nethead.Text If Head2 < 30 Then Reservoir_Specificspeed.Text = ((1450 / 60) * (Flowrate_Calculator.Reservoir_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Reservoir_Nethead.Text ^ (3 / 4)) Dim Rndoff4 = Convert.ToDouble(Reservoir_Specificspeed.Text) Rndoff4 = Math.Round(Rndoff4, 3) Reservoir_Specificspeed.Text = Rndoff4.ToString ElseIf Head2 < 120 Then Reservoir_Specificspeed.Text = ((2900 / 60) * (Flowrate_Calculator.Reservoir_flowrate.Text ^ (1 / 2))) / (Net_Head_Calculator.Reservoir_Nethead.Text ^ (3 / 4)) Dim Rndoff5 = Convert.ToDouble(Reservoir_Specificspeed.Text) Rndoff5 = Math.Round(Rndoff5, 3) Reservoir_Specificspeed.Text = Rndoff5.ToString Else MessageBox.Show(" Error - Head otained in the main pipe delivering to the reservoir is beyond the design specifications of the software ") End If VB Code 15 Page | 48 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Dim P1450() As String Dim P2900() As String Dim Head3() As Double Dim Flow() As Double Dim diff() As Double Dim diffMin As Double Dim loc As Integer Dim chkHead As Double Dim chkFlow As Double chkHead = Net_Head_Calculator.Distri_Nethead.Text chkFlow = (Flowrate_Calculator.Distri_flowrate.Text * 3600) P1450 = New String() {"E32-26", "E32-26", "E32-26", "E32-26", "E32-26", "E32-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E50-20", "E50-20", "E50-20", "E50-20", "E50-20", "E50-20", "E100-20", "E100-20", "E100-20", "E10020", "E100-20", "E100-20", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E50-16", "E50-16", "E50-16", "E50-16", "E50-16", "E50-16"} Head3 = New Double() {25, 26, 25, 24, 20, 18, 25, 24, 23, 22, 20, 17, 15, 25, 24, 23, 22, 20, 18, 16, 17, 17, 16, 15, 1, 10, 17, 16, 15, 14, 13, 12, 17, 16, 15, 13, 12, 11, 10, 10, 10, 10, 9, 9, 8, 6, 12, 12, 11, 10, 10, 9} Flow = New Double() {2, 4, 6, 10, 18, 19, 35, 40, 60, 70, 80, 90, 100, 80, 100, 130, 150, 190, 200, 220, 4, 6, 10, 18, 20, 25, 13, 20, 26, 30, 35, 40, 60, 80, 100, 120, 150, 190, 2, 3, 4, 6, 7, 9, 10, 12, 11, 15, 20, 25, 30, 40} diff = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} If Net_Head_Calculator.Distri_Statichead.Text < 0 Then DistriPump_Model.Text = " Gravity energy enough to facilitate flow " ElseIf chkHead < 30 Then For i As Integer = 0 To 51 diff(i) = Math.Abs(Head3(i) - chkHead) + Math.Abs(Flow(i) chkFlow) Next diffMin = diff(0) For i As Integer = 0 To 51 If diff(i) < diffMin Then diffMin = diff(i) loc = i End If Next DistriPump_Model.Text = P1450(loc).ToString ElseIf chkHead > 30 And chkHead < 120 Then P2900 = New String() {"AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16"} Head3 = New Double() {102, 100, 95, 92, 90, 85, 80, 105, 102, 100, 98, 90, 85, 80, 70, 65, 100, 100, 95, 90, 85, 80, 75, 70, 65, 65, 62, 60, 55, 50, 65, 63, 61, 60, 59, 55, 50, 45, 65, 65, 63, 61, 60, 55, 50, 45, 40, 40, 35, 30, 25, 23, 45, 43, 41, 40, 38, 35, 32, 42, 41, 40, 40, 38, 35, 30, 25} Flow = New Double() {10, 15, 20, 23, 25, 30, 32, 35, 40, 45, 50, 60, 70, 80, 85, 90, 90, 100, 120, 140, 180, 200, 220, 240, 260, 10, 15, 20, 24, 27, 25, 30, 40, 45, 50, 60, 70, 80, 70, 80, 80, 100, 120, 160, 200, 250, 10, 15, 20, 22, 25, 27, 25, 30, 40, 50, 60, 70, 80, 12, 15, 20, 25, 30, 35, 40, 45} Page | 49 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) diff = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} For i As Integer = 0 To 66 diff(i) = Math.Abs(Head3(i) - chkHead) + Math.Abs(Flow(i) chkFlow) Next diffMin = diff(0) For i As Integer = 0 To 66 If diff(i) < diffMin Then diffMin = diff(i) loc = i End If Next DistriPump_Model.Text = P2900(loc).ToString Else MessageBox.Show("Error - Net head and flowrate obtained in the distribution pipe exceeds the pump design software database") End If Dim P14501() As String Dim P29001() As String Dim Head4() As Double Dim Flow1() As Double Dim diff1() As Double Dim diffMin1 As Double Dim loc1 As Integer Dim chkHead1 As Double Dim chkFlow1 As Double chkHead1 = Net_Head_Calculator.Sub_Nethead.Text chkFlow1 = (Flowrate_Calculator.Sub_flowrate.Text * 3600) P14501 = New String() {"E32-26", "E32-26", "E32-26", "E32-26", "E32-26", "E32-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E50-20", "E50-20", "E50-20", "E50-20", "E50-20", "E50-20", "E100-20", "E100-20", "E100-20", "E10020", "E100-20", "E100-20", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E50-16", "E50-16", "E50-16", "E50-16", "E50-16", "E50-16"} Head4 = New Double() {25, 26, 25, 24, 20, 18, 25, 24, 23, 22, 20, 17, 15, 25, 24, 23, 22, 20, 18, 16, 17, 17, 16, 15, 1, 10, 17, 16, 15, 14, 13, 12, 17, 16, 15, 13, 12, 11, 10, 10, 10, 10, 9, 9, 8, 6, 12, 12, 11, 10, 10, 9} Flow1 = New Double() {2, 4, 6, 10, 18, 19, 35, 40, 60, 70, 80, 90, 100, 80, 100, 130, 150, 190, 200, 220, 4, 6, 10, 18, 20, 25, 13, 20, 26, 30, 35, 40, 60, 80, 100, 120, 150, 190, 2, 3, 4, 6, 7, 9, 10, 12, 11, 15, 20, 25, 30, 40} diff1 = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} If Net_Head_Calculator.Sub_Statichead.Text < 0 Then SubPump_Model.Text = " Gravity energy enough to facilitate flow " ElseIf chkHead1 < 30 Then For j As Integer = 0 To 51 diff1(j) = Math.Abs(Head4(j) - chkHead1) + Math.Abs(Flow1(j) chkFlow1) Next diffMin1 = diff1(0) For j As Integer = 0 To 51 If diff1(j) < diffMin1 Then diffMin1 = diff1(j) loc1 = j End If Next SubPump_Model.Text = P14501(loc1).ToString ElseIf chkHead1 > 30 And chkHead1 < 120 Then Page | 50 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) "AE32-26", "AE50-26", "AE80-26", "AE80-26", "AE50-20", "AE80-20", "AE80-20", "AE50-16", "AE40-16", "AE40-16"} P29001 = New String() {"AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", Head4 = New Double() {102, 100, 95, 92, 90, 85, 80, 105, 102, 100, 98, 90, 85, 80, 70, 65, 100, 100, 95, 90, 85, 80, 75, 70, 65, 65, 62, 60, 55, 50, 65, 63, 61, 60, 59, 55, 50, 45, 65, 65, 63, 61, 60, 55, 50, 45, 40, 40, 35, 30, 25, 23, 45, 43, 41, 40, 38, 35, 32, 42, 41, 40, 40, 38, 35, 30, 25} Flow1 = New Double() {10, 15, 20, 23, 25, 30, 32, 35, 40, 45, 50, 60, 70, 80, 85, 90, 90, 100, 120, 140, 180, 200, 220, 240, 260, 10, 15, 20, 24, 27, 25, 30, 40, 45, 50, 60, 70, 80, 70, 80, 80, 100, 120, 160, 200, 250, 10, 15, 20, 22, 25, 27, 25, 30, 40, 50, 60, 70, 80, 12, 15, 20, 25, 30, 35, 40, 45} diff1 = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} For j As Integer = 0 To 66 diff1(j) = Math.Abs(Head4(j) - chkHead1) + Math.Abs(Flow1(j) chkFlow1) Next diffMin1 = diff1(0) For j As Integer = 0 To 66 If diff1(j) < diffMin1 Then diffMin1 = diff1(j) loc1 = j End If Next SubPump_Model.Text = P29001(loc1).ToString Else MessageBox.Show("Error - Net head and flowrate obtained in the sub main pipe exceeds the pump design software database") End If Dim P14501a() As String Dim P29001a() As String Dim Head4a() As Double Dim Flow1a() As Double Dim diff1a() As Double Dim diffMin1a As Double Dim loc1a As Integer Dim chkHead1a As Double Dim chkFlow1a As Double chkHead1a = Net_Head_Calculator.Main_Nethead.Text chkFlow1a = (Flowrate_Calculator.Main_flowrate.Text * 3600) P14501a = New String() {"E32-26", "E32-26", "E32-26", "E32-26", "E3226", "E32-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E6526", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E10026", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E50-20", "E5020", "E50-20", "E50-20", "E50-20", "E50-20", "E100-20", "E100-20", "E100-20", "E100-20", "E100-20", "E100-20", "E32-16", "E32-16", "E32-16", "E32-16", "E3216", "E32-16", "E32-16", "E32-16", "E50-16", "E50-16", "E50-16", "E50-16", "E5016", "E50-16"} Head4a = New Double() {25, 26, 25, 24, 20, 18, 25, 24, 23, 22, 20, 17, 15, 25, 24, 23, 22, 20, 18, 16, 17, 17, 16, 15, 1, 10, 17, 16, 15, 14, 13, 12, 17, 16, 15, 13, 12, 11, 10, 10, 10, 10, 9, 9, 8, 6, 12, 12, 11, 10, 10, 9} Flow1a = New Double() {2, 4, 6, 10, 18, 19, 35, 40, 60, 70, 80, 90, 100, 80, 100, 130, 150, 190, 200, 220, 4, 6, 10, 18, 20, 25, 13, 20, 26, 30, 35, 40, 60, 80, 100, 120, 150, 190, 2, 3, 4, 6, 7, 9, 10, 12, 11, 15, 20, 25, 30, 40} Page | 51 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) diff1a = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} If Net_Head_Calculator.Main_Statichead.Text < 0 Then MainPump_Model.Text = " Gravity energy enough to facilitate flow " ElseIf chkHead1a < 30 Then For p As Integer = 0 To 51 diff1(p) = Math.Abs(Head4a(p) - chkHead1a) + Math.Abs(Flow1a(p) - chkFlow1a) Next diffMin1a = diff1a(0) For p As Integer = 0 To 51 If diff1a(p) < diffMin1a Then diffMin1a = diff1a(p) loc1a = p End If Next MainPump_Model.Text = P14501a(loc1a).ToString ElseIf chkHead1a > 30 And chkHead1a < 120 Then P29001a = New String() {"AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16"} Head4a = New Double() {102, 100, 95, 92, 90, 85, 80, 105, 102, 100, 98, 90, 85, 80, 70, 65, 100, 100, 95, 90, 85, 80, 75, 70, 65, 65, 62, 60, 55, 50, 65, 63, 61, 60, 59, 55, 50, 45, 65, 65, 63, 61, 60, 55, 50, 45, 40, 40, 35, 30, 25, 23, 45, 43, 41, 40, 38, 35, 32, 42, 41, 40, 40, 38, 35, 30, 25} Flow1a = New Double() {10, 15, 20, 23, 25, 30, 32, 35, 40, 45, 50, 60, 70, 80, 85, 90, 90, 100, 120, 140, 180, 200, 220, 240, 260, 10, 15, 20, 24, 27, 25, 30, 40, 45, 50, 60, 70, 80, 70, 80, 80, 100, 120, 160, 200, 250, 10, 15, 20, 22, 25, 27, 25, 30, 40, 50, 60, 70, 80, 12, 15, 20, 25, 30, 35, 40, 45} diff1a = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} For p As Integer = 0 To 66 diff1a(p) = Math.Abs(Head4a(p) - chkHead1a) + Math.Abs(Flow1a(p) - chkFlow1a) Next diffMin1a = diff1a(0) For p As Integer = 0 To 66 If diff1a(p) < diffMin1a Then diffMin1a = diff1a(p) loc1a = p End If Next MainPump_Model.Text = P29001a(loc1a).ToString Else MessageBox.Show("Error - Net head and flowrate obtained in the main pipe exceeds the pump design software database") End If Dim P14502() As String Dim P29002() As String Dim Head5() As Double Dim Flow2() As Double Dim diff2() As Double Dim diffMin2 As Double Dim loc2 As Integer Dim chkHead2 As Double Page | 52 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) Dim chkFlow2 As Double chkHead2 = Net_Head_Calculator.Reservoir_Nethead.Text chkFlow2 = (Flowrate_Calculator.Reservoir_flowrate.Text * 3600) P14502 = New String() {"E32-26", "E32-26", "E32-26", "E32-26", "E32-26", "E32-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E65-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E100-26", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E40-20", "E50-20", "E50-20", "E50-20", "E50-20", "E50-20", "E50-20", "E100-20", "E100-20", "E100-20", "E10020", "E100-20", "E100-20", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E32-16", "E50-16", "E50-16", "E50-16", "E50-16", "E50-16", "E50-16"} Head5 = New Double() {25, 26, 25, 24, 20, 18, 25, 24, 23, 22, 20, 17, 15, 25, 24, 23, 22, 20, 18, 16, 17, 17, 16, 15, 1, 10, 17, 16, 15, 14, 13, 12, 17, 16, 15, 13, 12, 11, 10, 10, 10, 10, 9, 9, 8, 6, 12, 12, 11, 10, 10, 9} Flow2 = New Double() {2, 4, 6, 10, 18, 19, 35, 40, 60, 70, 80, 90, 100, 80, 100, 130, 150, 190, 200, 220, 4, 6, 10, 18, 20, 25, 13, 20, 26, 30, 35, 40, 60, 80, 100, 120, 150, 190, 2, 3, 4, 6, 7, 9, 10, 12, 11, 15, 20, 25, 30, 40} diff2 = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} If chkHead2 < 30 Then For k As Integer = 0 To 51 diff2(k) = Math.Abs(Head5(k) - chkHead2) + Math.Abs(Flow2(k) chkFlow2) Next diffMin2 = diff2(0) For k As Integer = 0 To 51 If diff2(k) < diffMin2 Then diffMin2 = diff2(k) loc2 = k End If Next ReservoirPump_Model.Text = P14502(loc2).ToString ElseIf chkHead2 > 30 And chkHead2 < 120 Then P29002 = New String() {"AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE32-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE50-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE80-26", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE32-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE50-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE80-20", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE32-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE50-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16", "AE40-16"} Head5 = New Double() {102, 100, 95, 92, 90, 85, 80, 105, 102, 100, 98, 90, 85, 80, 70, 65, 100, 100, 95, 90, 85, 80, 75, 70, 65, 65, 62, 60, 55, 50, 65, 63, 61, 60, 59, 55, 50, 45, 65, 65, 63, 61, 60, 55, 50, 45, 40, 40, 35, 30, 25, 23, 45, 43, 41, 40, 38, 35, 32, 42, 41, 40, 40, 38, 35, 30, 25} Flow2 = New Double() {10, 15, 20, 23, 25, 30, 32, 35, 40, 45, 50, 60, 70, 80, 85, 90, 90, 100, 120, 140, 180, 200, 220, 240, 260, 10, 15, 20, 24, 27, 25, 30, 40, 45, 50, 60, 70, 80, 70, 80, 80, 100, 120, 160, 200, 250, 10, 15, 20, 22, 25, 27, 25, 30, 40, 50, 60, 70, 80, 12, 15, 20, 25, 30, 35, 40, 45} diff2 = New Double() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} For k As Integer = 0 To 66 diff2(k) = Math.Abs(Head5(k) - chkHead2) + Math.Abs(Flow2(k) chkFlow2) Next diffMin2 = diff2(0) For k As Integer = 0 To 66 If diff2(k) < diffMin2 Then diffMin2 = diff2(k) loc2 = k Page | 53 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com) End If Next ReservoirPump_Model.Text = P29002(loc2).ToString Else MessageBox.Show("Error - Net head and flowrate obtained in the main pipe delivering to the reservoir from the source exceeds the pump design software database") End If End Sub VB Code 16 Private Sub Previous_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Previous_Page.Click Net_Head_Calculator.WindowState = FormWindowState.Normal Me.WindowState = FormWindowState.Normal End Sub VB Code 17 Private Sub Close_Program_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Close_Program.Click MessageBox.Show(" Margaret and Allan's Creation - The Pumping Design Software will now close ") Me.Close() Net_Head_Calculator.Close() Diameter_Designer.Close() Flowrate_Calculator.Close() Start_Page.Close() End Sub End Class VB Code 18 Page | 54 Margaret Kamau Wakonyo Allan Bogonko Okinyi Horticultural Pumping Design Software You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com)
© Copyright 2025 Paperzz