本发明属于数字信号处理算法的硬件实现领域,尤其涉及一种系统传递函数辨识算法的硬件实现方法及运行该方法的计算机设备与可读存储介质。
背景技术:
系统传递函数是系统自动控制的重要条件,能够准确确定系统传递函数可以加速系统调节速度,及时调整系统参数。
传递函数是指一个线性系统输入与输出之间的关系,一般定义为输出与输入的拉普拉斯变化之比,它是体现一个系统的重要表征量,是系统的固有属性。通常整个系统的传递函数可以根据各个子系统的传递函数和他们之间的连接关系得到。其意义在于我们可以通过分析系统的动态特性、稳定性来控制自动控制系统运行。
在伺服系统中,控制芯片主要有三种:微控制器、数字信号处理器、现场可编程门阵列。该算法常常由软件实现,速度较慢,延时太长,无法充分利用硬件的并行性以及资源的重用。
技术实现要素:
发明目的:一个目的是提供一种系统传递函数辨识算法的硬件实现方法,以克服背景技术中软件实现系统传递函数辨识算法的不足。进一步目的是提供一种可运行上述方法的计算机设备以及可被该计算机设备读取的存储介质。
技术方案:一种系统传递函数辨识算法的硬件实现方法,包括以下步骤:
步骤1、总控制模块控制子算法执行顺序、参数配置等计算流程;
步骤2、可重构控制模块控制不同阶段下的数据传输、重构模式;
步骤3、计算阵列模块利用乘法器、加法器、除法器运行预设的运算内容;
步骤4、存储资源模块利用预定数量的存储单元根据不同计算阶段的特征选择不同存储体,以写入或读取数据。
在进一步的实施例中,所述步骤1进一步包括:
步骤1-1、所述总控制模块利用存储资源模块选通器,以根据不同计算阶段的特征选通对应存储体,以写入或读取数据;
步骤1-2、利用计算资源选通器,以根据不同计算阶段的特征选通不同计算资源,将源数据传输入计算单元进行计算或将结果数据取出;
步骤1-3、利用总控制状态机,以根据参数配置的情况和各个子计算阶段的开始结束信号,控制整个计算的流程。
在进一步的实施例中,所述总控制状态机的运行包括以下步骤:
步骤1-31、总控制状态机接收复位信号,跳转到idle状态;
步骤1-32、总控制状态机接收开始信号,开始信号拉高使得总控制状态机跳转到start状态,此时进入计算准备阶段;
步骤1-33、生成矩阵元素step1:从bank中取出源数据p、源数据q、源数据d、以及源数据w,依次存入bank中形成中间值,此时源数据p对应于
输出计算结果
步骤1-34、生成矩阵元素step2:从bank中取出步骤1-33生成的中间值,将中间值
步骤1-35、生成矩阵元素step3:从bank中取出步骤1-33生成的中间值
步骤1-36、生成矩阵元素step4:从bank中取出中间值
步骤1-37、将最终step4生成的矩阵元素存入bank0,判断结束信号是否有效,有效则跳转到break状态,输出最终结果。
在进一步的实施例中,所述步骤3进一步包括:
步骤3-1、将生成的矩阵元素
扩展如下:
同时生成向量v,将向量v放入bank12以后的任意一个bank中,该矩阵向量的大小与矩阵阶数相等;
步骤3-2、对l矩阵和u矩阵求逆:
式中,矩阵l由矩阵u转置得出,故
其中,矩阵
矩阵
将矩阵s表示为三阶下三角矩阵:
步骤3-3、采用至少一个乘法器和至少三个加法器对该三阶下三角矩阵硬解:乘法器的输出端接入加法器的输入端,第一个加法器的结果反馈至第二个加法器的输入端,由第二加法器的结果输出至第三加法器,最终的结果反馈至第二个加法器输出。
在进一步的实施例中,存储资源模块将源数据
一种系统传递函数辨识算法的硬件实现方法,其特征在于包括以下模块:
用于控制整个计算流程的总控制模块;
用于控制不同阶段下数据传输、重构模式的可重构控制模块;
采用一系列运算单元实现运算功能的计算阵列模块;
采用一系列存储单元实现存储功能的存储资源模块。
在进一步的实施例中,所述总控制模块进一步包括存储资源模块选通器,计算资源选通器与总控制状态机;存储资源模块选通器根据不同计算阶段的特征选通不同存储体,以写入或读取数据;计算资源选通器根据不同计算阶段的特征选通不同计算资源,将源数据传输入计算单元进行计算或将结果数据取出;总控制状态机可根据参数配置的情况和各个子计算阶段的开始结束信号,控制整个计算流程;
所述的计算流程包括矩阵元素的生成、矩阵的扩展、矩阵求逆、矩阵向量乘法、矩阵行变换、拉普拉斯频率响应滤波,此为一个迭代次数内的情况,当迭代次数大于1时,将计算更新后的目标向量作为第二次迭代的输入继续进行计算;
所述可重构控制模块包括各个子算法的控制模块,如矩阵求逆、矩阵向量乘法等;各个子算法的控制模块根据配置信息控制计算开始与结束信号,以及数据在存储和计算阵列之间的传输。
在进一步的实施例中,所述计算阵列模块包括乘法器、加法器、除法器,所述计算阵列模块进一步将生成的矩阵元素
扩展如下:
同时生成向量v,将向量v放入bank12以后的任意一个bank中,该矩阵向量的大小与矩阵阶数相等;
对l矩阵和u矩阵求逆:
式中,矩阵l由矩阵u转置得出,故
其中,矩阵
矩阵
将矩阵s表示为三阶下三角矩阵:
采用至少一个乘法器和至少三个加法器对该三阶下三角矩阵硬解:乘法器的输出端接入加法器的输入端,第一个加法器的结果反馈至第二个加法器的输入端,由第二加法器的结果输出至第三加法器,最终的结果反馈至第二个加法器输出。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序存储在一种计算机可读存储介质上,计算机设备通过运行该可读存储介质,由处理器执行计算机程序,进而实现以下步骤:
步骤1、总控制模块控制子算法执行顺序、参数配置等计算流程:
所述总控制模块利用存储资源模块选通器,以根据不同计算阶段的特征选通对应存储体,以写入或读取数据;
利用计算资源选通器,以根据不同计算阶段的特征选通不同计算资源,将源数据传输入计算单元进行计算或将结果数据取出;
利用总控制状态机,以根据参数配置的情况和各个子计算阶段的开始结束信号,控制整个计算的流程。
总控制状态机接收复位信号,跳转到idle状态;
总控制状态机接收开始信号,开始信号拉高使得总控制状态机跳转到start状态,此时进入计算准备阶段;
生成矩阵元素step1:从bank中取出源数据p、源数据q、源数据d、以及源数据w,依次存入bank中形成中间值,此时源数据p对应于
输出计算结果
生成矩阵元素step2:从bank中取出步骤1-33生成的中间值,将中间值
生成矩阵元素step3:从bank中取出步骤1-33生成的中间值
生成矩阵元素step4:从bank中取出中间值
将最终step4生成的矩阵元素存入bank0,判断结束信号是否有效,有效则跳转到break状态,输出最终结果。
步骤2、可重构控制模块控制不同阶段下的数据传输、重构模式;
步骤3、计算阵列模块利用乘法器、加法器、除法器运行预设的运算内容:
将生成的矩阵元素
扩展如下:
同时生成向量v,将向量v放入bank12以后的任意一个bank中,该矩阵向量的大小与矩阵阶数相等;
对l矩阵和u矩阵求逆:
式中,矩阵l由矩阵u转置得出,故
其中,矩阵
矩阵
将矩阵s表示为三阶下三角矩阵:
采用至少一个乘法器和至少三个加法器对该三阶下三角矩阵硬解:乘法器的输出端接入加法器的输入端,第一个加法器的结果反馈至第二个加法器的输入端,由第二加法器的结果输出至第三加法器,最终的结果反馈至第二个加法器输出。
步骤4、存储资源模块利用预定数量的存储单元根据不同计算阶段的特征选择不同存储体,以写入或读取数据。
存储资源模块将源数据
有益效果:本发明将系统传递函数辨识功能集成到硬件中实现,通过设置总控制模块,可重构控制模块,计算阵列模块,存储资源模块,由总控制模块控制整个计算流程;由可重构控制模块控制不同阶段下的数据传输、重构模式;由计算阵列模块对矩阵元素的生成、矩阵的扩展、矩阵求逆、矩阵向量乘法、矩阵行变换、拉普拉斯频率响应滤波进行计算和硬解;由存储资源模块存储相应的源数据到对应的bank中。本发明的阶数可配置,通过并行计算和数据重用提高计算速度,具有更高的灵活性。
附图说明
图1为本发明的整体模块示意图。
图2为本发明的设计流程图。
图3为本发明中总控制模块的状态转移图。
具体实施方式
申请人认为,在现有的伺服系统中,通常由软件实现相应的算法,即软解。然而,这种软解方式耗时较长,计算同样规模的运算量需要消耗更多资源。
为解决现有技术存在的问题,本发明提出一种硬件实现方法,支持阶数可配置,并行计算和数据重用,提高计算速度。下面结合附图和具体实施案例对本发明进行详细说明:
如图1所示,本实施例的系统传递函数辨识算法的硬件实现方法包括总控制模块,可重构控制模块,计算阵列模块,存储资源模块;所述的总控制模块可控制整个计算流程,包括子算法执行顺序等;所述的可重构控制模块包括所有子算法控制模块,可用于控制不同阶段下的数据传输、重构模式、阶数的确定等;所述的计算阵列模块由一系列运算单元组成,包括9个乘法器、11个加法器、3个除法器;所述的存储资源模块包含17个深度为1k,宽度为32的子存储体。
总控制模块包括存储资源模块选通器,计算资源选通器与总控制状态机;存储资源选通器可根据不同计算阶段的特征选通不同存储体,以写入或读取数据;计算资源选通器可根据不同计算阶段的特征选通不同计算资源,将源数据传输入计算单元进行计算或将结果数据取出;总控制状态机可根据参数配置的情况和各个子计算阶段的开始结束信号,控制整个计算的流程。
可重构控制模块包括各个子算法的控制模块,各个子算法的控制模块根据配置信息控制计算开始与结束信号,以及数据在存储和计算阵列之间的传输。其中矩阵元素生成阶段需完成多次数据更新,参数配置为三阶时需完成四次更新,五阶时需完成七次更新。矩阵求逆阶段分为四个子计算阶段,包括lu分解、矩阵转置、三角矩阵求逆、矩阵乘法。
以矩阵元素生成第一次更新为例,它包括以下几个子模块:源数据读地址产生、结果数据写地址产生、控制模块、以及累加控制模块。源数据读地址模块可根据参数配置情况,生成所需从存储模块中读取的数据的地址,以及使能信号和读信号;结果数据写地址产生模块可根据参数配置情况,生成所需从存储模块中写入结果数据的地址,以及使能信号和写信号;控制模块控制整个子计算阶段的开始和结束;累加控制模块可将计算资源中的加法器重构为累加器,对读取的数据进行累加操作。
所述总控制模块利用存储资源模块选通器,以根据不同计算阶段的特征选通对应存储体,以写入或读取数据;利用计算资源选通器,以根据不同计算阶段的特征选通不同计算资源,将源数据传输入计算单元进行计算或将结果数据取出;利用总控制状态机,以根据参数配置的情况和各个子计算阶段的开始结束信号,控制整个计算的流程。
计算的流程如下:总控制状态机接收复位信号,跳转到idle状态。总控制状态机接收开始信号,开始信号拉高使得总控制状态机跳转到start状态,此时进入计算准备阶段。接着生成矩阵元素step1:从bank中取出源数据p、源数据q、源数据d、以及源数据w,依次存入bank中形成中间值,此时源数据p对应于
如图2所示,该发明的设计流程:矩阵元素的生成、矩阵的扩展、矩阵求逆、矩阵向量乘法、矩阵行变换、拉普拉斯频率响应滤波,此为一个迭代次数内的情况,当迭代次数大于1时,将计算更新后的目标向量作为第二次迭代的输入继续进行计算。当达到迭代设定目标次数时,输出辨识结果。
更为具体的,将生成的矩阵元素
扩展如下:
同时生成向量v,将向量v放入bank12以后的任意一个bank中,该矩阵向量的大小与矩阵阶数相等;
对l矩阵和u矩阵求逆:
式中,矩阵l由矩阵u转置得出,故
其中,矩阵
矩阵
将矩阵s表示为三阶下三角矩阵:
采用至少一个乘法器和至少三个加法器对该三阶下三角矩阵硬解:乘法器的输出端接入加法器的输入端,第一个加法器的结果反馈至第二个加法器的输入端,由第二加法器的结果输出至第三加法器,最终的结果反馈至第二个加法器输出。
其中,存储资源模块将源数据
图3描述了主控制模块中的状态转移,每一个状态的跳转条件都是下一个算法的开始信号,遇到复位信号时,跳转到idle状态。判断最后一个子算法模块的结束信号是否经过了目标次数,若到达,跳转到break状态,完成迭代,输出最后结果,结束计算;若不到,跳转到start状态。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。