如何使用python计算功率与时间图的上升时间,功率过冲和稳定时间

时间:2019-06-25 16:12:33

标签: python signals electronics

我正在尝试在python中测量功率与时间(信号输出)图的上升时间,功率超调和建立时间。您知道一个允许我计算这3个参数的python函数吗?

3个参数定义如下: 1.上升时间=从“接通”功率输出值的10%变为90%的时间 2.%过冲=((最大功率值)-(最终“接通”功率值))/(最终“接通”功率值) 3.建立时间=信号功率输出在稳态值x%以内的时间

功率(幅度)与时间的关系图类似于Matlab的stepinfo指南https://uk.mathworks.com/help/control/ref/stepinfo.html中的第一幅图

我有一个包含功率和时间值的.csv文件,因此我将它们加载为数据帧并绘制功率与时间的关系图。但是从这张图,我不确定如何计算我需要的3个参数

import numpy as np
import matplotlib.pyplot as plt
import csv
import pandas as pd


time = [] # initialise time array
power = [] # initialise power array

df_csv = pd.read_csv('PvsV_SOA_comma.csv') # loads .csv file as a pandas 
dataframe

time = df_csv.iloc[:, 0] # sets time array equal to data in 1st (index 
from 0) column of datafram, selecting all rows
power = df_csv.iloc[:, 1] # sets voltage array

plt.plot(time, voltage) 
plt.xlabel('Time (s)')
plt.ylabel('Power (W)')

1 个答案:

答案 0 :(得分:0)

如果您的Power响应类似于二阶阶跃响应(如Matlab的stepinfo指南中所示)

快速方法

  1. 您需要首先找到“稳态值”。如果您具有真正的价值,则可以使用,如果没有, 您需要捕获足够长的时间,然后将csv中的最终值用作“稳态值”
  2. 对于csv中的第一个数据作为“起始值”,您现在可以找到功率超过稳态值90%的时间序列
  3. 您可以在csv上找到最大值并与稳态值进行比较以获得%OS
  4. 您可以从最后一个值向后追溯,以找到第一个跨越稳态值+-x%的数据

精确的方法

您需要了解您的系统型号,并使用csv文件运行系统标识。然后得到模型参数,就可以计算出更精确的时间响应特性