ELV-430 · Lesson 8 of 12 · 21 min

Commissioning and acceptance after a modernization

By the seventh week, Tillicum car 1 ran on its new controller from top to bottom on inspection operation, the doors opened and closed on every floor, and the fixtures lit when they were pressed. To a passenger it would have looked finished. To Priya it was about half done, because nothing on it had yet been proven to do what the code and the specification required. Commissioning is the work between first runs and acceptance: tuning the drive and the motion, learning the hoistway, setting up every function, and then testing each requirement in the scope, one by one, with the results written down. The pretests are the contractor's own acceptance tests, done before the inspector arrives, and the acceptance inspection is the authority's check of the same things. This lesson follows car 1 through commissioning and pretests; lesson 12 covers its acceptance day.

Tuning the drive and the motion

The drive's motor tuning routine from lesson 4 set the motor's electrical model. Commissioning sets the car's motion. The controller's motion profile, which ELV-310 described, has a rated speed, acceleration and deceleration rates, and jerk values that round the corners of the profile at the start and end of acceleration and deceleration. The drive's speed regulator follows the profile using the encoder feedback, and its gains decide how tightly it follows: too low and the car lags the profile and lands inaccurately; too high and the car vibrates or hunts around the target speed. Priya tuned car 1 empty and then with half load and full load, watching the drive's speed reference and actual speed on the service tool and riding the car with an accelerometer on the floor.

Two settings needed particular care on an old geared machine. The first was rollback at the start: the drive must hold the car at zero speed while the brake lifts, so that a full car does not sink or an empty car does not rise in the moment between the brake lifting and the drive taking the load. The drive's start sequence builds torque before the brake lifts, using the load weighing signal or a fast speed loop, and the crew checked it with a full car and an empty car at the bottom and top landings. The second was the worm gear's backlash: when the load reverses during a run, as it does when a balanced car passes the middle of the hoistway, the gear's free movement can cause a small knock unless the speed loop is tuned to pass through it smoothly. Tillicum's backlash was within limits, and a little filtering in the speed loop took the knock out.

# Motion profile check: flight time for one floor and the full run against the specification
v = 1.0            # rated speed, m/s
a = 0.8            # acceleration and deceleration, m/s2
j = 1.2            # jerk, m/s3
def flight(d):
    # time for an S-curve run of distance d (symmetrical acceleration and deceleration)
    t_j = a / j                       # time to build acceleration
    d_acc = v * (v / a + t_j) / 2     # distance to reach full speed
    assert d >= 2 * d_acc, "run too short to reach full speed"
    return 2 * (v / a + t_j) + (d - 2 * d_acc) / v
floor = 3.75    # m, one floor
full = 30      # m, bottom to top
print(f"one floor: {flight(floor):.1f} s (specification {7.0} s or less)")
print(f"full travel: {flight(full):.1f} s")
Output
one floor: 5.7 s (specification 7.0 s or less)
full travel: 31.9 s

Learning the hoistway and levelling

The new absolute landing system, a coded tape in the hoistway read by a sensor on the car top, gave the controller the car's position at every point without needing to count from a terminal landing. The controller learns the floor positions on a learn run, stopping at each floor while the mechanic records the exact position of the sill on the tape, and stores the door zones and the terminal slowdown positions. After the learn run, the levelling accuracy is checked at every floor in both directions with an empty car and a full car, measuring the step between the car sill and the landing sill with a scale, and individual floors are trimmed in the controller where needed.

# Levelling accuracy after the learn run (step from landing sill to car sill, + car high)
limit = 6          # specification limit, mm (the code's stopping accuracy is looser)
data = {               # floor: (up empty, up full, down empty, down full), mm
    1: (2, 3, -1, -2),
    2: (1, 2, -2, -3),
    3: (3, 4, 0, -2),
    4: (2, 3, -1, -1),
    5: (8, 9, 4, 3),
    6: (1, 2, -2, -2),
    7: (2, 2, -1, -3),
    8: (1, 3, -2, -2),
    9: (2, 3, -1, -2),
}
worst = 0
for fl, r in data.items():
    w = max(abs(x) for x in r)
    worst = max(worst, w)
    flag = "" if w <= limit else "  trim this floor"
    print(f"floor {fl}: {r}  worst {w}{flag}")
print(f"worst step {worst} mm against {limit} mm")
Output
floor 1: (2, 3, -1, -2)  worst 3
floor 2: (1, 2, -2, -3)  worst 3
floor 3: (3, 4, 0, -2)  worst 4
floor 4: (2, 3, -1, -1)  worst 3
floor 5: (8, 9, 4, 3)  worst 9  trim this floor
floor 6: (1, 2, -2, -2)  worst 2
floor 7: (2, 2, -1, -3)  worst 3
floor 8: (1, 3, -2, -2)  worst 3
floor 9: (2, 3, -1, -2)  worst 3
worst step 9 mm against 6 mm

