Motion in Minutes: Single and multi-axis speed and position control
This webinar will expose you to the latest in high-performance control technology for elevators, textiles, CNC, robotics, and servo drive applications. Participants will discover how this technology can simplify design, enable rapid system tuning, and improve the performance of single and multi-axis speed and position applications.
Resources
Hi, everybody. Thanks for joining.
My name is Sharon Fay, and I'm with LineStream Technologies. LineStream develops high performance, easy to use control solutions. I'll be your host for today's webinar-- Motion in Minutes-- Single and Multi-axis Speed and Position control. This session will expose you to the latest high performance of control technology for textiles, CNC, robotics, and servo drive applications.
You'll discover how this technology can simplify design, enable rapid system tuning, and improve the performance of the single- and multi-axis speed and position applications.
In today's session, we're going to introduce the capabilities of InstaSPIN-MOTION, and then show you this technology in action, controlling a CNC router table. We will then show how we controlled this application step by step. You'll see that in less than a week's time, you can realize extremely high performance systems.
We've muted all of the phone lines. Please use the WebEx chat feature to post question to the LineStream team. You can do this at any point in time throughout the presentation, but we will answer your questions at the end of this webinar.
Textile manufacturing, CNCs, robotics, and servo drive applications require high performance speed and position control. But the rapid pace of industry today also demands faster time to market. Where you turn to find high performance control solutions that are enough to implement, and a solution that allows you to bring your applications to market in less than a year?
The answer is InstaSPIN-MOTION. It's called InstaSPIN because you get your motor spinning and under control in a matter of minutes. InstaSPIN-MOTION automatically identifies motor parameters, automatically tunes the current regulators, automatically identifies system inertia, and both speed and position can be tuned with a single parameter that is effective across the entire operating range.
InstaSPIN-MOTION includes a software encoder, so you can so you can eliminate physical sensors and encoders when doing speed control. InstaSPIN-MOTION can can also run with a physical encoder for position control applications.
This feature set is available on the Texas Instruments Piccolo chip. This chip can drive two simultaneous motors, which is a really cost effective approach for multi-axis speed and position control applications.
InstaSPIN-MOTION has four key components. "Identify" measures the system inertia. Inertia is a measure of the system's resistance to change in velocity. The greater the motor inertia, the greater the torque that's needed to accelerate for decelerate the motor. The inertia estimator automatically measures system inertia by spinning the motor and measuring feedback. And we're going to see that in just a few minutes.
The second component is "control". The controller estimates and compensates for disturbance in real time. It is not a PID controller. The controller in InstaSPIN-MOTION automatically corrects for undesired behavior caused by things like resonant mode, nonlinear friction, changing loads, and environmental changes.
The InstaSPIN-MOTION controller presents better disturbance rejection and trajectory tracking performance then PI controller, and it can tolerate the wide range of inertia change. The controller has a single gain, called bandwidth, which is used to both speed and position.
Once you tune the controller, it works over the entire variable speed and load range of an application. This reduces complexity in system tuning time. Multi-variable PID-based systems often require a dozen or more position velocity coefficient sets to handle all possible dynamic conditions of the system.
The next two components help with motion design. "Move" provides an easy way to smoothly transition from one speed or position to another. As opposed to predefined lookup tables, this function runs on the processor, and generates curves in real time. It allows you to create smooth, configurable trajectories between two points.
It generates a profile based on user-entered system limitations for acceleration and jerk, and then these constraints applied to the curve type that is selected by the user. So you can select either trapezoidal, S-curve, or the ST-curve which features continuous jerk.
The final component is "plan". Plan provides easy design and execution of complex motion sequences. It allows you to quickly build various states of motion and tie them together with state-based logic. The figure here displays the motion sequence for a washing machine. This complex motion sequence was easily designed using plan.
Let's look at an example. LineStream applied InstaSPIN-MOTION to the x and y-axes of this CNC router table. In less than 20 hours, we set up a table, connected two server motors, and were drawing to squares, triangles, and circles.
Here is the completed project. Now, because of the WebEx transfer rate, this video may appear a bit choppy on your screen. We're going to send out the link to this video after the webinars, so that you can play on your own.
In the next part of this webinar, we're going to discuss each step of this process that we used to get the router table up and running. Ultimately, if you're working on a mult-axis application, you'll need to design your own board. But you may want to take a preliminary step using two evaluation kits as a stepping stone.
This is the approach that was taken by LineStream. We used two DRV8301-69M-KITs, which are the 60 volt, 60 amp evaluation kits. We used one kit for each axis. We also used two low voltage servo motors with encoders-- again, one servo motor for each axis.
We implemented two position plan components. One plan was used to communicate motion sequences for each axis. The motion sequence plans communicated via GPIO, which introduced some amount of delay and some amount of noise in the application. When you design your own board, you can control two axes from a single Piccolo chip, which is really quite a cost savings.
You'll still run two plan components, but they'll communicate through variables rather than over GPIO. So this will present or provide you with a more precise start.
When we tell customers that they can control two axes with a single chip, the next question is usually about CPU utilization and bandwidth. Ultimately, you're going to need to do the calculation for your own system, so we'll walk through it together here on the webinar.
CPU utilization depends on the ISR rate and the frequency at which the position controller is called. Let's assume that our ISR is running at 15 kilohertz. The position control loop is running at one kilohertz. We have a maximum of one position control call per ISR, and there are two FOC calls for ISR.
There are five functions called as part of the FOC, and this table shows the average CPU cycles associated with each function. If we add these up, the total is 1,514 cycles.
Position control is called every millisecond. There are three functions that are called, and the sum of these functions 2,870 cycles. The maximum number of CPU cycles occurs when the position control is called. The CPU is executing the FOC call for each axis being controlled, as well as the position control function. So if we solve for the equation that you see here, we find that the maximum number of cycles in 5,898.
For all other ISRs, the processor simply executes the FOC for each axis that's being controlled. When the processor's not calling the position controller, it will consume 3,028 cycles.
Now we need to figure out the number of CPU cycles that occur within one millisecond. Remember that the ISR rate is 15 kilohertz. The position control functions must be called twice, once for each axis. Only the FOC functions will be executed for the remaining 13 cycles. The average CPU utilization over 1 millisecond is 51,160 cycles. So if we convert to a percentage, in this example we see that to CPU is about 57% utilized. You'd have 43% remaining for your own code. I know this is a lot to go through in a webinar, so you can look up the calculations in the user guide. See section 10.
After connecting the evaluation kit to the motors in the CNC router table, we have to identify the inertia of the system. Inertia includes anything that's rigidly coupled to the motor shaft. It includes anything that moves directly with the motor. For the CNC router table, the x-axis has a different and independent inertia than the y-axis.
To identify the inertia of the CNC router table, we set each stage so that it had the entire range of positive motion. The inertia ID always rotates the motor in the positive direction. We then modified the InstaSPIN-MOTION motorware lab to run with the sensor. By the way, we're going to include this code in the next version of motorware, so be on the lookout.
Let's watch a quick video to show the inertia identification process for the y-axis. Now, watch closely, because this happens very, very quickly. So as you can see, it with very quick. And in just that quick, quick moment, the y-axis inertia was identified.
Let's watch that again, just in case you missed it the first time. Here we see the arm moving just a little bit. And after that, the inertia is identified. The inertia value is an input to the controller. Now the controller knows how much torque is required to get the application moving.
Sometimes we run into situations where the system inertia changes over time. This is the case with many applications in the industrial space, such as robotic arms and industrial winders.
This diagram compares the performance of the controller with a range of incorrect inertia settings. This was tested by applying and torque disturbance to a motor system. The inertia value provided the controller was set to different values to highlight the range of inertia error that can be tolerated by the controller.
This graph shows that the controller can tolerate an inertia mismatch up 16 times. The best performance is realized when the inertia value is a match with the application, but if the inertia of the system changes, the controller will remain stable.
Now it's time to tune the controller. Speed and position are tuned at the same time, using a single gain called bandwidth. Each axis is tuned independently. The tuning process is pretty simple and straightforward. With adjust the bandwidth. We inject a disturbance, and then we see how well the axis holds its position.
The InstaSPIN-MOTION controller is not a PI controller. InstaSPIN-MOTION's controller actively estimates system disturbances and compensates for them in real time. As a result, this controller typically performs better than PI control across the entire operating range of the application, with just a single gain.
In the motorware labs, a quadrature encoder is used to generate the electrical angle. But any sensor that provides the electrical angle to the controller can be used for position control feedback. So we just wanted to point that out to you. In our situation with the CNC router table, we did use a quadrature encoder that was connected to the motor.
So here's how we tuned the bandwidth for the x-axis. We set the initial bandwidth to 10 radians per second, and then manually injected the disturbance. Notice that the arm moves pretty easily at this setting. As we increase the bandwidth, it becomes more difficult to move the axis. At 40 radians per second, the router table's x-axis is holding position really, really well.
Once the x and y controllers are tuned, we've got to find a way to transition from one speed or position to the next. InstaSPIN-MOTION's move component is a motion engine. It allows you to enter the acceleration and jerk, and then it automatically generates the best trajectory to satisfy your user-entered constraints.
These constraints are applied to the curve type that you select. You can select either trapezoidal, S-curve, or the ST-curve featuring continuous jerk.
For the router table, we wanted to optimize acceleration and jerk. So how do we arrive at the optimal value? Well, we focused on acceleration first. So we selected the trapezoidal curve, because it doesn't take jerk into consideration. We then commanded each axis to move back and forth, while slowly increasing the acceleration.
We knew that we had reached the optimal acceleration when the motor failed to reach the commanded value. Once we had the optimal acceleration, we then optimized the jerk. For this, we switched from a trapezoidal curve to the ST-curve which features continuous jerk. We adjusted the jerk so that the router exhibited smooth starts and stops with a very high degree of reliability.
Another interesting thing about the ST-curve trajectory is that it consumes less power, which is shown in the graph here. Power consumption increases as the system jerk increases.
Once we had our controller tuned, and we had optimized acceleration and jerk, we then started creating shapes. The first shape that we drew was a square, because it's simplest. Only axis moves at a time. In this situation, we established two position plans-- one for the x-axis, and one for the y-axis.
The x-axis was the master. So x could signal to y when to start the move, and y told x when the move was complete.
The next shape that we drew was the triangle. The triangular motion was much more difficult, because the x and the y axis movements have to be coordinated. x and y motion have to be completed at the same time. And if we look at the velocity calculation, we recall that velocity equals the distance of our position steps divided by time.
So since we know that the x and y axes need to be completed at the same time, and we also know the distance that we need to travel from the base of the triangle to the top of the triangle, we can calculate the velocity.
The circular motion profile is absolutely the most difficult. We cheated a little bit on this one. The actual shape is a 32-sided polygon. This approximates a circle, but it's less computationally intensive. We used MatLab to calculate the x and y positions. And from there, we were able to calculate the time for the y-axis.
We've seen that it's really simple to achieve multi-axis speed and position control. But we also have to be concerned with performance. There is an increasing need for accuracy, repeatability, and consistent quality in the applications that we're talking about here. PI control is even more challenging for these applications, because they operating environment that are constantly changing, and they can be quite unpredictable.
In industry, varying temperature ranges, material characteristics, and physical properties of the surrounding equipment must all be understood and accounted for in order for PI to be effective in controlling motion.
InstaSPIN-MOTION overcomes these challenges. These graphs compare the performance of InstaSPIN-MOTION to a PI controller. A dynamometer was used to inject torque disturbance. The maximum error is smaller, and the settling time is much shorter for InstaSPIN-MOTION.
This graph shows a profile tracking comparison for one motor revolution. Again, we see that InstaSPIN-MOTION has less overshoot, lower error, and better profile tracking than a PI.
So in summary, motor control can be a difficult thing to master for any designer. InstaSPIN-MOTION simplifies and speeds up both motor control development, and motion control. InstaSPIN-MOTION optimizes motor efficiency, performance, and reliability.
InstaSPIN-MOTION is available now, and the evaluation tools that you saw in this webinar are available now. But be on the lookout-- more platforms and tools are coming in 2014.
At this point in time, we'd like to entertain any questions that you have. If you have questions, please enter those questions in the chat window. Adam Reynolds, my colleague and systems application engineer, is going to read off your questions and work on addressing them. Adam?
Thanks, Sharon.
Just to kind of further highlight, working at the CNC demo really showed off the power and flexibility of InstaSPIN-MOTION. We were able to combine all the different elements we've talked about today, and put them into creating-- I'd say we were about 75% of the way towards a functional application in less than 20 hours. It really showcases how easy it is to work with, and how quickly you can get your system up and running.
So again-- like she mentioned-- if you have questions, punch them into the chat. Send them over to LineStream technologies host, and I'd be happy to answer them. Because I'm sure there's a lot of people thinking similar thoughts.
Absolutely. And you know, just to kind of start things off, we do get some frequent questions. One of the common questions we get is about identifying inertia. So we mentioned that the InstaSPIN-MOTION will automatically measure your motor parameters-- or identify your motor parameters. When you do this particular step, the motor is not connected to any load. It's disconnected from any inertia.
Now, when you do the inertia identification, you're going to want to make sure that your motor is connected to anything that constitutes the inertia. And once again, inertia is anything that spins with the motor during operation, right?
And it's important for us to do this, so that the controller knows the torque that's needed in order to overcome that resistance to rotation.
That's right. So a great example is that of the washing machine. So if you think about a washing machine, there's a couple different components that are connected together. There's a drum that the clothes in the water get placed into. And so what we would consider inertia in that situation would be the drum itself. But the clothes and the water would not be inertia.
Because if you rapidly change directions on the drum of the washing machine, the drum rapidly changes directions with you, but the clothes and the water have that delay. They don't immediately change direction.
So Adam, what happens when that washer spins up, and those clothes start to adhere to the drum of the washing machine?
Great question, Sharon. In that situation, the clothes that are adhering to the side of the drummer going to act like inertia. But due to our controllers' ability to handle an 8x change in inertia, the effect is minimized. The controller sees that change in inertia as a disturbance, and actively compensates for the disturbance-- which is what makes it an active disturbance rejection controller. It's fundamentally different from a PI regulator.
Oh, that's interesting. So that's another really good example of the way that InstaSPIN-MOTION can compensate for changing inertia values. Let's see-- do we have any questions from the audience at this point, Adam?
I still haven't seen any come across. So-- like I said, don't be shy. Oh, here's a question. What exactly did we use MatLab for in the point calculation? Does LineStream also provide an interpolator for CNC applications? Great question.
What we did for the MatLab to be able to calculate the points around a circle, was we generated a polar equation to break that into 32 even segments, and then translated those coordinates back into the rectangular plane, since we had an x- and a y-axis.
So we just used the MatLab just to make the calculations easier for ourselves. We could have used Excel. We could have used a pen and paper. But MatLab was the simplest.
We do not provide an interpolator for CNC applications. Similarly, we do not provide something to translate g-code into x and y position movements. But that's something that could be pretty straightforward. It should be fairly simple for you to add it on your own. And it might be something we could consider as part of a future lab, or a future example. But at this point it's not it's not on our roadmap.
And that's really a great question, because as you begin to develop your own applications-- complex industrial applications, multi-axis position applications-- you may run up against questions like this. We would encourage you to post your questions to the InstaSPIN E2E forum.
This is a great forum. Your questions will be posted to the community. Both LineStream and TI engineers monitor that forum and actively answer any questions you may have. So if you start down the path using InstaSPIN-MOTION, and you do have any questions, please post into that forum.
Great. And another question came in about-- is the presentation going to be available afterwards? And yes, we're recording the webinar. And we'll make it available afterwards. We'll send out a link to everyone who registered.
Yeah, absolutely. We did have some registration issues due to the time change and our WebEx system. So we realize that some of you may have joined late, and may have gotten the updated information late. So we will make sure that we send the recorded presentation link out to you.
Texas Instruments is also going to post this link on their site, so you can look for it in a couple of different places. You know, just to give people-- again, if you have any questions now, feel free to post them here in the webinar using the WebEx chat function.
But another common question that we get is-- we said a couple of times in this presentation that the InstaSPIN-MOTION controller is not a PI controller. Adam, can you explain a little more about what exactly the InstaSPIN-MOTION controller is, and the technology that it's based upon?
Sure. The technology-- we keep talking about what we call an active disturbance rejection control technology. That was developed at Cleveland State University, among other institutions. And we are a technological spin out from Cleveland State University. So we took that technology that's developed there and commercialized it, and productized it, and put it into an easy-to-use package.
When the technology was first developed, it had 15 tuning parameters-- which is obviously much more of a challenge than a PI regulator. But due to some of the work from our technical founder, we were able to parameterize that down to a single tuning parameter, and really provide the ease of use that's required for a lot of these high end applications.
And so it's a fundamentally different control technology that is based around a combined disturbance observer with a controller. And so that allows us to respond more accurately more quickly to disturbances, or any unideal behavior in the system.
Yeah, that's great Adam. And I think the bottom line for all of you out there is that the controller is really designed to be very easy to use, emphasizing that single tuning parameter for both speed and position control. And it's extremely robust in terms of its performance. So ease of use and performance are really the value that you'll recognize by using the InstaSPIN-MOTION controller.
We did get another question that's a really good one. It's how do you identify the bandwidth in bigger machines, where it's not as easy to introduce disturbance as our example?
Great question.
And the way-- we recommend using step response tuning, or any tuning method that you typically will use for a PI regulator, or use in your applications today, you can use it to try and tune InstaSPIN-MOTION. Since we have a single tuning parameter called bandwidth, it just makes it easier to arrive at the ideal gain, because you're only using one point of adjustment instead of multiple points of adjustment.
Yeah, that's right, Adam. Adam, I've got another question here. So Carl asks, which applications did you anticipate solving when designing or implementing InstaSPIN in conjunction with Texas Instruments? Boy, that's a really great question.
And we actually worked with Texas Instruments to first introduce our velocity control, and then introduce position control. So the position control feature was just really announced in November of 2013.
If we look at the applications that have been put into design and production and are seeing great value, they include things like escalators, treadmills, belt moving machines. And when we think about this-- I'll use the treadmill as an example, right? We think about a treadmill being a pretty simple thing-- or at least I do.
But in reality, it's pretty complex, because you've got a variety of different speeds. And if you think about the people that use treadmills, it could be anything from, you know, a little 90 pound Lucy Liu all the way up to a Cleveland Browns linebacker at several hundred pounds.
So there's a lot of variation in speed. There's a lot of variation in load. And oftentimes, what we've seen with customers in the field is that you may be able to high speed, and tune for high speed, so that it performs very well. But people run into problems with tuning for low speeds, right? And it's hard to find those ideal tuning parameters.
So we found that InstaSPIN-MOTION has been used extremely successfully in those applications. When we look position control, we really start to bring value to multi-axis speed and position control applications, like those that are found in textiles, CNC, robotics, and really these industrial applications.
Another great application area is camera systems, because due to our advanced profile generation capabilities, we can generate a really smooth position transitions, which is what you want in some kind of camera system. So if you're panning and tilting your camera, you don't want it to be very jerky or very steppy. And that's what our profiler allows you to do, is generate these very smooth trajectories.
Yeah, and for those of you that joined late, you may not have seen that along with that reduction in jerk-- those smooth trajectories-- comes a reduction in power consumption. So there's been a blog-- a recent blog on EBN where we did some testing, and we compared the power consumption at various jerk points in the system.
So as we increased the jerk of the system, we found that power consumption increased. So that's another side benefit of using the controller. So we have another question here, Adam. Do we provide robust analysis tools and flash visualization regarding the controller, in order to assure performance?
Right now we do not. And we're actively working on how we can provide the controller in a simulatable fashion-- or some other fashion-- to be able to do those kind of analysis, and do that kind of testing with your MatLab models or your VisSim model.
So we're still working on how we can deploy that. So we're aware of the need and the market need in the industry. But we're not ready to do that yet.
That's right. And just to elaborate, I know this isn't directly related-- maybe tangentially related. When we noted that there are additional tools to come in 2014, one of those tools will be a position control GUI.
So right now, you can use a graphical user interface with the InstaSPIN-MOTION to get you up and running very quickly on the evaluation kit. And this graphical user interface will help get you up and running pretty quickly on about 80% of motors.
Some motors, you'll need to actually go into the motorware code, and run the labs that are provided for you. But we're going to be working on a similar graphical user interface for position control. And you can expect to see that around second quarter of 2014.
So Adam, do we have any additional questions out there?
I'm sure they're out there, and I think I haven't seen them come across. But if you think of additional questions later on today, tomorrow, next week, post on the E2E forum. I'm on there a lot. I know we have some great TI FAEs who are on there a lot, as well, and can answer-- and are knowledgeable about InstaSPIN-MOTION, and can answer your questions. So if you can think of a question later, please post it on there in the--
This video is part of a series
-
C2000™ MCUs - motor control
video-playlist (48 videos)