function ppp_RT_sim_compute (U)
## usage: [y,u] = ppp_RT_sim_compute (U)
##
## U PPP weight (column vector)
global system_name_sim i_ppp_sim x_0_sim y_sim u_sim A_u_sim simpar_sim
## System details -- defines simulation within ol interval
par = eval(sprintf("%s_numpar;", system_name_sim));
t = [0:simpar_sim.dt:simpar_sim.last];
n_t = length(t);
[n_x,n_y,n_u] = eval(sprintf("%s_def", system_name_sim));
[n_U,junk] = size(A_u_sim);
## Set up u_star
u_star = ppp_ustar(A_u_sim,1,t,0,0,n_u-n_U);
## Simulate
par(i_ppp_sim(:,3)) = U; # Update the simulation ppp weights
[y_sim,x] = eval(sprintf("%s_sim(x_0_sim, par, simpar_sim, u_star);", \
system_name_sim));
x_0_sim = x(n_t,:)'; # Extract state for next time
u_sim = u_star(:,1:n_U)*U;
endfunction