Floor 5 stood out: the car stopped high in both directions and both loads, which pointed to the floor's learned position rather than the drive. Tamsin rode the car to floor 5 and found that the landing sill there had settled slightly relative to its neighbours, so the learned position had been taken from the tape correctly but the sill was not where the hoistway drawing assumed. The floor was trimmed in the controller and rechecked. The learn run had done its job; the building had simply moved in sixty years.

The pretest plan

Pretests are written before they are run. Priya's pretest plan for car 1 was built from lesson 3's requirements list: every requirement the alteration pulled in became one or more tests, each with the method, the acceptance criterion, the instruments and the person responsible, and each permit condition and every item in the specification's performance section was added. The plan was sent to the consultant and the authority with the request for an inspection date, so that the inspector could see in advance what would be shown and how. A good pretest plan is also a training document: Tamsin ran a third of the tests under Priya's eye, which was the best exam preparation she had.

Pretest groups and examples from the Tillicum car 1 plan.
GroupExamples of tests on Tillicum car 1
Safety circuitEvery switch in the circuit opened one at a time, car stops; jumper board count zero
DoorsInterlocks on every floor, door contacts, closing force and time, light curtain, door reopening
Terminal stoppingNormal and emergency terminal slowdown, final limits at both ends
Brake and overspeedBrake holds 125 % load, governor switch stops the car, rope gripper trip
Unintended movementCar moved away from the floor with doors open, rope gripper stops it within the limit
Drive and motorField loss detection, motor overload, drive faults
Inspection operationCar top station, in-car inspection, hoistway access, priority between stations
Emergency operationFirefighters' service with the fire alarm technician, emergency communication with the monitoring centre
Machine room and pitVentilation fan and sensor, lighting levels, car lighting disconnect, pit stop switch, ladder and guardrail conditions
# Pretest tracker: what is left before booking the inspector
tests = [  # (group, test, result)  result: "pass", "fail", or None for not yet done
    ("safety circuit", "each device opens the circuit", "pass"),
    ("safety circuit", "jumper board count zero", "pass"),
    ("doors", "interlocks all floors", "pass"),
    ("doors", "closing force and time all floors", "pass"),
    ("doors", "light curtain full height", "pass"),
    ("terminal", "final limits top and bottom", "pass"),
    ("brake", "125 % hold at bottom landing", "pass"),
    ("overspeed", "governor switch stops the car", "pass"),
    ("overspeed", "rope gripper ascending overspeed trip", "pass"),
    ("movement", "unintended movement stop distance", "fail"),
    ("drive", "field loss detection", "pass"),
    ("inspection", "car top station priority", "pass"),
    ("emergency", "firefighters' service with alarm technician", None),
    ("emergency", "emergency communication call", "pass"),
    ("rooms", "machine room ventilation and lighting", "pass"),
    ("conditions", "car top guardrail installed", "pass"),
    ("conditions", "retractable pit ladder per variance", "pass"),
]
done = [t for t in tests if t[2] is not None]
fails = [t for t in tests if t[2] == "fail"]
todo = [t for t in tests if t[2] is None]
print(f"{len(done)} of {len(tests)} tests done, {len(fails)} failed, {len(todo)} to do")
for g, t, r in fails + todo:
    print(f"  {g:12s} {t:45s} {r or 'not done'}")
print("book the inspector:", "yes" if not fails and not todo else "not yet")
Output
16 of 17 tests done, 1 failed, 1 to do
  movement     unintended movement stop distance             fail
  emergency    firefighters' service with alarm technician   not done
book the inspector: not yet

A failed pretest

The unintended movement test failed on the first try, which is what pretests are for. The test makes the car move away from the floor with its doors open, simulating a brake or drive failure, by lifting the brake with the drive disabled and the car unbalanced, and measures how far the car travels before the door zone monitor trips the rope gripper and the car stops. The code limits that distance; ELV-410 and ELV-420 used a figure of about 1,220 mm (48 in). On the first run, with an empty car at the bottom landing rising under the heavier counterweight, the car travelled well inside the limit; but with a full car at the top landing sinking, it travelled further than Priya's own target, though still inside the code limit, and the gripper's response time on the service tool looked slow.

# Unintended movement test: distance travelled before the gripper stops the car
g = 9.81
k = 1000              # m to mm
kv = 1.0
limit = 1220                     # code limit used in the program, mm
def distance(unbalance_frac, t_detect, t_grip, decel_g):
    # car accelerates under the unbalanced load from rest until the gripper acts, then stops at decel_g
    acc = unbalance_frac * g      # crude: unbalanced fraction of gravity (friction ignored)
    t = t_detect + t_grip
    v = acc * t
    s = 0.5 * acc * t * t + v * v / (2 * decel_g * g)
    return s, v
