首页 > 编程语言 >数字信号处理Python示例(3)生成三相正弦信号

数字信号处理Python示例(3)生成三相正弦信号

时间:2024-11-03 09:47:03浏览次数:6  
标签:三相 Phi plt 示例 Python 信号处理 正弦 信号 np

文章目录


前言

首先给出三相正弦信号的数学表达式,并给出生成三相正弦信号的Python代码,对Python的运行结果进行了分析。进一步,更改三相正弦信号的幅度A1、A2和A3的值,生成幅度不相等的三相正弦信号,查看输出波形的变化,并对结果进行分析。


一、三相正弦信号的表示

三相正弦信号的表达式如下:

A相: x_A(t) = A * sin(2 * π * f * t + Φ_A)

B相: x_B(t) = A * sin(2 * π * f * t + Φ_B)

C相: x_C(t) = A * sin(2 * π * f * t + Φ_C)

其中,‘A’ 是幅度,‘f’ 是频率,‘t’ 是时间变量,Φ_A、Φ_B 和 Φ_C 是 A、B 和 C 相的相位角。通常,三相正弦信号的幅度和频率是相等的;三相正弦信号之间的相位差为 120°,即 Φ_B = Φ_A + 120°,Φ_C = Φ_A + 240°。

二、生成三相正弦信号的Python代码

以下是使用 Python生成三相正弦信号的示例代码:

#导入必要的库
import numpy as np                     # numpy用于数学计算
import matplotlib.pyplot as plt       # matplotlib.pyplot用于绘图

# 定义参数
A = 1          # 幅度
f = 5         # 频率 (Hz)
t = np.linspace(0, 1, 1000)  # 时间向量
Phi_A = 0      # A相相位角 (度)
Phi_B = Phi_A + 120  # B相相位角 (度)
Phi_C = Phi_A + 240  # C相相位角 (度)
# 生成三相正弦信号
x_A = A * np.sin(2 * np.pi * f * t + np.deg2rad(Phi_A))
x_B = A * np.sin(2 * np.pi * f * t + np.deg2rad(Phi_B))
x_C = A * np.sin(2 * np.pi * f * t + np.deg2rad(Phi_C))
# 绘制波形
plt.plot(t, x_A, label='Phase A')
plt.plot(t, x_B, label='Phase B')
plt.plot(t, x_C, label='Phase C')
plt.title('Three-Phase Sinusoidal Signal')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.legend()
plt.grid(True)
plt.show()

三、三相正弦信号的图示与分析

上述代码将生成三个相位相差 120° 的正弦波,并在同一图中显示出来,如下所示:

在这里插入图片描述

在这张图中,蓝色、红色和绿色线条分别代表A相、B相和C相的正弦波。从图中可以看到,使用所给Python代码生成的三相正弦信号中,每个信号的幅度是1V,频率是5Hz。信号之间的相位差是120°,它们在时间轴上是如何错开的。

四、生成幅度不相等的三相正弦信号的Python代码

进一步,更改三相正弦信号的幅度A1、A2和A3的值,使它们不再相等,查看输出波形的变化。
以下是更改三相正弦信号幅度的Python示例代码:

#导入必要的库
import numpy as np
import matplotlib.pyplot as plt

#定义参数(更改幅度)
A1 = 1          # A相幅度
A2 = 1.5        # B相幅度
A3 = 0.5        # C相幅度
f = 5           # 频率 (Hz)
t = np.linspace(0, 1, 1000)  # 时间向量
Phi_A = 0      # A相相位角 (度)
Phi_B = Phi_A + 120  # B相相位角 (度)
Phi_C = Phi_A + 240  # C相相位角 (度)

# 生成三相正弦信号
x_A = A1 * np.sin(2 * np.pi * f * t + np.deg2rad(Phi_A))
x_B = A2 * np.sin(2 * np.pi * f * t + np.deg2rad(Phi_B))
x_C = A3 * np.sin(2 * np.pi * f * t + np.deg2rad(Phi_C))

# 绘制波形
plt.plot(t, x_A, label='Phase A')
plt.plot(t, x_B, label='Phase B')
plt.plot(t, x_C, label='Phase C')
plt.title('Three-Phase Sinusoidal Signal')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.legend()
plt.grid(True)
plt.show()

五、幅度不相等的三相正弦信号的图示与分析

运行以上生成幅度不相等的三相正弦信号的Python代码,可以得到以下绘图结果:

在这里插入图片描述

在这张图中,蓝色、红色和绿色线条分别代表A相、B相和C相的正弦波。A相、B相和C相的振幅分别为1、1.5和0.5,频率为5Hz。三个波形之间存在120度的相位差,因此可以看到它们在时间轴上是如何错开的,并且由于振幅不同,每个波形的峰值也不同,这将有助于理解不同幅度对三相系统波形的影响。

