ramp control algorithm for shuttle car on rails

LJAM

Member
Join Date
Nov 2004
Posts
32
All,



I am looking for an algorithm to control a heavy shuttle car on rails controlled by a VFD (132kW). The general theory is understood, the shuttle position is controlled remarkably well over long distance +/- 0.1 meters but in short distances (0.2 to 1.0 m) it overshoots > 0.2 m ... although 0.2 m of error might seem negligibly, if the travel distance is 0.2 m, the system will be overshooting by 100% of the controlled distance.



I am looking for a command generation algorithm that continuously up date the distance to target and interpolate velocity calculations base on maximum acceleration/deceleration, distance to target and maximum velocity … The algorithm I am using (base on the Newton formulas) is not lineal, specially at short distances to the target … I am using a Allen-Bradley CLx to calculate and send the reference signal to the VFD.



Thanks in advance.



LJAM
 
Have you tried PID control? Use distance to target as PV and CV is VFD speed. You could use the VFD internal PID to control the speed more accurately. Ensure the ramp setting in the VFD is not overiding your speed signal. If the speed ramp is too long then this will cause an overshoot as it will limit the slowdown of the drive.
All the calculations you are doing are done for you in a PID block.
 
Are you using jerk in your velocity profile? If you are beginning to decel before you reach constant acceleration your distance equation changes a bit. It sounds like you are doing all the velocity command ramping in the plc. As JohnW mentioned, make sure your accel and decel rates in the drive are set so they don't limit your command signal. This doesn't sound like your problem, though, since you are OK on long moves. Also make sure the drive and motor are controlling accurately to the speed you expect. This could be adrive tuning issue.

If you are only using accel (no jerk) then d=V2/2a should be all you need. Just make sure you are using the actual velocity or the instantaneous commanded velocity as opposed to the max velocity.

Some additional details on how your system is set up would be helpful.

Keith
 
PID and logic control

With certainty the caracteristic of the system:

  • Not linear
  • Not constant, mainly in the slope of initial torque.
In relation the expression: Time X power
10s X 70% different 70s X 10%

Therefore, to control the duration of the time and power. Besides esteem, values to prevent the limits of the VFD.

I observed in of document film: ore cars allow the collision, that is used for adjustment (to push) and reduction of energy for lockwire. He applies its situation?

Liked it problem, has that to be accurate, march-reverse does not exist.
 
One thing to consider, if you are controlling the acceleration and deceleration with the CLx, you need to set the accel and decel in the VFD to its absolute minimum, usually 0.1 sec. That way the control truly has control.
 
Are you actually controlling the acceleration phase? Or is "distance to target" the only control? You may try also calculating the a velocity as a "distance from origin" and making sure that it is at least some minimum value (otherwise you would never start). The final command is the lesser of the two calculations with a limit of max velocity.

The other way is to deliberately limit the acceleration (more acceleration time) in the drive, keeping the deceleration time at minimum.
 
JohnW said:
Have you tried PID control? Use distance to target as PV and CV is VFD speed. You could use the VFD internal PID to control the speed more accurately. Ensure the ramp setting in the VFD is not overiding your speed signal. If the speed ramp is too long then this will cause an overshoot as it will limit the slowdown of the drive.
All the calculations you are doing are done for you in a PID block.

I suggest you ditch the PID and use the PI intstruciton in FB or ST for this application, that is if you are not using the CLX built in motion control. The PI instruction is more suitable to position control.


You might want to look at creating a virtual axis and let it calculate a trapezoidal velocity profile for you, taking advantage of the motion control instructions available. Then mimic the velocity profile with the command to the VFD.
 
Gentlemen,



I am using a trajectory generation algorithm that attends to optimize the position control by either velocity (trapezoidal profile) or acceleration (triangular profile) depending on the length of the distance to be traveled (the algorithm use the acceleration, deceleration and maximum velocity configured in the VFD). The routine is running on a periodic task (execute every 50 ms) and on every execution it calculates the new position target for the VFD base on the elapsed time from the previous execution (50 ms) and the distance to go. This new target is compared to the current position (resolver) and the error is used by a Contrologix FBD P+I controller to drive an analogue output to the VFD … after few days of trials and failure to fine tune the loop for short distances (acceleration profile), I am ready for fresh ideas and willing to re-start from scratch if necessary …may be something simpler without a PI control is the answer? What do you guys reckon?



Your comments will be greatly appreciated.



Regards,

LJAM
 
Alaric said:
I suggest you ditch the PID and use the PI intstruciton in FB or ST for this application, that is if you are not using the CLX built in motion control. The PI instruction is more suitable to position control.

Alaric, I would like to see how you justify that statement. Don't tell us from experience. Alaric, you should see my PID threads of last summer. If you don't believe me then go to sci.engr.control newgroup and ask the question.

Alaric said:
You might want to look at creating a virtual axis and let it calculate a trapezoidal velocity profile for you, taking advantage of the motion control instructions available. Then mimic the velocity profile with the command to the VFD.

Why not use the s-curves as Keith suggested? Good idea.
Use PID as JohnW suggested. Right again.
 