for label, ub, tg in (("first test, full car sinking", 0.18, 0.30), ("after valve fix", 0.18, 0.12)):
    s, v = distance(ub, 0.20, tg, 0.6)
    print(f"{label:30s}: speed at grip {v * kv:.2f} m/s, distance {s * k:.0f} mm (limit {limit})")
Output
first test, full car sinking  : speed at grip 0.88 m/s, distance 287 mm (limit 1220)
after valve fix               : speed at grip 0.57 m/s, distance 118 mm (limit 1220)

The gripper was released by a solenoid valve that dumped the pressure holding its jaws open. Priya found that the valve's exhaust port had been fitted with a restrictor meant for a different model, which slowed the release. With the correct fitting, the gripper's response time fell by more than half, and the distance with a full car dropped to a fraction of the limit. The test was repeated three times at the top and bottom landings with empty and full cars, and all results recorded. A pretest that passes on paper but leaves a doubt in the mechanic's mind is not finished, which is why Priya chased a slow valve on a test that had technically passed the code limit.

Bar chart of unintended movement stopping distance for four test cases (empty car rising at the bottom, full car sinking at the top, before and after the gripper valve fitting was corrected), with the code limit drawn as a horizontal line and the program target below it.
Unintended movement test distances before and after the gripper valve fix.

Handover documents

A modernized car is handed over with documents as well as keys. The maintenance control program from ELV-420 is rewritten for the new equipment, with the controller and drive maker's maintenance procedures, the procedures for any programmable safety devices, the test procedures for the rope gripper and the other new devices, the as-built wiring diagrams kept in the machine room, the diagnostic tool or its access instructions as the non-proprietary specification required, the spare parts list, and the baseline records: every pretest and acceptance result, the motor and drive settings, the levelling data and the ride quality readings from lesson 11. The owner's staff are shown how to use the emergency communication system, the firefighters' service keys and the in-car features, and the building's own emergency procedures are updated. Lesson 12 returns to the handover after the acceptance inspection.

Worked problem

Is a pretest result good enough?

During pretests, the car's levelling accuracy is within the code's stopping tolerance on every floor but outside the specification's tighter limit on two floors. The inspector is booked for the next morning. What should the crew do?

Show solution
  1. The code is the minimum; the specification is the contract with the owner and the consultant.
  2. Trim the two floors and recheck them in both directions with empty and full cars.
  3. If they cannot be fixed before the inspection, record them as open items to be shown to the consultant, because the inspector checks the code and the consultant checks the specification.
  4. Never record a pretest result as passed when it did not meet the criterion in the plan.

Answer: Fix the two floors if possible; if not, record them honestly as open against the specification while showing the code result to the inspector.

Common mistakes

  • MistakeTreating a car that runs as a car that is finished.

    InsteadCommissioning and pretests prove every requirement; running is the start.

  • MistakeTuning the drive with an empty car only.

    InsteadTune and check with empty, half and full load.

  • MistakeRunning pretests without a written plan.

    InsteadWrite the plan from the requirements list and share it with the inspector.

  • MistakeAccepting a pass that leaves a doubt.

    InsteadFind the cause of anything that looks wrong, even inside the limit.

  • MistakeHanding over without as-built drawings and baseline records.

    InsteadThe maintenance control program for the new car starts with them.

Summary and key terms

  • Commissioning tunes the drive and motion, learns the hoistway and sets up every function.
  • Rollback at start and gear backlash need care on geared machines; tuning is done at several loads.
  • Levelling is checked at every floor, both directions, empty and full, and trimmed floor by floor.
  • The pretest plan comes from the requirements list, permit conditions and specification, and is shared with the inspector.
  • Failed pretests are what pretests are for; results inside the limit that look wrong are still investigated.
  • Handover includes a new maintenance control program, as-built drawings, tools access and baseline records.
Commissioning
Setting up and proving a new or modernized elevator before acceptance.
Pretests
The contractor’s own tests of every requirement before the acceptance inspection.
Rollback
Movement of the car at the start of a run between brake lift and the drive taking the load.
Learn run
A run in which the controller records floor positions and zones from the landing system.
Speed loop gain
The setting that decides how tightly the drive follows the speed reference.
Baseline
The first set of test and performance results for a unit, used to judge later results.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. What causes rollback at the start of a run?

    Show answer

    The brake lifting before the drive has built enough torque to hold the load.

  2. Why check levelling in both directions and with two loads?

    Show answer

    Errors that change with direction or load point to the drive; errors that do not point to the floor position.

  3. Where does the pretest plan come from?

    Show answer

    The requirements list, the permit conditions and the specification.

  4. Why did Priya investigate the gripper even though the distance was inside the limit?

    Show answer

    The response looked slow, which suggested a fault that could worsen.

  5. Name three things in the handover documents.

    Show answer

    New maintenance control program, as-built wiring diagrams, baseline test records, diagnostic tool access, spare parts list.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz