Lab V · Multi-motor conveyor sizing and load sharing
The Tutorial 5.1 conveyor on two drives: belt pull and power, then master-slave and droop sharing through a load surge and a lost fieldbus link.
Objectives
As set by the Lab Works booklet:
- Model the effective belt tension and required drive torque and power of the conveyor.
- Simulate a two-motor master-slave load-sharing control scheme.
- Simulate a droop-control load-sharing scheme for the same conveyor.
- Compare the dynamic behaviour and robustness of the two schemes under a disturbance: a sudden load surge and a loss of communication.
Background
Chapter 5 established the effective belt pull (course eq. 5.1), the drive torque and power (eq. 5.2), and two load-sharing strategies for several motors on one belt: master-slave, where one drive runs in speed control and the others in torque control, following the master's torque reference; and droop, where every drive runs in speed control and lowers its own speed reference in proportion to its own load:
Both can be written as simple discrete-time loops acting on one shared belt-speed state,
so their steady-state sharing and transient response can be compared directly.
Parameter sheet
| Parameter | Symbol | Value |
|---|---|---|
| Conveyor length | 400 m | |
| Material load per unit length | 90 kg/m | |
| Belt mass per unit length | 25 kg/m | |
| Equivalent friction coefficient | 0.022 | |
| Belt speed | 2.5 m/s | |
| Drive pulley radius | 0.32 m | |
| Drive efficiency | 0.9 | |
| Number of drives | — | 2 (head + intermediate) |
| Simulated disturbance | — | step increase in at = 10 s |
| Droop coefficient | your choice |
Procedure
The booklet's five steps, with the names the checker looks for in code font. Keep them exactly.
- Set up. Import NumPy and Matplotlib (they are in the template).
- Define parameters. Define
L,m_load,m_belt,f,v,Randeta, then compute the effective pullFe, the total powerP_total, the power per driveP_each, the drive torque at the pulleyT_pulleyand each drive's rated belt forceF_rated. - Master-slave model. Write
simulate(scheme, kd=0.03, comm_loss=None, t_end=40.0, dt=1e-3)returning the listst, vb, F1, F2. For"ms", drive 1 runs a PI speed loop on the true belt speed and drive 2 copies drive 1's force command. Fromcomm_lossonwards the slave keeps the last reference it received. - Droop model. For
"droop", both drives run PI speed loops, each on its own speed measurement (drive 2's reads 0.5 % low), and each lowers its reference bykdtimes its own force overF_rated. Tunekdfor a reasonably even split. - Simulate and analyse. Run both schemes through the surge at 10 s, and the master-slave scheme with a loss of communication at 5 s. Plot the belt speed and each drive's force against time, then answer the questions below the workspace.
The checker calls simulate with a fresh droop coefficient on every run, and reads the last value of each list, so run long enough to settle. Suggested gains: , , and a first-order force response of about 0.05 s.
Report
An individual report with your code, in this order: objective, model, parameters, results, discussion, conclusion, code. It is marked out of 20 (model 6, results and plots 5, discussion 6, report quality 3). The workspace builds it from your work.