### simEngine3D related

Hi simEngine3D Friends,

I’m summarizing a couple of things that might help you get your simulation engine going.

1) Please make sure you have consistent initial positions and velocities. To see what I mean, please look at slides 15 AND 16 of this lecture: http://sbel.wisc.edu/Courses/ME751/2016/Documents/lecture1019.pdf. Consistent initial conditions are very important

2) Once you have an acceleration and Lagrange multiplier at t_0, use these values for the initial guess at t_1. Once you get your position and velocity guesses at t_1 using the acceleration guess, evaluate your Jacobian in this guessed configuration.

3) Please keep in mind that the BDF approach for solving of the index 3 DAE of multibody dynamics is a brute force solution. As we discussed in class, it’s the F-150 approach. Please take a quick look at slides 20 and 21 of this lecture: http://sbel.wisc.edu/Courses/ME751/2016/Documents/lecture1017.pdf . The Ford F-150 approach is known to have spikes in the accelerations and Lagrange multipliers. This happens at the beginning of simulation and then any time you change the order of the BDF formula used (this happens in ADAMS, you don’t move back and forth between different BDF formulas in your simEngine3D, so this is not an issue)

4) Simplify your model to see if you get better luck. For instance, replace a revolute joint w/ a spherical joint. If things start working fine, you have some bug related to the DP-1 and/or DP-2 GCONs

5) If you converge but your solution is wrong, the bug is in the expression of the g vector (see slide 26 of http://sbel.wisc.edu/Courses/ME751/2016/Documents/lecture1017.pdf); i.e., in the function evaluation. If the solution doesn’t converge, then you definitely have a problem in the Jacobian

6) If you believe you have a problem in the Jacobian, please do the numerical differencing trick we discussed about today to identify which entries in the Jacobian are messed up. This is a bit misleading though, since you work with a quasi-Newton, so you won’t quite get the Jacobian you’re working with, but more of an approximation of the actual Jacobian (for the Newton-Raphson approach)

7) When you monitor for convergence and you based your stopping test on the magnitude of the correction in the accelerations and/or Lagrange multiplier, stop when these corrections are less than 1E-2 or 1E-3. Here’s the reason why: if you have a step size h=1E-4 and you hope to get the acceleration with an error less than 1E-3 it means that you are going to have errors in the positions of the order of 1E-11 (h^2*1E-3). In the velocity, the errors will be of the order 1E-7 (h*1E-3). Errors of the order of 1E-11 is close to the distance between two atoms (if you work in SI units). Keep this in mind; i.e., what’s fair to expect in terms of quality of solution

I hope this helps.

If you have other thoughts on this topic, please considering posting something here so that everybody benefits. This assignment was tough.

Dan

I’m summarizing a couple of things that might help you get your simulation engine going.

1) Please make sure you have consistent initial positions and velocities. To see what I mean, please look at slides 15 AND 16 of this lecture: http://sbel.wisc.edu/Courses/ME751/2016/Documents/lecture1019.pdf. Consistent initial conditions are very important

2) Once you have an acceleration and Lagrange multiplier at t_0, use these values for the initial guess at t_1. Once you get your position and velocity guesses at t_1 using the acceleration guess, evaluate your Jacobian in this guessed configuration.

3) Please keep in mind that the BDF approach for solving of the index 3 DAE of multibody dynamics is a brute force solution. As we discussed in class, it’s the F-150 approach. Please take a quick look at slides 20 and 21 of this lecture: http://sbel.wisc.edu/Courses/ME751/2016/Documents/lecture1017.pdf . The Ford F-150 approach is known to have spikes in the accelerations and Lagrange multipliers. This happens at the beginning of simulation and then any time you change the order of the BDF formula used (this happens in ADAMS, you don’t move back and forth between different BDF formulas in your simEngine3D, so this is not an issue)

4) Simplify your model to see if you get better luck. For instance, replace a revolute joint w/ a spherical joint. If things start working fine, you have some bug related to the DP-1 and/or DP-2 GCONs

5) If you converge but your solution is wrong, the bug is in the expression of the g vector (see slide 26 of http://sbel.wisc.edu/Courses/ME751/2016/Documents/lecture1017.pdf); i.e., in the function evaluation. If the solution doesn’t converge, then you definitely have a problem in the Jacobian

6) If you believe you have a problem in the Jacobian, please do the numerical differencing trick we discussed about today to identify which entries in the Jacobian are messed up. This is a bit misleading though, since you work with a quasi-Newton, so you won’t quite get the Jacobian you’re working with, but more of an approximation of the actual Jacobian (for the Newton-Raphson approach)

7) When you monitor for convergence and you based your stopping test on the magnitude of the correction in the accelerations and/or Lagrange multiplier, stop when these corrections are less than 1E-2 or 1E-3. Here’s the reason why: if you have a step size h=1E-4 and you hope to get the acceleration with an error less than 1E-3 it means that you are going to have errors in the positions of the order of 1E-11 (h^2*1E-3). In the velocity, the errors will be of the order 1E-7 (h*1E-3). Errors of the order of 1E-11 is close to the distance between two atoms (if you work in SI units). Keep this in mind; i.e., what’s fair to expect in terms of quality of solution

I hope this helps.

If you have other thoughts on this topic, please considering posting something here so that everybody benefits. This assignment was tough.

Dan