Convert open loop stepper to closed loop control

Hi,

I have a project that uses a 13Nm Open Loop stepper motor (4 wire / 2 phase, 48VDC @ 5A per phase) to move a belt type linear axis … control of the stepper drive is via 5V pulse/direction I/O from a custom microprocessor.

Initially it worked well but under certain conditions the motor looses steps which causes a gradual positional error on the linear axis. as such I am considering modifying the setup to closed loop control by adding a Omron 1000 P/R Incremental quadrature encoder, the Granite Devices web site states that the Ioni drive (with X1 mother board) can control stepper motors and supports rotary encoders.

An alternative might be to use a a linear encoder for position feedback but i have no experience in using them …

I need it to automatically recover from a lost step/s situation by using the feedback device …

I’ve been considering using a hybrid stepper drive from china but the software is bound to be flakey with no support and it only supports 2 ph steppers where as spending the extra on a Ioni drive would ensure that the drive would be future proof if i wanted to switch to a servo motor at some point in the future and of course the Granity software is far superior and would allow me to tune the motor to the application.

Just wondering if anyone here has any experience in using a stepper in closed loop control ? … any advice or help would be most welcome …

Cheers
jay

Hi Jay

IONI can drive a stepper motor in a closed loop configuration as a stepper motor, or as a 100-pole servo motor. The servo mode has the benefit of using only as much current that is required and reduced audible noise. Servo mode also eliminates physical resonances that stepper motors are prone of.

I suggest you read the first part of this wiki page about the different modes IONI can drive a stepping motor with:
http://granitedevices.com/wiki/Using_stepping_motor_with_IONI

IONI also has an error recovery feature. After clearing a fault, IONI will drive the motor the the setpoint that already had been commanded, during which the faul occurred.

Please see the CRV parameter description here:
http://granitedevices.com/wiki/Granity_user_guide/Goals

Please note, that a rotary motor with only a linear encoder is really not a good combination. Any play and mechanical nonidealities can lead to a spring effect to the system, and it can cause oscillation making good tuning extremely hard, if not impossible.

With rotary motors, the first encoder should always be attached to the motor shaft to eliminate all mechanical play and such. Linear encoders can be used as a secondary position feedback to enable dual-loop systems.

More information about dual-loop systems can be found here:
http://granitedevices.com/wiki/Dual-loop_feedback_position_control

Best regards,
Esa

Hi Esa,

Many thank for your post … very informative.

I think running the motor in mode 3 (Servo mode) would be a good solution and clearly shows the benefit of using Ioni drive over a cheeper alternative …

I did not know that Ioni could support both a rotary and linear encoder … i’ll try with a Rotary (in line with motor shaft) first and see how things go … nice to have the option to add a linear encoder if it needs it.

Do you know how quickly will Ioni can recover from detected lost steps ? < 1 second would be fine but if it can recover even quicker then that would be fantastic, is there a method to be able to flag a digital output that the my microprocessor can read so that it does not send any position data whilst the drive is recovering the position ?

Cheers
Jay

Hi Jay

When the stepping motor is used as a servo motor, and when it’s tuned properly, then there are no lost steps. If the motion is blocked for some reason and the motor is not able to move according to the setpoint, then after a configurable position tracking error threshold, a tracking error flag is triggered.

If the CRV parameter is non-zero, then after clearing the fault, IONI will drive the motor to the position where the motor would be before the tracking error.

http://granitedevices.com/wiki/Granity_user_guide/Fault_limits

For the IO, please read IONICUBE, IONICUBE 1X, and IONI connector pinout wiki pages for the signals that you can use. There are tracking error IO, clear faults IO, servo ready IO
http://granitedevices.com/wiki/IONI_%26_IONICUBE_user_guide/Wiring_overview_with_IONICUBE_1X
http://granitedevices.com/wiki/IONI_%26_IONICUBE_user_guide/Wiring_overview
http://granitedevices.com/wiki/IONI_connector_pinout

Best regards,
Esa

Emulated Servo mode sounds like the way to go … sounds like just what i need.
Will order Ioni drive and 1X Wide motherboard later today.

Cheers
Jay

Hi Esa,

Many thanks for all your help on this …

Just a few questions before i order …

I have SCHOTTKY, 10A, 100V diodes in stock so can add D1 between PSU and Drive… however I am unsure if i’ll need to use Regenerative resistor … documentation says its optional but does not really detail why you need one ? my PSU is a switched 48V/10A type … so assume if i do need one i would need something like a 4.8 Ohm @ 100W ceramic resistor ? … My application involves a lot of stop/start and change of direction …

If i order X1 Wide Motherboard then there would be no need for a secondary 24V PSU as logic VCC can be taken from my 48V motor PSU ? … thats my understanding from reading the product description ?

If you could confirm the above i’ll order this afternoon …

Cheers
Jay

Hi Jay

Yes, the Wide version of the IONICUBE 1X works like that. a 48V PSU can be used to power the logic side as well.

The regenerative resistor is needed when the motor braking the movement starts to generate voltage over the PSU voltage. This is to protect the IONI for too high voltage, that would break it’s power stage.

The need for a regenerative resistor is application dependent. However, stepper motors are prone to generate more voltage than servo motors, so I would recommend to install one.

The lower the resistance, the higher the current through the resistor, and the faster the excess voltage is burned into heat. 100W is most certanily enough. E.g. IONICUBE has a 11w regenerative resistor, which is enough for most applications.

Best regards,
Esa

Hi Esa,

This subject of motor braking my help to explain an issue i have with the current set up …

As previously stated i have quite a powerful 13Nm Nema 34 Stepper (1.8 deg per step, 4 wire, 5A per phase) which is driving a linear axis, the stepper drive i’m using is a Leadshine AM882 Digital Drive:-

http://www.micromech.co.uk/Product_100083_Leadshine---AM882---2-Phase-Digital-Stepper-Drive-with-Stall-Detection

With the motor disconnected from the drive i can move the shuttle back and forth (and thus manually drive the stepper motor) easily and smoothly … however if i plug the stepper in to the drive (with no power applied) and move the shuttle back and forth it becomes ‘notchy’ during direction changes cause a worrying noise and vibration to the shuttles movement … This noisy, notchy behaviour is very apparent when the machine is powered up and working.

I assume that this is motor regen which being fed back into to the motor from the drive … the Leadshine documentation and software makes no mention of motor braking or support of a regenerative resistor.

The only way to lessen the behaviour is slow down the step speed (pulse frequency) and acceleration from my microprocessor (ARM 32 Bit SOC @ 96Mhz) , but that obviously effects the machines performance … ideally i want to move the shuttle as quickly and as smoothy as possible … with fast and sudden direction changes …

Do you think that running the system with a Ioni drive with regenerative resistor and in stepper mode 3 (emulated servo) will help to reduce or even eliminate this behaviour ?

One last question … does the Ioni drive support micro-stepping when running a stepper motor in mode 3 (servo) or is this only for true stepper motors ?, at the moment we have the Leadshine drive configured for 1600 steps per revolution, the Leadshine drive has been a big improvement on the last drive we tried resulting in smoother and quieter motor operation but this re-gen issue (if thats what it is) has to be resolved before we can progress further with the project.

Many thanks for all your help … Great support

Cheers
Jay

Hi Jay

In Mode 3 (as servo motor) the stepping motor is driven with sinusoidal commutation, and there are not steps.

In open loop mode, the default setting is 128 times microstepping, resulting to 25600 steps/revolution. This is also described here at the FBR parameter description:
http://granitedevices.com/wiki/Using_stepping_motor_with_IONI

From your description, the issue could be the voltage generated by the stepping motor. Stepping motors generate more back EMF, and for this reason higher current motor are preferred. The regenerative resistor circuitry might fix this issue, however, as stepping motors generate more back EMF, the maximum speed might be limited in servo mode.

Best regards,
Esa

Hi Esa,

Backfeed EMF was my first thought when we first noticed the issue… if we move the shuttle back and forth and thus drive the motor manually (with the system powered down) the Power and Alarm LED’s on the Leadshine drive light up … but I wondered if it was related to motor regen … thank you for the clarification …

We are kind of stuck between a rock and a hard place with the current motor selection … the application requires a motor of 11Nm + but we can only fit a Nema 34 sized motor in to the current design … The motor we are using has 13Nm of Stall force so it has a bit of overhead which helps to deal with the torque falloff.

We have been unable to find a Nema 34 sized servo motor that is affordable and that has enough force (>12Nm), hence the reason we selected the 13Nm stepper which seems capable of driving the machine in terms of force … but this Back EMF/vibration issue is not acceptable from a noise point of view and I fear that the extra vibration it causes in the system may cause damage to the motor or drive and linear axis if left as it is.

Is there anything that can be done to reduce or even eliminate the Back EMF within the Ioni system or via external control circuitry without slowing the machine down further other than replacing the Stepper with a Servo ?

Would running it in mode 3 eliminate or reduce how much effect the back EMF is currently causing ?, you say that If we run it in mode 3 the maximum speed will be reduced however since we are not running the stepper at its raw max speed because of the 1600 P/R microstepping we are currently using (which has reduced the back feeding EMF issue a bit), if we could achieve (or get close) to the current speed without any Back EMF then that would probably be acceptable.

Sorry to keep asking you questions, this project has become quite a learning curve … I’ve discussed the issue with my colleges and we will be ordering a Ioni drive later today, having a flexible and adaptable drive (with excellent customer support) should mean that its future proof if we do decide to change the motor in the future.

Cheers
Jay

Hi Jay

The Back EMF phenomenon is always present, and it cannot be eliminated as such. As the motor is also a generator, it will always generate the BEMF while rotating. Depending on the operating voltage and the motor design, the BEMF could limit the maximum speed, because the torque gets limited in higher speeds.

For this reason, in most cases a stepper motor with higher current and lower voltage work better.

By the way, have you checked with an oscilloscope or other measuring equipment, that the step pulses are in good quality relating to their timing and voltage levels? We have some experience where resonance issues were generated by the controller due to bad timing of the step pulses.

Best regards,
Esa

Dear Esa,

Thank you again for all your help and information …

The control signals from our ARM controller are very clean and precisely timed, we have checked them several times with a scope during development of the prototype.

Having now read up on Steppers and Back EMF I think the issue is simply down to the DC stepper motor being made to a budget and the relatively simple drive we have been using. Would replacing the stepper motor with an AC servo eliminate the Back EMF issue (or at least greatly reduce it) or do AC servo’s also suffer from Back EMF ?

I’ve tasked our purchasing department with contacting Mige motors to see if they can supply a suitable AC Servo motor.

Regards
Jay

Hi Esa,

We just found out that the Granite Devices web shop stocks some Mige motors … one of the motors we are considering is the MIGE 80ST-M04025 …

https://granitedevices.com/store/applications/automation/mige-1000w-low-inertia-ac-servo-motor.html

The spec sheet for the Stepper Motor we are currently using is here :-

http://www.alltronics.com/mas_assets/acrobat/34HS59.pdf

The torque curve for the motor is on the last page …

We have been unable to find a torque curve for the MIGE 80ST-M04025 only a peek Torque figure, and i am not sure how rated torque and peek torque figures for AC servo’s relate to the torque figure specified on stepper motors (which which seem to be a peek figure) do you think that a MIGE 80ST-M04025 would be suitable replacement ?

Its the only Nema 34 sized AC servo motor that we can find that may be suitable ??

Appreciate any help or advice you can give on this …

Cheers
Jay

Hi Jay

Stepper motors have a high torque at slow speeds, but at higher speeds the torque drops down quite fast. Servo motors have quite linear constant torque, and their peak torque is generally three times of the constant torque. The peak torque can be applied for a short time, and in most cases is only required if high acceleration/decelearion is commanded.

Torque-wise, the Mige M80-M04025 could replace your current stepper motor.

Here’s one graph of a motor torque comparison:
https://www.google.fi/search?q=servo+motor+torque&client=firefox-b&source=lnms&tbm=isch&sa=X&ved=0ahUKEwj4l93ZiMfVAhWmIJoKHSOiCRsQ_AUICigB&biw=1707&bih=887#imgrc=6ZVGbqToNaY_tM:

Best regards,
Esa