联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Matlab编程Matlab编程

日期:2024-03-05 08:42

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 1 of 12


COMPUTER PROGRAMMING WITH MATLAB

COURSEWORK 1

INTRODUCTION

This coursework will help you revise the Matlab skills you gained in lectures 1-4. It is worth 15% of the

module credits and will cover the following topics:

? Variables and arrays

? Solving equations

? Array manipulation to solve engineering problems.

Read the guidelines below as well as the mark sheet, so you know how marks will be awarded.

Download the data files from the Moodle page, as these are needed to answer some of the questions.

Follow all instructions carefully and consult the submission checklist before submitting your work.

The submission deadline for this coursework is: 4pm Thursday 7th March.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 2 of 12

GUIDELINES

? All answers are to be submitted in a single Matlab script file (i.e., ‘.m’) – no other file type is

acceptable. A template for this file is available on the course Moodle page, under the heading:

Matlab - Coursework 1.

? Put your name, student ID number and e-mail address at the start of the script preceded by the ‘%’

character.

? For questions which require you to write text answers (i.e., descriptive sentences), include these as

comments using the '%' character at the beginning of the line.

? Include comments in your script file describing what the program is doing and any features of note –

you will get marks for this.

? Once you have finished all the questions (or as many as you can manage), fill in the Submission

Checklist. This is available on Moodle and is there to help ensure your work is submitted properly.

? Save your script with a name in the following format: Firstname_Surname_studentid.m.

For example:

Julia_Smith_133444232.m

? Upload this file to Moodle in the appropriate submission box. Ensure that you upload before the

submission deadline, as late submissions without exceptional circumstances will be penalised.

? If you are in the process of applying for an EC for this coursework, be sure to submit whatever work

you have with ‘_pending’ appended to the file name by the deadline.

A WORD OF CAUTION – Remember this is individual work, not group work. Work handed in must be entirely

your own and not copied from anyone else. Discuss the coursework with your friends if needed, but answer

the questions yourself.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 3 of 12

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 4 of 12

QUESTION 1 – VARIABLES [10 MARKS]

Evaluate the following functions at ?? = 1.5:


Hint: Parts e and f can be solved without typing out the full equations.

g) Predict the pressure drop in a pipe 100 cm long with a radius of 1 cm. Assume the fluid is water

(μ = 1 × 10-3 Pa s) flowing at a rate of 100 cm3

/s.

You should use the Hagen–Poiseuille equation, which predicts pressure drop, ΔP, in laminar flow in

cylindrical pipes:

??? =

8??????

????4

where μ is the dynamic viscosity, L is the pipe length, Q is the volumetric flow rate and R is the pipe

radius.

Hint: You will need to carefully consider the units here. It may be helpful to convert all properties into SI

units before calculating the pressure drop.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 5 of 12

QUESTION 2 – ARRAYS & PLOTTING [13 MARKS]

Write a script to generate an array called ?? with 25 points between 0 and 2??. Then evaluate the following

functions over that range:

a) ?? = sin2 ??

b) ?? = cos2 ??

c) ?? = tan2 ??

Add lines to the script to do the following:

d) Plot graphs of ?? and ?? against ??.

e) On the same axes, plot a + b against x.

f) Make your graph clear and visually appealing by including axes labels, a legend, and by using

different linestyles for each data set.

g) Find the mean value of a. What change can you make to your code to improve the accuracy of this

prediction compared to the theoretical value? Give your answer as a comment using the ‘%’

character at the beginning of the line.

h) Use the same methods as above to solve this problem concerning an AC electrical circuit. If the

circuit operates with a peak current of 100 mA (see figure on the next page), what would be the

average power dissipated by a 1 k? resistor?

You can assume this is a simple circuit featuring only a resistor, with no capacitor or inductor. The

average power, ???, dissipated by the resistor is given by:

??? = ????????

2 ??

where ???????? is the square root of the mean squared current and ?? is the resistance.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 6 of 12

Hint: As shown in the figure, the current can be modelled as a simple sin function, with an

amplitude of 100 mA, or 0.1 A. Start by creating this function, then calculate ????????, then find the

average power using the equation given above.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 7 of 12

QUESTION 3 – INBUILT FUNCTION EXAMPLES [10 MARKS]

Give examples of the use of the following inbuilt Matlab functions and describe concisely what they do. Use

the '%' character to include text comments in your .m file:

a) clearvars

b) who

c) abs

d) trapz

e) roots

Hint: Try using the help or doc command from the Matlab command line.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 8 of 12

QUESTION 4 – PROCESSING 1D ARRAYS [12 MARKS]

Whales are often beached near Lyme Regis on the south coast of the UK. Your company is developing an

underwater acoustic system to keep whales off the beach. The system will work by using an underwater

speaker to play a whale distress call.

It is your job to prepare the digital file which the system will play. By working with a marine biologist you

have obtained a recording of whale song. You can find this file in Coursework_1_data folder on Moodle.

Write a script to:

a) Load the whale song file into an array called 'song'. Plot a graph of the of the whale song featuring

appropriate label axes.

b) Make your script play the whale song sound. The required frequency is 44,100 samples per second.

What happens if you play more or less than 44,100 samples per second? Write your answer in your

