⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wu_fangzhen2_observability_jieshou_12jie.m

📁 这些程序都是经过本人和许许多多工作过学习过的老师同学
💻 M
字号:
clc;
clear all;

format long;

fid1= fopen('E:\孙国伟\work\data61.txt','r');
data1=fscanf(fid1,'%f',[12,30]);

fid2= fopen('E:\孙国伟\work\data62.txt','r');
data2=fscanf(fid2,'%f',[12,30]);

fid3= fopen('E:\孙国伟\work\data63.txt','r');
data3=fscanf(fid3,'%f',[12,30]);

fid4= fopen('E:\孙国伟\work\data64.txt','r');
data4=fscanf(fid4,'%f',[12,30]);

fid5= fopen('E:\孙国伟\work\data65.txt','r');
data5=fscanf(fid5,'%f',[12,30]);

fid6= fopen('E:\孙国伟\work\data66.txt','r');
data6=fscanf(fid6,'%f',[12,30]);

fid7= fopen('E:\孙国伟\work\data67.txt','r');
data7=fscanf(fid7,'%f',[12,30]);

fid8= fopen('E:\孙国伟\work\data68.txt','r');
data8=fscanf(fid8,'%f',[12,30]);

fid9= fopen('E:\孙国伟\work\data69.txt','r');
data9=fscanf(fid9,'%f',[12,30]);

fid10= fopen('E:\孙国伟\work\data610.txt','r');
data10=fscanf(fid10,'%f',[12,30]);

fid11= fopen('E:\孙国伟\work\data611.txt','r');
data11=fscanf(fid11,'%f',[12,30]);

fid12= fopen('E:\孙国伟\work\data612.txt','r');
data12=fscanf(fid12,'%f',[12,30]);

%系统的观测矩阵C阵

A=zeros(12,12,30);

A(1,:,:)=data1;
A(2,:,:)=data2;
A(3,:,:)=data3;
A(4,:,:)=data4;
A(5,:,:)=data5;
A(6,:,:)=data6;
A(7,:,:)=data7;
A(8,:,:)=data8;
A(9,:,:)=data9;
A(10,:,:)=data10;
A(11,:,:)=data11;
A(12,:,:)=data12;

%系统的观测矩阵C阵

C=zeros(5,12);

C(1,4)=1;
C(2,5)=1;
C(3,1)=1;
C(4,2)=1;
C(5,3)=1;

B=eye(12);

a=zeros(12,12,30);

%离散化

for i=1:30
    
    [a(:,:,i),b]=c2d(A(:,:,i),B,2);

end

Q=[C;C*a(:,:,1);C*a(:,:,1)^2;C*a(:,:,1)^3;C*a(:,:,1)^4;C*a(:,:,1)^5;C*a(:,:,1)^6;C*a(:,:,1)^7;C*a(:,:,1)^8;C*a(:,:,1)^9;C*a(:,:,1)^10;C*a(:,:,1)^11];

m=rank(Q);

fprintf('%d\n\n',m);

y=[0.2 0.2 0.1*60 0.1*60 0.3*60]';

Y=zeros(60,30);

for i=1:30
    
Y(:,i)=[y;y;y;y;y;y;y;y;y;y;y;y];

end

Y1=Y(:,1);

for i=2:15
    
    Q=[Q;C;C*a(:,:,i);C*a(:,:,i)^2;C*a(:,:,i)^3;C*a(:,:,i)^4;C*a(:,:,i)^5;C*a(:,:,i)^6;C*a(:,:,i)^7;C*a(:,:,i)^8;C*a(:,:,i)^9;C*a(:,:,i)^10;C*a(:,:,i)^11];
    
    Y1=[Y1;Y(:,i)];
    
end

r1=rank(Q([1:10,66+60*13:67+60*13],:));

fprintf('%d\n\n',r1);

[u,s,v]=svd(Q);

r=rank(Q);

fprintf('%d\n\n',r);


for i=1:12
    
    fprintf('%20.14f\n',s(i,i));
    
end

x01=u(:,1)'*Y1*v(:,1)/s(1,1);
x02=u(:,2)'*Y1*v(:,2)/s(2,2);
x03=u(:,3)'*Y1*v(:,3)/s(3,3);
x04=u(:,4)'*Y1*v(:,4)/s(4,4);
x05=u(:,5)'*Y1*v(:,5)/s(5,5);
x06=u(:,6)'*Y1*v(:,6)/s(6,6);
x07=u(:,7)'*Y1*v(:,7)/s(7,7);
x08=u(:,8)'*Y1*v(:,8)/s(8,8);
x09=u(:,9)'*Y1*v(:,9)/s(9,9);
x10=u(:,10)'*Y1*v(:,10)/s(10,10);
x11=u(:,11)'*Y1*v(:,11)/s(11,11);
x12=u(:,12)'*Y1*v(:,12)/s(12,12);

figure(1)

subplot(3,3,1)
bar(x01);
legend('奇异值=15241.94176322797100');
subplot(3,3,2)
bar(x02);
legend('奇异值=15149.74258024839800');
subplot(3,3,3)
bar(x03);
legend('奇异值=2082.22204313185880');
subplot(3,3,4)
bar(x04);
legend('奇异值=440.60612985842613');
subplot(3,3,5)
bar(x05);
legend('奇异值=438.39514338661138');
subplot(3,3,6)
bar(x06);
legend('奇异值=24.22620950830800');
subplot(3,3,7)
bar(x07);
legend('奇异值=13.39260864660223');
subplot(3,3,8)
bar(x08);
legend('奇异值=11.46580009587701');
subplot(3,3,9)
bar(x09);
legend('奇异值=10.99366707083990');

figure(2)

subplot(3,3,1)
bar(x10);
legend('奇异值=5.21956187380607');
subplot(3,3,2)
bar(x11);
legend('奇异值=5.21512578348558');
subplot(3,3,3)
bar(x12);
legend('奇异值=0.01748941848298');
 
 
  
  
  
    
    
    
    
    
    
   

 
  
  
   
    
    
    
    
    
  









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -