Scott-
Thanks for the reply. This is the same issue that I created a support request number for of 7054946 on NI's website. I'm assuming that the Scott I'm dealing with on that # is you. Anyway, I hope that's not a problem. I was hoping someone else out there might have some experience or thoughts that might be relevant.
Per the message I left you last night (9/1/04), I didn't have any success at all running the step response to check the PID control loop parameters, as before. When we configured our motor drive for the motor in this application, and ran an autocommutation process, (another process where current is applied to rotate the motor for a short time like the step response function in MAX), we noticed a very high cogging or detent torque that had to be overcome. Typically, according to our motor drive manufacturer, about 1 A of current is sufficient for this autocommutation process. For the motor in our application, however, we needed to apply almost 5A to overcome this detent torque. I'm wondering if there's a way to increase the current sent to the motor during the step response function in MAX, and if so if perhaps this would allow the step response function to work with our motor? Please let me know.
While I think that the PID loop parameters may indeed be able to be improved, I feel that they are close enough that they aren't causing the problem that we're having with the motor stopping at the high velocities and accel/decels that we spoke about yesterday by phone. When I do moves in MAX, including cycling moves, the encoder readout on MAX's ID interactive page indicates that I'm reaching the target position, quickly and accurately. I have no doubt that using the step response will enable us to improve it somewhat, as the graph will allow a better window into the small times we're dealing with than just watching the encoder readout by eye, but I think that the PID loop parameters are definitely close to optimal.
I'm wondering if there's a way to use one of the oscilloscope functions in MAX to view the current being drawn or called by the motor. I'm thinking that when we input the high accels (approximating infinite accels) to allow us to use the average velocity and a rectangular V-t profile, rather than an equal trapezoidal V-t profile which uses less steep accels and a velocity of 1.5 times the average velocity, for each move segment, the motor is drawing current beyond its current limit to try to run at these high accels.
I understand your thoughts about trying to drive as quickly as possible to the average velocity for each segment of the move, but I think that's going to lead to problems with the high accel/decel values that this scheme requires. I also can't afford to lose this accel/decel time at the start and stop of the entire move (ie, the first and last (sixth) segments), even though it is small. I'm trying to create a system that has a minimum move cycle time of .4615 seconds. Each move cycle has a forward move profile that's intended to be broken into six intervals, as well as a backwards move profile that's also intended to be broken into six intervals. So even if I load accel/decel values such that I reach the average velocity target in 10 msec, since I have four accel/decel periods that aren't blended at the start and end of each move profile, I would lose a total of about 40 msec, resulting in about 10% error, which I can't have.
This is why I wanted to perform each of the six segmented moves at a uniform accel/decel, with initial and final velocity values. The initial velocity of the first segment would be zero, as would the final velocity of the final segment. With the user defined position/displacement at the end of each move segment, I can calculate the constant acceleration for each move segment, as well as the intial and final velocity for each move segment. This lowers my accel/decel values and the load on my system, and though it increases the velocity requirements on my system by 50%, these are still capable of being handled by my system. I spoke with someone yesterday that mentioned he's heard of people writing their own Labview VIs if standard ones don't exist. I'm wondering if this is a reality, and if we'd be able to create some custome VIs with NI's help to perform the move as I've described it above?
Please let me know your thoughts.
Thanks,
Joe