Presentation is loading. Please wait.

CS 282.  Any question about… ◦ SVN  Permissions?  General Usage? ◦ Doxygen  Remember that Project 1 will require it  However, Assignment 2 is good.

Presentation on theme: "CS 282.  Any question about… ◦ SVN  Permissions?  General Usage? ◦ Doxygen  Remember that Project 1 will require it  However, Assignment 2 is good."— Presentation transcript:

CS 282

 Any question about… ◦ SVN  Permissions?  General Usage? ◦ Doxygen  Remember that Project 1 will require it  However, Assignment 2 is good practice place ◦ Assignment 2  Is posted on the class website

 Go over methods of integration ◦ Euler’s method ◦ Analytical ◦ Approximation  Examine the boat problem  Program Runge-Kutta ◦ Compare against analytical and euler methods ◦ Plot position vs. time (due next week’s lab)

 We use integration to move our system forward in time given a force/control  If you remember the falling ball lab, we used an Euler method (kind of like cheating) to integrate ◦ velocity = old_velocity + delta_time * acceleration ◦ position = old_position + delta_time * velocity  There exists better methods, however, for integration.

 Let’s say we are trying to solve the equation x – 5 = 0  Analytical methods solve for the exact answer ◦ In this case it’s easy to come up the analytical answer x = 5  Let’s assume we weren’t so smart. Then we could develop an algorithm to numerically solve this problem on a computer ◦ The algorithm could have the computer “guess” the answer by testing different values of x. We could specify our “error tolerance” to speed this process up.

Forces on the boat: B = BuoyancyT = Thrust W = WeightR = Resistance If B = W, we can ignore the movement in y

 new_velocity = old_velocity + acceleration * dt  new_position = old_position + new_velocity * dt  Pros: ◦ Easy to compute ◦ Easy to understand ◦ This means it’s also easy to program  Cons: ◦ Highly erroneous ◦ Not stable (i.e. tends to not converge to the true solution)

 Open up this week’s framework  Examine rigid_body.cpp ◦ Notice that it is conveniently modeled like a boat ◦ Take a look at the function “euler_update_state”  Make sure you understand each line in this function  This function is the Euler method of updating the boat’s state  Compile the code  Run the executable  Now let’s examine the analytical solution

 Here we see the equations for the velocity, distance traveled, and acceleration of the boat  Pro ◦ The one, true solution  Cons: ◦ Often hard to derive ◦ For complex systems, infeasible to implement

 Why not take advantage of the fact that we’re computer scientists?  Pros ◦ More realistic compared to Euler’s method ◦ Utilizes computational power ◦ We do not have to analytically solve (which for some systems is infeasible)  Con ◦ Not as accurate since its an approximation ◦ Power depends on skill of programmer and the computational capacity of the computer

 The numerical method we will be using today is called “Runge-Kutta”  Essentially, Runge-Kutta uses Euler’s Method and splits up the integration into four parts. It then takes the average of these parts, and computes the new integration.  The reason this works better is because after each split, it uses a newly computed control to re-integrate.

 First, we compute k 1 using Euler’s method of integration.  After this, we integrate while adding half of k 1 to our velocity (or state). This allows us to solve for k 2.  Next we integrate while adding half of k 2, and solve for k 3.  Finally, we integrate by completely adding k 3 and solve for k 4.  After averaging together all k x, we now have a new velocity (or state).

xixi x i + h/2 x i + h k1k1 k2k2 k3k3 k4k4 Credit to: Dr. E.W. Sandt Civil Engineering Department Texas A&M University

Consider Exact Solution The initial condition is: The step size is: Credit to: Dr. E.W. Sandt Civil Engineering Department Texas A&M University

The example of a single step: Credit to: Dr. E.W. Sandt Civil Engineering Department Texas A&M University

 The goal for today is to implement Runge- Kutta for simulating the movement of a boat. ◦ And if you finish early, to start working on the graph due next week.  At the beginning of next week’s lab, you must turn in a graph comparing the position of the boat over time using ◦ the Euler Method (already implemented) ◦ the Analytical Method (plug into the equations) ◦ Runge-Kutta

 Let’s do the first step of Runge-Kutta ◦ Follow the Euler method and compute k 1 ◦ This will involve you computing the Force and Acceleration  This gives us k 1 = delta_time * acceleration  Now that we have k 1, we can use this to compute the halves (k 2 and k 3 )

 Step two starts off nearly the same ◦ However, when computing force, be sure to add half of k1 to your velocity  F = thrust - (drag * (velocity + k 1 /2) ) ◦ Solve for acceleration ◦ Compute k 2 like before  Step three is exactly the same as step two, except use k 2 now.

 Step four (surprise!) is exactly the same ◦ Except, since we are integrating over the entire period, we do not halve our duration ◦ Solve for k 4 now  We need to average together our k x ’s ◦ k 2 and k 3 account for double because we integrated only half of them. ◦ So, we have 6 parts in total to average.  Finally, add the average to your velocity, and compute position like normal.

 Go to lab5.cpp, and look in the DrawGLScene ◦ Comment out the euler method, and add the appropriate call to the runge-kutta method  Examine Runge-Kutta running  It will be hard to visually notice a difference. Instead, run the Euler method for a short period, and compare the numbers.

 For next week, you will be turning in a graph comparing the three methods. ◦ Euler Method (already implemented), Analytical Method (plug into the equations), Runge-Kutta ◦ Output the position at each time step to a file ◦ Copy those numbers into excel (or the software of your choice) and plot a graph over time comparing the positions for each method. ◦ For the analytical method, you can  a) Program the equations and run it  or b) Plug in time, solve them, and put the numbers into the graph

Download ppt "CS 282.  Any question about… ◦ SVN  Permissions?  General Usage? ◦ Doxygen  Remember that Project 1 will require it  However, Assignment 2 is good."

Similar presentations

Ads by Google