Buffer
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model demonstrates the behavior of a buffered solution. A buffer is a solution that resists change in pH when either acid or base are added into it, within limits. It is best viewed as the third model in the ACID-BASE package.
Chemists and biologists use the properties of acids and bases to create buffer solutions. It is often desirable to keep the acidity, or hydronium ion concentration of a solution, as nearly constant as possible. Examples of such situation would be: measuring the velocity of a reaction, selectively dissolving certain salts, or studying the growth of bacteria or plants. In our body, the blood has a buffering capacity, keeping the pH at 7.35. If the pH goes above 7.7 (alkalosis) or below 7.0 (acidosis), the results are fatal.
HOW IT WORKS
To accomplish this feat, buffers depend on the presence of both a weak acid and its conjugate base. With both of these species in the solution, additional acids and bases are neutralized according to the following chemical equations. H-A denotes the weak acid and A- denotes its conjugate base.
H-A + OH- —> H2O + A- A- + H3O+ —> H2O + H-A
The pH of a buffer is determined in the same manner that the pH of a weak acid is determined - by counting the number of hydronium and hydroxide ions and calculating their ratio with total number of ions and molecules in the solution.
When there are more hydroniums, pH = - log ( hydronium concentration )
When there are more hydroxides, pH = 14 - pOH = 14 - log ( hydroxide concentration )
Buffers are effective only within their unique buffering range. This range is determined by the concentrations of the weak acid and its conjugate base. Outside of its buffering range, the solution behaves as a strong acid or base.
HOW TO USE IT
Decide how many acid molecules should be present at the start of the simulation with the STARTING-ACID slider. Set the number of conjugate base molecules with the STARTING-CONJ-BASE slider.
Press SETUP. The turtles will distribute randomly across the world.
YELLOW turtles are acid molecules (HA)
ORANGE turtles are conjugate base molecules (A-)
GREEN turtles represent hydronium ions (H30+)
RED turtles are hydroxide molecules (OH-)
BLUE turtles represent water molecules (H20)
In this model we are assuming that 2% of the original acid molecules are dissociated into 2 conjugate base molecules and 2 hydronium molecules. This is true only before the molecules start interacting between themselves.
Press GO. The molecules will move randomly across the world.
When two turtles occupy the same patch, the following rules apply:
1. When a weak acid and a water molecule collide, the acid molecule dissociates into its conjugate base and the water molecule transforms to a hydronium ion.
2. When hydroxide and hydronium ions collide, they always form two water molecules.
3. When a weak acid and hydroxide collide, they have a high probability of transforming into a conjugate base and a water molecule.
4. When hydronium and conjugate base collide, they have a high probability of transforming into a weak acid molecule and a water molecule.
To observe the effect of adding base or acid to the solution, set the number of acid molecules you want to add with the ADDED-ACID slider and press ADD-ACID (H30+)
Do the same for adding base with the ADDED-BASE slider and ADD-BASE button.
A number of plots and monitors can be observed:
The pH of the solution is plotted over time on the PH plot, and at each time tick on the PH monitor. pH is calculated using the ratio of the number of hydronium and hydroxide molecules to the total number of turtles. This is different from the chemistry calculation that relates this number to solution volume.
You can see the number of hydroniums and hydroxides in the solution in their monitors (# HYDRONIUMS, # HYDROXIDES).
You may follow the number of molecules of each species over time in the MOLECULE COUNTS plot.
You may choose to see the initial water molecules or not with the SEE-STARTING-WATER? switch.
THINGS TO NOTICE
After you press SETUP, the buffer solution is not yet in equilibrium. After the model starts running, the molecules react until the system is equilibrated, and the pH doesn't change anymore.
Observe the pH curve. How are the numbers of hydronium and hydroxide molecules in the monitors below related to the pH?
Examine the shape of the pH curve. Notice how the pH changes with respect to the amount of base or acid added. Does the buffer resist change in pH?
Observe the number of molecules in the plot. When acid or base is added to the solution, they quickly disappear as they react. Can you determine which molecules react with each other? What is the relationship between the two plots: pH and number of molecules?
What happens when large amounts of base or acid are added to the system? Is it the same as adding small amounts? Does the pH curve reflect this?
THINGS TO TRY
Add a large amount of acid or base to the solution and observe the effect. Why does the pH change dramatically outside of the buffering range? Would it be useful to add large amounts of base all at once to a solution in the laboratory if you were trying to adjust the pH?
Can you relate the idea of a "buffering range" to the molecules and their behavior in the model?
Try running the model with different amounts of acid or conjugate base. The buffering range of the solution should shift. How is the shift related to the changes you made? Does changing the proportion between the number of weak acid and conjugate base molecules have an effect on the buffering capacity?
How does changing the amount of buffer molecules influence the buffering capacity?
Try pressing SETUP a number of times with the same initial settings, and observe the number of hydroniums. Is the number always the same? Press GO and watch the change in pH. Why is the same equilibrium reached in each case?
EXTENDING THE MODEL
Increase the amount of hydronium originally generated upon SETUP by increasing the chance of dissociation in the procedures. What effect does this have on the initial pH?
Add a button and procedure to add more conjugate base to the reaction. How could this help a chemist who is trying to keep the pH of a solution at a constant value?
Add a procedure that allows you to plot a titration curve for a buffer. Is it similar to any other titration curves you have seen? What additional information can you learn from the titration curve?
Additional interactions could take place in a solution in addition to those stated in the rules. These were omitted because their probability of occurring is low. Try including one of these rules to the procedure. For example, two water molecules could transform into a hydronium and hydroxide ions. Does it make a change?
CREDITS AND REFERENCES
Thanks to Mike Stieff for his work on this model.
HOW TO CITE
If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:
- Stieff, M. and Wilensky, U. (2001). NetLogo Buffer model. http://ccl.northwestern.edu/netlogo/models/Buffer. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
COPYRIGHT AND LICENSE
Copyright 2001 Uri Wilensky.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.
This model was created as part of the projects: PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs) -- grant numbers REC #9814682 and REC-0126227.
Comments and Questions
breed [waters water] ;; water molecules breed [hydroniums hydronium] ;; hydronium ions (green) breed [hydroxides hydroxide] ;; base molecules (red) breed [acids acid] ;; parent acid molecules (yellow) breed [conj-bases conj-base] ;; conjugate base molecules of parent acid (orange) globals [ pH ] to setup clear-all set-default-shape waters "molecule2" set-default-shape hydroniums "molecule3" set-default-shape hydroxides "molecule1" set-default-shape acids "molecule2" set-default-shape conj-bases "molecule1" create-acids starting-acid ;; creates variable amount of acid [ set color yellow ] ask acids [ ;; initializes amount of dissociated acid if random-float 100 > 98 [ dissociate ] ] if see-starting-water? [ create-waters 100 ;; creates constant volume of water [ set color blue ] ] create-conj-bases starting-conj-base ;; creates variable amount of conjugate base [ set color orange ] ask turtles ;; randomize position and heading of turtles [ setxy random-xcor random-ycor ] calculate-pH reset-ticks end ;; dissociate an acid molecule into hydronium and conj-base ;; this should only be called by turtles that are acids to dissociate ;; turtle procedure hatch-hydroniums 1 [ set color green ] set breed conj-bases set color orange end to go ask hydroxides [ react-hydroxide ] ask hydroniums [ react-hydronium ] ;; move turtles randomly around the world ask turtles [ fd 1 rt random 10 lt random 10 ] tick calculate-pH end to react-hydroxide ;; hydroxide procedure let partner one-of hydroniums-here ifelse partner != nobody [ react partner ] [ set partner one-of acids-here if partner != nobody [ react partner ] ] end to react-hydronium ;; hydronium procedure let partner one-of hydroxides-here ifelse partner != nobody [ react partner ] [ set partner one-of conj-bases-here if partner != nobody [ react partner ] ] end to react [ partner ] ;; turtle procedure ;; all hydroxide molecules will instantly react with ;; hydronium molecules and form water ifelse ([breed] of partner) = hydroniums or ([breed] of partner) = hydroxides [ set breed waters set color blue ask partner [ set breed waters set color blue ] ] [ ;; hydroxide molecules have a high probability of ;; reacting with acid molecules ifelse ([breed] of partner) = acids [ if random-float 100 > 80 [ set breed waters set color blue ask partner [ set breed conj-bases set color orange ] ] ] ;; hydronium ions will react with conjugate base to form acid [ if ([breed] of partner) = conj-bases [ if random-float 100 > 80 [ set breed waters set color blue ask partner [ set breed acids set color yellow ] ] ] ] ] end ;; calculates the pH from the amount of the various ions in solution; ;; note that for simplicity the calculations don't take the true molar ;; concentration of water into account; instead we simply divide by ;; a factor of 1000 to bring the numbers into a reasonable range to calculate-pH let volume count turtles let concH (count hydroniums / volume) let concOH (count hydroxides / volume) ifelse (concH = concOH) [ set pH 7 ] [ ifelse (concH > concOH) [ set pH (- log (concH / 1000) 10) ] [ let pOH (- log (concOH / 1000) 10) set pH 14 - pOH ] ] end ;; add more base to the system to add-base create-hydroxides added-base [ set color red fd 1 ] end ;; add more acid to the system to add-acid create-hydroniums added-acid [ set color green fd 1 ] end ; Copyright 2001 Uri Wilensky. ; See Info tab for full copyright and license.
There are 10 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Buffer.png | preview | Preview for 'Buffer' | over 12 years ago, by Uri Wilensky | Download |
This model does not have any ancestors.
This model does not have any descendants.