# ps.print_stats()
# ps.print_callers(.5, 'init')
# print >> f, s.getvalue()

#apply control to real system
x0 = np.array([[0.0], [0.0]])
realsys = Pendulum(systeminfo['params'])
print 'running system...'
xtraj_sys = realsys.splitAngle(realsys.runSystem(x0, ddp.uk))
print 'running model...'
xtraj_model = sys.runSystem(x0_model, uk0)
print 'running system with feedback'
xtraj_sys_feedback = realsys.splitAngle(
    realsys.runSystemWithFeedback(x0,
                                  ddp.uk,
                                  ddp.K[:, :xdim, 0, :],
                                  xtraj_model[:xdim, :],
                                  feedback_split=True))

print 'plotting...'
fig, axes = plt.subplots(nrows=xdim + 1, ncols=1)
pd.DataFrame(ddp.uk.T).plot(ax=axes[0], legend=False, title='u')
for i in xrange(xdim):
    pd.DataFrame(np.vstack(
        [xtraj_model[i, -Horizon:], xtraj_sys[i, :],
         xtraj_sys_feedback[i, :]]).T,
                 columns=['model', 'sys',
                          'sys w feedback']).plot(ax=axes[i + 1], title=i)

sio.savemat(
    'pendulum_model_delayddp.mat', {