DriveLab
Account

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.

Print QR code

Objectives

As set by the Lab Works booklet:

  1. Model the effective belt tension and required drive torque and power of the conveyor.
  2. Simulate a two-motor master-slave load-sharing control scheme.
  3. Simulate a droop-control load-sharing scheme for the same conveyor.
  4. 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:

ωi∗=ω0∗(1−kd TiTrated)\omega^*_i = \omega^*_0\left(1 - k_d\,\frac{T_i}{T_\text{rated}}\right)

Both can be written as simple discrete-time loops acting on one shared belt-speed state,

M dvdt=F1+F2−Fres,M=L (2mbelt′+mload′)M\,\frac{dv}{dt} = F_1 + F_2 - F_\text{res}, \qquad M = L\,(2m'_\text{belt} + m'_\text{load})

so their steady-state sharing and transient response can be compared directly.

Parameter sheet

ParameterSymbolValue
Conveyor lengthLL400 m
Material load per unit lengthmload′m'_\text{load}90 kg/m
Belt mass per unit lengthmbelt′m'_\text{belt}25 kg/m
Equivalent friction coefficientff0.022
Belt speedvv2.5 m/s
Drive pulley radiusRR0.32 m
Drive efficiencyη\eta0.9
Number of drives—2 (head + intermediate)
Simulated disturbance—step increase in mload′m'_\text{load} at tt = 10 s
Droop coefficientkdroopk_\text{droop}your choice

Procedure

The booklet's five steps, with the names the checker looks for in code font. Keep them exactly.

  1. Set up. Import NumPy and Matplotlib (they are in the template).
  2. Define parameters. Define L, m_load, m_belt, f, v, R and eta, then compute the effective pull Fe, the total power P_total, the power per drive P_each, the drive torque at the pulley T_pulley and each drive's rated belt force F_rated.
  3. Master-slave model. Write simulate(scheme, kd=0.03, comm_loss=None, t_end=40.0, dt=1e-3) returning the lists t, 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. From comm_loss onwards the slave keeps the last reference it received.
  4. 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 by kd times its own force over F_rated. Tune kd for a reasonably even split.
  5. 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: kp=4×104k_p = 4\times10^4, ki=2×104k_i = 2\times10^4, 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.