如果更改三相正弦信号的幅度A1、A2和A3的值,以下是一些可能的观察结果和评论:

(1)如果 A1、A2 和 A3 的值不相等,那么每个相的波形幅度将不同,这将在输出图中清晰地显示出来。这可以用来模拟实际应用中不同相的负载不平衡情况。

(2)增加某个相的幅度会导致该相的波形在图中更加突出,而减小幅度则会使波形不那么显著。

(3)即使幅度不同,相位差仍然保持 120°,因此三相系统的对称性不会被破坏,但是波形的视觉对比会改变。

(4)这种幅度的变化不会影响波形的频率,因为频率是由正弦函数中的时间变量t和频率参数f决定的,而不是由幅度决定的。

写在后面的话

这是《数字信号处理python示例》系列文章的第3篇。整个系列将使用python编程示例说明数字信号处理的基本原理与工程应用。给出的所有Python程序将努力做到简单且具有说明性。在数字信号处理的理论方法,将注重其实际意义和工程应用方面的介绍,而避免其数学上的推导与证明。
感谢您的阅读。



标签:三相,Phi,plt,示例,Python,信号处理,正弦,信号,np
From: https://blog.csdn.net/weixin_45333185/article/details/143445029

相关文章

  • python-14-函数详解(定义、参数、返回值、高级函数、偏函数、装饰器)
    python函数详解(定义、参数、返回值、高级函数、偏函数、装饰器)一.说明这是python中的基础系列中的关于函数部分,来开始我们今天日拱一卒!对python函数部分进行详细整理和学习。二.定义在Python中,函数是通过def关键字来定义函数;函数定义的结构如下deffunction_name......
  • 基于PyTorch的大语言模型微调指南:Torchtune完整教程与代码示例
    近年来,大型语言模型(LargeLanguageModels,LLMs)在自然语言处理(NaturalLanguageProcessing,NLP)领域取得了显著进展。这些模型通过在大规模文本数据上进行预训练,能够习得语言的基本特征和语义,从而在各种NLP任务上取得了突破性的表现。为了将预训练的LLM应用于特定领域或......
  • 基于SpringBoot乡村书屋小程序设计与实现--31881(免费领源码)可做计算机毕业设计JAVA、P
    摘要随着信息技术的快速发展和互联网的广泛普及,数字化服务的需求不断增长,乡村书屋作为传统的文化服务机构也需要适应这一变革。本研究将使用Java开发技术,通过springboot作为框架,结合微信小程序,和MySQL作为数据存储的技术,开发一套功能齐备可移动的乡村书屋小程序,旨在提升乡......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,山西能源学院教室管理系统当然也不能排除在外。山西能源学院教室管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用 SSM技术构建的一个管理系......
  • 基于django框架在线图书推荐系统的设计与实现 python个性化图书/书籍/电子书推荐系统
    基于django框架在线图书推荐系统的设计与实现python个性化图书/书籍/电子书推荐系统平均加权混合推荐热门推荐协同过滤算法推荐爬虫排行榜数据可视化分析机器学习深度学习大数据一、项目简介1、开发工具和使用技术Pycharm、Python3及以上版本,Django3.6及以上版......
  • 【python应用】Pyarmor:实现 Python 代码授权绑定,控制代码的使用权限,防止反编译和盗用
    原创小白这样学Python随着Python的流行,越来越多的开发者选择使用它来构建各种应用。然而,开源的特性也意味着代码的易读性和可修改性,这对于一些商业项目来说,存在着巨大的安全隐患。为了保护代码的知识产权,开发者们需要采取一些措施,例如代码混淆。Pyarmor应运而生,它是一款功能强......
  • [分享]Python基础学完了?进阶它来了(六)
    进阶第一章:1.使用Python框架(如Flask、Django)搭建web应用Flask简介:Flask是一个轻量级的PythonWeb框架。它基于WerkzeugWSGI工具箱和Jinja2模板引擎。其设计理念是保持核心简单而易于扩展。安装:可以使用pipinstallflask命令进行安装。示例(HelloWor......
  • Python 潮流周刊#75:用 Python 开发 NoSQL 数据库(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了11篇文章,12个开源项目,1则音视频,2则热门讨论,全文2000字。以下是......
  • python openai 通过Function Call 创建自动化任务
    目录一、什么是FunctionCall(函数掉用)1. 功能概述2. 工作原理二、如何实现函数调用1、定义自己的get_weather函数2、给助手添加函数调用3、写好instrction,指导assistant去掉用你定义的方法。4、最后也是最重要的,捕获Assistant的FunctionCall三、常见问题四、......