The Food Winch - Part I
Project Inspiration
Recently due to Covid-19, we’ve found ourselves cooking quite a bit more than previously. We do still order food delivery from time to time and there I find myself in a conundrum. Food couriers are not able to use the elevator without a key fob - I have to walk downstairs, which is annoying, and we don’t have the option for a contactless delivery.
Conveniently, our balcony overlooks the main entrance to the building. I’ve been dreaming about a lift system with a basket that I could lower from the balcony, have the courier drop the food in the basket and then lift it back to our apartment. While this could be accomplished with a simple basket and bit of rope, I’d prefer to look at it as a new design problem.
General Design
Design Goals & Objectives
There are a few criteria that I have for the system so far:
The system should be able to raise and lower the basket from my balcony to a few feet above ground level.
The total net possible payload should be be 2.5 kg.
From the lowered position (load in position) to the nominal position at my balcony (load out position), the system should be able to raise the basket and come to a stop in 5 seconds or less.
There should be no overshoot of the final position.
Jostling of the basket as it comes to a stop should be minimized, ideally none.
The system should be able to hold the basket indefinitely while being loaded or unloaded.
From my apartment railing to the ground is approximately 5.7 meters. This implies I’ll need an average speed of 5.7 meters / second or 12.75 miles / hour. For reference, this is quite a bit faster than I can average while jogging (10 minutes / mile) though not as fast as I can ride my eBike (28 mph).
Physical Design
Drive Motor
Originally I had planned to use a simple gear reduction with a DC motor. After working on some of the modeling I realized there is a fatal flaw in such a design. Considering the requirement to hold the basket, a basic DC motor would fail. While attempting to hold the basket stationary, the constant load due to gravity would lead to some severe negative consequences. Consider the equations of motion for a simple, linearized DC motor attached to a flywheel with a rotational moment of inertia, J, damping b; motor constant, k; internal resistance, R; inductance, L, and angular position, Theta. V is the input voltage and i is the current through the motor.
If we consider the motor while stopped, meaning the angular speed is zero, the acceleration will be a function of the current. In this case when the motor is at the load-in position, we’d like the angular speed to stay zero, meaning that the angular acceleration must also be zero. However, to keep the basket from falling, we need some voltage to be applied. By second equation, we can see that this will draw some current, which will begin to cause some acceleration. An unfortunate conundrum.
A simpler way to say the above is that without other electronics, a simple DC motor won’t do the job to hold the basket in a given position. To solve this, I decided to add a simple worm gear, which can’t be back-driven. This acts as a very nice brake system, that doesn’t need any special controls!
Gear Train
The DC motor used to power the project will be paired with a planetary gear reduction. The output of the planetary gears will be used to drive the screw drive of a worm-screw pair. This will have the convenient property that in order to stop the basket and hold it in a given position, we don’t need any electrical power or special design.
The worm wheel will then be used to drive a drum with a small radius. This will give us a good mechanical advantage. If the drum were large, the weight of the basket would create a large torque resisting the torque from the motor attempting to drive it upward.
Great! So far we’ve got a design problem to be solved, some basic requirements, and a simple architecture which fulfill some of the implied functions. In future posts of this series, I’ll cover some system modeling to derive the equations of motion, optimization of system parameters, optimal trajectories, and controller design.