brainstorming and matlab report

15
Mechanical Engineering Design Principles 3 Crane Brainstorming and MATLAB Assignment 2014/15 1 Mechanical Design Principles 3: Crane Brainstorming and MATLAB Assignment Tommy Reynolds s1230460 10/11/2014 INTRODUCTION Part 1: Crane Brainstorming The design of a new crane to assist with offshore renewables installation is brought forward. The crane is required to lift 4 tonnes, operate in depths of 7m and cope with tidal current speeds in the region of 10kn. A small level of precision is necessary to ensure accurate installation of the crane. A brainstorming session was held and ideas collected and analysed. The top 3 ideas were selected by the team and the best idea is taken further individually. More detailed drawings, analysis of materials and dimensions are given. Part 2: MATLAB Additionally, a MATLAB program was created to aid the choice of a hydraulic ram required for a small crane. This program was required to find the minimum peak force required by the hydraulic ram when placed under certain loading conditions. Design constraints were given and useful values should be calculated and displayed by the program. A GUI (Graphical User Interface) should be integrated into the program, allowing for quick and easy changes to the input data. Part 1: Crane Brainstorming 1 IDEAS GENERATED Each member of the brainstorming team took part in the brainsketching meeting and this produced a total of roughly 20 drawings. Each drawing was re-sketched and the original information included was re-written for clarity. A selection of these ideas are shown in figures 1-15. Additional drawings shown in appendix. Figure 1 Submersible vehicle with a tower leading to a platform with a crane on it. Figure 2 Catapult which fires object in a capsule and then drops it with a parachute. .into place. Figure 3 Simple boat with crane attached to one end which is held stable by anchors and powered by rowers.

Upload: tommy-reynolds

Post on 13-Apr-2017

374 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Brainstorming and MATLAB report

Mechanical Engineering Design Principles 3 Crane Brainstorming and MATLAB Assignment 2014/15

1

Mechanical Design Principles 3: Crane Brainstorming and MATLAB Assignment

Tommy Reynolds s1230460

10/11/2014

INTRODUCTION

Part 1: Crane Brainstorming

The design of a new crane to assist with offshore renewables installation is brought forward. The crane is required to lift 4 tonnes, operate in depths of 7m and cope with tidal current speeds in the region of 10kn. A small level of precision is necessary to ensure accurate installation of the crane.

A brainstorming session was held and ideas collected and analysed. The top 3 ideas were selected by the team and the best idea is taken further individually. More detailed drawings, analysis of materials and dimensions are given.

Part 2: MATLAB

Additionally, a MATLAB program was created to aid the choice of a hydraulic ram required for a small crane. This program was required to find the minimum peak force required by the hydraulic ram when placed under certain loading conditions. Design constraints were given and useful values should be calculated and displayed by the program. A GUI (Graphical User Interface) should be integrated into the program, allowing for quick and easy changes to the input data.

Part 1: Crane Brainstorming

1 IDEAS GENERATED

Each member of the brainstorming team took part in the brainsketching meeting and this produced a total of roughly 20 drawings. Each drawing was re-sketched and the original information included was re-written for clarity. A selection of these ideas are shown in figures 1-15. Additional drawings shown in appendix.

Figure 1

Submersible vehicle with a tower leading to a platform

with a crane on it.

Figure 2

Catapult which fires object in a capsule and then

drops it with a parachute. .into place.

Figure 3

Simple boat with crane attached to one end which is held stable by anchors and

powered by rowers.

Page 2: Brainstorming and MATLAB report

2

Figure 4

Hovercraft with small crane on top, powered by a fan and

held stable by a subsea winch.

Figure 5

Submarine with boom crane magnet attached, stability improvements from the retractable supports.

Figure 6

Platform with foldable crane centered, ballast tanks for

stability and heli fans used to move.

Figure 7

Extremely strong man who is able to carry the object in to the

ocean and place it.

Figure 8

Catamaran type set up with two skis and a magnet crane suspended between them. Powered using thrusters on

each ski.

Figure 9

Crane with cutout to allow good COM, powered by

thrusters.

Figure 10

