老师给的数据是三个txt文件,那么如何进行画图?
首先把txt导入成mat文件。
点击导入数据:
然后变成这样:
点击你要导入的数据txt。
显示导入大型也没事,不要怕,很快。然后确认选中所有数据。
然后数据类型选成数值矩阵,导入所选内容,选择导入数据。就导入完了,把文件命名好,后面load就很方便。
下面是画二维图的一些代码,后面你需要啥画啥就行了。
至于步长按0.001s仿真的,你只需要把t也从0.001按步长取到95就行了,然后正常画图。
下面代码很乱,因为我是随时修改的。但是聪明的你一定能看懂。
close all;
%画轨迹
clc;
close all;
load('data0.mat');
load('datapid.mat');
t=data0(1:95000,1);%提前预存空间
t=0.001:0.001:95;%时间
ny=data0(1:95000,21);
nz=data0(1:95000,22);
ax=data0(1:95000,26);
ay=data0(1:95000,27);
az=data0(1:95000,28);
vx=data0(1:95000,7);
vy=data0(1:95000,8);
vz=data0(1:95000,9);
x=data0(1:95000,10);
y=data0(1:95000,11);
z=data0(1:95000,12);
ny1=datapid(1:95000,21);
nz1=datapid(1:95000,22);
ax1=datazsy(1:95000,26);
ay1=datazsy(1:95000,27);
az1=datazsy(1:95000,28);
vx1=datazsy(1:95000,7);
vy1=datazsy(1:95000,8);
vz1=datazsy(1:95000,9);
x1=datazsy(1:95000,10);
y1=datazsy(1:95000,11);
z1=datazsy(1:95000,12);
alafa=data0(1:95000,23);%攻角
alafa1=datazsy(1:95000,23);
beta=data0(1:95000,24);%侧滑角
beta1=datazsy(1:95000,24);
qj=data0(1:95000,13);%弹道倾角
qj1=datazsy(1:95000,13);
pj=data0(1:95000,14);%弹道偏角
pj1=datazsy(1:95000,14);
fyj=data0(1:95000,18);%俯仰角
fyj1=datazsy(1:95000,18);
phj=data0(1:95000,19);%偏航角
phj1=datazsy(1:95000,19);
gzj=data0(1:95000,20);%俯仰角
gzj1=datazsy(1:95000,20);
wfy=data0(1:95000,15);%俯仰角速度
wfy1=datazsy(1:95000,15);
wph=data0(1:95000,16);%偏航角速度
wph1=datazsy(1:95000,16);
wgz=data0(1:95000,17);%俯仰角速度
wgz1=datazsy(1:95000,17);
lo=data0(1:95000,1);%jing度
lo1=datazsy(1:95000,1);
la=data0(1:95000,2);%wei度
la1=datazsy(1:95000,2);
v=data0(1:95000,5);%su度
v1=datazsy(1:95000,5);
m=data0(1:95000,25);%质量
m1=datazsy(1:95000,25);
figure
plot(t,nz,'-');
hold on;
plot(t,nz1,'-');
grid on;
xlabel('t/s');
ylabel('过载nz')
legend('正常','故障+PID');
% title('位置y');
然后是一个三维的轨迹图绘制:
close all;
%画轨迹
clc;
close all;
load('data0.mat');
load('datazsy.mat');
x=data0(1:95000,10);
y=data0(1:95000,11);
z=data0(1:95000,12);
x1=datazsy(1:95000,10);
y1=datazsy(1:95000,11);
z1=datazsy(1:95000,12);
figure
plot3(x,y,z,'-');
hold on;
plot3(x1,y1,z1,'-');
grid on;
xlabel('x');
ylabel('y');
zlabel('z');
legend('正常','故障+自适应');