Matlab【可视化作图】绘制线电压相电压辅助线

目录

  • 引言
  • 绘图原理
    • 采点
    • 绘图
    • 设置坐标轴标尺

引言

学习电力电子的同学可能在私下里练习的时候非常需要三相线电压和相电压的辅助线。最近我随便找了一本书把Matlab可视化编程恶补了一下,给大家介绍一下这个波形辅助线是怎么做的。
三相线电压辅助线就是一组相位相差60°的正弦曲线,三相相电压辅助线就是一组相位相差120°的正弦曲线。为了让曲线具有普遍性,我选的x坐标轴的间距都是π6\frac{\pi}{6}6π,y轴截取到最大值和最小值。

  1. 当使用三相半波整流时,绘制输出电压平均值的波形时,需要的是三相相电压辅助线(图1)
  2. 当使用三相全控桥整流时,绘制输出电压平均值的波形时,需要的是三相线电压辅助线(图2)
  3. 当使用三相全控桥整流时,绘制晶闸管的端电压波形时,电路工作在电流断续模式时,需要的是三相相电压和线电压的结合辅助线(图3)。(电流断续时晶闸管承受相电压,电流连续时晶闸管承受线电压)
  4. 当使用三相全控桥整流,且遇到三相电源单相缺失或接地时,绘制输出电压udu_dud或者晶闸管端电压uVTu_{VT}uVT时,需要用到线相电压结合的辅助线(图3)。

绘图原理

Matlab绘图指定精度绘图(这一点和几何画板不太一样),因此需要制定一个采样间隔,我们制定的是0.01,对于普通作图已经足够了。选取作图的周期(我们选取的是8个1/4周期,对于线电压和相电压足够——即4π4\pi4π),在这里我们略去不太重要的指定颜色过程(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:6lvotage(i,:)=sin(x+(i-1)*pi/3);
end
for i=1:3pvoltage(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:6lvoltage(i,:)=sin(x+(i-1)*pi/3);
end
for i=1:3pvoltage(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:6lvoltage(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图11
相电压波形图
图2图22
线相电压结合图
图3图33
希望本文对您有帮助,谢谢阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot实现Excel导入导出,好用到爆,POI可以扔掉了!

在我们平时工作中经常会遇到要操作Excel的功能,比如导出个用户信息或者订单信息的Excel报表。你肯定听说过POI这个东西,可以实现。但是POI实现的API确实很麻烦,它需要写那种逐行解析的代码(类似Xml解析)。今天给大家推…

Python datetime __str __()方法与示例

Python datetime .__ str __()方法 (Python datetime.__str__() Method) datetime.__str__() method is used to manipulate objects of datetime class of module datetime. datetime .__ str __()方法用于操作模块datetime的datetime类的对象。 It uses a datetime class o…

Facebook升级到MySQL 8.0付出的代价

近日,Facebook 官博公布了他们的数据库版本从 MySQL 5.6 升级到了 MySQL 8.0,并且在官博记录了复盘详细的升级过程。Facebook 称,他们最近的一次大版本升级到 MySQL 5.6 花了一年多时间才完成,还在 5.6 版上开发 LSM 树存储引擎&a…

Matlab制作朱利表

朱利判据 其中 {bn−kan−k−ana0∗akcn−kbn−k−bnb0∗bk...qn−kpn−k−pnp0∗pk\begin{cases} b_{n-k}a_{n-k}-\frac{a_n}{a_0}*a_k\\ c_{n-k}b_{n-k}-\frac{b_n}{b_0}*b_k\\ ...\\ q_{n-k}p_{n-k}-\frac{p_n}{p_0}*p_k \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​bn−k​an−k​−a0…

HDOJ 1047 Integer Inquiry

JAVA睑板.... Integer Inquiry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12042 Accepted Submission(s): 3037Problem DescriptionOne of the first users of BITs new supercomputer was Chip Diller. …

高并发下秒杀商品,必须知道的9个细节

高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。秒杀一般出现在商城的促销活动中,指定了一定数量(比如:…

weakhashmap_Java WeakHashMap keySet()方法与示例

weakhashmapWeakHashMap类的keySet()方法 (WeakHashMap Class keySet() method) keySet() method is available in java.util package. keySet()方法在java.util包中可用。 keySet() method is used to retrieve all the key exists in this map to be viewed in a set. keySet…

最小拍控制系统详细解读(阶跃输入+速度输入2个案例)【Simulink仿真】

目录索引1.符号说明与结构框图2.最小拍控制系统构造原则2.1数字控制器D(z)的构造3.简单控制对象的最小拍控制器设计3.1阶跃输入3.2速度输入1.符号说明与结构框图 y(k)——系统响应输出的离散值u(k)——数字PID控制输出的离散值r(k)——期望输出的离散值(事先已知&a…

php中重写和final关键字的使用

为什么把重写和final放在一起,原因就是一条:final的意思是不可更改的,也就是说final定义的东西是不可改变的,下面具体来说一下。 来看一段简单的代码: 1 class BaseClass {2 final public function test() {3 …

java vector_Java Vector lastElement()方法与示例

java vector向量类的lastElement()方法 (Vector Class lastElement() method) lastElement() method is available in java.util package. lastElement()方法在java.util包中可用。 lastElement() method is used to return the last element of this Vector. lastElement()方法…

SpringBoot官方热部署和远程调试神器,真带劲!

平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效。如果你的应用足够大的话,启动可能需要好几分钟。有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款SpringBoot官方的热部署工具spri…

【Python】输入任意个数元素并保存至列表

目录1.导入任意个数元素到列表1.1.编程思路1.2.代码片2.查找一个重复元素在列表中的所有位置2.1.编程思路2.2代码片1.导入任意个数元素到列表 1.1.编程思路 输入未知个数的元素需要用列表来存储,由于Python具有内存的动态分配能力,列表不需要手动动态分…

MySQL 性能优化的 9 种姿势,面试再也不怕了!

大家好,我是磊哥!今天给大家分享一些简单好用的数据库优化方式!1、选择最合适的字段属性Mysql是一种关系型数据库,可以很好地支持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的…

containsall_Java Vector containsAll()方法与示例

containsall向量类containsAll()方法 (Vector Class containsAll() method) containsAll() method is available in java.util package. containsAll()方法在java.util包中可用。 containsAll() method is used to test the existence of all the elements of this Vector in t…

Excel的规划求解【详细步骤】

本文目录1.说明2.准备加载项步骤1步骤2步骤33.线性规划问题步骤4步骤5步骤61.说明 使用Lingo程序也可以实现线性规划、非线性规划以及0-1规划,但是在缺少Lingo程序的情况下,我们使用Excel照样可以很容易地完成。在这里我给大家提供了解决此类问题的详细…

4 种方法!检查字符串是否为合法的日期格式

哈喽大家好,今天咱们来讲一下,Java 中如何检查一个字符串是否是合法的日期格式?为什么要检查时间格式?后端接口在接收数据的时候,都需要进行检查。检查全部通过后,才能够执行业务逻辑。对于时间格式&#x…

linux下tomcat无法显示图片验证码

在catalina.sh中的-Djava.io.tmpdir"$CATALINA_TMPDIR" \后一行增加 -Djava.awt.headlesstrue \ 共8处转载于:https://blog.51cto.com/zhangfeikr/1673312

Java Throwable toString()方法与示例

Throwable类toString()方法 (Throwable Class toString() method) toString() Method is available in java.lang package. toString()方法在java.lang包中可用。 toString() Method is used to return a short description of the exception. toString()方法用于返回对该异常的…

【Matlab】根据图生成带权邻接矩阵,并求出最短路径

目录图的简介无向图(Graph)生成带权邻接矩阵求两点最短路径有向图(Digraph)生成带权邻接矩阵求最短路径图的简介 图是拓扑学中的一个重要概念,分为无向图和有向图两种。图有两个重要属性,即点(…

阿里二面:为什么要分库分表?

在高并发系统当中,分库分表是必不可少的技术手段之一,同时也是BAT等大厂面试时,经常考的热门考题。你知道我们为什么要做分库分表吗?这个问题要从两条线说起:垂直方向 和 水平方向。1 垂直方向垂直方向主要针对的是业务…