# 代写program、Python设计编程代做

- 首页 >> Database作业 Instructions

• This coursework has two parts:

1) Question (1) to (7).

2) A Python program (py file) to implement simulations for Question (8).

• Your solutions must include neatly drawn labelled diagrams (where applicable),

correct use of mathematical notation, sufficient comments and workings for the

marker(s) to easily follow your process. Where practicable, you should also show

how you have checked your answers.

• Python program must be clearly described with sufficient comments to explain the

steps in the program.

• Marks are awarded for clear, legible presentation of work.

Page 3 of 5

System description: Mechanical mass-spring-damper system

The coursework deals with modelling and analysis of the mechanical mass-springdamper system shown in Figure 1.

Figure 1: Nonlinear mass-spring-damper system

The variables 𝑥1(𝑡) and 𝑥2(𝑡) represent the positions of mass 𝑚1 and 𝑚2. The force

𝑓(𝑡) is the system input, whilst the output is the position 𝑥2

(𝑡).

Here the masses are 𝑚1 = 1 𝑘𝑔 and 𝑚2 = 1 𝑘𝑔 and the damper 𝑏 = 1 𝑁𝑠/𝑚. The

spring is nonlinear, and the force (𝑁), 𝐹𝑠(𝑡), required to stretch the spring is:

𝐹𝑠(𝑡) = 2𝑥1

2

(𝑡) Eq.(1)

PART A (Modelling)

Question 1 (2 marks)

Provide a real-life example where a general mass-spring-damper system can be

found.

Question 2 (10 marks)

Using a free-body-diagram, show that the differential equations representing the

system in Figure 1 are given by:

𝑑

2𝑥1(𝑡)

𝑑𝑡

2 +

𝑑𝑥1(𝑡)

𝑑𝑡 + 2𝑥1

2

(𝑡) −

𝑑𝑥2(𝑡)

𝑑𝑡 = 0

Eq.(2)

𝑑

2𝑥2

(𝑡)

𝑑𝑡

2 +

𝑑𝑥2

(𝑡)

𝑑𝑡 −

𝑑𝑥1

(𝑡)

𝑑𝑡 = 𝑓(𝑡)

Eq.(3)

Question 3 (10 marks)

Linearise the system for the point 𝑥1

(0) = 1, 𝑥2(0) = 0, 𝑓(0) = 0, and show that the

linearised differential equations are given by:

𝑑

2𝛿𝑥1(𝑡)

𝑑𝑡

2 +

𝑑𝛿𝑥1(𝑡)

𝑑𝑡 + 2(1 + 2𝛿𝑥1(𝑡)) −

𝑑𝛿𝑥2(𝑡)

𝑑𝑡 = 0

Eq.(4)

𝑑

2𝛿𝑥2

(𝑡)

𝑑𝑡

2 +

𝑑𝛿𝑥2

(𝑡)

𝑑𝑡 −

𝑑𝛿𝑥1

(𝑡)

𝑑𝑡 = 𝛿𝑓(𝑡)

Eq.(5)

Note: 𝛿𝑥1(𝑡) = 𝑥1(𝑡) − 1, where 1 is the linearisation point.

Page 4 of 5

PART B (Analytical and numerical methods)

Remark: The remaining questions will be based on the linearised system given in

Equation Eq.(6) and Equation Eq.(7).

For the remaining questions, replace the linear variable 𝛿𝑥1(𝑡) with 𝑥1(𝑡), 𝛿𝑥2(𝑡) in

Eq.(4) and Eq.(5) with 𝑥2(𝑡) and 𝛿𝑓(𝑡) with 𝑓(𝑡) (i.e. ignoring the linearisation point). In

other words, the remaining questions are based on the result of the linearisation

process, which is given by:

𝑑

2𝑥1(𝑡)

𝑑𝑡

2 +

𝑑𝑥1(𝑡)

𝑑𝑡 + 2(1 + 2𝑥1(𝑡)) −

𝑑𝑥2(𝑡)

𝑑𝑡 = 0

Eq.(6)

𝑑

2𝑥2

(𝑡)

𝑑𝑡

2 +

𝑑𝑥2

(𝑡)

𝑑𝑡 −

𝑑𝑥1

(𝑡)

𝑑𝑡 = 𝑓(𝑡)

Eq.(7)

Question 4 (6 marks)

Apply Laplace transform on the linearised system in equations Eq.(6)-Eq.(7). Assume

zero initial conditions, i.e. 𝑥1

(0) = 0, 𝑥̇1

(0) = 0, 𝑥2

(0) = 0, 𝑥̇2

(0) = 0.

Question 5 (7 marks)

Using the results from Question (4),

a) Obtain the transfer function for the linearised system (i.e. equations Eq.(6) and

Eq.(7)). Note that the input of the system is 𝑓(𝑡) and the output is 𝑥2(𝑡).

(5 marks)