Peter Nachtwey said:
Alaric, I would like to see how you justify that statement. Don't tell us from experience. Alaric, you should see my PID threads of last summer. If you don't believe me then go to sci.engr.control newgroup and ask the question.

With all due respect Peter, I think you are mistaken about what the PI instruction is and thus what I was really saying. It is a special case position mode PID instruction except it has no deriviative action and linear/non-linear response modes. It tailored for controlling drives. If you'll bother to look it up in the CLX instruciton set reference you'll find it in the DRIVES INSTRUCTIONS section, and after all, we are trying to control a VFD drive.

I did not say to ditch PID control, I said to ditch the PID instruction in favor of the PI instruction. Were talking about instructions, not control methods.

And yes, I am suggesting it from experience. I took AB's motion control class and thats the instruction that the instructor recommended for an application we had on a welding machine. I followed that advice and found it to be very sound as it successfully controlled the welders position and velocity.

I also used a virtual axis. Its about half the work, if you are familiar with the motion instruction set, if not then the learning curve will make it more work. Yes, he can feel free to build his own s-curve calculation - I only suggested an alternative.
 
Last edited:
I am using a trajectory generation algorithm that attends to optimize the position control by either velocity (trapezoidal profile) or acceleration (triangular profile) depending on the length of the distance to be traveled (the algorithm use the acceleration, deceleration and maximum velocity configured in the VFD).

In agreement. But if it calculates all the stages of the trajectory.
That cause the error? I think the kinetic energy not pertube?

Peter, in this system must not the control have a negative output?
Opt to reducing the profits or attenuating, does not solve for short distance...
I wait answers doubts
 
Good question if I understand it right.

dandrade said:
In agreement. But if it calculates all the stages of the trajectory.
That cause the error?

If one calculates nice smooth ramps within the capabilities of the drive and motor, and the feed forward gains are correct then ideally there would be no error even without a PID. However, reality is not perfect so there are non-linearities and changes in load that a PID must correct.

I think the kinetic energy not pertube?
I don't understand this question.


Peter, in this system must not the control have a negative output?
Opt to reducing the profits or attenuating, does not solve for short distance...
I wait answers doubts
It depends on how the drive is configured. NO ONE BOTHERED TO FIND OUT!!! The drive can be configured in two basic modes.
1. Velocity mode. The drive will try to maintain a speed proportional to the control signal.
2. Acceleration mode more commonly known as torque mode. The drive is a transconductance ( voltage to current ) amplifier. The motor will accelerate in proportion to the torque which is rougly proportional to the current generated by the drive.

In velocity mode, the controller ( control logix ) should not need to output an negative value when decelerating. The circuitry on the drive that makes sure the speed is proportional to the control signal will handle that by outputting a negative current to the motor while decelerating.

In accleration or torque mode, the drive is just outputs a current proporitonal to the control signal. There is no speed regulation so the motion controller must output negative signals to the drive to make the motor decelerate at the proper rate.

Alaric and I should have found out what mode the drive was in BEFORE suggesting control modes. If the drive is in velocity mode a PI is best for position control and marginally acceptable for velocity control. If the drive is in acceleration or mode then one must use a PID for position control and a PI for velocity control. I recommend using acceleration or torque mode when the user is more experienced or the application is a high performance one. I prefer acceleration mode for three reasons:

1. All the gains are in the controller because the drive isn't doing speed regulation.
2. Velocity mode is essentially a cascaded loop. This requires adding an extra pole which causes phase lag and requires tuning a PI on the drive and a PI on the controller instead of just tuning a PID on the controller.
3. There is no point in have a cascaded loop if there is only one feedback. I have seen controllers that use and encoder for the the position feedback and use the same encoder to provide the velocity feedback after calculating the speed. That is pure non-sense. We have seen how difficult it is to compute speeds accurately using an encoder.

LJAM, you should use feed forwards.
 
"The general theory is understood, the shuttle position is controlled remarkably well over long distance +/- 0.1 meters..."

If this is adequate, then good for you.

Then you say...
but in short distances (0.2 to 1.0 m) it overshoots > 0.2 m

To which I say... if you are going to move a short distance, why not use a low profile, low speed jog?
 
And the moral of the story is-----------------never use a stand-alone VFD for positioning! Yes, that's NEVER!

It's ok to use is as a follower for a positioning controller but otherwise, no. The above posts explain why better than anything I could offer.

Bottom line----positioning is a servo job. Period.
 

Similar Topics

Hello guys, i would like to know if is possible keep always active the run command in a vf drive and for stopping the motor only send 0...
Replies
4
Views
2,466
Ok heres my question: I need a PID control for heat, I need to heat the vessel to 100 C once I reach that temp I want the pressure to take over...
Replies
14
Views
5,448
Hello! Hope you are great. I need to make a change in a PLC with ladder logic. I will mount a analog valve and I need to control it in ramp up...
Replies
7
Views
316
Hi hoping someone can assist me with current issue I am experiencing with an ABB drive. Problem I’m experiencing is a ABB drive supply a large...
Replies
4
Views
206
Hello, I'm quite new with using FactoryTalk View Studio. I am currently using FactoryTalk View Studio 13.00 and creating a runtime file for an...
Replies
4
Views
963
Back
Top Bottom