Large robot with two cranes for hands and powered by human in the head area.

Figure 11

Sea plane with a retractable boom crane and skis to help stabilize when in the water.

Figure 12

Platform with legs for stability, crane able to rotate

360 degrees.

Figure 13

Telescopic crane with magnet, powered by

thrusters. Ballast tanks filled to hit sea bed and stable

with legs.

Figure 14

Circular base with runners to help land, powered by a heli blade with the crane situated

directly under the blade.

Figure 15

Platform with cutout in middle, crane situated

above platform. Moved via a tug boat and held stable by

anchors.

Page 3: Brainstorming and MATLAB report

3

2 CRITICAL ANALYSIS OF TOP THREE DESIGNS

2.1 Constraints

To ensure the top three designs were suitably chosen, a number of constraints were determined by the brainstorming team. These were:

Must be mobile

Able to lift 4 tonnes

Stable in rough water

Corrosion resistant

Economically viable

Capable of precision placement

Able to operate in water with a depth of up to 7metres.

2.2 Design Number One

Chosen because of the simplicity and ability to meet constraints given in section 2.1. The design is based on a square platform with 4 individually extendable legs which are inclined at a small angle to aid in stability. Crane is centred and can rotate about 360 degrees. Because of the square base, the platform can be used for storage and/or living space. The crane can be self propelled or tugged depending on speed of movement required. This design is shown in figure 16. Advantages

Very stable thanks to four strong legs

Highly manoeuvrable crane which can rotate

360 degrees

Has a lot of storage on board and could have

living quarters

Especially useful when used in long term

situations as will not move

Can alter each leg height individually to allow

for any difference in depth of the sea bed

Disadvantages

Requires jacked up before it can be put into operation

Has a high centre of gravity so may be unstable when being moved

Will not work straight away so not as effective for short term work

2.3 Design Number Two

Chosen because extremely stable and has high precision. Gantry is placed on rails to increase precision. Because of the design requiring full support of the crane, the surrounding area can be used for storage or living quarters. Unfortunately this design

Figure 16

First chosen design.

Page 4: Brainstorming and MATLAB report

4

is unable to self propel so a tugboat would be necessary for operation. This design is shown in figure 17.

Advantages

Very stable when in use

Quick to set up so would be useful for short

term applications

Very high precision when placing due to

multidirectional crane

Lots of storage space for parts or living

quarters

Disadvantages

Unable to pick up items unless placed inside

the crane operation area

Must be tugged when in use so could disrupt other marine transport/wildlife

Unable to lift very tall objects such as wind turbines

2.4 Design Number Three

Chosen because very well placed centre of gravity and large amount of storage area. The crane operates by self propulsion and places objects using the cut out area and the crane above this. The crane has no solid supports so relies on its centre of mass to provide stability when in operation. The area behind the crane can be used for storage or for living quarters. Advantages

Has a very stable centre of mass

Manoeuvrable and self propelled

Able to operate at a large range of depths

Disadvantages

Crane can only operate in small cut out

area

May not be stable in rough water due to

lack of solid supports

3 CHOSEN DESIGN

After consideration and reference to the constraints decided by the brainstorming team, the design which was individually deemed to be most suitable is design number 2. After selecting the design, a few improvements were implemented and are demonstrated in figure 19 and 20. Figure 20 also shows the impact that a load on the gantry will have:

Figure 17

Second chosen design.

Figure 18

Third chosen design.

Page 5: Brainstorming and MATLAB report

5

Rails extended to either end of boat to ensure maximum

accuracy of placement and to allow objects to be placed in

storage area.

One side of platform opened to ease collection of loads.

Crane claw fitted with a quick

release system to aid in fast changing of

the lifting tool.

Gantry system modified to be

telescopic to be capable of dealing with

taller units or when the water level is

very low. Achieved via 2 hydraulic rams which determine

the extension and an expandable and lockable frame.

Retractable legs added replacing anchors and

provide a stronger base support. Legs can be brought all

the way in when tugged and also moved individually for

better stability on uneven ground.

