RSW

MrPLC Member
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

0 Neutral

About RSW

  • Rank
    Hi, I am New!

Profile Information

  • Country Canada
  1. Using a regular automobile as an example, if you adjust the steering so that the front wheels point away from the center of the road, then error will accumulate, but only if the vehicle is moving. If it is sitting stationary, then no error accumulates regardless of how much time elapses. If the vehicle is moving, then the rate at which the error accumulates is proportional to the vehicle's speed, but the total accumulated error is really a function only of the distance travelled. After the vehicle has moved 20 feet there is 'E' amount of error accumulated; it makes no difference how long it took for the vehicle to move that distance, which is why I'm arguing that time does not directly enter into it. Of course there's a direct relationship between time, distance and speed, but the fundamental variable in this case is really distance travelled rather than time, unlike most control problems. I suppose that if I have no other choice than to use a time based PID then it's straightforward to linearly adjust all of the gains according to speed. If the speed goes to zero, then so do the gains. As for searching for Arduino based steering algorithms, that is one of the first things I did when I began this project. There are all kinds of projects for line following robots, and I've reviewed as many as I could find. All of the ones I've found are extremely simple and are essentially the same as our existing control. I'm convinced that they are all oscillatory, but probably correct themselves quickly enough that it isn't noticeable for that application. We have actually considered building a small line following robot to test our control algorithm. It would be a lot safer than testing with heavy equipment, and a lot more fun too.
  2. Hi Michael, Thanks for your comments and the AOI. I'll check it out. Adjusting the gain settings based on speed is my alternative plan. However, since nothing in the steering process directly depends on time, I would rather leave time out of the control if at all possible. There is no need for integral control, and if derivative control could be eliminated then there would be no problem, because neither time nor distance travelled would enter into the controls. However, the steering process is inherently integrating. The existing controller is proportional only and is unstable, operating in a limit cycle. I believe that there will have to be significant derivative control in addition to proportional. It's definitely a different kind of project than what I'm used to.
  3. I'm working on a steering control system for a piece of heavy equipment, and would like to use a PIDE enhanced PID controller function block in RSlogix 5000. The equipment can move at varying speed, and the dynamics of the system are a function of distance travelled rather than time elapsed. So, for the integral part of the control I want: ki ∫e dx      rather than     ki ∫e dt Similarly, for the derivative part, I want: kd de/dx      rather than       kd de/dt. where x is the distance travelled. The reason for this is that the optimum gain settings will be the same regardless of speed at which the equipment travels. I can place the PIDE inside a task that is triggered on the basis of distance travelled, but after reading the manual, it's not clear to me whether that will do what I want because it appears to me that regardless of which timing mode I choose (periodic, oversampled, or real time) the function block is always going to calculate the true time between executions and then correct back to a time based control. Is there any setting that will ignore the true elapsed time, and just assume a fixed value?