用MATLAB处理扫频数据获得伯德图的方法与流程

文档序号:17118602发布日期:2019-03-15 23:34阅读:6807来源:国知局
用MATLAB处理扫频数据获得伯德图的方法与流程

本发明涉及数据处理技术,尤其涉及一种用matlab处理扫频数据获得伯德图的方法。



背景技术:

从传统工业到航空航天领域,均需要对系统的频率特性进行评估,而伯德图是反映频率特性如幅频特性和相频特性的最直观形式,其一般由扫频数据处理得到。对于扫频数据处理过程,目前普遍方法是人工寻找各个周期的幅值,然后计算得到幅值比和相位差等数据以绘制伯德图。由于扫频数据的数据量极大,该数据处理过程效率低,且易出现计算不准确等一系列可规避的错误,影响结果的精度,从而无法准确把握系统的频率特性。因此,有必要提出一种新型、方便、快捷、可靠的扫频数据处理方法来获得精确的伯德图。

matlab是一款应用广泛、功能多且操作简单的科学工程计算软件,其高效的数值计算功能使用户从繁杂的数学运算分析中解脱出来,且具有完备的图形处理功能,实现计算结果的可视化,但matlab不提供现成的扫频数据处理功能模块,只提供开发环境和库函数。因此,需要自行研究处理方法并编写相关程序,以将扫频数据处理过程与matalb的优势有机融合,获得精确的伯德图。



技术实现要素:

本发明的目的是提供一种用matlab处理扫频数据获得伯德图的方法,并将其模块化,以解决人工处理扫频数据过程中存在的效率和精度较低的问题。

本发明所提出的用matlab处理扫频数据获得伯德图的方法,主要包括如下步骤:s1、进行扫频实验,将实验数据导入matlab中,实验数据包括时间、频率、频率对应的指令信号以及实际信号;s2、按时间顺序在扫频数据中依次选取指令信号和实际响应曲线中的数据点,针对每一点处的数值,用循环结构使该数值与前后各m个数值相比较,若该数值在前后各m个数值中是最大值,则确定此时为峰值点,其中m为整数,m取值区间为小于等于最大频率对应的一周期内的采样点数且大于等于其半周期内的采样点数;初步确定该段扫频数据的所有峰值点及相应的时间值;s3、对筛选出的峰值点再次筛选,去除相邻峰值点间隔时间小于n值的峰值点,以去除连续的峰值点,从而得到更精确的峰值点,n值为该段扫频数据中最大频率所对应的周期的一半;s4、对得到的指令信号峰值点和实际信号峰值点按时间顺序进行组对,使每对峰值点的实际信号对应的时间大于指令信号对应的时间,且其差小于该频率对应的周期,因此,当某对峰值点的实际信号对应时间小于指令信号对应时间,则删除该实际信号峰值点且后面的实际信号峰值点依次上移并进行组对,直至该对峰值点满足要求;当某对峰值点的实际信号与指令信号的时间差大于该频率下对应的周期,则删除该指令信号峰值点且后面的指令信号峰值点依次上移并进行组对,直至该对峰值点满足要求;s5、运用matlab进行数组运算,对成对的峰值点的峰值、指令信号和实际信号的时间间隔及其对应的频率进行计算,得到幅值比、相位差及其相应频率;s6、使用semilogx函数绘制伯德图。

优选地,筛选峰值点前,将扫频数据按频率分段,再分段执行步骤s2和s3,确定每段扫频数据的峰值点及相应的时间值,此时m和n取值所涉及的最大频率都是每个频率段内的最大频率。

优选地,所述m值的确定方法为:对于指令信号,直接取m为其取值区间3/5处的值,得到峰值点数a1;所述m值对于实际信号,采用二分法试验规则确定,具体为:在m取值区间内进行试验,设m取值区间为[p,q],其中p为最大频率对应的半周期内的采样点数,q为最大频率对应的一周期内的采样点数;在m的取值计算过程中,m值为整数且遵循四舍五入原则;选取m的试验值b=(q+p)/2,在此m值下进行峰值点筛选,若此时a-a1>10,则令p=b,q=q,再进行峰值点筛选;若此时a-a1<0,则令p=p,q=b,再进行峰值点筛选,直至找到令0≤a-a1≤10成立的m值或m的取值区间长度变为1;若找到令0≤a-a1≤10成立的m值,则令m每次减小1,反复进行峰值点筛选,直至找到某个m值,当m值再减小时,峰值点数a不变且大于或等于a1,则该值为适当的值;若m的取值区间长度为1,则该取值区间左极限值为适当的m值。

优选地,筛除所述实际信号峰值点中相邻峰值点间隔时间小于n值的峰值点,以去除连续的峰值点,以得到精确的峰值点,具体规则为:设有连续x个峰值点之间相邻峰值点间隔时间小于n值,若x为奇数,则选择第(x+1)/2这个点作为峰值点,去除这些点内第(x+1)/2这个点以外的峰值点;若x为偶数,则选择第x/2这个点作为峰值点,去除这些点内第x/2这个点外的峰值点。

优选地,对同一频率下计算得到的幅值比、相位差取平均值,以使结果更加精确。

本发明的有益效果为:

1、运用matlab编程的循环结构和分支结构处理扫频数据,使寻找扫频数据的峰值点并对找出的峰值点进行筛选、整理和计算的过程更加快速、准确;

2、运用matlab绘图指令中的semilogx函数,使伯德图绘制更加简单、准确、省时省力;

3、将每个步骤模块化,可以按需求直接调用某个模块,操作简单,方便快捷;

4、该方法流程简单,易于操作,通用性强,准确可靠,可以用于处理扫频数据,更加快速准确地得到伯德图。

附图说明

图1为本发明一种用matlab处理扫频数据获得伯德图的方法流程图;以及

图2为本发明用matlab处理扫频数据所获得的伯德图。

具体实施方式

为详尽本发明之技术内容、结构特征、所达成目的及功效,以下将结合说明书附图进行详细说明。

如流程图图1所示,数据处理步骤可分为6个模块,如下所示:

s1、数据导入:进行扫频实验,将实验数据导入matlab中。

s2、初步筛选:每个数据点与前后m个点比较,初步确定扫频数据的峰值点及相应的时间值。

筛选峰值点的过程可根据指令信号的频率大小以每段长度为10hz分为g段依次进行。筛选扫频数据的指令信号与实际信号的峰值点,按时间顺序在扫频数据中依次选取指令信号和实际信号中的数据点,针对每一点处的数值,用循环结构使该数值与前后各m个数值相比较,以确定峰值点及其时间,m值为整数且取值区间为小于等于所在频段的最大频率对应的一周期内的采样点数且大于等于其半周期内的采样点数。由于指令信号数据极为精准,故直接取m为其取值区间3/5处的值,无需调整m值使其结果更为精确;对于实际信号,由于噪音等其他干扰会对响应数据产生干扰,故在m取值区间内按照二分法的试验规则对m值进行试验,得到恰当的m值,在该m值下实际信号峰值点数略大于之指令信号峰值点数,从而提高筛选的精确度。

s3、再次筛选:筛除峰值点中连续相等的峰值点。

对筛选出的峰值点再进一步筛除相邻峰值点间隔时间小于n值的峰值点,以去除连续的峰值点,从而得到较为精确的峰值点,n值为该段扫频数据中最大频率所对应的周期的一半。

s4、精准筛选:筛除峰值点中实际信号非时间滞后的点。

对得到的指令信号峰值点和实际信号峰值点按时间顺序进行组对,由于扫频数据应该是相位滞后的,为确保每对峰值点的实际信号对应的时间大于指令信号对应的时间,且其差小于该频率对应的周期,运用循环结构和分支结构进行筛选。若某对峰值点的实际信号对应时间小于指令信号时间,则删除该实际信号峰值点且后面的实际信号峰值点依次上移并进行组对,直至该对峰值点满足要求;若某对峰值点的实际信号与指令信号的时间差大于该频率下对应的周期,则删除该指令信号峰值点且后面的指令信号峰值点依次上移并进行组对,直至该对峰值点满足要求。

s5、数据计算:运用matlab计算实际信号和指令信号的幅值比、相位差及其相应频率。

运用matlab进行数组运算,对成对的峰值点的峰值、指令信号和实际信号的时间间隔及其对应的频率进行计算,得到幅值比、相位差及其相应频率。为使其结果精确同时减小读图难度,对所得到的同一频率下的幅值比和相位差取平均值,得到幅值比、相位差的平均值及其相应频率。

s6、图像绘制:使用semilogx函数绘制伯德图。

本发明的实施例如下:

本次实施例是伺服电机的运动控制性能测试,输入的转速指令信号为正弦波,且频率由0hz以1hz/s为梯度逐渐升高至100hz,转速指令幅值为±0.1v,此时伺服电机的最高转速为30rpm,采样间隔为0.5ms,采集指令和实际速度信号曲线,绘制出伯德图,进一步了解伺服电机的运动控制性能。

本发明的实施流程如下:

1、运行数据导入模块。

将从扫频实验得到的扫频数据导入到matlab的矩阵中,导入的扫频数据包括时间、频率以及对应的指令和实际值,此时利用matlab的plot函数绘制出曲线,与原始扫频数据曲线对比,确保导入数据的准确性。

2、运行初步筛选模块。

筛选峰值点的过程可根据指令信号的频率大小以每段长度为10hz分为g段依次进行。本实施例中以每段长度为10hz分为10段,即取g=10。初步筛选扫频数据的指令信号与实际信号的峰值点,按时间顺序在扫频数据中依次选取指令信号和实际响应曲线中的数据点,针对每一点处的数值,用循环结构使该数值与前后各m个数值相比较,以确定峰值点及其时间。m值为整数且遵循四舍五入原则,同时每段扫频数据中的m取值区间为小于等于该段的最大频率对应的一周期内的采样点数且大于等于其半周期内的采样点数。对指令信号进行峰值筛选,由于指令信号数据极为精准,故直接取m为其取值区间3/5处的值,无需调整m值使结果更准确,得到峰值点数a1;对于实际信号,由于噪音等一些因素会对实际数据产生干扰,所以需选择恰当的m值以提高精确度,故在m取值区间内按照二分法的试验规则对m值进行试验,直至在该m值下进行峰值筛选所得峰值点数a略大于或等于a1,且随m值小范围内减小,该段峰值点数a不变,此时m值为适当的值;当选取适当的m值后,m值不再变化。因此对于指令信号和实际信号,两者的m取值是不同的。

在确定m的适当的值的时候,选取m的试验值为b,试验规则为:设m取值区间为[p,q],根据二分法,选取m的试验值b=(q+p)/2,在此m值下进行峰值点筛选,若此时a-a1>10,则令p=b,q=q,再进行峰值点筛选;若此时a-a1<0,则令p=p,q=b,再进行峰值点筛选。如此反复进行峰值点筛选,直至找到令0≤a-a1≤10成立的m值或m的取值区间长度变为1。若找到令0≤a-a1≤10成立的m值,则令m每次减小1,反复进行峰值点筛选,直至找到某个m值,使之小范围内减小,该段峰值点数a不变且大于或等于a1,则该值为适当的值。若m的取值区间长度为1,则该取值区间左极限值为适当的m值。在m的取值计算过程中,m值为整数且遵循四舍五入原则。

例如对于30hz-40hz这个频率段,最大频率为40hz,采样间隔为0.5ms,最大频率时一周期内的采样点数为1000/(40·0.5)=50,故m取值区间为[25,50]。筛选指令信号峰值点时,由于指令信号是计算机发出的,极为精准,故取m为取值区间的3/5处的值,即取m为40。进行峰值点筛选,得到指令信号的峰值点,峰值点数a1为367。筛选实际信号峰值点时,在m的取值区间[25,50]内,令试验值b为37.5,四舍五入取38,进行峰值点选择,得峰值点数a为383,a-a1>10,故m取值区间变为[38,50];再令试验值b为44,进行峰值点选择,得峰值点数a为359,a-a1<0,故m取值区间变为[38,44];再令试验值b为41,进行峰值点选择,得峰值点数a为373,0≤a-a1≤10;令试验值b依次减小,反复进行峰值点筛选,得试验值b为40、39分别对应峰值点数a为373、373,即当m由41减小至39时,峰值点数a不变,故此时m的适当的值为41。

3、运行再次筛选模块。

经上述筛选,峰值点已基本得出,但是仍需消除连续相等的峰值点,故对筛选出的峰值点再次筛选,去除相邻峰值点间隔时间小于n值的峰值点,以去除连续的峰值点,从而得到更精确的峰值点。n值为该段扫频数据中最大频率所对应的周期的一半。具体规则为:设有连续x个峰值点之间相邻峰值点间隔时间小于n值,若x为奇数,则选择第(x+1)/2这个点作为峰值点,去除第(x+1)/2这个点以外的峰值点;若x为偶数,则选择第x/2这个点作为峰值点,去除第x/2这个点外的峰值点。

例如对于30hz-40hz这个频率段,最大频率为40hz,此时n值为1000/(40·2)=12.5ms,四舍五入后,即取n为13ms。经再次筛选模块后,指令信号峰值点数不变,仍为367,实际信号峰值点数由373变为371。

4、运行精准筛选模块。

由于扫频数据应该是相位滞后的,应确保每对峰值点的实际信号对应的时间大于指令信号对应的时间,且其差小于该频率对应的周期。将得到的指令信号峰值点和实际信号峰值点按时间顺序进行组对,对筛选出的指令信号和实际信号的峰值点分别对应的时间t1、t2做差。对于某对峰值点,若其t2-t1<0,则删除该实际信号峰值点并将其后峰值点依次上移,再次做差并判定;若其t2-t1>t,t为该指令信号峰值点所对应的频率的周期,则删除该指令信号峰值点并将其后峰值点依次上移;若0≤t2-t1≤t,则进行下一对峰值点的判定,直至最后一对峰值点。至此,获得精确的峰值点。

例如对于30hz-40hz这个频率段,运行精准筛选模块后,得到367对峰值点。

5、运行数据计算模块。

运用matlab进行数组运算,利用成对的峰值点的峰值、指令信号和实际信号的时间间隔及其对应的频率进行计算,得到幅值比、相位差及其相应频率,其幅值比l=20lg(响应信号峰值/指令信号峰值),为使其结果精确同时减小读图难度,对所得到的同一频率下的幅值比和相位差取平均值,得到幅值比、相位差的平均值及其相应频率。

6、运行图像绘制模块。

运用matlab绘图指令中的semilogx函数绘制伯德图。绘制出的伯德图如图2所示。

本发明中的获得伯德图的方法,对扫频数据中的峰值点以一种新的思维、新的方法进行筛选,获得更为精确的筛选结果,大大提高了现有的筛选方法的准确性,从根本上提高了所绘制的扫频实验的伯德图的精度,且将整个过程模块化,全程可通过程序运行,简单明了,方便快捷,省时省力。提高由扫频实验获得的伯德图的精度,可以使由伯德图反推得到的系统传递函数的可信度、准确性更大,在建立系统数学模型时可以起到很好的参考作用。

对于不同扫频数据,通过合理的修改本发明的初步筛选模块中的频率段长度的大小和m的取值规则、再次筛选模块中的n的取值规则、精准筛选模块中的t的取值规则,参照上述实施例操作,亦可获得相同的有益效果。

以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的数据处理方法做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1