Weak Acid

Weak Acid preview image

2 collaborators

Uri_dolphin3 Uri Wilensky (Author)
Mike Stieff (Author)

Tags

chemical reactions 

Tagged by Reuven M. Lerner about 12 years ago

chemistry and physics 

Tagged by Reuven M. Lerner about 12 years ago

Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 651 times • Downloaded 148 times • Run 1 time
Download the 'Weak Acid' modelDownload this modelEmbed this model

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 differences in the calculation of pH when evaluating a weak acid in solution. It is best viewed as the second model in the ACID-BASE package.

HOW IT WORKS

Unlike a strong acid, a weak acid has a very low Ka (or acid dissociation constant). Consequently, very little of the acid is dissociated into hydronium ions and conjugate base as seen in the following reaction.

H-A + H2O <———(1%)———> H3O+ + A-

Because so little hydronium ion is present, the pH of the solution cannot be calculated directly from the initial concentration of acid. Though the equation for calculating the pH is identical to that for a strong base,

pH = - log [H3O+]

we must first calculate the amount of hydronium ion present in the solution. This amount is dependent on the Ka of the acid. Each acid has a unique Ka, which indicates the probability that an acid molecule will react with a water molecule to form a hydronium ion and an anion. The anion in such a reaction is known as the conjugate base of the original acid. Though the term conjugate base may seem strange, it makes sense if you look at the chemical equation above. There A- is the conjugate base of H-A because it can take a proton from the hydronium ion to generate the original acid.

This model models the composition of a weakly acidic solution and allows the user to observe how altering the species in solution affects the pH. In the model, the dissociation constant Ka, is much higher than the real Ka for an acid. In fact, the model uses the following formula to convert he real-world Ka into a simulated Ka for the model:

Ka for MODEL = 11 - pKa (pKa = - log (real-world Ka)

HOW TO USE IT

Decide how much acid should be present at the start of the simulation with the VOL-ACID slider and press SETUP. Turtles will distribute randomly across the world. BLUE turtles represent water molecules, GREEN turtles represent hydronium ions, YELLOW turtles are acid molecules, and finally ORANGE turtles are conjugate base molecules. A set amount of water molecules is added each time to the solution. In this model we are using the Ka of acetic, which means that approximately 1% of the original acid molecules are dissociated into 1 conjugate base molecule and 1 hydronium molecule.

Press GO. The turtles will move randomly across the world and the pH of the solution will by plotted over time on the pH Curve and displayed in the pH monitor.

Observe the effect of adding RED base molecules to the solution by setting the volume of base with the VOL-BASE (mL) slider and pressing ADD-BASE.

At any time while go is depressed, RECORD-PH can be pressed to plot the pH versus the amount of base added on the Titration Curve.

THINGS TO NOTICE

Observe how the pH curve changes over time with the addition of base. How is this curve different from that seen in the strong acid model? Plot a titration curve and compare it with a strong acid.

Does the value of VOL-BASE affect the titration curve in any way? Is this different from the relationship between strong acids and strong bases?

Why are the base molecules not reacting with the water molecules? Does it matter?

THINGS TO TRY

Notice that the pH of the solution seems to be an average rather than a constant. Can you explain this?

Start the model with various amounts of acid. How does this affect the titration curve? Is there any difference in the endpoint of the reaction?

Keep adding base until the pH rises to about 10. Notice the breeds of turtles present. How does the pH depend on the molecules present?

Notice that in our models acid molecules react with base molecules based on the value of Ka. Make a slider so that you can alter this value. Observe how the system changes with regard to this variable. Is your pH between 0-14?

Note that we have established a constant for Ka in the procedures window. You must remove that constant when you replace it with a slider of the same name.

EXTENDING THE MODEL

Notice that the code requires hydroxide molecules to first react with hydronium molecules on a patch before they react with acid molecules. This is because hydroxide and hydronium react much more rapidly than hydroxide does with a weak acid. Reverse the code and observe the effect on the system.

Alter the code so that base turtles only react with hydronium molecules. What effect is observed? What additional changes do you need to make so that the pH continues to rise with the addition of base?

Increase the dissociation percentage so that more hydronium ions are generated at setup. What does this do to the pH? Can you predict what the Ka of a strong acid might be?

Try using the various pKa values listed below to determine the endpoint of each weak acid.

weak acidKapKaKa for model
HCN1.26 x 10-99.11.9
HOAc1.8 x 10-54.86.2
H2CO33.16 x 10-76.54.5
HCO2H2.0 x 10-43.77.3

NETLOGO FEATURES

Notice the large number of breeds used in this model. Because of the complex interactions between molecules in a weakly acidic solution, it is necessary to separate turtles according to their identity. This allows each breed of turtle to follow unique instructions, which allows the model to simulate the complexity of molecular interactions.

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 Weak Acid model. http://ccl.northwestern.edu/netlogo/models/WeakAcid. 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.

CC BY-NC-SA 3.0

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

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

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
  Ka             ;; variable for acid reactions
  base-added     ;; use to keep track of how much total base has been added
]

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"
  set Ka 1.9
  create-acids vol-acid                 ;; adds parent acid molecules
    [ set color yellow ]
  ask acids
    [ if random-float 100.0 < Ka              ;; creates initial dissociated acid
        [ hatch-hydroniums 1
            [ set color green
              fd 3 ]
         set breed conj-bases                 ;; parent turtle turns into a conj-base
         set color orange ] ]
  create-waters (100 - count hydroniums)
    [ set color blue ]
  ask turtles                   ;; randomize position and heading of turtles
    [ setxy random-xcor random-ycor ]
  set base-added 0
  calculate-pH
  reset-ticks
  plot-pH