After some research into the area of offshore renewable installations, it was discovered that the main use of the crane will be for generators and perhaps micro containers, allowing the size of the crane to be calculated. A micro container when loaded has a mas of 4000kg and dimensions of approximately 2m x 2m x 3m. A generator with a mass of 4000kg was found to be of a similar size.1,2

From this information the dimensions of the platform and gantry are as shown in figure 21. All dimensions are in metres. When considering the buoyancy aspect of the platform, a simple approach was taken. The volume of the total base was calculated to give the upward force given by the water. The value obtained was roughly 6million Newtons. The material selection would need to ensure the total downward force of the unit is not more than this buoyancy value. Materials such as Airtex® provide a large buoyancy force at a low mass however may not be strong enough to support the gantry.3 Stainless steel is resistant to the corrosion of the sea water but is very heavy.

4 GROUP EFFECTIVENESS

The group members were: Tommy Reynolds, David Hughes, Sherif Hennawy, Callum Girdwood, Russel Bowring, Max Abbott and Elliot Hunter. When the group first met, the initial idea of brainstorming quickly and accidentally transferred to a morphological analysis. This was due to a lack of understanding between the group and also a lack of leadership. After receiving feedback explaining

Figure 20

3D drawing of the base, legs and gantry. FEA analysis on

gantry.

Figure 19

Side view of telescopic gantry with rams to aid

extension.

Figure 21

Dimensions of base of crane (m)

Page 6: Brainstorming and MATLAB report

6

the error, another meeting was held. This time the facilitator was decided as Tommy Reynolds and it was ensured that a brainstorming session was followed. After some team research of the various available methods, brainsketching was chosen. This involved each team member drawing an individual basic sketch and then passing each on to next member who added any changes/improvements they could think of. This was repeated 4 times and then all ideas were collected. All ideas were treated with full respect and some interesting concepts were brought up. Although some ideas may have been considered inappropriate, certain ideas within these were of use.

Part 2: MATLAB

1 DESIGN CONSTRAINTS AND SAMPLE OUTPUT

Design Constraints given in brief4:

retracted ram length = 1.2m

extended ram length = 2.2m

load = 4 tonnes

boom length (OC) = 4m

Θmin= -20°, Θmax= 80°

angle BOC = 20°

The increments used for phi were 5 degrees and for theta a linspace was used such that there was 50 increments between the minimum and maximum value input. The values a, b, ram force and theta are rounded to 3 significant figures.

When the program was run using the initial design constraints given in the brief, the output shown in figure 23 was attained. The program allows for the user to change all inputs and also gives the user the option to display different graphs at varying phi values.

Figure 22

Crane being optimized.

Figure 23

Sample output from crane optimization code.

Figure 23

Sample output from MATLAB program.

Page 7: Brainstorming and MATLAB report

7

2 FLOWCHART

CONCLUSION

Part 1: Crane Brainstorming

The brainstorming session resulted in 25 ideas, 15 shown. The three top designs were chosen by the brainstorming team and an optimum design was individually selected, analysed, and drawn. This design was improved and simple calculations observed. The group effectiveness was deemed to be poor at first but a re-meet provided a significant improvement.

Part 2: MATLAB

The output from the script was found and a GUI was implemented to offer a simple method of changing the values given in the brief. A flowchart demonstrated the algorithm used and a sample output was given.

Figure 24.

Flowchart of the algorithm used to calculate the optimized crane design.

Page 8: Brainstorming and MATLAB report

8

REFERENCES

1. TLS Offshore Containers. (Unknown). Offshore Mini Container.Available: http://www.tls-containers.com/mini-container.html. Last accessed 08/11/2014.

2. IKM Gruppen. (Unknown). Stream Generators. Available: http://www.ikm.com/rental/subsea-/-completion-/-commissioning/equipment-catalogue/water--/-chemical-circulation/steam-generators/bb886da5-76ca-480e-8c46-9b835058da95. Last accessed 08/11/2014.

3. Airex AG. (2014). Always on the right course with lightweight composites. Available: http://www.3accorematerials.com/market-solutions/marine.html. Last accessed 07/11/2014.University of Edinburgh.

