Difference between revisions of "Continuously Variable Transmission"

From Mech
Jump to navigationJump to search
Line 1: Line 1:
== Team members ==

* David Evitt
* Tyler Miller
* Raymond Mui

== Overview ==

This project intends to control a continuously variable transmission using C programming with a PIC.

A continuously variable transmission is a type of automatic transmission with an infinite number of gear ratios between the input from the engine to the output at the wheels. It achieves this using a system of two variable diameter pulleys, linked together with a v-belt. Each pulley comes in two halves with conical sections facing each other that can move apart, changing where the belt rests on depending on how close the halves are. Changing the width of the driver and driven pulley allows for a smooth transition from low to high gear.

As the driver pulley increases its radius to up the gear ratio, the driven pulley must adjust accordingly, decreasing the radius to maintain belt tension. This is usually controlled by a microprocessor and a variety of sensors. We will be controlling ours by limit switches and a PIC. Exact details can be found later.

The purpose of a CVT is to allow an engine, or in this case, a motor, to maintain running at max efficiency. So, as the vehicle cycles through various speeds, the input will be always running at the optimum RPM. At low gear, it provides enough torque to accelerate the output shaft, then progresses to providing maximum speed at high gear. All of this is done smoothly, without any jerky motion.

== Setup ==

[[image:CVT_setup1.jpg|thumb|300px|Completed CVT assembly]]

Our CVT shown to the right was constructed in the Ford Building machine shop using various available methods. It consists of two pulleys with a movable half keyed to the shaft controlled by a movable support. This support is constrained by three shafts: a main driver shaft moving the support with a lead screw, and two as guides to restrict movement as the first shaft positions the pulley.

We used three Pittman GM8224 motors to control the apparatus. Two motors function to drive the lead screw for each of the two pulleys. These connect to the shafts by two flexible connector hoses to allow a bit of play. We used the third Pittman running at the full 24 volts to simulate the constant speed input running at max efficiency.

<br clear=all>

=== Controlling the gear ratio ===

To simulate the gear change, we have a dial hooked onto a potentiometer as the user interface. The changing resistance controls the gear ratio from low to high. The PIC code then reads the voltage and spins the two motors controlling the lead screws to change the gear ratio accordingly. As the lead screws move, they drive the pulley half along at a controlled rate, adjusting the pulley width. As the distance between halves decreases, the radius increases. The converse is true.

For each revolution of the Pittman motor, the lead screw will advance the pulley half by a tenth of an inch forward. The pulley width will only vary by 1 inch from switching from low to high radius. As the pulley half decreases, the radius will change from 0.866 in to 2.44 in. The driver pulley will tighten the v-belt as it increases the radius, so the driven pulley will have to react accordingly.

=== Controlling the driven pulley ===

[[image:CVT_limit_switches.jpg|thumb|300px|Limit switches on driven pulley]]

Two limit switches rest on the second pulley provide a means of controlling the movement of the driven pulley.

Our second pulley half uses another Pittman motor with the same lead screw setup to adjust the width. However, to assist in moving the halves, we implemented springs to push the pulley halves together to assist maintaining belt tension. A metal fork resting on the moving support for the pulley half triggers the switches if the pulley moves too far. The triggered switches send a signal to either pin RD0 or RD1 of the PIC. As it triggers, the PIC stops the driven pulley half from moving further. The springs on the guide shafts of the driven pulley then correct the pulley width as needed until the fork no longer triggers either switch.

<br clear=all>

== Electrical Components for the CVT==

=== Circuits ===

