例えば、こんな感じなのか。
t <- 1:100; n <- max(t)
k1 <- 0.3; k2 <- 0.1
x <- x0 <- k1/(k1-k2)*(exp(-k2*t)-exp(-k1*t))
x[(1 + 7):n] <- x[(1 + 7):n] + x0[1:(n - 7)]
x[(1 + 21):n] <- x[(1 + 21):n] + x0[1:(n - 21)]
x[(1 + 35):n] <- x[(1 + 35):n] + x0[1:(n - 35)]
s1 <- ceiling(pmin(1, pmax(0, t - 7)))
s2 <- ceiling(pmin(1, pmax(0, t - 21)))
s3 <- ceiling(pmin(1, pmax(0, t - 35)))
m1 <- nls(x ~ k1/(k1-k2)*(exp(-k2*t)-exp(-k1*t)) +
s1 * k1/(k1-k2)*(exp(-k2*(t - 7))-exp(-k1*(t - 7))) +
s2 * k1/(k1-k2)*(exp(-k2*(t - 21))-exp(-k1*(t - 21))) +
s3 * k1/(k1-k2)*(exp(-k2*(t - 35))-exp(-k1*(t - 35))),
data = data.frame(t, x, s1, s2, s3),
start = list(k1 = 0.4, k2 = 0.2),
control = list(warnOnly = TRUE))
summary(m1)
confint(m1)

confint()が計算できないみたいだけど。