4. John Chick. (30/09/2014) Brainstorming and MATLAB Assignment: Tidal Stream Crane Design. Last Accessed 01/11/2014.

APPENDIX

1. Equations used for buoyancy force calculation

𝑉𝑏𝑎𝑠𝑒 = (𝑇𝑜𝑡𝑎𝑙 𝐴𝑟𝑒𝑎 − 𝐶𝑢𝑡𝑜𝑢𝑡 𝐴𝑟𝑒𝑎) × 𝐷𝑒𝑝𝑡ℎ (1)

Assume that half of the boat will be submerged:

𝑉𝑑𝑖𝑠𝑝𝑙𝑎𝑐𝑒𝑑 = 𝑉𝑏𝑎𝑠𝑒

2 (2)

𝐹𝑏𝑢𝑜𝑦𝑎𝑛𝑐𝑦 = 𝜌𝑤𝑎𝑡𝑒𝑟 × 𝑔 × 𝑉𝑑𝑖𝑠𝑝𝑙𝑎𝑐𝑒𝑑 (3)

2. Additional initial concepts

Figure 25

Rounded rectangular base with ballast tank and rotatable crane.

Figure 26

Rounded rectangular base with cutout and ballast tank. Crane operates in cut out area.

Page 9: Brainstorming and MATLAB report

9

3. MATLAB Script

% --- Executes just before craneGUI is made visible. function craneGUI_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to craneGUI (see VARARGIN)

% Choose default command line output for craneGUI handles.output = hObject;

% Update handles structure guidata(hObject, handles);

%show diagram of crane in the axes number 5 axes(handles.axes5) imshow('Crane2.jpg')

%show startup picture in axis 4 axes(handles.axes4) imshow('startup.jpg')

Figure 27

Rounded square base anchors for support and a rotating crane.

Figure 28

Rounded rectangular base with rotating crane and legs for

support.

Figure 29

Circular base with hole in middle for crane operation, tugged. Legs for stability

when in operation.

Page 10: Brainstorming and MATLAB report

10

%START

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

%retrieve user input for maximum ram extension rmax = str2double(get(handles.rmax_enter, 'String'));

%retrieve user input for minimum ram extension rmin = str2double(get(handles.rmin_enter,'String'));

%retrieve user input for maximum theta value thetamax = str2double(get(handles.maxtheta_input, 'String'));

%retrieve user input for minimum theta value thetamin = str2double(get(handles.mintheta_enter, 'String'));

%retrieve user input for load applied on boom Load = str2double(get(handles.Load_enter, 'String'));

%calculate force on boom by multiplying load by gravity W = (Load * 9.8);

%retreive user input for length of boom L = str2double(get(handles.Boomlength_enter, 'String'));

%retrieve user input for angle BOC BOC = str2double(get(handles.BOC_enter, 'String'));

%CHECK INPUTS ARE WITHIN SENSIBLE CONSTRAINTS

%check rmin is more than 0 and if not display error message if rmin < 0 || rmax < 0 errordlg('Value entered for rmin or rmax is below zero, please enter a

number above 0.')

return end

%check rmax is more than rmin and if not display error message if rmax<=rmin errordlg('rmax entered value is smaller than or equal to rmin entered

value. Please try again.')

return end

%check thetamax is more than thetamin and if not display error message if thetamax<=thetamin errordlg('thetamax entered value is smaller than or equal to thetamin

entered value. Please try again.')

Page 11: Brainstorming and MATLAB report

11

return end

%ensure boom length is entered as a positive number, if not display error

message if L <= 0 errordlg('Value entered for boom length is below or equal to zero,

please enter a number above 0')

return end

%check load applied is more than 0 and if not display error message if W <= 0 errordlg('Value entered for applied load is below or equal to zero,

please enter a number above 0')

return end

%CHECK FOR COMPLEX NUMBERS

%set variable tf to 1 to allow while loop to have this as initial value tf = 1; %set 0 for phi to allow increments in the while loop phi = 0;

%as long as tf is equal to 1 while tf == 1 % calculate gamma using initial value of 0 for phi and increments after

each loop %gamma is angle phi plus angle BOC which is 20 degrees in this case gamma = phi+BOC; %c2 found using cosine rule c2 = ((rmax).^2 - (rmin).^2)./(cosd(gamma+thetamin)-

cosd(gamma+thetamax)); %c1 found using cosine rule c1 = (rmax).^2 + c2*cosd(gamma+thetamax); %calculate a using c1 and c2 a = ((c1+c2).^.5+(c1-c2).^.5)/2; %if a is real then tf will stay 1, if not will become 0 tf = isreal(a);

%if tf = 0 (a not real) then the maximum phi value will be assigned to %the most recent value at which it was real. if tf == 0; %find max phi value before goes complex phimax = phi - (5); end %add increments of phi using linspace divider(can be altered for %varying levels of accuracy) phi = phi + (5); end

%define variable phiarray to allow for calculation at each phi increment phiarray = (0:5:phimax); %define variable thetaarray for calculation at each theta increment thetaarray = linspace(thetamin,thetamax,100);

Page 12: Brainstorming and MATLAB report

12

%set counter n = 0 n = 0;

%calculate each output for each value of phi for phi = phiarray; %add 1 to the counter each time the loop is completed n = n+1; %calculate gamma value using each increment of phi and defined angle

BOC gamma = phi+BOC; %calculate c2 using values input by user c2 = ((rmax).^2 - (rmin).^2)./(cosd(gamma+thetamin)-

cosd(gamma+thetamax)); %calculate c1 using values input by user and previous calculations c1 = (rmax).^2 + c2*cosd(gamma+thetamax); %calculate a using values obtained from c1 and c2 a = ((c1+c2).^.5+(c1-c2).^.5)/2; %calculate b using values for a and c2 b = c2./(2*a); %initialise fmax Fmax = 0; %start loop testing all values of theta between thetamin and thetamax for theta = thetaarray; %calculate the ram length r = (c1 - c2*cosd(gamma+theta)).^.5; %calculate the force on the ram F = (r * W * L * cosd(theta))./(b*a*sind(gamma+theta)); %if the F value calculated is larger than the original F value then %set newest F to F max. if F > Fmax; Fmax = F; %set new theta variable to the theta value if F>Fmax theta_Fmax = theta; end end %create Fmax values for each n value and save in matrix k k (n) = Fmax; %create theta values for each n value and save in matrix l l (n) = theta_Fmax; end

%find minimum Fmax value [~, loc] = min(k); %use the location of the minimum Fmax to find optimum phi value optimum_phi = phiarray(loc); %use location again to find the optimum theta value optimum_theta = l(loc); %use the location to set the minimum peak force to variable F_max F_max = k(loc);

%CALCULATE THE OPTIMUM VALUES FOR OA AND OB USING OPTIMUM PHI

%find optimum gamma using the optimum phi found above optimum_gamma = optimum_phi+BOC; %find optimum c2 using optimum gamma value optimum_c2 = ((rmax).^2 - (rmin).^2)./(cosd(optimum_gamma+thetamin)-

cosd(optimum_gamma+thetamax));

Page 13: Brainstorming and MATLAB report

13

%find optimum c2 found using the optimum gamma value optimum_c1 = (rmax).^2 + optimum_c2*cosd(optimum_gamma+thetamax); %find optimum a using the optimum values calculated for c1 and c2 optimum_a = ((optimum_c1+optimum_c2).^.5+(optimum_c1-optimum_c2).^.5)/2 ; %find optimum b using the optimum values obtained for c2 and a optimum_b = optimum_c2./(2*optimum_a);

%FIND VALUES OF F FOR GRAPH AGAINST THETA

%initialise variable y y = 0;

%set up loop to find values of F at each theta at the optimum value of phi %tell loop to go from 1 to the length of array thetaarray for graphloop = 1:length(thetaarray) %set new variable equal to each individual step of the loop theta_graph = thetaarray(graphloop); %add 1 on to y each loop iteration y = y + 1; %calculate optimum r value using other values obtained r_graph = (optimum_c1 -

optimum_c2.*cosd(optimum_gamma+theta_graph)).^.5; %calculate peak force value and save each value in matrix y F_graph (y) = (r_graph .* W .* L .*

cosd(theta_graph))./(optimum_b.*optimum_a.*sind(optimum_gamma+theta_graph))

; end

%plot graph of theta against ram force in axes 4 axes(handles.axes4); plot(thetaarray, F_graph); %set title of graph title('Graph of Theta Against Ram Force') %set x axis title xlabel('Theta (degrees)') %set y axis title ylabel('Ram force (N)')

%put optimum phi value into the edit text box for phi set(handles.phi_enter, 'String', sprintf('%.3g', optimum_phi));

%set GUI output boxes to display the necessary variable %retreive optimum a value and round to 3 significant figures and show units set(handles.aopt, 'String',sprintf('%.3g m', optimum_a)); %retreive optimum b value and round to 3 significant figures and show units set(handles.bopt, 'String',sprintf('%.3g m', optimum_b)); %retreive optimum phi value and round to 3 significant figures and show

units set(handles.phiopt, 'String',sprintf('%.3g degrees', optimum_phi)); %retreive optimum theta value and round to 3 significant figures and show

units set(handles.thetaopt, 'String',sprintf('%.3g degrees', optimum_theta)); %retreive optimum peak force value and round to 3 significant figures and

show units set(handles.Fmax, 'String',sprintf('%.3g N', F_max));

%show diagram of crane in the axes number 5

Page 14: Brainstorming and MATLAB report

14

axes(handles.axes5) imshow('Crane2.jpg')

% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

%get user input for all values again to use in second pushbutton thetamax = str2double(get(handles.maxtheta_input, 'String')); thetamin = str2double(get(handles.mintheta_enter, 'String')); rmax = str2double(get(handles.rmax_enter, 'String')); rmin = str2double(get(handles.rmin_enter,'String')); Load = str2double(get(handles.Load_enter, 'String')); W = (Load * 9.8); L = str2double(get(handles.Boomlength_enter, 'String')); BOC = str2double(get(handles.BOC_enter, 'String')); guiphi = str2double(get(handles.phi_enter, 'String')); guigamma = guiphi + BOC;

%set value for thetaarray as before for use in this pushbutton thetaarray = linspace(thetamin,thetamax,100); %find optimum c2 using optimum gamma value optimum_c2 = ((rmax).^2 - (rmin).^2)./(cosd(guigamma+thetamin)-

cosd(guigamma+thetamax)); %find optimum c2 found using the optimum gamma value optimum_c1 = (rmax).^2 + optimum_c2*cosd(guigamma+thetamax); %find optimum a using the optimum values calculated for c1 and c2 optimum_a = ((optimum_c1+optimum_c2).^.5+(optimum_c1-optimum_c2).^.5)/2 ; %find optimum b using the optimum values obtained for c2 and a optimum_b = optimum_c2./(2*optimum_a);

%initialise variable o o = 0; %retrieve value entered into the phi edit text box guiphi = str2double(get(handles.phi_enter, 'String')); %calculate the new gamma value using the entered phi and the entered angle %BOC guigamma = guiphi + BOC;

%find values for F at new value of phi input by user %set loop to go from 1 to the length of the array thetaarray for phigraph = 1:length(thetaarray) thetaphi = thetaarray(phigraph); %calculate r using new value r_phigraph = (optimum_c1 - optimum_c2.*cosd(guigamma+thetaphi)).^.5; %add 1 to the counter each time loop is completed o = o + 1; %calculate new F and save value in matrix o F_phigraph (o) = (r_phigraph .* W .* L .*

cosd(thetaphi))./(optimum_b.*optimum_a.*sind(guigamma+thetaphi)); end

%plot graph in axis 4 axes(handles.axes4); %plot graph of theta against ram force plot(thetaarray,F_phigraph); %set title of graph

Page 15: Brainstorming and MATLAB report

15

title('Graph of Theta Against Ram Force') %set title of x axis xlabel('Theta (degrees)') %set title of y axis ylabel('Ram force (N)')