12_Single_Phase_Bridge_All_controlled

本文介绍了如何在仿真环境中搭建晶闸管模型并进行参数设置。通过调整导通角及负载参数,对比分析不同条件下的电压电流波形变化。

 1.建立仿真模型:

  ①  同时按住键盘中的 CTRL以及鼠标的左键,移动鼠标则可以将晶闸管模块复制到

其他位置;

  ②  中性节点(Neutral output)的使用;

2.设置模型参数:

  ①  交流电压源: 220*sqrt(2) V, 50HZ, 0°;

  测量选择选中valtage,可在multimeter中查看;

  ②VT1 – VT4 默认参数;

  ③负载RLC : R = 0,L = 0, C = INF;测量选择Voltage & current ;

  ④脉冲发生器:

  脉冲的脉冲周期和U2相同( 50HZ ), 控制角以脉冲延时t = αt/360°,T = 1/f;

结果分析:

1.比较触发脉冲,60°比30°更加滞后了;

2.比较负载电压,电流:
    30°R: 在触发之后30°时便有电压;
    60° R :      60°时才出现电压;
    60°RL :     由于加入了电感,电压虽然不变,但是电流变得更加平缓;

3.比较晶闸管电压电流:
  无电感:
    ①VT1 – VT3 的电流波形和负载的正半周波形相同;
    ②当晶闸管关断后,电流为零,并承受反向电压;
    或者在这个晶闸管尚没有导通时,承受正向电压!!

  有电感:

    有电感之后,晶闸管的电流波形变得平滑,而不再是阶跃上升!


1_Layout:



2_导通角30°,电阻R = 2 负载:



3_晶闸管:VT1-VT3:



4_导通角60°,电阻 R = 2负载:



5_晶闸管VT1 – VT3:



6_导通角为60°,R = 2,L = 10mH 阻感负载:



7_晶闸管VT1 – VT3:




import matplotlib.pyplot as plt import numpy as np import math # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans'] plt.rcParams['axes.unicode_minus'] = False # 创建图像和子图 fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(12, 10)) # 参数设置 U2 = 100 alpha = 30 Id = 38.97 omega_t = np.linspace(0, 360, 1000) # 1. 整流输出电压 ud 波形 ud = np.zeros_like(omega_t) for i, angle in enumerate(omega_t): if 30 <= angle <= 180: # 正半周导通 ud[i] = U2 * math.sqrt(2) * math.sin(math.radians(angle)) elif 210 <= angle <= 360: # 负半周导通 ud[i] = U2 * math.sqrt(2) * math.sin(math.radians(angle)) else: # 不导通区间 ud[i] = 0 ax1.plot(omega_t, ud, 'b-', linewidth=2) ax1.set_ylabel('ud (V)', fontsize=12) ax1.set_title('Single-Phase Full-Bridge Controlled Rectifier Waveforms (U₂=100V, R=2Ω, α=30°)', fontsize=14) ax1.grid(True, alpha=0.3) ax1.set_ylim(-150, 150) ax1.axhline(y=0, color='k', linestyle='-', alpha=0.3) # 标注关键点 ax1.axvline(x=30, color='r', linestyle='--', alpha=0.7, label='α=30°') ax1.axvline(x=180, color='g', linestyle='--', alpha=0.7, label='180°') ax1.axvline(x=210, color='r', linestyle='--', alpha=0.7, label='α+180°=210°') ax1.legend() # 2. 负载电流 id 波形(由于电感极大,电流连续平直) id = np.ones_like(omega_t) * Id ax2.plot(omega_t, id, 'r-', linewidth=3) ax2.set_ylabel('id (A)', fontsize=12) ax2.grid(True, alpha=0.3) ax2.set_ylim(0, 50) ax2.axhline(y=0, color='k', linestyle='-', alpha=0.3) # 3. 变压器二次侧电流 i2 波形 i2 = np.zeros_like(omega_t) for i, angle in enumerate(omega_t): if 30 <= angle <= 180: # 正半周 i2[i] = Id elif 210 <= angle <= 360: # 负半周 i2[i] = -Id ax3.plot(omega_t, i2, 'g-', linewidth=2) ax3.set_ylabel('i₂ (A)', fontsize=12) ax3.set_xlabel('Electrical Angle ωt (°)', fontsize=12) ax3.grid(True, alpha=0.3) ax3.set_ylim(-50, 50) ax3.axhline(y=0, color='k', linestyle='-', alpha=0.3) # 调整布局 plt.tight_layout() # 保存图像 plt.savefig('single_phase_rectifier_waveforms.png', dpi=300, bbox_inches='tight') plt.savefig('single_phase_rectifier_waveforms.pdf', bbox_inches='tight') # PDF格式,适合打印 plt.show() # 打印关键参数 print("关键参数计算结果:") print(f"• 输出平均电压 Ud = {0.9 * U2 * math.cos(math.radians(alpha)):.2f} V") print(f"• 输出平均电流 Id = {Id:.2f} A") print(f"• 变压器二次电流有效值 I₂ = {Id:.2f} A") print(f"• 晶闸管承受最大反向电压 = {math.sqrt(2) * U2:.1f} V") print(f"• 晶闸管额定电压建议值 = 400-500 V") print(f"• 晶闸管额定电流建议值 = 30-40 A") print("\n图像已保存为:single_phase_rectifier_waveforms.png 和 .pdf")
最新发布
09-29
由于没有给出具体的Python单相交控整流器波形绘制代码,下面先给出一个简单示例代码并进行分析。 ### 示例代码 ```python import numpy as np import matplotlib.pyplot as plt # 定义参数 V_m = 100 # 交流电压峰值 omega = 2 * np.pi * 50 # 角频率,50Hz alpha = np.pi / 3 # 触发角 t = np.linspace(0, 0.04, 1000) # 时间范围,0到0.04秒 # 计算交流电压 v_ac = V_m * np.sin(omega * t) # 计算整流后的电压 v_dc = np.zeros_like(t) for i in range(len(t)): if omega * t[i] >= alpha: v_dc[i] = v_ac[i] if v_ac[i] > 0 else 0 # 绘制波形 plt.figure(figsize=(12, 6)) plt.subplot(2, 1, 1) plt.plot(t, v_ac, label='交流电压') plt.title('单相交控整流器波形') plt.ylabel('电压 (V)') plt.legend() plt.subplot(2, 1, 2) plt.plot(t, v_dc, label='整流后电压', color='orange') plt.xlabel('时间 (s)') plt.ylabel('电压 (V)') plt.legend() plt.show() ``` ### 代码功能分析 1. **参数定义**:定义了交流电压的峰值 `V_m`、角频率 `omega`、触发角 `alpha` 以及时间范围 `t`。 2. **交流电压计算**:使用正弦函数计算交流电压随时间的变化 `v_ac`。 3. **整流后电压计算**:通过循环遍历时间数组,根据触发角和交流电压的正负来确定整流后的电压 `v_dc`。 4. **波形绘制**:使用 `matplotlib` 库绘制交流电压和整流后电压的波形。 ### 代码优化 1. **避免显式循环**:可以使用 `numpy` 的布尔索引来替代显式的 `for` 循环,提高代码的执行效率。 ```python # 计算整流后的电压 v_dc = np.where((omega * t >= alpha) & (v_ac > 0), v_ac, 0) ``` 2. **函数封装**:将整个波形绘制过程封装成一个函数,提高代码的复用性。 ```python import numpy as np import matplotlib.pyplot as plt def plot_single_phase_rectifier(V_m, omega, alpha, t_range=(0, 0.04), num_points=1000): t = np.linspace(t_range[0], t_range[1], num_points) v_ac = V_m * np.sin(omega * t) v_dc = np.where((omega * t >= alpha) & (v_ac > 0), v_ac, 0) plt.figure(figsize=(12, 6)) plt.subplot(2, 1, 1) plt.plot(t, v_ac, label='交流电压') plt.title('单相交控整流器波形') plt.ylabel('电压 (V)') plt.legend() plt.subplot(2, 1, 2) plt.plot(t, v_dc, label='整流后电压', color='orange') plt.xlabel('时间 (s)') plt.ylabel('电压 (V)') plt.legend() plt.show() # 使用示例 V_m = 100 omega = 2 * np.pi * 50 alpha = np.pi / 3 plot_single_phase_rectifier(V_m, omega, alpha) ``` ### 可能存在的问题及解决方法 1. **触发角范围问题**:如果触发角不在合理范围内(如小于 0 或大于 `2 * np.pi`),可能会导致波形异常。可以在代码中添加触发角的范围检查。 ```python if alpha < 0 or alpha > 2 * np.pi: raise ValueError("触发角必须在 0 到 2π 之间。") ``` 2. **时间范围和点数问题**:如果时间范围设置不合理或点数过少,可能会导致波形绘制不精确。可以根据实际需求调整时间范围和点数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值