b) What is the order of the system? Justify your answer.

(2 marks)

Question 6 (12 marks)

Using the transfer function from Question (5)

a) Obtain and clearly list all the poles and zeros of the linearised system.

(Remark: there should be two zeros and four poles. Two of the poles are at

s = −0.3522 ± 1.7214i and one at s = 0. You need to find the other one real

pole. You can use calculator to find these values.)

(Remark 2: the location of the remaining pole is between -2 and 0).

(4 marks)

b) Determine if the system is stable. Justify your answer.

(3 marks)

c) Draw the “𝑠-plane”.

(5 marks)

Question 7 (3 marks)

Use Final Value Theorem to predict the value of 𝑥2(𝑡) (if available) when the input is

a unit impulse. Justify your answer.

Page 5 of 5

Question 8 (50 marks)

Using Equation (6) and Equation (7), create a simulation of the system using both:

a) Euler method, and

b) Heun (Runge-Kutta second order) method

Assume that the input force 𝑓(𝑡) is a unit impulse (duration of 0.1 sec from 𝑡 = 0).

For each method (25 marks × 𝟐 = 𝟓𝟎 marks):

i. Write your own Python code that creates the simulation of the system

(10 marks)

ii. Select an appropriate step size ℎ = Δ𝑡. Explain your reasoning.

(Remark: As a guidance, this value must be chosen (iteratively?) such that

the steady state error is less than 1%).

(7 marks)

iii. Select an appropriate end time for the simulation. Explain your reasoning.

(2 marks)

iv. Calculate the error (𝐸𝑡) and percentage error (|𝜖𝑡

|%) and discuss the results.

Remark: Use the final value from Question (7) as the exact numerical solution

(3 marks)

v. Plot the output responses (i.e. plot the output position 𝑥2

(𝑡) against time in

seconds) and discuss the results in terms of general system behaviour (e.g.

underdamped or overdamped etc).

(3 marks)

Important remark for Question 8:

- Write your own Python code to implement both numerical methods to simulate

the system.

- Python program must be clearly described with sufficient comments to explain

the steps in the program, especially addressing items (i) to (v) from Question (8).

- Use a single Python file to implement both methods.

- You can use an existing/example program to check your solution.

- However, do not submit the existing/example program as your submission.

- To avoid compatibility issues when marking the Python code, please use Spyder

4.2.5 (Python 3.8). (You can download Spyder through Anaconda navigator – see

the webpage: https://www.anaconda.com/products/individual).

END OF QUESTION PAPER

• This coursework has two parts:

1) Question (1) to (7).

2) A Python program (py file) to implement simulations for Question (8).

• Your solutions must include neatly drawn labelled diagrams (where applicable),

correct use of mathematical notation, sufficient comments and workings for the

marker(s) to easily follow your process. Where practicable, you should also show

how you have checked your answers.

• Python program must be clearly described with sufficient comments to explain the

steps in the program.

• Marks are awarded for clear, legible presentation of work.

Page 3 of 5

System description: Mechanical mass-spring-damper system

The coursework deals with modelling and analysis of the mechanical mass-springdamper system shown in Figure 1.

Figure 1: Nonlinear mass-spring-damper system

The variables 𝑥1(𝑡) and 𝑥2(𝑡) represent the positions of mass 𝑚1 and 𝑚2. The force

𝑓(𝑡) is the system input, whilst the output is the position 𝑥2

(𝑡).

Here the masses are 𝑚1 = 1 𝑘𝑔 and 𝑚2 = 1 𝑘𝑔 and the damper 𝑏 = 1 𝑁𝑠/𝑚. The

spring is nonlinear, and the force (𝑁), 𝐹𝑠(𝑡), required to stretch the spring is:

𝐹𝑠(𝑡) = 2𝑥1

2

(𝑡) Eq.(1)

PART A (Modelling)

Question 1 (2 marks)

Provide a real-life example where a general mass-spring-damper system can be

found.

Question 2 (10 marks)

Using a free-body-diagram, show that the differential equations representing the

system in Figure 1 are given by:

𝑑

2𝑥1(𝑡)

𝑑𝑡

2 +

𝑑𝑥1(𝑡)

𝑑𝑡 + 2𝑥1

2

(𝑡) −

𝑑𝑥2(𝑡)

𝑑𝑡 = 0

Eq.(2)

𝑑

2𝑥2

(𝑡)

𝑑𝑡

2 +

𝑑𝑥2

(𝑡)

𝑑𝑡 −

𝑑𝑥1

(𝑡)

𝑑𝑡 = 𝑓(𝑡)

Eq.(3)

Question 3 (10 marks)

Linearise the system for the point 𝑥1

(0) = 1, 𝑥2(0) = 0, 𝑓(0) = 0, and show that the

linearised differential equations are given by:

𝑑

2𝛿𝑥1(𝑡)

𝑑𝑡

2 +