script as a comment.

c) How many distinctive whale calls are there in the data? You should also be able to tell this from

looking at the graph. Write the answer as a comment in the script.

d) The second whale call in the sample is the distress call. By looking at the numbers on the x-axis of

your graph you will be able to tell at what position in the array this distress call starts and ends.

Make a new array which only contains the distress call - this should be called 'distress'.

e) Your company wants the device you are designing to play five whale distress sounds in a row. Make

a new array containing five distress calls one after the other and edit your script to play this sound.

f) If the computer plays 44,100 elements per second, make your script calculate the total length of

your repeated distress call in seconds.

g) Lastly, make an array representing the time over which the repeated distress call is played. Now plot

the repeated distress call with an appropriate time axis in seconds. Label the axes appropriately.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 9 of 12

QUESTION 5 – 2D ARRAYS [11 MARKS]

You are an engineer working for a private spaceflight company. You have been given some ground radar

data obtained from a drone aircraft and it is your task to identify a potential landing site for a small

unmanned reusable rocket. Download file ground_radar.dat from Moodle.

a) Load the topological data into an array and produce a 3D plot of the data using the surf function.

Hint: Matlab joins the points in 2D graphs with black lines by default. If there are lots of data points

this can make the graph look messy. Try adding the parameters,'edgecolor','none' to the plot

command to fix this.

b) The height data in the file is incorrect due to a miscalibration of the drone radar instrument. To

correct this error, you need to subtract 300 m from each data point in the array. The array will then

give the depth of each location below the drone’s mean altitude. Generate a new 2D array which

contains the corrected data and plot this.

c) Label the axes of your plot appropriately. The drone records data in a resolution of one data point

per meter.

d) Calculate the size of the area covered by the drone. Store the linear dimensions (i.e., the x and y

lengths) in separate variables, then calculate the total area of your map in a third variable.

e) From your 3D plot, locate a region which is relatively flat in which the rocket can land. Extract this

region from the array to form a new array called ‘landing_site’. The landing site should have

dimensions of at least 25 × 25 m, and be flat to within 1 m. To test the flatness, take the standard

deviation over the potential landing site area. Finally, produce a 3D plot of the landing site, again

labelling the axes properly.

Hint: You may not be able to find a site of the right flatness just by looking at your 3D plot from part

b. You may need to ‘sample’ potential landing sites by taking multiple sub-arrays from the ground

radar data and checking if the flatness is below 1 m. This could be done manually or with a for loop

and if statements.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 10 of 12

QUESTION 6 – FOR LOOP IMAGE PROCESSING [11 MARKS]

For this question you will use your programming skills to process an image, which, as you have learned, can

be treated in Matlab the same as other types of array.

An airline wants to rebrand its aircraft with a new exterior colour scheme. It has produced a mock-up of a

red painted design. But before the launch of the new design, the airline CEO asks to see other colour

concept designs. It is your job to make these. Start by downloading the image aeroplane.jpg from Moodle.

a) Load the aeroplane image into Matlab and show it onscreen. For this, use the imread and imshow

functions.

b) Find the size of the aeroplane image. You will notice that it has three dimensions, not two. You can

think of the image as having three separate layers, each of which is a 2D array. Each layer represents

an 8-bit colour channel; red, green and blue with values 0-255. Together, these make the full colour

image – like this:

Every pixel therefore has three coordinates: (x, y, P) – where P is just the layer number 1, 2 or 3. The

red channel is layer 1, the green channel is layer 2 and the blue channel is layer 3.

To access these in Matlab, you would write something like:

A = imread(‘aeroplane.jpg');

A(25, 50, 3) = 0;

which would set the pixel at (25, 50) in the blue channel (layer 3) to the value 0, or

A(:, :, 1) = 255;

which would set all of the red channel (layer 1) to the value 255.

Try this out by setting a rectangular patch of the aeroplane image blue channel to the value 255, the

highest value it can have. Show your result on screen.

c) To turn the red pixels of your aeroplane image into other colours, one simple way is swap the colour

channels. Start by making two nested for loops to scan over all the pixels in the image, and swap the

layer 1 layer 2 layer 3

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 11 of 12

values in the red and green channels. This should show you what a green painted design would look

like. Show your result onscreen.

d) Now make a mock-up of a blue painted design using the same method as above and show your

result on screen.

Hint: For parts (c) and (d) it may be helpful to make additional copies of the aeroplane image which

you can scan over inside the nested for loops.

e) What are the shortcomings of using this method to modify the colours in the image? Can you

suggest a better way to colour modifications in images like this? Add comments to your script to

answer these questions.

Programming, Professional and Laboratory Skills - MMME1027

Academic year 2023-2024

Page 12 of 12

PRESENTATION AND FORMATTING [20 MARKS]

a) Code presentation is neat and clear, including:

i. Separate sections for each question.

ii. Meaningful, non-confusing variable names.

iii. No superfluous code which is not needed for the program to run.

iv. Semicolons to supress code output to screen.

[12 marks]

b) Comments are included to explain sections or lines of code which are non-intuitive, or where the

user needs additional information to use the program properly.

[6 marks]

c) Name and email address is given at the top of the code (i.e., in the Matlab script).

[2 marks]


相关文章

版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp