I'm designing controller for orientation. This means both wheels rotate in opposite direction, so the whole plattform rotates too.
For seek of studying dynamics and better controller design I make an attempt to reflect the system with a model in the form of differential equation. The outcome is:
This approach takes account of the wheel standing on ground what causing that it will be slower because of the overall moment of inertia. Thats why "J" in denumerator is is so "strange"
Solution (After integrating. W_Target:=W_Wheel)
Now making step response with Matlab+VREP. Target wheel angle velocity is w_Target = 3 s^-1, M_Motor=1Nm. Result:
All fine, the theoretical calculation (Solution above) will approximatly result in the same time as measured of t_Target = 0,198s
But if I change the torque in Motors to 2Nm for some magical reason the measured time is shorter as calculated. As if the moment of inertia changes,
Why is this happening? How the engine exactly works besides that a joint get a moment until it reaches target velocity?
Did I forgot something in the differential equation?
Sim Engine: ODE
dt = 1.0ms
Matlab is triggering the vrep sim steps
VREP Version 3.5
Using joint callback function for controlling the joints
wheel angle velocity is calculated with numeric derivation of position:
Code: Select all
rightVelocity = (actualPositionRight - lastPositionRight)/(actualTime - lastTime)