% 2016.7.4 for presen @ ACC2016 % copied and editted from simu_table_fixed.m, simu_table_sub_fixed_x0.m clear all; close all; s = tf('s'); %set(0, 'defaultAxesFontName', 'Timesroman'); %set(0, 'defaultAxesFontsize', 14); set(0, 'defaultAxesFontsize', 20); %set(0, 'defaultTextFontName', 'Timesroman'); % set param. %kp = 0.1; ki = 0.01; zeta = 0.02; wn = 2*pi*10; wf = 1; % case(a) kp = 0.1; ki = 0.01; zeta = -0.02; wn = 2*pi*10; wf = 1; % case(a) % plant alpha = -0.01; P = 2*alpha*wn*s/(s^2 + 2*zeta*wn*s + wn^2); P = ss(P); sample = 0.001; T = 100; % simulation time simple_demo blocks = find_system(bdroot,'BlockType','Scope'); set(0,'ShowHiddenHandles','on'); for m = 1:length(blocks) %set_param(blocks{m},'Open','on') set_param(blocks{m},'Open','on'); a = findobj(gcf,'type','axes'); %set(a,'Color','k','XColor','w','YColor','w','ColorOrder',[0 0 1;0 1 0;0 0 1;0 0 1;0 1 1]); set(a,'Color','w','XColor','k','YColor','k','ColorOrder',[1 0 0;0 1 0;0 0 1;0 0 0;0 1 1]); end set(0,'ShowHiddenHandles','off') r = 10; % reference amplitude x0 = [0.001; 0]; % initial non-zero state to start oscillation f = logspace(0, 3, 300)'; % frequency w = 2*pi*f; % angular freq.(rad/s) P_g = frd(P, w); % freq. resp. of plant % start the simulation sim('simple_demo'); fontsize = 20; figure(1); [hAx, hline1, hline2] = plotyy(t, [y, Y], t, G); % grid on; set(hline1(1), 'color', 'r'); set(hline1(2), 'color', 'g'); set(hAx(1), 'XLim', [0, T], 'YLim', [-40, 40], 'YTick', -40:10:40, 'fontsize', fontsize-2); set(hline2, 'color', 'b'); set(hAx(2), 'ycolor', 'b', 'XLim', [0, T], 'YLim', [-10, 10], 'YTick', -10:5:10, 'fontsize', fontsize-2); leg_handle = legend([hline1; hline2], '$y(t)$', '$Y_f(t)$', '$G(t)$'); set(leg_handle, 'fontsize', fontsize, 'interpreter', 'latex'); title(''); %axis([0, T, -50, 50]); xlabel('Time (s)', 'FontSize', fontsize, 'interpreter', 'latex'); %ylabel('Time (s)'); set(findobj('type','line'),'linewidth',1.0); %print -depsc timeresp.eps; %figure(6); %plot(t, eig_r, 'r'); %title('maximum real number of eigenvalu'); figure(2); n0 = min(find(t > t(end) - 1)); % index for time before 1(s) from finish plot(t(n0:end), y(n0:end), 'r', t(n0:end), Y(n0:end), 'g', t(n0:end), r, 'b--'); grid on; %axis([T-1, T, -15, 15]); hl = legend('$y(t)$', '$Y_f(t)$', '$Y^\ast$'); set(hl, 'interpreter', 'latex'); xlabel('Time (s)', 'FontSize', fontsize, 'interpreter', 'latex'); title(''); set(findobj('type','line'),'linewidth',1.0); h = get(2); set(h.Children(2), 'XLim', [T-1, T], 'YLim', [-15, 15], 'FontSize', fontsize-2);