La clasificación unificada de suelos USCS mediante Visual Basic para Excel

Una hoja de cálculo pensada para ahorrarte tiempo

 

“Para los animales, el universo entero estaba dividido ordenadamente en:
(a) cosas con las que aparearse, (b) comida, (c) cosas de las que huir y (d) rocas.”

Terry Pratchett. Ritos Iguales (1987)

 

Clasificar es una forma de conocimiento. Ordenamos, dividimos y etiquetamos las cosas para reducirlas a otros casos conocidos, para ponerles nombre, para quedarnos tranquilos.

Clasificamos las cosas para reducir su incertidumbre, y para ello utilizamos criterios de todo tipo, los hay subjetivos (me gusta, no me gusta), estrictos (tres lados, triángulo; cuatro lados, cuadrilátero), y a veces, también un poco difusos (¿a partir de qué tono de marrón claro se pasa al beige?).

En geotecnia, como en cualquier otra disciplina, tenemos clasificaciones para casi todo (dureza, excavabilidad, resistencia, etc.), y hoy me voy a centrar en la clasificación más habitual, la clasificación unificada de suelos o USCS (Unified Soil Classification System).

En este caso, la incertidumbre, lo que queremos etiquetar, es el comportamiento ingenieril del suelo (de hecho, la norma ASTM D2487 lo llama Classification of Soils for Engineering Purposes), y los criterios a emplear son la granulometría y la plasticidad.

Evidentemente, el comportamiento mecánico del suelo depende de más cosas (humedad, cargas, su velocidad de aplicación, condiciones de contorno, etc.), pero conocer el tipo de suelo es el primer paso (o debería serlo).

Bien, pues dependiendo de su granulometría y plasticidad, como ya he dicho, la clasificación de suelos USCS “etiqueta” el suelo de acuerdo al siguiente esquema (pulsa para verlo mejor):

Y hoy traigo al blog una hoja de cálculo que hace todo este “arbol de decisiones” de forma “casi” automática (antes tendrás que habilitar las macros).

Y alguien dirá que esto es trivial y que ya hay muchas hojas de cálculo así en la red.

Y yo diré que tan trivial no es, porque servidor se ha encontrado suelos mal clasificados en obras, digamos, importantes (de esas de millones de euros).

Y en cuanto a lo de que sea una más, pues… vale, si, quizá lo sea, pero creo que puedo aportar un par de cosas interesantes:

1) El cálculo se hace llamando a una función. Nada de celdas ocultas llenas de fórmulas y cálculos intermedios, sólo una función:

USCS(Grava;Arena;Finos;Cu;Cc;LP;LL)

Donde, obviamente:

  • Grava es el porcentaje de grava
  • Arena es el porcentaje de arena
  • Finos es el porcentaje de finos (limos + arcillas)
  • Cu es el coeficiente de uniformidad
  • Cc es el coeficiente de curvatura
  • LP es el límite plástico
  • LL es el límite líquido
    (si el suelo no es plástico se puede tomar LP=LL=0)

Es decir, que si tenemos un suelo con, digamos:

  • Un 12% de grava, un 23% de arenas y un 65% de finos
  • Un coeficiente de uniformidad de 2 y un coeficiente de curvatura de 5
  • Un límite plástico de 22 y un límite líquido de 45.

Sólo tenemos que escribir:

USCS(12;23;65;2;5;22;45) y obtendremos “ CL – Arcilla fina arenosa

Piensa en las ventajas que tiene poder hacerlo así. Puedes ordenar los datos como quieras y olvidarte de cálculos intermedios.

2) Si se conoce la granulometría, la hoja incluye también dos funciones de interpolación para calcular de forma automática los porcentajes de grava, arena y finos y los diámetros D10, D30, D60, calculando también los coeficientes de uniformidad Cu y curvatura Cc.

y 3) TODO el código Visual Basic está disponible para que lo mires, estudies y reutilices. Anímate a programar tus propias funciones en VBA, ganarás tiempo, tu hoja será más limpia y reducirás tus niveles de… colesterol (iba a poner mala leche, pero colesterol suena más educado).

Y ahora, como siempre, voy a soltar un rollo de los míos explicando un montón de cosas, el que quiera la hoja que vaya directamente al final.

 

VIDA Y MILAGROS

