MAPDL puede terminar SOLVE sin que nosotros hayamos entendido el modelo. En M06
convertiremos la solución en una afirmación comprobable: la fuerza aplicada y su momento
deben quedar exactamente equilibrados por el empotramiento.
Tu misión
Resolverás la viga preparada en M05, confirmarás que existe un set de resultados y generarás un CSV que cierre simultáneamente el equilibrio de fuerzas y momentos.
Pregunta guía: si SOLID185 no tiene giros nodales, ¿cómo puede el empotramiento transmitir un momento?
Objetivos
Al completar M06 podrás:
- Declarar explícitamente un análisis estático lineal.
- Distinguir load step, substep y set de resultados.
- Explicar qué estados conecta
SOLVE. - Comprobar programáticamente que existe una solución disponible.
- Leer reacciones nodales mediante
*GET. - Reconstruir un momento a partir de fuerzas translacionales.
- Utilizar
SPOINTyFSUMcon un punto de referencia consciente. - Aceptar o rechazar el equilibrio mediante tolerancias cuantitativas.
Prerrequisitos y descargas
- Haber completado M05: la viga debe tener cargas y restricciones auditadas.
- Reconocer el patrón selección → comprobación → aplicación → restauración.
- Recordar el convenio global: X longitudinal, Y vertical y Z transversal.
06_start.mac— punto de partida.06_static_linear.mac— solución auditada.06_bug_hunt.mac— cinco errores de interpretación.06_challenge.mac— reto de dos estados lineales.06_expected_results.csv— contrato de autocorrección.solution-lifecycle.svg— ciclo de solución.force-moment-balance.svg— equilibrio de resultantes.
Predicción — Resuelve primero sobre papel
La fuerza total es FY=-1000 N y actúa a un metro del empotramiento. Antes de
abrir MAPDL, el diagrama de cuerpo libre exige:
ΣFY = 0 → RFY + (−1000) = 0 → RFY = +1000 N
ΣMZ = 0 → RMZ + 1·(−1000) = 0 → RMZ = +1000 N·mEstas cifras son una predicción, no un resultado de elementos finitos. El objetivo del macro será intentar refutarlas leyendo la solución real.
Modelo mental — Cuatro estados, no un botón
Conviene abandonar la idea de que resolver es pulsar un interruptor. El proceso contiene cuatro estados distintos:
- Base de datos preparada: malla, propiedades, restricciones y cargas.
- Definición de solución: tipo de análisis, incrementos y resultados solicitados.
- Solución: MAPDL ensambla y resuelve el sistema de ecuaciones.
- Set activo: un estado concreto del archivo de resultados se carga en memoria.
SOLVE crea resultados; SET elige cuáles están activos.
Física — Qué significa “estático lineal”
El adjetivo contiene tres decisiones:
- Estructural: buscamos desplazamientos y fuerzas que satisfagan equilibrio y compatibilidad.
- Estático: no incluimos términos de inercia ni una historia temporal física.
- Lineal: rigidez, geometría y relación constitutiva no cambian con la respuesta.
El sistema idealizado puede expresarse como:
[K]{u} = {F}Por eso, si duplicamos la carga sin cambiar el modelo, deben duplicarse desplazamientos, reacciones y esfuerzos. El reto utilizará esa proporcionalidad como una segunda prueba.
APDL — Declarar la hipótesis
/SOLU
ANTYPE,STATIC
NLGEOM,OFF
KBC,1
NSUBST,1
OUTRES,ALL,LASTANTYPE,STATICselecciona el análisis estático.NLGEOM,OFFdeja explícita la geometría lineal.KBC,1aplica la carga escalonadamente en el único substep.NSUBST,1define un único substep para este caso lineal.OUTRES,ALL,LASTguarda el estado final solicitado.
Algunas opciones coinciden con valores predeterminados. Escribirlas aquí no busca llenar el script: convierte las hipótesis de la lección en texto revisable.
Load step, substep y set
- Load step
- Estado de carga que queremos resolver. Puede representar una fase física o una condición distinta.
- Substep
- Incremento numérico dentro de un load step. En análisis no lineal tendrá un papel decisivo.
- Result set
- Instantánea almacenada en el archivo de resultados y recuperable posteriormente.
No son sinónimos. Un load step puede contener muchos substeps y no todos tienen por qué haberse escrito como sets.
Antes de SOLVE — Restaurar el modelo
ALLSEL,ALL
SOLVE
FINISH
La selección activa forma parte del estado de MAPDL. Si una selección de punta se propaga
desde la aplicación de cargas hasta la solución, el modelo resuelto puede no ser el que
creías haber preparado. Por eso ALLSEL,ALL es una condición previa explícita.
SOLVE no es un sello de calidad
Una solución terminada puede corresponder a unidades equivocadas, una fuerza multiplicada por el número de nodos o una región mal seleccionada. M06 comprueba equilibrio; M07 comprobará además magnitud y distribución de la respuesta.
Comprobar que existe un resultado
Entramos en postprocesado, contamos los sets y solo entonces intentamos activar el último:
/POST1
*GET,n_sets,ACTIVE,0,SET,NSET
solution_available=0
*IF,n_sets,GE,1,THEN
SET,LAST
solution_available=1
*ENDIF
Esta secuencia evita que el resto de la auditoría finja trabajar con resultados cuando
SOLVE no consiguió generar ninguno.
SET,LAST — Activar no es resolver
SET,LAST no recalcula la estructura. Lee el último set disponible y coloca sus
valores en la base de datos de resultados activa. Si existen varios estados, escoger
conscientemente el set es tan importante como escoger los nodos.
*GET,result_time,ACTIVE,0,SET,TIMEGuardar también el valor de tiempo permite identificar qué estado se auditó, incluso en un análisis estático donde ese “tiempo” funciona como marcador del load step.
Reacciones — Leer la respuesta del apoyo
Las reacciones se consultan sobre los nodos restringidos. No necesitamos IDs: ya existe el
componente físico fixed_nodes.
CMSEL,S,fixed_nodes
node_id=0
*DO,j,1,n_fixed
node_id=NDNEXT(node_id)
*GET,rfx_node,NODE,node_id,RF,FX
*GET,rfy_node,NODE,node_id,RF,FY
*GET,rfz_node,NODE,node_id,RF,FZ
rfx=rfx+rfx_node
rfy=rfy+rfy_node
rfz=rfz+rfz_node
*ENDDO
RF devuelve las reacciones en el sistema nodal. En el proyecto conductor todos
los sistemas nodales permanecen alineados con el cartesiano global.
El momento oculto en fuerzas translacionales
SOLID185 tiene UX, UY y UZ, pero no
ROTX, ROTY ni ROTZ. Esto no impide transmitir momento.
Las reacciones axiales distribuidas sobre la cara del apoyo forman un par de fuerzas.
Cada reacción nodal contribuye:
{M} = {r} × {RF}
Mx = ry·RFz − rz·RFy
My = rz·RFx − rx·RFz
Mz = rx·RFy − ry·RFxAl sumar estas contribuciones obtenemos el momento resultante del empotramiento sin inventar un grado de libertad rotacional que el elemento no posee.
Elegir el punto de suma
Utilizaremos el centro de la cara empotrada:
x_ref=0
y_ref=beam_h/2
z_ref=beam_b/2Un momento siempre está referido a un punto. Cambiar ese punto puede cambiar sus componentes, aunque el sistema de fuerzas siga siendo físicamente equivalente. Elegir el centro del apoyo elimina excentricidades artificiales asociadas al origen geométrico de la caja.
FSUM y SPOINT — Una segunda lectura
SPOINT,0,x_ref,y_ref,z_ref
CMSEL,S,fixed_nodes
FSUM
*GET,fsum_fy,FSUM,0,ITEM,FY
*GET,fsum_mz,FSUM,0,ITEM,MZ
FSUM suma las contribuciones nodales de los elementos conectados al conjunto
seleccionado. SPOINT define el punto global respecto al cual calcula los
momentos. No deben confundirse automáticamente esas contribuciones internas con la
convención de signo de RF.
Límites de FSUM
Su alcance depende de las selecciones y tiene consideraciones específicas para contacto, cargas superficiales, ecuaciones de restricción y grandes rotaciones. Aquí se utiliza en un sólido lineal sencillo y como comprobación secundaria.
Auditoría de fuerza
force_error=ABS(rfy+tip_force)/ABS(tip_force)
force_parasitic=(ABS(rfx)+ABS(rfz))/ABS(tip_force)
El signo “más” no es arbitrario: la carga y su reacción deben ser opuestas. El segundo
indicador detecta resultantes no previstas en X o Z que podrían quedar ocultas si solo
mirásemos RFY.
Auditoría de momento
external_mz=(beam_l-x_ref)*tip_force
target_mz=-external_mz
moment_error=ABS(rmz+external_mz)/ABS(external_mz)
moment_parasitic=(ABS(rmx)+ABS(rmy))/ABS(external_mz)Comprobar fuerza sin comprobar momento deja incompleto el diagrama de cuerpo libre. Una carga aplicada en una posición equivocada puede conservar exactamente la misma resultante y producir un momento distinto.
Contrato de aceptación
El caso base solo se aprueba cuando cumple simultáneamente:
- 126 nodos, 40 elementos, 6 nodos fijos y 6 nodos cargados.
- Exactamente un set de resultados disponible.
- Error de fuerza inferior al
0.5 %. - Error de momento inferior al
0.5 %. - Resultantes parásitas de fuerza y momento inferiores al
0.5 %. passes=1.
El umbral es mucho mayor que el residuo esperado en este problema lineal. Su función pedagógica es separar con claridad un caso aprobado de un error de modelado.
CSV — Evidencia reproducible
El macro genera m06_equilibrium_audit.csv:
case,n_nodes,n_elements,n_fixed,n_tip,n_sets,result_time,target_fy,
rfx,rfy,rfz,rmx,rmy,rmz,target_mz,force_error,moment_error,
fsum_fy,fsum_mz,passesEl archivo conserva entradas, topología, estado consultado, resultantes y decisión. Una captura de la deformada no ofrece esa trazabilidad.
Práctica guiada
- Escribe las predicciones
RFYyRMZsin ejecutar MAPDL. - Ejecuta
06_start.macpor bloques y revisa la selección antes deSOLVE. - Comprueba en el archivo
.outque la solución terminó. - Activa el último set y lista las reacciones del componente fijo.
- Reconstruye el momento respecto al centro del apoyo.
- Compara tu CSV con
06_expected_results.csv. - Ejecuta la solución completa únicamente después de justificar cada signo.
Caza de errores — Cinco falsos equilibrios
Abre 06_bug_hunt.mac y diagnostica cada caso:
- Selección propagada: se intenta resolver sin recuperar todo el modelo.
- Set ausente: se consultan reacciones sin activar resultados.
- Signo equivocado: se compara reacción y carga como si tuvieran el mismo sentido.
- FSUM global: una suma cercana a cero se interpreta como ausencia de reacción.
- Momento inexistente: se busca
RF,MZen nodos sin giro y se ignora el par de fuerzas.
No corrijas primero el código. Para cada error escribe: síntoma, causa física, estado de MAPDL implicado y prueba mínima que confirmaría el diagnóstico.
Reto — Dos estados, una ley lineal
Modifica el caso para resolver dos load steps:
- Load step 1:
FY=-500 N,TIME=1. - Load step 2:
FY=-1000 N,TIME=2.
Debes conservar ambos sets y demostrar:
RFY₂ / RFY₁ = 2
RMZ₂ / RMZ₁ = 2
Cada estado deberá cerrar fuerza y momento con un error inferior al 0.5 %.
El reto se completa mediante script, sin seleccionar entidades desde la interfaz.
Predice antes de ejecutar
Si las razones no son dos, ¿qué hipótesis revisarías primero: linealidad, sustitución de la carga, set activo o selección del apoyo? Ordena esas comprobaciones antes de mirar el `.out`.
Autoevaluación
- ¿Qué diferencia existe entre un load step y un result set?
- ¿Por qué se ejecuta
ALLSEL,ALLantes deSOLVE? - ¿Qué demuestra que
n_sets>0y qué no demuestra? - ¿Por qué
RFYytip_forcetienen signos opuestos? - ¿Cómo transmite momento una cara de nodos con solo desplazamientos?
- ¿Por qué debe declararse el punto de suma?
- ¿Qué error puede ocultarse si solo compruebas fuerzas?
Ver respuestas breves
- El load step es un estado de carga; el set es una instantánea almacenada.
- Para evitar que una selección parcial contamine el modelo resuelto.
- Que existe una solución almacenada; no que el modelo físico sea correcto.
- Porque juntas deben satisfacer
ΣFY=0. - Mediante una distribución de fuerzas que forma un par.
- Porque las componentes de momento dependen del punto de referencia.
- Una posición o excentricidad de carga incorrecta.
Evidencia de aprendizaje
m06_equilibrium_audit.csvconpasses=1.- Extracto del
.outque confirme una solución terminada. - Cálculo manual de
RFYyRMZ. - Explicación del convenio de signos entre
RFyFSUM. - CSV del reto con dos estados y razones iguales a dos.
- Diagnóstico razonado de los cinco defectos.
Checklist de salida
- ☐ Declaro el tipo de análisis y la hipótesis geométrica.
- ☐ Restauro todas las selecciones antes de resolver.
- ☐ Compruebo que existe un set antes de consultar resultados.
- ☐ Activo conscientemente el estado que quiero auditar.
- ☐ Sumo reacciones exclusivamente en el componente fijo.
- ☐ Compruebo fuerza y momento respecto al mismo punto.
- ☐ No busco reacciones rotacionales inexistentes en SOLID185.
- ☐ Mi CSV conserva entradas, resultados, errores y decisión.
Trazabilidad técnica
La lección utiliza Structural Analysis Guide y
Basic Analysis Guide para el flujo de solución estática. La sintaxis de
ANTYPE, NLGEOM, KBC, NSUBST,
OUTRES, SOLVE, SET, SPOINT,
FSUM, NDNEXT y *GET se contrasta con
Command Reference 2024 R1.
Siguiente paso: M07
Ya sabemos que el modelo resuelve y satisface equilibrio. En M07 preguntaremos algo más exigente: si sus desplazamientos y tensiones representan correctamente la viga física, comparándolos con una solución analítica.