← wrbell.eng
~/wrbell.eng/me440-vibrations.case.md
— · — —:—
$cat ./projects/me440-vibrations/INTENT.md

me440 · vibrations final

Active · W'26

A general-purpose forced-response solver for damped MDOF systems in MATLAB, validated against closed-form benchmarks before it gets used in anger.

Course
ME 440 · Winter 2026
Stack
MATLAB
Scope
MDOF · forced response
Status
In progress
§01 · problem path
./problem.md closed-form is fine. until it isn't.

past_two_dof

Placeholder. Closed-form forced-response is tractable for one or two degrees of freedom. Past that — anything resembling a real system — the algebra gets unmanageable and the intuition leaves with it. The final project is to build a numerical solver that handles the general case while staying honest with the textbook.

§02 · approach path
./solver/ modal decomposition. then a benchmark gauntlet.

solver_then_benchmarks

Placeholder. Approach: assemble M, C, K matrices, solve the eigenproblem, decouple via modal decomposition, integrate each modal coordinate under arbitrary forcing, recombine. Then validate the whole pipeline against closed-form cases — single-DOF harmonic, two-DOF beating, undamped vs. proportionally damped — before trusting it on anything novel.

┌─────────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
 assemble    ───▶ eigen +      ───▶ modal        ───▶ recombine    
 M, C, K          normalize         integrate         physical x   
└─────────────┘    └──────────────┘    └──────────────┘    └──────────────┘
                              │
                              ▼
                       ┌──────────────┐
                        benchmarks   
                        1-DOF, 2-DOF 
                        proportional 
                       └──────────────┘
MATLABsolver, post-processing, plottingv.dep
Modal decompositioneigenproblem · normalize · decouplev.dep
ode45 · Newmark-βintegration choices, accuracy vs. costv.dep
Benchmark suiteclosed-form parity testsv.dep
§03 · decisions path
./CHANGELOG.md picked → rejected. each line is a deliberate trade.

tradeoffs_actually_made

  1. — · placeholder

    Modal decomposition over direct integration.

    Placeholder. Decoupling first lets each modal coordinate use the cheapest stable integrator that still resolves it. Direct integration of the full system would be simpler to write and worse to trust.

  2. — · placeholder

    Benchmarks gate every commit.

    Placeholder. The single-DOF harmonic and two-DOF beating cases are the regression suite. If a refactor breaks them, the refactor is wrong.

  3. — · placeholder

    Plot the answer before reading the number.

    Placeholder. A response that looks wrong on a plot is wrong. Numbers can be wrong without looking it; plots usually can't.

§04 · state path
./STATE.md in progress · final due W'26.

where_it_is

Placeholder. In progress through Winter 2026. Final write-up — solver, benchmarks, novel application — lands here when the project closes out.