硕士学位论文写作分享

硕士学位论文写作分享

硕士学位论文写作—工作流程

本文分享了硕士学位论文的写作经历,整个流程可以分为三部分,其中的第二、第三部分是一个迭代修改的过程。整个硕士学位论文写作,比较考验综合能力,比如数据处理及表达、原理图绘制、论文格式、写作要求的宏观把握(这一点发小论文是很好的训练方式),我是因为平常有积累,然后有小论文加持,所以整个写作过程是以一个舒服的节奏向前推进的,相比于本科毕设的血泪史,可谓是游刃有余。在整个过程中,让人意外的事情就是文档崩溃了,一些不知名的bug(伴随着图片修改,需要在word文档里反复粘贴复制,怀疑是这个),在关掉文档后再打开,整个文档字体格式丢失,然后就得推倒重来,得益于论文备份的好习惯,损失没有太惨重,印象中最严重的一次是浪费了大半天的心血。

论文版次:至少15版

文档崩溃次数:8次

一、素材准备

时间开销:印象中时间极短

1、整合写作材料,这个过程花了一些时间,但不多,因为之前有过相关的积累(博小论文、零散的总结文档、算法的公式推导等都早早准备好了)

2、寻找一个好的论文模板,这样论文写起来,就不用过于操心格式的问题,可以专注于写作内容本身(和LaTex的设计思想蛮像的)。这件事是从本科毕设吸取的教训,当时吃了没用模板的亏(本科写作的’血泪史’)。这里使用模板需要注意一个问题,就是需要想明白一个好的论文模板需要具备哪些东西,我能想到的就是下面这些,越全面的话,后期写作越顺利,最好有学校的官方写作格式说明,后期调格式有一个参照

a、各级标题符合写作要求

b、可以快速生成格式正确的图注、表注,正文中能实现图片题号的交叉引用(使用word的交叉引用实现)

c、公式的编号及交叉引用(使用公式编辑器AxMath,使用技巧可以上B站搜索,有官方教学视频)

d、参考文献的自动生成、文献在文中的超链接引用(关于这个中文文献引用,然后需要反复增删文献条目的问题我没有很好的解决,目前没有实现一键修改,因为学校的参考文献要求和国标有点差异,所以自动生成的文献没法直接用,我在写作的时候是从谷歌学术复制的参考文献,在一个单开的文档调出学校需要的格式,然后一条条替换正文里利用Bibtex4Word自动生成的文献条目,读者可以试试文献管理软件,比如Endnote)

注:参考文献可参考CSDN博客--Word中使用Bibtex4Word快速插入规范的参考文献

至于别的细枝末节,比如页眉页脚、页面编号等等,因为是模板,也没啥大问题,直接套用就OK

3、列写作提纲给老师看,让老师把把关,看工作量够不够,然后补采相关的实验数据

4、定下文章整体的写作风格,论文原理图的配色、实验图的配色及图片尺寸等问题,

a、实验图片的标签使用中文英文混排(如:时间(s)),由于正文字体是小四(12pt),一般图片里的字体比正文小一号,就是10.5pt,原理图和实验图的线条使用1pt(磅),

b、原理图中的箭头建议使用燕尾箭头,原理图使用Visio绘制,原理图建议导出.emz格式,实验波形通过matlab导出.svg格式,在Visio中处理后导出.emz格式

c、图片的尺寸可以参考配套代码中的参数,宽度尺寸调整为11.7cm,在调图片尺寸的时候需保证一点,图片中的字体在word中的最终显示效果需保证为10.5pt

d、文章整体采用单图摆放,与正文相比,图片的宽度尺寸方向上左右各空出三个字(正文字体大小12pt)的距离比较合适

以上四点不分先后,可以交叉进行

二、论文写作

时间开销:2个月

一定要先把写作提纲写出来,才可以正式写作。 完成论文初稿的时间开销正好2个月,其中后一个月过年回家,也没咋认真写。前面强调写完提纲后补采实验数据是为了应对过年回家的情况,电机控制是需要做实验的学科,这没啥说的,家里一般也没实验条件让你采数据,在家里能做的就是文字工作了。

为了统一全文绘图风格,把文中的所有的实验波形和原理图都重新画了一遍,文字按照自己想的写出来就行了。初稿写完之前不用想着把每一句话都写的很好,这个阶段能将你头脑里的想法表达出80%就可以了,后面还有论文修改环节,对表达不好的地方改改就好了。一般修改完后,再回头看,初稿一般都比较烂,当然也有高手能做到一气呵成。

三、论文修改

时间开销:近2个月

这个没啥说的,写完后改论文,自己改完同学改,修改多次论文就基本成型,整个修改过程花了近两个月,当然中间也搞其它的事情,最后简单的查个重,就提交论文了。

自己修改论文,有一个小技巧,自己大声读出来,读的不顺的地方,没啥说的,就是写的有问题,改就行了。包括修改同学的文章也是,一边读一边修改。来来回回修改几遍,就差不多了,最后改完再返给老师,老师帮忙改改英文摘要,和老师往返几次,就接近定稿了,最后在提交之前,反复检查格式问题。

以上是对整个硕士论文写作流程的概述,接下来分享论文写作中使用的代码,这里需要提前说明下,代码针对性较强,适合处理从simulink中导出的.mat和.xlsx格式的数据,若想处理其它的数据类型文件,需要改造数据加载区的代码块

硕士学位论文写作—配套代码

  • 代码使用前提—安装MATLAB,若想把多段代码合在一个文件里,可以使用switch、case语句实现。
1、基础代码

此代码是基础代码,后续的代码基于此代码改造。

%% code describtion
%-----------------------------
%   author: PEZHANG
%   time: 2022-5-3
%   data type:.mat and .xlsx export in data inspector of simulink
%   describtion: This code is used for processing data stored .mat and .xlsx export in data inspector of simulink
%               the export figure has no x- and y- label and legned, these can be added in Chinese in Visio software.
%-----------------------------
%   some suggestions
%   1、recommended line color
%   #D62728 red-红色   #2CA02C  green-绿色   #1F77B4  blue-蓝色   #FF7F0E  orange-橙色  #9467BD  purple-紫色
%   2、recommended linewidth is 1pt, and the default linewidth in matlab is 0.5pt
%-----------------------------
    
%% data loading area-数据加载
clear;
load('no_laod_2022_1_17_average_speed.mat')
figure
plot(data{6}.Values,'Color','#D62728','linestyle','--','linewidth' , 1)
hold on
plot(data{7}.Values,'Color','#1F77B4','linewidth' , 1)

%if you want process .xlsx data, and plot figure, you can use following code 
%.xslx export in s
%   result = xlsread('test_2022_5_3.xlsx');
%   figure
%   plot(result(1:1000000,1),result(1:1000000,4),'Color','#1F77B4')
    
%% figure style control area-格式控制
% limit the x- and y- range
% first time run code suggestion annotating this line code, and modify according to actual values
% axis([0 0.6 0 50])

% set the x- and y- label is blank
% because my PC can't present Chinese in matlab figure, so I export the .svg figure, and process the figure in Visio
xlabel('');
ylabel('');

% if your PC support matlab present the Chinese, you can use the follow code
%   xlabel(['\fontsize{15}\fontname{宋体}调制度\fontname{Times new roman}(M)']);
%   ylabel(['\fontsize{15}\fontname{宋体}零序环流峰值\fontname{Times new roman}(Izmax)']);

%if your thiese support the english label, you can use the follow code
%   xlabel('Time (s)','FontName','Times New Roman','FontWeight','normal','FontSize',10.5);
%   ylabel('Speed (r/min)','FontName','Times New Roman','FontWeight','normal','FontSize',10.5);
%   lgd = legend({'real speed','estimated speed'},'FontSize',10.5,'TextColor','black','Location','best');
%   lgd.NumColumns = 1;

% set the title is blank
title('')

%reset the x tick label
%   set(gca,'XTicklabel',{'0','0.5','1.0','1.5','2.0'})

%set the size of figure and position,
set(gcf,'unit','centimeters','position',[30 15 17 7]);

%set the fontsize of axis number, because the fontsize in figure of thesis
%is 10.5pt, and the figure in word will comprecess figure size
set(gca,'FontName','Times New Roman','FontSize',14.5,'FontWeight','normal');

%the following code can remove the background color and outline of legend
%   legend('boxoff')

%set the grid line
grid on
set(gca,'gridlinestyle',':','Gridalpha',1);

%export the .svg figure
print('-dsvg','-r300','平均速度法-速度波形图')

运行代码导出的图片,建议导出svg格式,内存较小且清晰度较高,而tiff和emf格式因内存较大,因此放弃在论文中使用。
在这里插入图片描述

在Visio中添加x轴、y轴标签,图例等信息后导出图片,导出格式选择emz,将图片放至word中后把宽度尺寸调整为11.7cm,此时图中字体大小接近10.5pt,调整是为了让图片中的字体大小以10.5pt显示,从而满足学位论文制图要求。

在这里插入图片描述

2、计算位置误差的平均误差、均方根误差、最大误差、最小误差
int_error = data{22}.Values.data(90000:130000,1);
a_mean = mean(int_error);
a_square = int_error.^2;
N = size(a_square,1);

RMSE = sqrt(sum(a_square,1)/N)
MAX = max(int_error)
MIN = min(int_error)
3、截取稳态数据分析的代码

格式控制参考基础代码

AA = data{9}.Values.data(2125000:2925000,1);
LRP.signals.values = AA;
Fs=1000000;                       %离散系统采样频率,更改采样频率需赋值
Ts = 1/Fs;
L = size(LRP.signals.values,1);  %查询size(ia.signals.values)第一个维度的长度,即数据的个数(长度)
t = (0:L-1)*Ts;
% t = t';
LRP.time = t;
plot(t,AA,'Color','#1F77B4','linewidth',1)

hold on
BB = data{7}.Values.data(2125000:2925000,1);
LRP.signals.values = BB;
Fs=1000000;                       %离散系统采样频率,更改采样频率需赋值
Ts = 1/Fs;
L = size(LRP.signals.values,1);  %查询size(ia.signals.values)第一个维度的长度,即数据的个数(长度)
t = (0:L-1)*Ts;
% t = t';
LRP.time = t;
plot(t,BB,'Color','#D62728','linewidth',1)
4、柱状图绘制代码
%   红色 [.8392 .1529 .1568] 
%   绿色 [.1725 .6275 .1725] 
%   蓝色 [.1216 .4667 .7059] 
%   橙色 [1 .4980 .0549] 
%   紫色 [.5804 .4039 .7412] 
%   #D62728 红色   #2CA02C  绿色   #1F77B4  蓝色
%   #FF7F0E  橙色  #9467BD  紫色

y=[10 30 50];
z1=[0.081 0.017;0.063 0.019;0.14  0.028];
figure
alpha = bar(y,z1,0.618);
axis([0 60 0 0.2])
alpha(1).FaceColor = [.8392 .1529 .1568];
alpha(2).FaceColor = [.1725 .6275 .1725];
alpha(1).EdgeColor = 'none';
alpha(2).EdgeColor = 'none';

xtips1 = alpha(1).XEndPoints;
ytips1 = alpha(1).YEndPoints;
labels1 = string(alpha(1).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
    'VerticalAlignment','bottom','FontName','Times New Roman','FontSize',14.5,'FontWeight','normal')

xtips1 = alpha(2).XEndPoints;
ytips1 = alpha(2).YEndPoints;
labels1 = string(alpha(2).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
    'VerticalAlignment','bottom','FontName','Times New Roman','FontSize',14.5,'FontWeight','normal')

