What I was getting at in the comments above is that the linear system $w_1(t)a(t) + w_2(t)b(t) + w_3(t)c(t) = k$ has an infinite number of solutions, so you need to state some criterion that allows you to choose a unique solution. I think you have pointed out a constraint that is worth examining.
The idea: note that the linear equation I gave above is the equation for a plane in $\mathbb{R}^3$:
$$w_1(t)a(t) + w_2(t)b(t) + w_3(t)c(t) = k$$
This defines a plane in three-dimensional Euclidean space.
$\left[a(t), b(t), c(t) \right]$ is a vector that is normal to the plane.
The collection of all vectors in $\mathbb{R}^3$ of the form $\left[w_1(t),\ w_2(t),\ w_3(t)\right]$that satisfy the above equation are points on the plane.
Since you said that $w_1(t), w_2(t), w_3(t)$ don't change much over a short time duration, then you can assume that the point $\left[w_1(t+\Delta t),\ w_2(t+\Delta t),\ w_3(t+\Delta t)\right]$ should be geometrically close to the point at the previous time instant, $\left[w_1(t),\ w_2(t),\ w_3(t)\right]$.
So, the algorithm would look something like this:
Initialize your algorithm by finding $k$, which you said you can do.
Solve for the initial weights $w_1(t), w_2(t), w_3(t)$, which you said you can do.
On subsequent time steps, measure $a(t)$, $b(t)$, and $c(t)$. This defines the plane in $\mathbb{R}^3$ that the filter weight vector can possibly lie upon.
Find the point on the plane that is closest to the filter weights from the previous iteration. Use this point as the new vector of filter weights.
Repeat.
I'm not sure if this will give the desired effect or not (as your inquiry is light on details), but it has an intuitive geometric explanation. It might be worth a try.