Lo cierto es que esta hoja de cálculo tiene ya unos años. En origen –allá por los 90-, fue una pequeña rutina en la calculadora, escrita en un par de tardes, para comprobar si los ejercicios de geotecnia estaban bien hechos.

Unos años después, ya trabajando como freelance, encargaba los ensayos a un laboratorio que, como decía Sabina del gazpacho de su primera mujer, “el punto del ensayo, joder, si lo tenían”. La verdad es que los hacían realmente bien, eran lentos, concienzudos y precisos…

.… y para compensar, no sabían interpretar los resultados. Daba igual lo que dijera la norma, ellos clasificaban el suelo “a ojo”.

Y necesitaban gafas.

Con la mejor de las intenciones (esto es, cubrirme el culo), cogí aquel código, lo “migré” del BASIC de la calculadora (una Casio FX-850P) al Visual Basic de Excel, le añadí las rutinas de interpolación (la calculadora lo hacía de modo automático), y les regalé la hoja de cálculo con una sincera sonrisa (no es broma, practiqué y todo).

Y ni puto caso, claro.

Tendría que haber practicado más.

Y quizá afeitarme.

Poco después, la empresa cerró. Traumatizado (supongo), mi disco duró falló. Del todo. Kaput. El día antes de hacer las copias de seguridad, as usual. Adiós, hoja de cálculo.

Durante mucho tiempo utilicé otra, sacada no sé de dónde, que nunca terminó de convencerme. Había que estar atento porque fallaba en algunas zonas, pero tenía un código tan enrevesado que nunca me animé a corregirla.

Y hace un par de años, revisando unos disquetes de 3½… ¡¡ Hello again !!

La hoja es prácticamente la misma, sólo he hecho un cambio para poder modificar los tamaños límite arena-grava y arena-finos. Bueno, y he añadido algunos comentarios al código.

 

SOBRE EL CÓDIGO VISUAL BASIC

El código es muy simple (Keep It Simple, Stupid), básicamente es un montón de condicionales if-then encadenados, siguiendo el esquema de la norma ASTM D2487. La idea es que sea lo bastante limpio como para poder echarle un vistazo y modificar lo que haga falta sin tener que perder un día entero estudiando qué narices hace cada línea.

Además, así es más “portable”, si alguien quiere utilizarlo con otro programa que no sea Excel, creo que me lo agradecerá.

 

LAS FUNCIONES DE INTERPOLACIÓN

La curva granulométrica es una función monótona, así que he usado una interpolación lineal básica. Si el punto que buscamos está entre dos puntos conocidos se interpola entre ellos (zona 2). Si está fuera de rango, se extrapola tomando los dos puntos anteriores o posteriores (zonas 1 y 3). En el código hay comentarios explicando cada caso.

Detalle importante a tener en cuenta: El método se diseñó para interpolar “a mano” sobre la curva, pero la curva tiene el eje x en escala logarítmica, por lo que no se puede hacer una interpolación lineal directa entre parejas de puntos (x,y).

¿No me crees? Haz la prueba y verás que el punto interpolado no cae sobre la curva. Recuerda que al cambiar de un sistema lineal (x,y) a uno semilogarítmico (log x, y), la curva cambia de forma.

Es decir, que hay que sustituir x por log(x) y operar un poco, obteniendo una función de interpolación distinta para cada eje.

¿Me la estoy cogiendo con papel de fumar, como se dice normalmente? Por supuesto, pero si automatizas algo, hazlo bien.

 

CÁLCULO DEL PORCENTAJE DE GRAVA, ARENA Y FINOS

Buscamos porcentajes (y), así que interpolaremos en el eje y, aunque primero hay que saber qué criterio de tamaños (eje x) estamos usando:

Tamaño (mm) ASTM
D2487
UNE
equivalente
BS
1377
UNE-EN
ISO 14688
Grava – Arena 4,75 5 2 2
Arena – Finos 0,075 0,080 0,060 0,060

Por ejemplo, tomando el criterio del ASTM:

  • Los finos serán el porcentaje (y) que pasa por el tamiz/tamaño x=0,075

Finos = interp_y(0,075;rango tamaños;rango porcentajes)

  • La grava será el material retenido (100-pasa) en el tamaño x=4,75

Grava = 100 – interp_y(4,75;rango tamaños;rango porcentajes)

  • Y la arena será la diferencia entre gravas y finos, o también lo que pasa por el tamaño x=4,75 (arena + finos) menos el contenido en finos:

Arena = interp_y(4,75;rango tamaños;rango porcentajes) – Finos

 

CÁLCULO DE LOS TAMAÑOS D10, D30, D60

En este caso conocemos los porcentajes (y=10, 30, 60) y queremos interpolar los tamaños correspondientes en el eje x:

D10=Interp_x(10;rango de tamaños;rango de porcentajes)

D30=Interp_x(30;rango de tamaños;rango de porcentajes)

D60=Interp_x(60;rango de tamaños;rango de porcentajes)

Una vez conocidos estos datos, la función ya calcula los coeficientes de uniformidad Cu y curvatura Cc.

En el primer ejemplo de la hoja, tomado del Fundamentos de ingeniería de cimentaciones, de Braja Das, se muestra una curva de sólo cuatro puntos en la que los valores D10 y D30 están extrapolados.

NO SE ADMITEN PUNTOS POR ENCIMA DE LA LÍNEA U, PERO SE PUEDE CAMBIAR

Se dice que Casagrande nunca justificó el origen de la línea U, se limitó a ponerla y decir que se usara como “comprobación” de resultados. Como ya sabemos, esta línea delimita una “cota superior”, totalmente empírica, por encima de la cual no hay suelos naturales (de hecho, lo más próximo a esta línea es la montmorillonita).

A principios de los 80, la ASTM (American Society for Testing and Materials) decidió recortar la gráfica un poco más, “extendiendo” verticalmente la línea en LL=16, ya que casi nunca se encuentran suelos naturales con un límite líquido menor de 16.

En mi experiencia, me he encontrado puntos por encima de la línea U en tres casos:

  • Suelos inventados: Lo he dicho alguna vez, para inventar resultados hay que saber mecánica de suelos
  • Suelos “alterados”: En este caso fue por otro material artificial que cayó en la muestra, “contaminándola”
  • Errores al hacer el ensayo, que desaparecieron al repetirlo

Es decir, que sí funcionó como comprobación de que pasaba algo raro.

Si el punto cae por encima de la línea U la función da error. Si, por alguna razón, quieres eliminar esta condición, sólo tienes que anular la línea correspondiente. Está comentado en el código.

 

LA LÍNEA U NO ES LA LÍNEA IP=LL

Como ya se ha dicho, la línea U delimita suelos que podrían existir pero no se encuentran en la naturaleza, acotando un poco más los suelos arcillosos, mientras que la línea a 45º delimita suelos en los que el IP> LL, es decir, suelos que no pueden existir en la naturaleza (seguro que hay algún material artificial que lo cumple, pero suelos naturales no).

Por desgracia, es habitual ver gráficas que confunden ambas líneas, incluso en textos universitarios, así que… bueno, podría decirse que la línea U sigue siendo una forma de comprobar algo 🙂

 

LOS SUELOS ORGÁNICOS NO ESTÁN INCLUIDOS

En ingeniería geotécnica los suelos orgánicos son peligrosos, así que decidí no incluirlos en la hoja. Si hay contenido orgánico vale la pena mirarlo con calma.

 

¿POR QUÉ NECESITO CONOCER LA PLASTICIDAD SI TENGO MATERIAL GRANULAR?

He sido director de dos laboratorios de geotecnia, y rara era la semana que no escuchaba esta pregunta.

Como ya he dicho al principio, cada clasificación responde a una incertidumbre distinta, y en este caso la incertidumbre es ingenieril. El comportamiento mecánico del suelo se basa en la interacción entre partículas, entre las que tenemos fuerzas de gravedad, capilares, efectivas y, en el caso de las partículas más finas, de Van der Waals.

Bien, pues dependiendo del coeficiente de uniformidad Cu y del índice de vacíos, un contenido de finos del 5% ya rellena los huecos entre partículas y empieza a influir en el comportamiento del suelo…

.… y por eso la clasificación lo tiene en cuenta, porque es necesario conocer la plasticidad, aunque sea un suelo granular. No, no es ninguna conspiración de los laboratorios para que hagas más ensayos, de verdad.

