Contents
close all; clc; clear all;
With Rotor speed of 370 RPM
load smartrotor370.mat u y
RPM = 370;
Ts = 0.01;
u = detrend(u);
y = detrend(y);
N = size(y,1);
tt = 0:Ts:Ts*(N-1);
dp = [sin(RPM/60*2*pi*tt); cos(RPM/60*2*pi*tt);...
sin(2*RPM/60*2*pi*tt); cos(2*RPM/60*2*pi*tt)]';
ud = [u dp];
w = logspace(0.4,log10(1/(2*Ts)),2000)*2*pi;
[us,Du,ys,Dy] = sigscale(u,y); us=us';ys=ys';
[usd,Dud,ysd,Dyd] = sigscale(ud,y); usd=usd';ysd=ysd';
[Ga,ws] = spaavf(u,y,Ts,10,[],[],'hamming');
[Gad,wsd] = spaavf(ud,y,Ts,10,[],[],'hamming');
Ga = frd(Ga,ws);
Gad = frd(Gad,wsd);
n = 12;
p = 20;
f = 20;
[S,X] = dordvarx(us,ys,f,p,'tikh','gcv');
figure(2), semilogy(S,'c*')
x = dmodx(X,n);
[Ai,Bi,Ci,Di] = dx2abcdk(x,us,ys,f,p);
Ci=Dy*Ci; Di=Dy*Di/Du; Bi=Bi/Du;
sys_idp=ss(Ai,Bi,Ci,Di,Ts);
[Sd,Xd] = dordvarx(usd,ysd,f,p,'tikh','gcv');
figure(2), hold on, semilogy(Sd,'c+'), hold off;
x = dmodx(Xd,n);
[Aid,Bid,Cid,Did] = dx2abcdk(x,usd,ysd,f,p);
Cid=Dyd*Cid; Did=Dyd*Did/Dud; Bid=Bid/Dud;
sys_idpd=ss(Aid,Bid,Cid,Did,Ts);
figure(100)
[MAG1, PHASE1,ww1]=bode(sys_idp(1:2,1:2),w);
[MAG2, PHASE2,ww2]=bode(sys_idpd(1:2,1:2),w);
[MAGd1, PHASEd1,wwd1]=bode(Ga(1:2,1:2),w);
[MAGd2, PHASEd2,wwd2]=bode(Gad(1:2,1:2),w);
h1=subplot(2,2,1)
loglog(ww1/2/pi,squeeze(MAG1(1,1,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(1,1,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(1,1,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(1,1,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
ylabel('MFC blade 1 [V]')
title('From Flap blade 1 [V]')
h1=subplot(2,2,2)
loglog(ww1/2/pi,squeeze(MAG1(1,2,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(1,2,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(1,2,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(1,2,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
title('From Flap blade 2 [V]')
h1=subplot(2,2,3)
loglog(ww1/2/pi,squeeze(MAG1(2,1,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(2,1,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(2,1,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(2,1,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
ylabel('MFC blade 2 [V]')
xlabel('Frequency [Hz]')
h1=subplot(2,2,4)
loglog(ww1/2/pi,squeeze(MAG1(2,2,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(2,2,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(2,2,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(2,2,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
xlabel('Frequency [Hz]')
h1 =
343.0194
h1 =
350.0194
h1 =
356.0194
h1 =
363.0194
With Rotor speed of 430 RPM
load smartrotor430.mat
RPM = 430;
Ts = 0.01;
u = detrend(u);
y = detrend(y);
N = size(y,1);
tt = 0:Ts:Ts*(N-1);
dp = [sin(RPM/60*2*pi*tt); cos(RPM/60*2*pi*tt);...
sin(2*RPM/60*2*pi*tt); cos(2*RPM/60*2*pi*tt)]';
ud = [u dp];
w=logspace(0.4,log10(1/(2*Ts)),2000)*2*pi;
[us,Du,ys,Dy] = sigscale(u,y); us=us';ys=ys';
[usd,Dud,ysd,Dyd] = sigscale(ud,y); usd=usd';ysd=ysd';
spectral analysis
[Ga,ws] = spaavf(u,y,Ts,10,[],[],'hamming');
[Gad,wsd] = spaavf(ud,y,Ts,10,[],[],'hamming');
Ga = frd(Ga,ws);
Gad = frd(Gad,wsd);
linear subspace estimate (PBSIDopt)
n = 12;
p = 20;
f = 20;
[S,X] = dordvarx(us,ys,f,p,'tikh','gcv');
figure(2), semilogy(S,'c*')
x = dmodx(X,n);
[Ai,Bi,Ci,Di] = dx2abcdk(x,us,ys,f,p);
Ci=Dy*Ci; Di=Dy*Di/Du; Bi=Bi/Du;
sys_idp=ss(Ai,Bi,Ci,Di,Ts);
[Sd,Xd] = dordvarx(usd,ysd,f,p,'tikh','gcv');
figure(2), hold on, semilogy(Sd,'c+'), hold off;
x = dmodx(Xd,n);
[Aid,Bid,Cid,Did] = dx2abcdk(x,usd,ysd,f,p);
Cid=Dyd*Cid; Did=Dyd*Did/Dud; Bid=Bid/Dud;
sys_idpd=ss(Aid,Bid,Cid,Did,Ts);
figure(100)
[MAG1, PHASE1,ww1]=bode(sys_idp(1:2,1:2),w);
[MAG2, PHASE2,ww2]=bode(sys_idpd(1:2,1:2),w);
[MAGd1, PHASEd1,wwd1]=bode(Ga(1:2,1:2),w);
[MAGd2, PHASEd2,wwd2]=bode(Gad(1:2,1:2),w);
h1=subplot(2,2,1)
loglog(ww1/2/pi,squeeze(MAG1(1,1,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(1,1,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(1,1,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(1,1,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
ylabel('MFC blade 1 [V]')
title('From Flap blade 1 [V]')
h1=subplot(2,2,2)
loglog(ww1/2/pi,squeeze(MAG1(1,2,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(1,2,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(1,2,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(1,2,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
title('From Flap blade 2 [V]')
h1=subplot(2,2,3)
loglog(ww1/2/pi,squeeze(MAG1(2,1,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(2,1,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(2,1,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(2,1,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
ylabel('MFC blade 2 [V]')
xlabel('Frequency [Hz]')
h1=subplot(2,2,4)
loglog(ww1/2/pi,squeeze(MAG1(2,2,:)),'color',[0.8,0.8,0.8]); hold on
loglog(ww2/2/pi,squeeze(MAG2(2,2,:)),'color',[0,0,0]); hold on
loglog(ww1/2/pi,squeeze(MAGd1(2,2,:)),'color',[0.8,0.8,0.8],'linestyle','-.'); hold on
loglog(ww2/2/pi,squeeze(MAGd2(2,2,:)),'color',[0,0,0],'linestyle','-.'); hold on
axis([2.5 50 1e-4 0.03 ])
set(h1,'YTick',[1e-4 1e-3 1e-2 ])
set(h1,'XTick',[ 2 3 4 5 6 7 8 9 10 20 30 40 50])
set(h1,'YTickLabel',[ {'{-4}'} {'{-3}'} {'{-2}'} {'{2}'}])
set(h1,'XTickLabel',[ {''} {''} 4 {''} {''} {''} {''} {''} {''} {''} {''} {''} {''}])
xlabel('Frequency [Hz]')
h1 =
343.0194
h1 =
350.0194
h1 =
356.0194
h1 =
363.0194