I'm trying to implement fuzzy speed control of a 12 V DC motor (1500 rpm max) using the Elvis II+. Here's what I've done so far:
As a first step, I have implemented simple PI control: I built an IR LED - phototransistor setup to measure speed of the motor (using a CD with a slit to generate pulses as output). I fed the pulses into the CTR0 Gate (PFI 9) pin and used the Acquire Counter Input >> Time Period option in the DAQ wizard to directly get the time period, and hence the speed of the motor (Then I used a simple PID block whose output goes out directly to the motor as the voltage on the VPS +ve pin). I'm afraid that the tuning was by trial-and-error, and hence the result isn't perfect, the Autotuning isn't working either... after I press the button for Setpoint relay, the relay isn't completing at all. I tried the suggestions and played around with relay amplitude and so on, to no avail. I've got a settling time of around 2 or 3 seconds (P=0.013, I=1.5E-5, D=0). Please suggest ways to get that ideal 20% overshoot-10%undershoot-zero steady state error type waveform.
Secondly, I'm trying to implement fuzzy control. I'm reading the NI manuals on the subjects. Since my project deadline is fast approaching, I need to demonstrate fuzzy control, even if it has only 4 or even 9 rules. I just need to show that it works. As inputs, I'll use only Error and Rate of Error. I need help with formulating ranges for these variables, and individual membership functions. PLEASE HELP.