Motion Profiling for Decreasing Energy Consumption - Robotics Stack Exchange most recent 30 from robotics.stackexchange.com 2019-06-24T12:11:30Z https://robotics.stackexchange.com/feeds/question/15240 http://www.creativecommons.org/licenses/by-sa/3.0/rdf https://robotics.stackexchange.com/q/15240 0 Motion Profiling for Decreasing Energy Consumption Andrew Gazelka https://robotics.stackexchange.com/users/19559 2018-02-21T19:57:00Z 2018-07-22T19:47:09Z <p>I am attempting to minimize the energy consumption used by an electric-motor-powered car given the speed restrictions: $$\text{speed}: [v_{\text{min}},v_{\text{max}}]$$ Currently, we are utilizing a bang-bang controller where we tell the motor to run at full voltage until $v_\text{max}$ is reached. After this, the motor is cut. Once the speed approaches $v_\text{min}$ due to energy losses in the system, we will repeat this cycle. </p> <p>We are striving to achieve the <strong>least energy consumption per unit distance</strong>. Is it worth while to implement some motion profiling system, or would this just increase energy consumption?</p> https://robotics.stackexchange.com/questions/15240/-/15242#15242 0 Answer by hauptmech for Motion Profiling for Decreasing Energy Consumption hauptmech https://robotics.stackexchange.com/users/184 2018-02-21T22:26:22Z 2018-02-21T22:26:22Z <p>How much energy are you using now with this strategy? You can't minimize if you can't measure or estimate with equations.</p> <p>It appears that kinetic and potential energy both start and end at zero in your scenario. So all energy expenditure is from losses. If you make a list of your losses you will see by looking at the variables which ones are influenced by a motion profile and which are not.</p> <p>Air friction and wheel contact friction are only some of the losses and whether they are significant depends. You need to list the equations, assumptions, and estimates of physical parameters you are using.</p> <p>As a hint, battery internal losses, motor losses, gear losses and motor driver switching losses all are potentially significant depending on the size of your vehicle, the technology used, and the operating environment.</p> <p>This can be solved mathematically or experimentally. Experimental requires less math but takes a lot longer to do. (In truth, a mathematical approach would end with experimental validation but take less time because your experiments would start closer to the solution). I'll expand this answer if you add details on your own progress towards a solution. </p> https://robotics.stackexchange.com/questions/15240/-/15243#15243 1 Answer by SteveO for Motion Profiling for Decreasing Energy Consumption SteveO https://robotics.stackexchange.com/users/11125 2018-02-21T22:54:38Z 2018-02-21T22:54:38Z <p>To paraphrase your question, you are using "bang-bang" control to keep the velocity of your vehicle within a desired range, and want to know if there is a better way to minimize energy consumption per distance traveled. </p> <p>The answer is almost definitely "yes," with one exception: IF $v_{min}$ and $v_{max}$ values are very close together, and IF the system contains sufficient damping so that the velocity does not overshoot the target $v$, and IF the bang-bang controller is implemented efficiently, and IF the target $v$ is at the most efficient operating point for your vehicle, then no, there would likely not be a more efficient algorithm. But all of these conditions are probably not true. </p> <p>To implement a controller that minimizes energy consumption, you really need to know the efficiency of your vehicle for the universe of operating conditions the vehicle will be subjected to. I would map this out (experimentally or algorithmically, as @hauptmech describes), then determine the optimal operating points. Since your vehicle probably starts from rest, you will need to integrate the energy used for various acceleration profiles when speeding up to the desired operating point in order to reduce losses at the beginning of travel, then use the optimal acceleration profile to define the velocity setpoints for the controller during a journey. Repeat this for the deceleration period when ending a journey. Finally, the system stability (or its ability to remain at a target $v$ over time) will determine whether or not you need to implement a more advanced controller than bang-bang. I would start with a proportional-plus-derivative controller attempting to servo around a specific velocity target, rather than a velocity range as you have implemented. That way you can minimize the variance from the target $v$ without allowing it to vary by an arbitrary amount. </p>