To control the two Pittman motors, we used [http://hades.mech.northwestern.edu/wiki/index.php/Quadrature_decoding_in_hardware%2C_or_just_counters quadrature decoding] to keep track of the counts. We used LS7183 chips found in the Mechatronics lab instead of LS7083s.

[[image:CVT_circuit_diagram.jpg|thumb|400px|Circuit diagram]]
A schematic of the circuit is presented to the right.
<br clear=all>
[[image:CVT_circuit.jpg|thumb|400px|completed circuit]]

The completed circuit setup can be viewed on the right.

<br clear=all>

=== Programming ===

The PIC reads an input voltage reading from the potentiometer from pin RA0. This value is compared to the upper and lower bounds governing the pulley's widths to determine whether the pulley needs to move farther or closer together. We then use quadrature decoding to keep track of the counts, thereby tracking the number of rotations. With the 10:1 gear ratio (10 revolutions per 1 in of travel), we also know how far it has moved. We modified the quadrature hardware [http://peshkin.mech.northwestern.edu/pic/code/QuadratureHard/ code ] available from the example code page to perform this task.

The code for the entire setup can be found here.
* [[media:CVTcontrolcode.c|CVTcontrolcode.c]]

== Results ==

Unfortunately, due to technical errors and circuit component failure (namely frying three PICs along with other melted components), we were not able to implement the PIC control for the two pulleys. To demonstrate the apparatus, we implemented manual control of the two Pittmans using switches to control the pulley widths. The demonstration showed that the system functions well mechanically. Manual control illustrated the need for feedback control for this system, as the transitions from low to high gear required a nonlinear shift in the pulley radii.

With further work on the circuits and controls, we hope to get the CVT working as intended with PIC control.


== Further Reading ==

More details regarding the operation of a CVT, along with various forms of CVTs
* http://auto.howstuffworks.com/cvt.htm
* http://cars.about.com/od/thingsyouneedtoknow/a/CVT.htm

Revision as of 23:35, 15 March 2008

Team members

  • David Evitt
  • Tyler Miller
  • Raymond Mui

Overview

This project intends to control a continuously variable transmission using C programming with a PIC.

A continuously variable transmission is a type of automatic transmission with an infinite number of gear ratios between the input from the engine to the output at the wheels. It achieves this using a system of two variable diameter pulleys, linked together with a v-belt. Each pulley comes in two halves with conical sections facing each other that can move apart, changing where the belt rests on depending on how close the halves are. Changing the width of the driver and driven pulley allows for a smooth transition from low to high gear.

As the driver pulley increases its radius to up the gear ratio, the driven pulley must adjust accordingly, decreasing the radius to maintain belt tension. This is usually controlled by a microprocessor and a variety of sensors. We will be controlling ours by limit switches and a PIC. Exact details can be found later.

The purpose of a CVT is to allow an engine, or in this case, a motor, to maintain running at max efficiency. So, as the vehicle cycles through various speeds, the input will be always running at the optimum RPM. At low gear, it provides enough torque to accelerate the output shaft, then progresses to providing maximum speed at high gear. All of this is done smoothly, without any jerky motion.

Setup

Completed CVT assembly

Our CVT shown to the right was constructed in the Ford Building machine shop using various available methods. It consists of two pulleys with a movable half keyed to the shaft controlled by a movable support. This support is constrained by three shafts: a main driver shaft moving the support with a lead screw, and two as guides to restrict movement as the first shaft positions the pulley.

We used three Pittman GM8224 motors to control the apparatus. Two motors function to drive the lead screw for each of the two pulleys. These connect to the shafts by two flexible connector hoses to allow a bit of play. We used the third Pittman running at the full 24 volts to simulate the constant speed input running at max efficiency.


Controlling the gear ratio

To simulate the gear change, we have a dial hooked onto a potentiometer as the user interface. The changing resistance controls the gear ratio from low to high. The PIC code then reads the voltage and spins the two motors controlling the lead screws to change the gear ratio accordingly. As the lead screws move, they drive the pulley half along at a controlled rate, adjusting the pulley width. As the distance between halves decreases, the radius increases. The converse is true.

For each revolution of the Pittman motor, the lead screw will advance the pulley half by a tenth of an inch forward. The pulley width will only vary by 1 inch from switching from low to high radius. As the pulley half decreases, the radius will change from 0.866 in to 2.44 in. The driver pulley will tighten the v-belt as it increases the radius, so the driven pulley will have to react accordingly.

Controlling the driven pulley

Limit switches on driven pulley

Two limit switches rest on the second pulley provide a means of controlling the movement of the driven pulley.

Our second pulley half uses another Pittman motor with the same lead screw setup to adjust the width. However, to assist in moving the halves, we implemented springs to push the pulley halves together to assist maintaining belt tension. A metal fork resting on the moving support for the pulley half triggers the switches if the pulley moves too far. The triggered switches send a signal to either pin RD0 or RD1 of the PIC. As it triggers, the PIC stops the driven pulley half from moving further. The springs on the guide shafts of the driven pulley then correct the pulley width as needed until the fork no longer triggers either switch.


Electrical Components for the CVT

Circuits

To control the two Pittman motors, we used quadrature decoding to keep track of the counts. We used LS7183 chips found in the Mechatronics lab instead of LS7083s.

Circuit diagram

A schematic of the circuit is presented to the right.

completed circuit

The completed circuit setup can be viewed on the right.


Programming

The PIC reads an input voltage reading from the potentiometer from pin RA0. This value is compared to the upper and lower bounds governing the pulley's widths to determine whether the pulley needs to move farther or closer together. We then use quadrature decoding to keep track of the counts, thereby tracking the number of rotations. With the 10:1 gear ratio (10 revolutions per 1 in of travel), we also know how far it has moved. We modified the quadrature hardware code available from the example code page to perform this task.

The code for the entire setup can be found here.

Results

Unfortunately, due to technical errors and circuit component failure (namely frying three PICs along with other melted components), we were not able to implement the PIC control for the two pulleys. To demonstrate the apparatus, we implemented manual control of the two Pittmans using switches to control the pulley widths. The demonstration showed that the system functions well mechanically. Manual control illustrated the need for feedback control for this system, as the transitions from low to high gear required a nonlinear shift in the pulley radii.

With further work on the circuits and controls, we hope to get the CVT working as intended with PIC control.


Further Reading

More details regarding the operation of a CVT, along with various forms of CVTs