function [Sf,Sp,Kmat] = smatgen(s,p,m,n,lambda) % % b.w. bequette % 28 Sept 00 % revised 2 Oct 00 % generates dynamic matrix and feedback gain matrix % assumes s = step response column vector % Sf = Dynamic Matrix for future control moves (forced) % Sp = Matrix for past control moves (free) % % first, find the dynamic matrix for j = 1:m; Sf(:,j) = [zeros(j-1,1);s(1:p-j+1)]; end % % now, find the matrix for past moves % for i = 1:p; Sp(i,:) = [s(i+1:n-1)' zeros(1,i-1)]; end % % find the feedback gain matrix, Kmat % Kmat = inv(Sf'*Sf + lambda*eye(m))*Sf';