𝑑𝛿𝑥1(𝑡)

𝑑𝑡 + 2(1 + 2𝛿𝑥1(𝑡)) −

𝑑𝛿𝑥2(𝑡)

𝑑𝑡 = 0

Eq.(4)

𝑑

2𝛿𝑥2

(𝑡)

𝑑𝑡

2 +

𝑑𝛿𝑥2

(𝑡)

𝑑𝑡 −

𝑑𝛿𝑥1

(𝑡)

𝑑𝑡 = 𝛿𝑓(𝑡)

Eq.(5)

Note: 𝛿𝑥1(𝑡) = 𝑥1(𝑡) − 1, where 1 is the linearisation point.

Page 4 of 5

PART B (Analytical and numerical methods)

Remark: The remaining questions will be based on the linearised system given in

Equation Eq.(6) and Equation Eq.(7).

For the remaining questions, replace the linear variable 𝛿𝑥1(𝑡) with 𝑥1(𝑡), 𝛿𝑥2(𝑡) in

Eq.(4) and Eq.(5) with 𝑥2(𝑡) and 𝛿𝑓(𝑡) with 𝑓(𝑡) (i.e. ignoring the linearisation point). In

other words, the remaining questions are based on the result of the linearisation

process, which is given by:

𝑑

2𝑥1(𝑡)

𝑑𝑡

2 +

𝑑𝑥1(𝑡)

𝑑𝑡 + 2(1 + 2𝑥1(𝑡)) −

𝑑𝑥2(𝑡)

𝑑𝑡 = 0

Eq.(6)

𝑑

2𝑥2

(𝑡)

𝑑𝑡

2 +

𝑑𝑥2

(𝑡)

𝑑𝑡 −

𝑑𝑥1

(𝑡)

𝑑𝑡 = 𝑓(𝑡)

Eq.(7)

Question 4 (6 marks)

Apply Laplace transform on the linearised system in equations Eq.(6)-Eq.(7). Assume

zero initial conditions, i.e. 𝑥1

(0) = 0, 𝑥̇1

(0) = 0, 𝑥2

(0) = 0, 𝑥̇2

(0) = 0.

Question 5 (7 marks)

Using the results from Question (4),

a) Obtain the transfer function for the linearised system (i.e. equations Eq.(6) and

Eq.(7)). Note that the input of the system is 𝑓(𝑡) and the output is 𝑥2(𝑡).

(5 marks)

b) What is the order of the system? Justify your answer.

(2 marks)

Question 6 (12 marks)

Using the transfer function from Question (5)

a) Obtain and clearly list all the poles and zeros of the linearised system.

(Remark: there should be two zeros and four poles. Two of the poles are at

s = −0.3522 ± 1.7214i and one at s = 0. You need to find the other one real

pole. You can use calculator to find these values.)

(Remark 2: the location of the remaining pole is between -2 and 0).

(4 marks)

b) Determine if the system is stable. Justify your answer.

(3 marks)

c) Draw the “𝑠-plane”.

(5 marks)

Question 7 (3 marks)

Use Final Value Theorem to predict the value of 𝑥2(𝑡) (if available) when the input is

a unit impulse. Justify your answer.

Page 5 of 5

Question 8 (50 marks)

Using Equation (6) and Equation (7), create a simulation of the system using both:

a) Euler method, and

b) Heun (Runge-Kutta second order) method

Assume that the input force 𝑓(𝑡) is a unit impulse (duration of 0.1 sec from 𝑡 = 0).

For each method (25 marks × 𝟐 = 𝟓𝟎 marks):

i. Write your own Python code that creates the simulation of the system

(10 marks)

ii. Select an appropriate step size ℎ = Δ𝑡. Explain your reasoning.

(Remark: As a guidance, this value must be chosen (iteratively?) such that

the steady state error is less than 1%).

(7 marks)

iii. Select an appropriate end time for the simulation. Explain your reasoning.

(2 marks)

iv. Calculate the error (𝐸𝑡) and percentage error (|𝜖𝑡

|%) and discuss the results.

Remark: Use the final value from Question (7) as the exact numerical solution

(3 marks)

v. Plot the output responses (i.e. plot the output position 𝑥2

(𝑡) against time in

seconds) and discuss the results in terms of general system behaviour (e.g.

underdamped or overdamped etc).

(3 marks)

Important remark for Question 8:

- Write your own Python code to implement both numerical methods to simulate

the system.

- Python program must be clearly described with sufficient comments to explain

the steps in the program, especially addressing items (i) to (v) from Question (8).

- Use a single Python file to implement both methods.

- You can use an existing/example program to check your solution.

- However, do not submit the existing/example program as your submission.

- To avoid compatibility issues when marking the Python code, please use Spyder

4.2.5 (Python 3.8). (You can download Spyder through Anaconda navigator – see

the webpage: https://www.anaconda.com/products/individual).

END OF QUESTION PAPER