% name random variables y = RV({'y'},1); u1 = RV({'u1'},1); u2 = RV({'u2'},1); % create f(y_t| y_{t-3}, u_{t-1}) fy.class = 'mlnorm'; fy.rv = y; fy.rvc = RVtimes([y,u1,u2], [-3, 0, 0]); fy.A = [0.5, -0.9, 0.9]; fy.const = 0; fy.R = 1e-2; DS.class = 'PdfDS'; DS.pdf = fy; % create ARX estimator A1.class = 'ARX'; A1.rv = y; A1.rgr = RVtimes([y,u1],[-3,0]) ; % correct structure is {y,y} A1.options ='logbounds,logll'; A1.frg = 0.95; A2=A1; A2.rgr = RVtimes([y,u2],[-3,0]) ; % correct structure is {y,y} C1.class = 'LQG_ARX'; C1.ARX = A1; C1.Qu = 0.1*eye(1); C1.Qy = 1*eye(1); C1.yreq = 1; C1.horizon = 100; C2=C1; C2.ARX = A2; M= controlloop(DS,{C1,C2}); %%%%%%%%%%%%%%%%%%%%%%%%%%%% % PLOTS figure(1); hold off subplot(1,2,1); plot(M.DS_y); subplot(1,2,2); plot(M.DS_u1); hold on; plot(M.DS_u2); figure(2); hold off plot(M.Ctrl0_apost_mean_theta); hold on plot(M.Ctrl0_apost_ub_theta,':'); plot(M.Ctrl0_apost_lb_theta,':'); set(gca,'YLim',[-4,2]); figure(3); hold off plot(M.Ctrl1_apost_mean_theta); hold on plot(M.Ctrl1_apost_ub_theta,':'); plot(M.Ctrl1_apost_lb_theta,':'); set(gca,'YLim',[-2,3]);