Y si haces los ensayos y resulta que el suelo no es plástico pues, oye, eso que has ganado, pero hay que hacerlos.

Como he dicho, si el suelo no es plástico se puede tomar un valor nulo para los límites de plasticidad. Si el contenido en finos es mayor del 5% la función no dará error, simplemente considerará que la fracción fina corresponde a un limo poco plástico.

 

¿PUEDO USAR ESTE CÓDIGO PARA LO QUE YO QUIERA?

A ver… esto son cuatro líneas en BASIC llenas de if-then, aquí no hay ningún “secreto industrial” que proteger.

¿Quieres usarlo? Hazlo, para eso lo he publicado.

¿Quieres modificarlo? Hazlo, para eso he comentado el código.

¿Quieres nombrarme? Pues… hazlo, si quieres.

¿Quieres ganar dinero con esto? Pues, mira, eso ya no me parece bien pero, una vez publicado, ya no está en mis manos, así que lo dejo a tu voluntad.

 

¿CÓMO PUEDO SABER SI EL RESULTADO ES CORRECTO?

El código está revisado hasta la saciedad, pero siempre puede haber algún error. He añadido diez ejemplos tomados de tres textos y los resultado coinciden (bueno, más o menos, algunos textos lo han resuelto de forma aproximada).

En cualquier caso, si encuentras algún error te agradecería que me lo dijeras para poder corregirlo, por favor.

Y eso es todo, espero que a alguien le pueda resultar útil, ya sea para clasificar suelos o para coger ideas sobre Visual Basic.

 

Clasificación unificada de suelos USCS
mediante Visual Basic para Excel
Archivo xlsm comprimido (zip, 146 KB)

 

Psst, recuerda, las macros tienen que estar habilitadas para poder usar la función.

“Nunca se pudo hacer por el nivel freático”

Problemas de vivir en una buhardilla, la lluvia suena mucho más fuerte y me despierta antes de lo que me hubiera gustado. Otro sábado pasado por agua en Sarajevo. Podría levantarme y mirar por la ventana pero es más fácil estirar el brazo, coger el tablet y saber todos los datos meteorológicos de un vistazo, incluso hay fotos. Genial, mal tiempo para toda la semana que viene. No hago mucho caso, nunca aciertan. Mañana lucirá el sol.

Dedico los primeros minutos a menéame y paso después a los periódicos. Los temas de siempre, poco desarrollados y peor escritos. A punto de dejarlo encuentro esta respuesta en una entrevista a Albert Boadella, en El Mundo:

– ¿Usted piensa que lo que diga la mayoría va a misa?

– Como buen demócrata, pienso que los referendos son una estafa. Por eso las dictaduras los utilizan tanto… En el pueblo de al lado hicieron un referéndum para ver si la carretera tenía que pasar por debajo o por encima. No se lo preguntaron a los técnicos. No. Se lo preguntaron al pueblo. Votaron que por túnel, claro. Nunca se pudo hacer por el nivel freático. Estos son los referendos.

 

Un túnel bajo el nivel freático no es algo tan extraño, así que supongo que la obra no se hizo porque resultaba más cara de lo esperado pero, oye, se agradece que alguien piense en los técnicos.

¿Por qué he borrado más de la mitad del blog?

Como bloguero vuestro que soy, os debo una explicación…

Este sitio ha llegado a tener más de mil entradas (o posts, como quiera usted llamarlo) a lo largo de sus 18 años de vida, 11 como página web y 7 como blog.

He borrado más de la mitad.

¿Por qué?

La explicación corta, el socorrido TL;DR, es “Porque si, que para algo es mi blog”.

La explicación larga, en mi línea, es muy larga, que para algo es mi blog. Y cual alcalde berlanguiano, “esa explicación que os debo, os la voy a pagar”.

– Entradas caducadas

A finales de los 90 (me estoy haciendo mayor) esto era una simple página web en la que recopilaba enlaces sobre geotecnia y anunciaba los cursos de Servicios Técnicos de Mecánica de Rocas, STMR, impartidos por (Súper) Manuel Romana. Si, de ahí viene SMR, que no os engañen con lo de “Slope Mass Rating” 🙂

¡ Un abrazo, Don Manuel !

¿Por qué?, pues porque a) tener una página web era lo último, en aquel momento; b) STMR era la empresa que me daba de comer, también en aquel momento; y c) porque cuando le decías a alguien “en la página web tiene toda la información sobre el curso” podías sentir cómo se le hacía el culo gaseosa. Disfrutaban.

Cuando dejé de trabajar para STMR decidí continuar recopilando enlaces y anunciando cursos, y así he seguido hasta ahora. Demasiados años ya, toca descansar. Salvo el CEDEX, la SEMR, la UA y alguno que otro más, nadie me lo ha agradecido nunca, así que… tampoco creo que lo echen de menos, la verdad.

Resumiendo, que no tiene sentido conservar entradas que anuncian cursos impartidos hace años, así que las he borrado.

Alguien dirá ahora aquello de “bueno, pero así Google te indexa con palabras relacionadas con la geotecnia y te trae visitas y bla-bla-bla y el SEO y más bla-bla-bla”.

Seguramente, pero prefiero que esas visitas no se topen con información caducada. Escribo para mi y para la gente, por ese orden. Es importante estar a buenas con Google, lo sé, pero tampoco hay que pasarse.

– Entradas que ya no funcionan

Que esté en Internet no quiere decir que esté ahí para siempre. Los servidores petan, las empresas quiebran, las páginas dejan de actualizarse, los usuarios borran sus vídeos, los enlaces dejan de funcionar, el pelo se termina cayendo (snif!) y un día algo deja de levantarse. Es ley de vida.

Conservo parte de lo que enlazo, pero no todo, sería imposible almacenarlo todo… y bien que lo lamento.

Igual que antes. No tiene sentido mantener entradas que no llevan a ningún sitio, así que las he borrado.

– Entradas “refundidas”

A menudo he publicado noticias más o menos actuales y días después alguna novedad para completar la información. Esas entradas han sido “refundidas” en una sola, ahorrando el tener que ir de un lado para otro.

Con el tiempo tengo pensado hacer lo mismo con las entradas dedicadas a la documentación, como las Geotechnical Engineering Circulars o la normativa técnica, pero eso ya no corre tanta prisa. Ya lo haré.

– Entradas con copyright

Muchas entradas constan de una simple fotografía que me ha servido para ilustrar algún concepto o noticia. Lo malo es que, de acuerdo a la ley, el copyright no permite hacer esas cosas, de hecho, ni siquiera permite enlazar a la página original (si, muy absurdo todo, ¿qué esperabais de nuestros políticos?).

Voy a conservar las mejores. Me queda la duda de qué hacer con el resto, ¿añadirlas a Pinterest, que lo tengo abandonado?, ¿hacer un Tumblr?, ¿enterrarlas…?

Me lo pensaré este verano, tomando un café, en Sarajevo, que es dónde mejor lo hacen (un día tengo que hablar del tema).

– Porque dejo WordPress y la migración es un auténtico peñazo

La verdadera razón de hacer limpieza. Dejo WordPress. Yo también. Estoy harto. Harto de actualizaciones constantes, de alertas de seguridad, de fallos de memoria, de modificar cosas cada vez que Google estornuda, de plug-ins para estadísticas, para compartir, para SEO, para caché y para guayo. Se acabó. Lo dejo.

WordPress es un fantástico gestor de contenidos, ahora mismo el mejor, pero no necesito tanto. Se ha convertido en un monstruo que permite hacer de todo, desde periódicos hasta tiendas on-line. Yo simplemente quiero una página web en la que soltar mi rollo. Punto.

Vuelvo al blog estático, a los orígenes. Eso si, modernizado, que han pasado muchos años y ahora hay opciones muy chulas (tantas que me ha costado decidirme, tres meses llevo haciendo pruebas).

Vuelvo a trabajar en local, con archivos de texto plano y en Markdown, todo muy minimalista. Llámalo “rollo hipster”, llámalo “rollo zen”, yo lo llamo “eliminar problemas”.

Eso si, la migración un puto desastre. Me está tocando revisar TODAS las entradas una a una, y francamente, cuantas menos cosas tenga que reescribir, mucho mejor (vale, a esto lo podéis llamar “rollo vago”).

¿Para cuando el cambio?

Pues… calculo que llevo un 20% por ciento hecho así que… un par de meses, por lo menos. Tranquilos, todavía publicaré unas cuantas entradas bajo WordPress.