end 

to go
  ask hydroxides [ react-hydroxide-hydronium ]
  ask hydroxides [ react-hydroxide-acid ]
  ask acids [ react-acid ]
  ask hydroniums [ react-hydronium ]
  ;; move turtles randomly around the world
  ask turtles
    [ fd 1
      rt random 10
      lt random 10 ]
  tick
  calculate-pH
  plot-pH
end 

;; adds base molecules to the solution

to add-base
  create-hydroxides vol-base
    [ fd 1
      set color red ]
  set base-added base-added + vol-base
end 

;; hydroxide procedure

to react-hydroxide-hydronium
  let partner one-of hydroniums-here     ;; tells hydroxide to recognize hydronium
  if partner != nobody              ;; if you are a hydroxide molecule and you encounter a hydronium
    [ ;; then turn yourself and the hydronium into water molecules
      set breed waters
      set color blue
      ask partner
        [ set breed waters
          set color blue ] ]
end 

;; hydroxide procedure

to react-hydroxide-acid
  if random-float 100.0 < Ka                  ;; react with acid molecules according to the acid strength
    [ let partner one-of acids-here
      if partner != nobody              ;; if you are a hydroxide molecule and you encounter an acid molecule
        ;; then turn the hydroxide into a conjugate base molecule
        ;; and turn yourself into a water molecule
        [ set breed waters
          set color blue
          ask partner
            [ set breed conj-bases
              set color orange ] ] ]
end 

;; acid procedure

to react-acid
  if random-float 100.0 < Ka                  ;; acid molecules may dissociate to hydronium depending on their Ka
    [ let partner one-of waters-here
      if partner != nobody              ;; if you are an acid molecule and you encounter a water molecule
        ;; then turn the water molecule into a hydronium molecule
        ;; and turn yourself into a conjugate base molecule
        [ set breed conj-bases
          set color orange
          ask partner
            [ set breed hydroniums
              set color green ] ] ]
end 

;; hydronium procedure

to react-hydronium
  if random-float 100.0 < Ka                  ;; hydronium molecules may recombine with conjugate base to form acid
    [ let partner one-of conj-bases-here
      if partner != nobody              ;; if you are a hydronium molecule and you encounter a conjugate base molecule
      ;; then turn the conjugate base molecule into an acid molecule
      ;; and turn yourself into a water molecule
        [ 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, but instead use an arbitrarily
;; chosen factor of 1000 to produce numbers lying in 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 

;; plotting procedures

to plot-pH
  set-current-plot "pH Curve"
  plot pH
end 

to record-pH
  set-current-plot "Titration Curve"
  plotxy base-added pH
end 


; Copyright 2001 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky over 12 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky almost 13 years ago Updated version tag Download this version
Uri Wilensky almost 13 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 13 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky about 15 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 15 years ago Model from NetLogo distribution Download this version
Uri Wilensky over 15 years ago Weak Acid Download this version

Attached files

File Type Description Last updated
Weak Acid.png preview Preview for 'Weak Acid' over 12 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.