图像基本配置

% 图像基本参数
figure(1);    %打开图像框
set(gca, 'FontName','Times New Roman', 'FontSize',14);    %设置字体大小
xlabel('Time (s)','FontSize',14);        %x轴坐标名称和字体大小设置
ylabel('DC-Link Voltage(V)','FontSize',14);        %y轴坐标名称和字体大小设置
set(gcf,'unit','centimeters','position',[8 6 14 10]);  %设置图像大小,前两个数,离屏幕左下角距离,后俩图像大小,单位cm
set(gca,'Position',[0.2 0.3 0.7 0.5]);               %设置图比例大小,前两个数位置,后俩大小
xlim([0.8, 1.6]);                    %xy轴的区间范围限制
ylim([710, 770]);
set(gca,'ytick',710:20:770)          %设置y区间跨度 
grid on;                               %开启网格线
hold on                                %图像保持
set(gca, 'GridLineStyle', ':','LineWidth',1,'GridAlpha',0.3);  % 设置网格线参数、类别、宽度
box on;                                %图像边框开启

当仿真完之后,选择画图区间,选择t的范围。

% 设置区间   存在0.15s偏差   不一定,自己的代码问题,可忽略
t0 = 0.2;                               % 起始值
t0 = t0 - 0.15;                         %没偏差就不设置
tf = 2.35;                               %结束值
tf = tf + 0.15;
dt = 1e-6;                               %仿真步长,需要后面根据这个计算时间
plotStartRow = floor(t0 / dt);            %取数的下界
plotEndRow = floor(tf / dt);            %上界,得到要取多少个数
plotRowNum = plotEndRow - plotStartRow;    

% 作PI结果图
data = PI_U_OUT;                        %数据源,需要设置simulink的示波器输出
time = data(:,1);                        %输出后第一列是时间
vol = data(:,2);                        %第二列是仿真结果数
plot(time(plotStartRow:plotEndRow,:), vol(plotStartRow:plotEndRow,:), 'Color','r', 'LineWidth',1, 'LineStyle','-');        %取出来第一列t,和第二列仿真结果,并画图,其他是参数

到这已经画出来了结果图,注意时间设置范围别大于仿真时间。

有时候需要将结果图局部放大,方法是新设置一个坐标轴系,在新的轴上画。

%小图
axes('Position',[0.65,0.4,0.21,0.15]);    %新的轴,前两个数距离左下角的比例,后两个是小图的比例,当前设置是偏右侧中下的位置,一个小的长方形
set(gca, 'FontName','Times New Roman', 'FontSize',14);%新的图属性设置
hold on
grid on;
box on;
% 作PI结果图   在这取要小图显示的范围数据就行,要设置xy的区间的话和大图设置是一样的
data = PI_U_OUT;                        %数据源
time = data(:,1);
vol = data(:,2);
plot(time(plotStartRow:plotEndRow,:), vol(plotStartRow:plotEndRow,:), 'Color','r', 'LineWidth',0.3, 'LineStyle','-');

xlim([1.5, 1.6]);
ylim([749.5, 750.5]);   %小图区间限制

现在应该就已经画出来要的图了,最后pdf保存,方便在latex文章中用,如果双击放大了图像,这时候运行下面代码会图像变了大小,可以手动拖窗口放大,别直接全屏

fig = gcf;
fig.PaperPositionMode = 'auto';
fig_pos = fig.PaperPosition;
fig.PaperSize = [fig_pos(3) fig_pos(4)];
print('-painters','-dpdf','-r600','负载波动')    %前面不管,最后一个参数是pdf名字

要注意很多生成后要放在论文里面,要调整字体啥的比例大小,上面设置可能不合适,需要自己改改。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