Por fuera, el cambio será sólo estético, más minimalista (puede que demasiado). Por dentro, espero que vaya todo mucho más rápido, al eliminar el código de WordPress.

Eso es todo, en unos días más cosas (espoiler: será un libro sobre estaciones geomecánicas. Y tengo una copia firmada y dedicada, mola mucho).

La paradoja de Hambly: Cuando añadir más apoyos añade también más esfuerzo

Hambly (1985) propuso un problema pedagógico para ilustrar las dificultades en el proyecto de una estructura hiperestática:

Una lechera que pesa 600 N está apoyada sobre un taburete de tres patas. ¿Para qué esfuerzo básico debe calcularse cada pata del taburete?

Se considera que el taburete es simétrico, que la lechera está apoyada en su centro, y así sucesivamente.

La respuesta a la pregunta es, por supuesto, 200 N.

La misma lechera se apoya ahora en un taburete cuadrado con cuatro patas, una en cada esquina y, de nuevo, el taburete y la carga son simétricas. ¿Para que esfuerzos debe proyectarse cada una de las patas del taburete?

La respuesta de 150 N no es necesariamente correcta. Un robusto taburete de ordeñar casi rígido, situado sobre un suelo firme y también casi rígido en la nave de ordeñado, cojeará; tres de las patas estarán en contacto, soportando el peso de la lechera, pero la cuarta estará separada del suelo.

Si esta cuarta pata está separada por sólo una fracción de milímetro, no hay duda de que la fuerza que está soportando es cero. Por una simple consideración de estática, la fuerza en la pata situada en la diagonal opuesta también será cero, aunque parezca estar en contacto con el suelo.

El peso de la lechera, de hecho, estará soportado simétricamente por las otras dos patas del taburete, y cada una debe por tanto calcularse para soportar una fuerza de 300 N.

Ahora podemos imaginar que el taburete está situado arbitrariamente sobre un suelo irregular, y no hay manera de decidir a priori qué patas están en contacto —todas las patas deben, por consiguiente, ser proyectadas para soportar una fuerza de 300 N—.

Esta es la paradoja: la adición de una cuarta pata implica un incremento, en vez de un decremento, en el esfuerzo para el que deben proyectarse las patas.

[…]

Si se realizan los ensayos con flexímetros colocados en las patas, se verá que el esfuerzo en una pata puede tener cualquier valor entre 0 y 300 N, y un buen número de experimentos registrarán la carga como exactamente 0 ó 300 N.

Precisamente observaciones de este tipo fueron hechas por el Comité de Investigación de Estructuras de Acero en los años 1930, y su conclusión fue que la gran cantidad de imperfecciones geométricas en las estructuras hacían que el análisis elástico fuera la herramienta equivocada para el cálculo.

Estas observaciones, junto con los trabajos experimentales de Kazinczy. Maier-Leibnitz y otros, fueron las que condujeron a los métodos plásticos para el cálculo de estructuras de acero (o de cualquier estructura construida con cualquier material dúctil).

— “Análisis de estructuras: un estudio histórico”
Jacques Heyman. 1998

Aunque la versión española del libro traduce “stool” como silla, he preferido usar el término “taburete”, más coherente con el bovino ejemplo.

El hormigón armado, un desdichado matrimonio desigual

“El hormigón armado es un desdichado matrimonio desigual: el hormigón se fisura, el hierro se oxida y la teoría está en huelga.”

— Mirko Roš, 1921.

Mirko Roš, director del Instituto Federal de Ensayos de Materiales (EMPA) de Suiza, en 1921, describiendo perfectamente un material que, pese a sus defectos, se hace de querer.

La traducción es mía y, como siempre, mejorable. Los puristas pueden usar la cita original en alemán: “Eisenbeton ist eine unglückliche Mesalliance, das Eisen rostet, der Beton reisst und die Theorie streikt”; o su transcripción inglesa:“Reinforced concrete is an unfortunate misalliance: concrete breaks, iron rusts and theory is on strike”, que es la que yo he usado para la traducción, más que nada porque mi alemán no pasa del “Bitte, ein Bier. Danke”.

Nota: He estado a punto de traducir “misalliance” como “matrimonio morganático”, pero me ha parecido un poco extremo.