set(gcf,'unit','centimeters','position',[30 15 17 7]);
set(gca,'FontName','Times New Roman','FontSize',14.5,'FontWeight','normal');
grid on;
xlabel('');
ylabel('');
print('-dsvg','-r300','第三章实验-不同参考转速时施加持续负载扰动的均方根误差')
5、二次处理实验数据

实验数据没有单独采样速度误差,后期使用代码进行计算获取,并对速度误差进行FFT分析。

clear;
load('30rpm_NO_load_250Hz_001_1.1delta_time.mat')

figure
AA = data{33}.Values.data(75001:95000,1);
BB = data{21}.Values.data(75001:95000,1);

LRP.signals.values = AA;
Fs = 10000;                       %离散系统采样频率,更改采样频率需赋值
Ts = 1/Fs;
L = size(LRP.signals.values,1);  %查询size(ia.signals.values)第一个维度的长度,即数据的个数(长度)
t = (0:L-1)*Ts;
% t = t';
LRP.time = t;
CC = AA-BB;

plot(t,CC,'Color','#2CA02C','linewidth',1)

axis([0 2 -10 10])
xlabel('');
ylabel('');
title('')

set(gcf,'unit','centimeters','position',[30 15 17 3.5]);
set(gca,'FontName','Times New Roman','FontSize',14.5,'FontWeight','normal');
grid on
set(gca,'gridlinestyle',':','Gridalpha',1);
print('-dsvg','-r300','第四章实验-参考转速30rpm空载时的速度误差-对比算法')

Y = fft(BB);                                %FFT分析,获得数据是复数,a+bi形式
P2 = abs(Y/L);                              %DFT计算出的幅值不是真实的幅值,需要进行幅值变换,基频除以L,非基频除以L/2
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);                %非基频的正序分量转化为正常幅值
f = Fs*(0:(L/2))/L;
figure
plot(f,P1,'Color','#9467BD','linewidth',1)
xlim([0 50])

set(gcf,'unit','centimeters','position',[30 15 17 7]);%设置画布大小和位置
set(gca,'FontName','Times New Roman','FontSize',14.5,'FontWeight','normal');%坐标轴数字大小 修改之前是16
grid on
set(gca,'gridlinestyle',':','Gridalpha',1);
print('-dsvg','-r300','第四章实验-参考转速30rpm空载时估计速度的FFT分析结果-对比算法')
6、FFT分析代码

用于分析定子电流中5、7次谐波

clear;
load('30rpm_contant_load_1N_250Hz_001_gamma.mat')
AA = data{2}.Values.data(285001:300000,1);

LRP.signals.values = AA;
Fs=10000;                       %离散系统采样频率,更改采样频率需赋值
Ts = 1/Fs;
L = size(LRP.signals.values,1);  %查询size(ia.signals.values)第一个维度的长度,即数据的个数(长度)
t = (0:L-1)*Ts;
% t = t';
LRP.time = t;

Y = fft(AA);                                %FFT分析,获得数据是复数,a+bi形式
P2 = abs(Y/L);                              %DFT计算出的幅值不是真实的幅值,需要进行幅值变换,基频除以L,非基频除以L/2
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);                %非基频的正序分量转化为正常幅值
f = Fs*(0:(L/2))/L;
figure
plot(f,P1,'Color','#9467BD','linewidth',1)
xlim([0 50])
ylim([0 1])
set(gca,'XTicklabel',{'0','0.5','1','1.5','2','2.5','3','3.5','4'})
set(gcf,'unit','centimeters','position',[30 15 17 7]);
set(gca,'FontName','Times New Roman','FontSize',14.5,'FontWeight','normal');
grid on
set(gca,'gridlinestyle',':','Gridalpha',1);
print('-dsvg','-r300','第五章实验-参考转速30rpm1N负载时-补偿前的a相电流FFT分析')
参考文献

【1】https://blog.csdn.net/qq_50632468/article/details/117599255
【2】https://blog.csdn.net/qq_50632468/article/details/120687477

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值