motor driven siren
for Ballet Mecanique , George
<Balsi>: Large motor driven siren with volume control
The instructions in Anteil's score for Ballet Mechanique render it impossible to use a standard crank driven siren, as it is detrimental to the gears in these devices to be started and stopped fast. So an electrically driven mechanical siren with either safe braking possibilities or fast sound-muting control has to be designed. The score is very unclear as to the pitches the sirens are supposed to sound. In the score they appear notated as percussion instruments. Of course, from a mechanical point of view, driving the sound producing rotator of the siren directly with a motor would seem the easiest solution. After all this is how electrically driven sirens generally work. However, starting from an existing and historical crank driven siren, this would require an almost complete redesign and balancing of the instrument as we would have to remove the system of dented wheels inside. If we estimate the maximum speed of rotation on the crank as 3 rotations per second, and if we choose a standard motor with 2750 RPM - that is ca. 46 rotations per second, we need belts or gears with a speed down proportion of ca. 1:15. So, if we take a small V-belt wheel on the motor, diameter 40 mm, the driven wheel needs to have 600 mm in diameter. That's way larger than whats readily available on the market... Moreover, frictional losses would become quite large. So, a two step gear, two times 1:4, looked like a better design at first.
Before we tackled this project, we made already a few siren driven robots: <Sire> , a robot using 24 small sirens as well as the large siren integrated in <Springers>. In these earlier projects, we used DC motors and PWM control to drive the sirens. After many experiments with gears and AC motors, we came across a motor from an electric scooter. This motor had a dented wheel and drove the backwheel of the scooter with a chain. It looked like a perfect solution to the problem at hand here.
First approaches: (2017)
For <Balsi> we first decided to give a throw at using a regular AC 3-phase induction motor. Next to the fact that such motors are readily available at low prices, we took profit of the availability of 16-bit Microchip controllers specifically designed for applications in 3-phase motor controllers, type nr. 24EP128MC202 being our favorite for the time being.
The circuit as we designed it looks like: The PWM base frequency was taken as 20 to 25 kHz and is used to generate 3 sine waves with the required phase shift of 120 degrees.Control range for the speed of rotation is 150 to 3000 rpm. The filtering components on the MIDI input appeared to be essential, as the amount of glitches produced by the fast switching MOSFETS at high frequencies and voltage are considerable and caused erroneous and missing data. This is what the signals look like, as measured op the testpoints tp1, tp2 and tp3: This is the setup for the test:
The motor control firmware builds on a pretty straightforward PID regulating loop. Here is the algorithm, coded in Power Basic:
FUNCTION PID (BYVAL sollvalue AS SINGLE, BYVAL seinvalue AS SINGLE, BYVAL OPT kp AS SINGLE, BYVAL OPT ki AS SINGLE, BYVAL OPT kd AS SINGLE) EXPORT AS SINGLE
' The machine constants have to be passed on the first call only. Seinvalue is the measured reality value, generaly derived from a sample. Sollvalue is the goal we want to achieve. The function returns the correction factor for regulation and should be used in a regulation loop.
STATIC propconstant, integrationconstant, differenciationconstant AS SINGLE
STATIC oldfout, iterm AS SINGLE
LOCAL fout, pterm, dterm AS SINGLE
IF kp THEN propconstant = kp
IF ki THEN
IF ki <> integrationconstant THEN RESET iterm ' reset! integrationconstant = ki
IF kd THEN
IF kd <> differenciationconstant THEN RESET oldfout ' reset differenciationconstant = kd
IF fout = sollvalue - seinvalue ' calculate the error pterm = propconstant * fout. Proportionality term iterm = iterm + (integrationconstant * fout). Integration term dterm = differenciationconstant * (fout - oldfout)
oldfout = fout
FUNCTION = pterm + iterm + dterm ' return value for the PID correction signal
The siren we used for this automation project, before we changed its design, looked like this:
The handgrip and the crank were removed first.
Second approach: (2018)
As we never got our motor controller circuit to operate properly and reliably on the high voltages involved, we abandoned the first design. As an alternative, we changed for a DC motor taken from an electric scooter. These motors work on a nominal 12V and deliver a power of 350W. To drive the siren, we used a chain and chainwheels, recycled from the scooter. As the current drawn is quite high (16A according to the motor shield plate), we decided to use optocouplers in the motor controller.
A novel component in this design is the addition of a damper mechanism. An often inconvenient property of sirens in music, is that the sound volume is always proportional to the pitch produced. To overcome this inconvenience to a great extend, we made a damper consisting of a circular plate that can cover the suction side of the siren. The plate is driven by a bidirectional solenoid, mounted in top of the siren.
Collaborators on this project:
- Laura Maes
- Mattias Parent
- Xavier Verhelst
- Kristof Lauwers
- Moniek Darge
- Lara Van Wynsberghe
<Balsi>: Midi controlled large siren
Purchase of a Polish military siren 500.00 Siemens 3-phase motor 220.00 PCB Motor controller board 310.00 Separation transformer 500VA
Disassembly and cleaning of siren 1d PCB design of motor controller board V1.0 2d PCB revision V1.2 1d Firmware development 10d
Parts, technical specifications and maintenance notes:
- 01.12.2014: Discussion of the collaborative project with the people from Ictus.
- 03.03.2015: Purchase of a Polish military siren on the Ghent flea market
- 07.04.2015: Disassembly and cleaning of the siren
- 15.11.2016: designs for damping mechanisms drawn.
- 09-10.06.2017: Design of a prototype PCB for the motor control. This is the circuit:
- 07.08.2017: Design for PCB improved for better placement of the required heatsinks.
- 28.08.2017: PCB etched and drilled.
- 29.08.2017: PCB soldered. Start coding of the firmware, starting from the code model developped for the stormwind module in Thunderwood. This code should become a generic motor controller for 3-phase induction motors.
- 30.08.2017: First testing and debugging of the firmware. For now, the PWM base frequency is still above 100 kHz with 8-bit resolution. Motor control now uses a 4-period lookup with 256 points. Motor frequency now has a range of 48Hz down to 6.3 Hz. The output voltage is adapted automatically for the lower frequencies, as required for safe motor operation. The PWM frequency has to be brought down a factor 2 or even 4 to reduce excessive heating on the mosfets.
- 31.08.2017: ADC implemented for manual speed control via sensor or potmeter. PWM frequency brought down to 29kHz. Braking implemented. In principle it now works. We still have to test it with high voltage and a motor connected.. This is the PCB, still without heatsinks: On the oscilloscope we can clearly see the death-time implemented between the driving signals for the H-bridge..
- 01.09.2017: Heatsinks mounted on the motor control PCB.
- 02.09.2017: Requirements for the damping control and midi-hub board written out.
- 03.09.2017: Tests of the motor board with a Siemens 0.5 kW motor. The snubber network, 3 x 4n7/1000 V in series with 100 Ohms, burned out... Resistor to flames and cap. getting very hot. Do we need protection diodes? Something like this: Apparently, the diodes serve no purpose whatsever here, as we can rely on the internal diodes in the power MOSFET's. The RC-metworks increase MOSFET dissipation but may help to reduce EMC. Decouping of the 325V power line came out to be very important.
- 04.09.2017: The capacitors used in the snubber circuit compulsary have to be film types (polypropilene). The resistor must be carbon or metal fim and should be rated 2 W. We suffer from motorboating now if we feed the motor from our high voltage bench power supply. 100 nF filmcapacitor added over high voltage power supply line. This reduces the spikes considerably.
- 05.09.2017: Further testing and debugging. New polypropilene capacitors ordered from Farnell. They should come flowing in by tomorrow.
- 06.09.2017: There must be serious hardware bugs: we blew all mosfets and two driver chips, even the PIC microprocessor went to heaven... The snubber network is likely very ill dimensioned: At 27kHz PWM frequency, the impedance of each 4n7 - 100 Ohm network is 1354 Ohms. Thus the current, at 325V becomes 0.24 A. Power dissipation ought to be no less then three times 78 Watt. This doesn't sound healthy... Even so, it does not explain why the mosfets burned out.
- 07.09.2017: Wondering: the simple fact that there are no motor drives on the market operating at the high PWM base frequencies we wanted to use here, should have clued us for the difficulties involved in such designs... Lets try to lower the PWM base frequency...
- 08.09.2017: New circuit worked out, such that there cannot be any electric EMC interfering with the microprocessor: This circuit must be built on two separate circuit boards. A screened flatcable should be used for interconnection, grounded only at the side of the microprocessor board. An alternative to the optocouplers would be to use small signal transformers. The required impedance matching for such transformers is difficult to calculate. Here is a link to a good article published by Texas instrument on the subject.
- 9-11.09.2017: Further experiments with the first circuit. We blew already four IR2104 chips. Apparently the bootstrap capacitor needs to become 470nF/400V. Firmware improved with ramping functions. This seems to work to perfection now. as long as we do not have a motor connected though...
- 12.09.2017: Another alternative circuit worked out, this time using Schaffner pulse transformers for perfect galvanic isolation. It could also be done with only 3 transformers ( 1:1:1) types, but at the detriment of precise dead time control. Here is the circuit: The clear advantage of this approach is that we get rid of spikes on the microprocessor board. Also, the transformer approach is cheaper than the optocoupler approach, as is does not require four floating power supply modules. It will be clear that in both designs either power MOSFETS or IGBT's can be used.
- 13.09.2017: PCB designed for the microprocessor board. This can be used either for the optocoupler version as for the transformer version. We also worked out the circuit in a version using only 3 transformers:
- 14.09.2017: Finalisation of PCB's for new motorcontroller and power driver board.
- 15.09.2017: PCB's soldered. Value of the optimum load resistor on the transformer secondaries determined. We used a 470 Ohm potentiometer and adjusted for minimal overshoot and a gate voltage drive of 10V. The value of 430 Ohms is twice the measured value, as both windings work together. (2 x 215 Ohm). This measurement was done with the MOSFET's mounted and thus, includes their gate capacitance. The 1N5819 diodes are Schottky types rated 40V - 1A.
- 16-17.09.2017: as we are waiting for ordered components to fly in form Farnell, we continued research on the first PCB using the IR2104 drivers. Strange phenomena do occur here: the motor only seems to run properly on a single pretty low and exact voltage. We are now using 28kHz pwm base frequency again. As soon as the power supply is raised to above 60V, the IR' drivers blow out and some of the mosfets give up as well...
- 18.09.2017: Giving up on the IR2104 design. For the 3-transformer design, the PWM base frequency has to be between 20 and 40 kHz. When we fire up this circuit... failure again. Even without a load connected, the mosfets left for heaven... It's quite difficult to perform measurements on the high voltage side of the circuit, as all voltages are floating with respect to ground... So we are using an 1:1 balancing transformer as a differential input for the scope. Of course this introduces errors caused by bandwidth limitations of the transformer.
- 19-23.09.2017: Further research and design.
- 24.09.2017: Looking for a usefull motor we got the idea of winding one ourselves, starting from a disassembled induction motor. Here is the stator, with all existing windings removed: This is the rotor: And here are the main components together: Would a rewiring according to following drawing work to turn it into a 350/375 rpm motor? We posted the idea on FB hoping to catch at least one person with knowledge on motor technology to give us some advice... In order to avoid the problems with high voltages, we could rewire it for operation on 24V AC in 3 phases, triangle connected.
- 15.05.2018: Taking up the project again, after running into a 350W 12V DC motor, recycled from an electric motor bike. Dropping all previous designs.
- 20.10.2018: Construction of an adapter to fit the large chain dented wheel on the siren crank. The thread is standard M12. The adapter is mounted on the dented wheel with four M6 bolts and nuts.
- 27.10.2018: Experimental setup with the scooter motor and the chain. Design of a new motor control circuit.Searching for a mechanism to drive the circular damping plate. To make it close well, we had to removed the perforated steel protector from the front side of the siren. This is of no consequence to the sound.
- 29.10.2018: Start construction of the damper mechanism.
- 30.10.2018: Damper mechanism assembled and electromechanicdal tests performed. Here we use a Laukhuff bidirectional tracture solenoid, a part we had in stock, recycled from an earlier experimental version for the windvalve in <Ake>. Looks like we will need a 24EP128MO202 PIC processor for this siren alone, as we need all three PWM channels. Other components of this robot will need at least a separate processor.
- George Antheil, 'Bad Boy of Music', Da capo press, New York, 1981 (ISBN: 0-306-76084-3)
- George Antheil 'Ballet Mechanique', full score
- Gillon, E. "Elektrotechniek", deel II: Elektrische Machines, ed.Standaard Uitgeverij, Antwerpen 1969.
- Edward Hughes, 'Electrical Technology', ed. Longmans, London 1960.
- Humphreys, Julian (ed.), Philips Power Semiconductor Applications, ed. Philips Export, Eindhoven 1991
- Infineon, IGBT datasheet.
- Infineon, IPP60R180C7 datasheet
- IR2104 datasheet
- Paul Lehrman 'Introduction to Ballet Mecanique' (PDF)
- Raes, Godfried-Willem 'Bellenorgel' (1972)
- Raes, Godfried-Willem 'Expression control in musical automatons' (-2018)
- Raes, Godfried-Willem 'Logos @ 50, het kloppend hart van de avant-gardemuziek in Vlaanderen' (ed. Stichting Kunstboek, Oostkamp 2018)
Order numbers spare parts and special (harder to find...) components:
- Bridge rectifier 40A - 1kV: 9380841 (Farnell) type CM40010
- 1mF/250V Electrolytic cap, snap in, PCB, Epcos B43501-C2108-M: Farnell 1839316
- 5-pole DIN socket, PCB, Preh metal 71251-050: Farnell ord: 1193184 (used as MIDI input connector)
- 5-pole DIN socket, PCB, Plastic Hirshmann MAB5 SH, Farnell ord.: 1944987 (used as MIDI balanced line driver output connectors)
- Schaffner 1:1:1 pulse transformers, type IT242 (2.5mH , 0.75 Ohm) usefull for PWM base frequencies <=40kHz, Farnell 1653529
- Schaffner 1:1 pulse transformers, type IT235 (3mH) have to be ordered specially.