CN110716451B - 一种基于实时操作系统和fpga的仿真转台前馈控制方法 - Google Patents
一种基于实时操作系统和fpga的仿真转台前馈控制方法 Download PDFInfo
- Publication number
- CN110716451B CN110716451B CN201911033511.2A CN201911033511A CN110716451B CN 110716451 B CN110716451 B CN 110716451B CN 201911033511 A CN201911033511 A CN 201911033511A CN 110716451 B CN110716451 B CN 110716451B
- Authority
- CN
- China
- Prior art keywords
- target position
- fpga
- position value
- simulation
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
一种基于实时操作系统和FPGA的仿真转台前馈控制方法,在仿真转台控制系统的实时程序中进行运动轨迹计算或仿真指令读取,经插值后得到指令序列发送给FPGA,在FPGA上读取轨迹指令并进行伺服运算,通过设置实时程序的循环周期大于FPGA上伺服运算周期的方法,使FPGA提前收到后续位置指令,以此进行速度前馈和加速度前馈运算。通过合理配置实时程序和FPGA程序的循环速度,使两者协调工作,保持运动轨迹生成和伺服运算的周期稳定性。通过在FPGA上提前得到后续位置指令,并进行前馈运算,使得仿真转台的伺服带宽和加速度响应能力得到极大地提高。
Description
技术领域
本发明涉及一种基于实时操作系统和FPGA的仿真转台前馈控制方法。
背景技术
仿真转台是一种重要的飞行器控制系统半实物仿真设备,它能在地面模拟飞行器在飞行过程中的各种运动姿态,从而给被测产品提供位置、速率和加速度激励。随着飞行器本身在空间飞行动态性能的不断提高,对作为地面半实物仿真主要设备的仿真转台的动态性能也不断提高。对于仿真转台而言,要满足更高的动态性能,最重要的是在控制系统上具有很高的伺服带宽和加速度响应输出能力。
在仿真转台控制系统中,要提高其动态性能,即伺服带宽和加速度相应,最重要的手段,是采用更先进的控制方案和控制算法。目前,提高仿真转台动态伺服带宽和加速度相应的最有效手段,是在控制算法上采用速度和加速度前馈控制。控制系统在进行速度和加速度前馈控制时,除需要知道下一次时刻的目标位置外,还需要直到下一次时刻的目标速度和加速度,才可以进行速度和加速度前馈运算。
传统的仿真转台主要是采用单一的控制器进行位置伺服运算,且仿真机也只能提供下一时刻的位置指令,因此在当前时刻无法获知更多后续指令信息,因而难以进行前馈运算。此外,有些半实物仿真系统虽然也可以有速率指令,用于做速度前馈,但无法获得后续速度信息,因而无法进行最为关键的加速度前馈控制,因此也无法有限提高仿真转台伺服带宽和加速度响应能力。
发明内容
本发明要解决的技术问题是:克服现有技术的不足,提供了一种基于实时操作系统和FPGA的仿真转台前馈控制方法,通过将实时程序中产生的轨迹指令插值后发送给FPGA进行伺服预算,并利用实时程序的循环周期大于FPGA上伺服运算周期的方法,使FPGA提前收到后续时刻位置指令,以此进行速度前馈和加速度前馈运算。
本发明的方法的技术方案是:一种基于实时操作系统和FPGA的仿真转台前馈控制方法,包括下列步骤:
1)建立控制计算机实时操作系统和FPGA,用于仿真转台控制;在仿真转台的控制系统中采用运行实时操作系统的计算机进行运动轨迹指令生成;采用FPGA进行伺服运算,并在FPGA上建立一个FIFO通道,用于从实时控制计算机读取目标位置指令;
2)根据转台的工作模式,计算得到下一时刻的目标位置值;
3)对目标位置值进行插值细分;
4)在FPGA中建立伺服运算模块并从FOFO中读入目标位置指令;
5)在FPGA伺服运算模块中进行前馈伺服运算。
所述步骤2)的具体过程为:当转台工作在本地控制模式时,转台计算机按照当前的运动模式,计算出下一时刻的目标位置值Y(n+1);当转台工作在仿真模式时,转台计算机按照约定的仿真周期T与仿真计算机进行通讯,读取下一时刻的目标位置值Y(n+1)。
所述循环周期T大小等于与仿真机约定的仿真周期,即转台控制计算机与仿真计算机通讯的帧周期。
所述运动模式包括位置、速率、正弦角振动。
所述步骤3)的具体过程为:设置一个变量S;当本次循环生成目标位置值Y(n+1)后,从变量S中读取寄存的上一次目标位置值Y(n),按照线性插值进行N等分细分,得到一组目标位置值序列{yi};将插值后的目标位置值序列{yi}一次性写入FIFO中,并将本次生成的目标位置值Y(n+1)写入变量S,作为下一帧运算时的目标位置值Y(n)。
所述步骤4)的具体过程为:在FPGA上建立一个周期为t=T/N的伺服运算模块M0,用于从FIFO中读取目标位置指令,并进入步骤5)进行转台的伺服运算。
所述伺服运算模块M0一次循环只从FIFO中读取一个目标位置指令值,然后进行伺服运算;伺服运算模块M0循环执行N次后,将FIFO中的指令序列{yi}全部读取完。
所述步骤5)的具体过程为:建立两个寄存器R0和R1,分别用于寄存本帧的目标位置值y(n)和下一帧的目标位置值y(n+1);每次循环伺服运算模块M0开始执行后,先从FIFO中读入一个新的目标位置值yi,做为下下帧的目标位置y(n+2),然后与R1中寄存的下一帧的目标位置值y(n+1),计算下一帧的指令速率v(n+1):
利用R1中寄存的下一帧的目标位置值y(n+1)与R0中寄存的本帧的目标位置值y(n),计算本帧的指令速率v(n):
利用v(n+1)和v(n),计算本帧的加速度指令a(n):
然后,进行速度前馈和加速度前馈伺服运算:
u(n)=Kvv(n)+Kaa(n)
其中,Kv和Ka分别为速度前馈系数和加速度前馈系数;u(n)代表本控制周期内的控制输出量。
伺服运算完成后,将y(n+1)值赋给R0寄存器,作为下一帧运算时的本帧的目标位置值y(n);将yi值赋给R1寄存,作为下一帧算时的下一帧目标位置值y(n+1)。
本发明相比于现有技术具有如下有益效果:
(1)本发明采用在实时程序中进行轨迹指令生成,在FPGA进行伺服运算,且设置实时程序的循环周期大于FPGA上伺服运算周期的方法,使FPGA提前收到后续位置指令,经计算得到速率指令和计算机指令,从而为后续进行速度前馈和加速度前馈运算提供了可能;
(2)本发明通过合理设置运动轨迹生成子程序的循环的周期、插值细分数,以及FPGA伺服运算模块的周期,使实时程序与FPGA协调工作,保持运动轨迹生成和伺服运算循环的周期稳定性;
(3)本发明的通过在FPGA上提前得到后续位置指令,并进行前馈运算,使得仿真转台的伺服带宽和加速度响应能力得到极大地提高。
附图说明
图1为本发明实时程序与FPGA的数据通讯关系示意图。
具体实施方式
如图1所示,本发明一种基于实时操作系统和FPGA的仿真转台前馈控制方法,具体步骤如下:
1.在仿真转台的控制系统中采用运行实时操作系统的计算机进行运动轨迹指令生成。采用FPGA进行伺服运算,并在FPGA上建立一个FIFO通道,用于从实时控制计算机读取目标位置指令。仿真转台与仿真机约定的仿真周期为1ms,FPGA完成一次伺服运算循环所需的最小时间小于125us。为确保数据安全,FIFO初始化时的最大元素个数为实际使用数量的2倍,因此取16个。
2.在仿真转台控制计算机的实时程序中,建立一个循环周期为1ms的“运动轨迹生成子程序L0”,用于实时生成下一时刻的运动轨迹指令Y(n+1)。当转台工作在本地控制模式时,转台计算机按照当前的运动模式,如位置、速率、正弦角振动等,计算出下一个1ms时刻的目标位置值Y(n+1)。当转台工作在仿真模式时,转台计算机按照1ms的周期与仿真计算机进行通讯,读取下一时刻的目标位置值Y(n+1)。
3.在动轨迹生成子程序L0中,设置一个变量S,用于寄存上一次循环产生的目标位置值Y(n)。当本次循环生成目标位置值Y(n+1)后,从变量S中读取寄存的上一次目标位置值Y(n),按照线性插值进行8等分细分,得到一组目标位置值序列{yi}:
然后,将插值后的目标位置值序列{yi}一次性写入FIFO中,并将本次生成的目标位置值Y(n+1)写入变量S,作为下一帧运算时的目标位置值Y(n)。
4.在FPGA上建立一个周期为125us的伺服运算模块M0,用于从FIFO中读取目标位置指令,并进行转台的伺服运算。伺服运算模块M0一次循环只从FIFO中读取一个目标位置指令值,然后进行伺服运算。伺服运算模块M0循环执行8次后,刚好将FIFO中的指令序列{yi}读取完。
5.在FPGA伺服运算循环M0中,建立两个寄存器R0和R1,分别用于寄存本帧的目标位置值y(n)和下一帧的目标位置值y(n+1)。每次循环M0开始执行后,先从FIFO中读入一个新的目标位置值yi,做为下下帧的目标位置y(n+2),然后与R1中寄存的下一帧的目标位置值y(n+1),计算下一帧的指令速率v(n+1):
利用R1中寄存的下一帧的目标位置值y(n+1)与R0中寄存的本帧的目标位置值y(n),计算本帧的指令速率v(n):
利用v(n+1)和v(n),计算本帧的加速度指令a(n):
然后,可进行速度前馈和加速度前馈伺服运算:
u(n)=Kvv(n)+Kaa(n)
其中,Kv和Ka分别为速度前馈系数和加速度前馈系数,其值由外部输入给定;u(n)代表本控制周期内的控制输出量。
伺服运算完成后,将y(n+1)值赋给R0寄存器,作为下一帧运算时的本帧的目标位置值y(n);将yi值赋给R1寄存,作为下一帧算时的下一帧目标位置值y(n+1)。
通过上述方法,使FPGA上提前得到后续位置指令,并进行前馈运算,使得仿真转台的伺服带宽和加速度响应能力得到极大地提高。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (5)
1.一种基于实时操作系统和FPGA的仿真转台前馈控制方法,其特征在于包括下列步骤:
1)建立控制计算机实时操作系统和FPGA,用于仿真转台控制;在仿真转台的控制系统中采用运行实时操作系统的计算机进行运动轨迹指令生成;采用FPGA进行伺服运算,并在FPGA上建立一个FIFO通道,用于从实时控制计算机读取目标位置指令;
2)根据转台的工作模式,计算得到下一时刻的目标位置值;
3)对目标位置值进行插值细分;
4)在FPGA中建立伺服运算模块并从FIFO中读入目标位置指令;
5)在FPGA伺服运算模块中进行前馈伺服运算;
所述步骤4)的具体过程为:在FPGA上建立一个周期为t=T/N的伺服运算模块M0,用于从FIFO中读取目标位置指令,并进入步骤5)进行转台的伺服运算;
所述伺服运算模块M0一次循环只从FIFO中读取一个目标位置指令值,然后进行伺服运算;伺服运算模块M0循环执行N次后,将FIFO中的指令序列{yi}全部读取完;
所述步骤5)的具体过程为:建立两个寄存器R0和R1,分别用于寄存本帧的目标位置值y(n)和下一帧的目标位置值y(n+1);每次循环伺服运算模块M0开始执行后,先从FIFO中读入一个新的目标位置值yi,做为下下帧的目标位置y(n+2),然后与R1中寄存的下一帧的目标位置值y(n+1),计算下一帧的指令速率v(n+1):
利用R1中寄存的下一帧的目标位置值y(n+1)与R0中寄存的本帧的目标位置值y(n),计算本帧的指令速率v(n):
利用v(n+1)和v(n),计算本帧的加速度指令a(n):
然后,进行速度前馈和加速度前馈伺服运算:
u(n)=Kvv(n)+Kaa(n)
其中,Kv和Ka分别为速度前馈系数和加速度前馈系数;u(n)代表本控制周期内的控制输出量;
伺服运算完成后,将y(n+1)值赋给R0寄存器,作为下一帧运算时的本帧的目标位置值y(n);将yi值赋给R1寄存,作为下一帧算时的下一帧目标位置值y(n+1)。
2.根据权利要求1所述的一种基于实时操作系统和FPGA的仿真转台前馈控制方法,其特征在于:所述步骤2)的具体过程为:当转台工作在本地控制模式时,转台计算机按照当前的运动模式,计算出下一时刻的目标位置值Y(n+1);当转台工作在仿真模式时,转台计算机按照约定的仿真周期T与仿真计算机进行通讯,读取下一时刻的目标位置值Y(n+1)。
3.根据权利要求2所述的一种基于实时操作系统和FPGA的仿真转台前馈控制方法,其特征在于:所述仿真周期T大小等于与仿真机约定的仿真周期,即转台控制计算机与仿真计算机通讯的帧周期。
4.根据权利要求2所述的一种基于实时操作系统和FPGA的仿真转台前馈控制方法,其特征在于:所述运动模式包括位置、速率、正弦角振动。
5.根据权利要求2所述的一种基于实时操作系统和FPGA的仿真转台前馈控制方法,其特征在于:所述步骤3)的具体过程为:设置一个变量S;当本次循环生成目标位置值Y(n+1)后,从变量S中读取寄存的上一次目标位置值Y(n),按照线性插值进行N等分细分,得到一组目标位置值序列{yi};将插值后的目标位置值序列{yi}一次性写入FIFO中,并将本次生成的目标位置值Y(n+1)写入变量S,作为下一帧运算时的目标位置值Y(n)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911033511.2A CN110716451B (zh) | 2019-10-28 | 2019-10-28 | 一种基于实时操作系统和fpga的仿真转台前馈控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911033511.2A CN110716451B (zh) | 2019-10-28 | 2019-10-28 | 一种基于实时操作系统和fpga的仿真转台前馈控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716451A CN110716451A (zh) | 2020-01-21 |
CN110716451B true CN110716451B (zh) | 2022-10-21 |
Family
ID=69214485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911033511.2A Active CN110716451B (zh) | 2019-10-28 | 2019-10-28 | 一种基于实时操作系统和fpga的仿真转台前馈控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716451B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114218139A (zh) * | 2021-12-15 | 2022-03-22 | 北京航天控制仪器研究所 | 一种基于实时操作系统和fpga的仿真转台高速同步采集方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279564A (zh) * | 2011-04-29 | 2011-12-14 | 南京航空航天大学 | 应用智能pid控制器的飞行仿真转台控制系统及方法 |
CN107678325A (zh) * | 2017-08-21 | 2018-02-09 | 北京航天控制仪器研究所 | 一种基于实时操作系统和fpga的转台伺服控制方法 |
CN108803648A (zh) * | 2018-08-17 | 2018-11-13 | 北京航空航天大学 | 无人飞行器鲁棒姿态控制方法、装置及电子设备 |
CN110045654A (zh) * | 2019-04-29 | 2019-07-23 | 北京航天控制仪器研究所 | 一种基于rt操作系统和fpga的转台状态空间控制系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214415B2 (en) * | 2008-04-18 | 2012-07-03 | Motion Engineering Incorporated | Interpolator for a networked motion control system |
-
2019
- 2019-10-28 CN CN201911033511.2A patent/CN110716451B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279564A (zh) * | 2011-04-29 | 2011-12-14 | 南京航空航天大学 | 应用智能pid控制器的飞行仿真转台控制系统及方法 |
CN107678325A (zh) * | 2017-08-21 | 2018-02-09 | 北京航天控制仪器研究所 | 一种基于实时操作系统和fpga的转台伺服控制方法 |
CN108803648A (zh) * | 2018-08-17 | 2018-11-13 | 北京航空航天大学 | 无人飞行器鲁棒姿态控制方法、装置及电子设备 |
CN110045654A (zh) * | 2019-04-29 | 2019-07-23 | 北京航天控制仪器研究所 | 一种基于rt操作系统和fpga的转台状态空间控制系统及方法 |
Non-Patent Citations (1)
Title |
---|
无人机飞行仿真平台控制系统设计;张鹏超;《计算机测量与控制》;20150825(第08期);正文第2692-2695页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110716451A (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107991867A (zh) | 一种基于自抗扰控制器的网络化多轴运动控制系统的迭代学习轮廓误差控制方法 | |
JP2017102617A (ja) | 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体 | |
CN107085373A (zh) | 一种基于通信干扰观测器的网络化多轴运动控制系统的交叉耦合控制方法 | |
CN104678778A (zh) | 用于仿真工业自动化中的机器的信号传送间隔的时间同步 | |
CN110045654B (zh) | 一种基于rt操作系统和fpga的转台状态空间控制系统及方法 | |
JP2019036014A (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN106325072B (zh) | 一种直线伺服系统机械残余振动控制方法 | |
CN107662209A (zh) | 一种控制方法及机器人 | |
CN110561421B (zh) | 机械臂间接拖动示教方法及装置 | |
CN105182906B (zh) | 基于高阶s型运动轨迹的位置与速度控制方法 | |
CN106020122B (zh) | 基于牛顿迭代的数控轨迹控制方法 | |
CN103941647A (zh) | 用于嵌入式数控设备的柔性加减速控制插补方法 | |
CN107678325B (zh) | 一种基于实时操作系统和fpga的转台伺服控制方法 | |
CN104181860A (zh) | 数控机床s型加减速控制方法 | |
CN109507890A (zh) | 一种基于eso的无人机动态逆广义预测控制器 | |
EP3462261A1 (en) | Information processing apparatus, information processing method and program | |
CN105404744A (zh) | 一种空间机械臂全状态动力学半物理仿真系统 | |
CN110716451B (zh) | 一种基于实时操作系统和fpga的仿真转台前馈控制方法 | |
CN105892412A (zh) | 基于自定义总线的多轴运动控制系统硬件架构 | |
CN105929865A (zh) | 一种直线伺服系统机械谐振控制方法 | |
CN107678276A (zh) | 一种基于转台控制的自适应复合控制方法 | |
CN107832485A (zh) | 一种仿真模型控制参数的优化方法 | |
Song et al. | Identification of PMSM based on EKF and elman neural network | |
CN106970561A (zh) | 运动控制系统 | |
CN104155909B (zh) | 基于pc+fpga的带速度观测器的有限时间稳定性控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |