% freqresp.m % frequency response experiment % plant input: torque command T_M (Nm) % plant output: motor speed omega_M (rad/s) clear all; close all; % format of data file: % 1st column ... frequency (Hz) % 2nd column ... gain % 3rd column ... phase (deg) load frdata_small_offset0.dat; load frdata_small_offset5.dat; load frdata_small_offset10.dat; load frdata_large_offset0.dat; load frdata_large_offset5.dat; load frdata_large_offset10.dat; P1_jw = frdata_small_offset0(:,2) .*exp(i*pi/180.0*frdata_small_offset0(:,3)); P2_jw = frdata_small_offset5(:,2) .*exp(i*pi/180.0*frdata_small_offset5(:,3)); P3_jw = frdata_small_offset10(:,2).*exp(i*pi/180.0*frdata_small_offset10(:,3)); P4_jw = frdata_large_offset0(:,2) .*exp(i*pi/180.0*frdata_large_offset0(:,3)); P5_jw = frdata_large_offset5(:,2) .*exp(i*pi/180.0*frdata_large_offset5(:,3)); P6_jw = frdata_large_offset10(:,2).*exp(i*pi/180.0*frdata_large_offset10(:,3)); f = frdata_small_offset0(:,1); % frequency grid is commonly used for all frequency response experiments w = 2*pi*f; P1_g = frd(P1_jw, w); P2_g = frd(P2_jw, w); P3_g = frd(P3_jw, w); P4_g = frd(P4_jw, w); P5_g = frd(P5_jw, w); P6_g = frd(P6_jw, w); figure(1); bode(P1_g, 'r.-', P2_g, 'g.-', P3_g, 'b.-', P4_g, 'm.-', P5_g, 'y.-', P6_g, 'c.-'); legend('small, offset=0', 'small, offset=5', 'small, offset=10', ... 'large, offset=0', 'large, offset=5', 'large, offset=10'); %bode(P2_g, 'g.-', P3_g, 'b.-', P5_g, 'y.-', P6_g, 'c.-'); axis([1, 2000, -720, 90]); % phase h = get(1); axis(h.Children(4),[1, 2000, -50, 50]); % gain save freqresp.mat P1_g P2_g P3_g P4_g P5_g P6_g f w