Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Stepper Motor: Closed loop PID

Hello everyone,

 

I am about to start a project where I want to control 2 stepper motors (+encoder) in closed loop, using a PID controller.

The Process Variable is a analog signal that needs to be controlled using the stepper motor.

So far, that's what I am trying to do.

 

The stepper motor+driver+encoder are already installed in the plant. As for hardware and the control, I am looking at using:

-NI - cRIO-9014

-NI - 9512 (for contorlling the motor)

-NI - 9215

 

I'm not experienced in using cRIO. Therefore, a feedback about the approach would be great.

Also, any tutorials or example codes would help a lot.


Thanks in advance,

Jack

 

0 Kudos
Message 1 of 13
(8,572 Views)

Any thoughts? Any hint is appreciated !

Thank you

0 Kudos
Message 2 of 13
(8,534 Views)

Are you sure you want to go the cRIO route for a pretty simple application?  Can you tell us more about your application?

0 Kudos
Message 3 of 13
(8,525 Views)

Hi,

no,absolutely not sure.

Here is a little more about the application.

 

Two model wind turbines are being build. Each one of them contain a generator+encoder. Analog input and rotational frequency should be measured.

Next, each turbine is equipped with a stepper motor+encoder, that alters the pitch angle of the rotor blades to limit the rotational frequ or power output.

 

Previously, I programmed a working control for a single turbine using USB-6211 + DAQmx. Now as we are about to expand the application to two (for now) turbines, I thought that using DAQmx might not be the best way to go, especially because we want to expand the project to many more turbines in the future.

I got in contact with NI, explained the application and was advised to go with CompactRIO.

I started playing around a bit with the systems that were flying around in the lab and asked myself the same question.

That's why I look for some feedback here.

 

Thank you for any thoughts!

 

edit: I think for the 2 tubines a simple expansion with (more) DAQmx cards is the best solution. However, I should consider future plans to expand the project to 5 to 10 turbines.

 

0 Kudos
Message 4 of 13
(8,522 Views)

Are the encoders just incremental, not absolute?  I would do this using a PLC, but the cRIO probably is the best offering from NI.  It is really overkill for this application, in addition to the learning curve you will experience.  Be sure to use the cRIO in scan mode.  If you could run a bunch of turbines off of one cRIO, it might makes sense.  If each turbine needs its own cRIO, then it could be a bit pricey.

0 Kudos
Message 5 of 13
(8,518 Views)

The encoder of the generators is magnetic, the ones of the steppers are optical, both having a TTL signal as outplut . Does that answer your question? Sorry, I dindn't totally get it.

So, you think cRIO is the better option as compared to PXI or even the DAQmx solution?

Thanks!

0 Kudos
Message 6 of 13
(8,512 Views)

cRIO is a ruggedized, stand-alone solution.  DAQmx is just a driver for PC based application.  PXI is just another form factor.  Is this a lab type of application, or will this be in the field?  Can you control many turbines from one system, or do you need one system for each turbine?

0 Kudos
Message 7 of 13
(8,509 Views)

Its a lab application and controlling all turbines from one systems is prefered. Controlling the turbines from a PC is ok.

The main idea why I wanted to change the running controls using DAQmx with USB AD-Converters was that I found the NI Motion Control interesting for my application. Further I thought that the solution with multiple USB-Cards might get very unhandy when expanding the project to more turbines, would you agree?

0 Kudos
Message 8 of 13
(8,507 Views)

Do you need to know the angle of the blade when you are controlling it?  Couldn't the output of your PID loop be a velocity control to the stepper drive?  cDAQ is an option, but it doesn't offer motion control.  You could have a multi-axis motion controller(s) in the PC, but use cDAQ for the hardware.  All your programming would be using standard LabVIEW on the PC.  What stepper drives are you using?

0 Kudos
Message 9 of 13
(8,502 Views)

Yes I would need to know the anlges of the blades, thats why the stepper is equipped with a encoder.

The output of my PID loop should be either a defined angle that the blades should pitch to, or simply increase/decrease angle, depending of what works better. The first option would be the more elegant way I think.

cRio sounds very interesting. The point I did not get is how to use motion controllers on the PC it motion control is not supported.

 

I use a third party driver, with a PWM signal as step-input and also a high/low signal for clockwise/anticw.

 

Thank you very much for your help!

0 Kudos
Message 10 of 13
(8,496 Views)