赞
踩
学习电力电子的同学可能在私下里练习的时候非常需要三相线电压和相电压的辅助线。最近我随便找了一本书把Matlab可视化编程恶补了一下,给大家介绍一下这个波形辅助线是怎么做的。
三相线电压辅助线就是一组相位相差60°的正弦曲线,三相相电压辅助线就是一组相位相差120°的正弦曲线。为了让曲线具有普遍性,我选的x坐标轴的间距都是
π
6
\frac{\pi}{6}
6π,y轴截取到最大值和最小值。
Matlab绘图指定精度绘图(这一点和几何画板不太一样),因此需要制定一个采样间隔,我们制定的是0.01,对于普通作图已经足够了。选取作图的周期(我们选取的是8个1/4周期,对于线电压和相电压足够——即 4 π 4\pi 4π),在这里我们略去不太重要的指定颜色过程(plot函数当同时作很多图时自动分配不同颜色),给大家叙述最重要步骤——采点和坐标分配。
x=0:0.01:8*pi/2;%绘图坐标
0是起始点,0.01是采样间隔,8*pi/2是终止点(Matlab中的pi就是
π
\pi
π的符号常量)
接着计算线电压相电压。如果查看Matlab帮助就会发现,plot(x,y),当x=vector(向量),y=matrix(矩阵)时,优先对应y的列和x,若y的列数等于x向量的维数,画图时,每一组数据绘图时对应x的全体值和y的每一行的所有值。若y的列数不等于x的维数,且y的行数等于x向量的维数,每一组数据绘图时对应x的全体值和y的每一列的所有值。
因此,我们只需要定义一个6行的线电压矩阵和一个3行的相电压矩阵,每一个矩阵x对应的线电压/相电压即可:
lvotage=zeros(6,size(x,2));%线电压数值矩阵
pvoltage=zeros(3,size(x,2));%相电压数值矩阵
for i=1:6
lvotage(i,:)=sin(x+(i-1)*pi/3);
end
for i=1:3
pvoltage(i,:)=sin(x+(i-1)*2*pi/3);
end
上面已经接受过,x为向量,y为数值矩阵时(现在y的列数等于x的向量),plot(x,y)会绘制多张图,图的数目等于y的行数。因此下面的绘图指令就变得特别简单:
plot(x,lvotage);xlim([pi,4*pi]);title('线电压波形图');
plot(x,pvoltage);xlim([0,4*pi]);title('相电压波形图');
title指令用来设置标题,如果不需要,也可以删去。
我们需要每 π 6 \frac{\pi}{6} 6π设置一个坐标尺,方便我们对应原来的图。使用xtick()指令即可,注意此指令中一定是数值向量形式或者等差数列表示法。另外,我们如果不需要坐标轴的标签,可以去掉,以免多个小数位对我们的视野造成干扰。
x=0:0.01:8*pi/2;%绘图坐标 lvoltage=zeros(6,size(x,2));%线电压数值矩阵 pvoltage=zeros(3,size(x,2));%相电压数值矩阵 for i=1:6 lvoltage(i,:)=sin(x+(i-1)*pi/3); end for i=1:3 pvoltage(i,:)=sin(x+(i-1)*2*pi/3); end plot(x,lvoltage);xlim([0,4*pi]);title('线电压波形图'); xticks(0:pi/6:4*pi); xticklabels({});%去掉x轴标签 yticklabels({});%去掉y轴标签 figure;%另起一张图 plot(x,pvoltage);xlim([0,4*pi]);title('相电压波形图'); xticks(0:pi/6:4*pi); xticklabels({}); yticklabels({}); for i=1:6 lvoltage(i,:)=sqrt(3)*sin(x+(i-1)*pi/3+pi/6); end figure;%另起一张图 plot(x,pvoltage,'-.');xlim([0,3*pi]); xticks(0:pi/6:3*pi); yticks([-sqrt(3),-1,0,1,sqrt(3)]);%标记线相电压的峰值 hold on; plot(x,lvoltage,'-');xlim([0,3*pi]); xticklabels({}); yticklabels({}); title('线相电压结合波形图');
执行效果如下图:
图
1
图1
图1
图
2
图2
图2
图
3
图3
图3
希望本文对您有帮助,谢谢阅读。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。