CN100414513C - 实时运动控制算法仿真调试方法 - Google Patents

实时运动控制算法仿真调试方法 Download PDF

Info

Publication number
CN100414513C
CN100414513C CNB2005102006395A CN200510200639A CN100414513C CN 100414513 C CN100414513 C CN 100414513C CN B2005102006395 A CNB2005102006395 A CN B2005102006395A CN 200510200639 A CN200510200639 A CN 200510200639A CN 100414513 C CN100414513 C CN 100414513C
Authority
CN
China
Prior art keywords
dsp
motion
function
slave
motion control
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.)
Expired - Fee Related
Application number
CNB2005102006395A
Other languages
English (en)
Other versions
CN1770046A (zh
Inventor
何田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Semiconductor Equipment Institute
Original Assignee
Beijing Semiconductor Equipment Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Semiconductor Equipment Institute filed Critical Beijing Semiconductor Equipment Institute
Priority to CNB2005102006395A priority Critical patent/CN100414513C/zh
Publication of CN1770046A publication Critical patent/CN1770046A/zh
Application granted granted Critical
Publication of CN100414513C publication Critical patent/CN100414513C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种实时运动控制算法仿真调试方法,把从机上运行的运动控制代码完整不变地转移到主机上运行,并采用数值仿真的方法来模拟控制对象的真实响应;先把从机定义的内存区间转移定义到主机的内存映射中,并将主机对DSP内存区间读写的函数修改为对新定义的主机内存映射进行操作;然后将运动控制代码中通过输出接口更新驱动电机电流信号的函数修改为根据代码计算的输出量用数值积分方法计算控制对象的响应,并存储在内存单元中;同时把代码中通过输入接口读取系统当前位置的函数修改为从存储控制对象响应的数值计算结果的内存单元中读取系统当前位置;最后由主机循环检测从机状态,等待从机完成运动命令的函数中加入对从机DSP代码ISR的调用。

Description

实时运动控制算法仿真调试方法
技术领域
本发明涉及一种计算机对运动部件的控制方法,特别是一种对运动控制算法进行高效、实时仿真调试的方法。
背景技术
现代的高速精密机电设备(如半导体生产设备和数控机床等)中普遍采用主-从式计算机控制的模式,即由主机处理用户输入和协调各方向动作而由从机完成组成各动作的基本运动。从机一般由数字信号处理器(DSP)和外围输入输出接口组成并通过总线或网络与主机通讯。随着离散时间控制(数字控制)在硬件和软件两方面的充分发展,目前的运动控制都采用在DSP上运行控制算法的数字方式实现。从机的DSP上以中断服务例程(ISR)的形式运行着运动控制算法,每个时钟中断发生时,算法依次通过输入接口(编码器接口等)读取系统当前位置,经过计算后通过输出接口(数模转换器D/A等)更新驱动电机的电流信号而改变系统的输入,同时接受主机的运动命令并将执行结果和自身状态反馈给主机。随着时钟中断的不断发生,运动控制算法持续运行,算法在时钟的精确触发下按准确时间间隔循环往复运行是数字运动控制算法有效性的根本保证。由于从机是以嵌入式的方式包含在设备当中,不象主机那样具有完备的操作系统和输入/输出设备,无法方便高效地监测从机上运行程序的实时状态。另外,现代运动运动控制算法呈现出代码庞大、参数众多、关系繁杂的显著趋势,如何进行高效的调试以确保最短时间内获得运行正确的代码是一个极大的挑战。一种既能准确反映运动控制代码实时运行状况又可以方便高效地对代码进行各种常规调试的方法成为必需。
现有的仿真调试工具都无法全面满足前面提出的实时运动控制算法代码调试的需要。Matlab和Simulink等软件可以方便地建立控制对象的动态模型并与所用控制算法相连,进行仿真分析,但因为系统模型中的控制算法与DSP上运行的算法代码没有直接联系,结果并不反映实时运动控制代码执行的真实结果;而且这类仿真工具也无法有效体现运动控制代码中状态监测和逻辑流控制的部分。针对DSP的仿真调试环境,虽然可以对DSP上的代码进行单步运行等操作,但因为高速实时运行(每秒数千次)条件下执行元件(电机和运动部件)的真实响应无法随代码的运行定格在某一时刻而不具备真实运行条件下的调试能力;同时也缺乏
必要的与DSP运行相协调的和主机间的数据交换机制。目前出现的硬件在回路(Hardware InLoop)仿真通过将模拟控制对象(执行元件)实时响应的可编程硬件仿真器接入控制回路的方法,一定程度上实现了控制算法脱离真实控制对象的实时仿真调试,但仍存在着硬件仿真器成本高昂、编程和设置复杂的问题,也无法达到完全自由灵活的代码实时单步、断点调试。主机代码的开发环境具有完善的调试机制,但无法和DSP的实时代码协调。
发明内容
本发明的目的是提供一种实时运动控制算法仿真调试方法,针对实时运动控制算法调试的特殊需要,解决完整不变的从机DSP运动控制代码和主机程序在同一计算机处理器上以真实的实时状态运行的问题;还解决目前代码调试工具并不能实现实时运动控制代码执行真实结果的问题,并解决控制算法与真实控制对象的实时仿真调试无法和DSP的实时代码协调的问题;同时解决利用现有的主机代码开发环境,对两部分程序进行简便、准确、有效的单步、断点等调试的问题。
本发明的技术方案:
该方法把从机DSP上运行的运动控制代码完整不变地转移到主机上运行并采用数值仿真的方法来准确模拟控制对象的真实响应;
首先,把从机DSP上定义的用于与主机进行数据交换的内存区间转移定义到主机的内存映射中,并将相应的主机对DSP内存区间读写的函数修改为新的函数,新的函数对新定义的主机内存映射进行操作;
其次,将运动控制代码中通过输出接口更新驱动电机电流信号的函数修改为根据代码计算的输出量用数值积分方法来计算控制对象的响应,并存储在相应的内存单元中;
同时,把代码中通过输入接口读取运动控制系统当前位置的函数修改为新的函数,新的函数从存储控制对象响应的数值计算结果的内存单元中读取运动控制系统当前位置;
最后,在主机中循环检测从机状态,等待从机完成运动命令的函数中加入对从机DSP代码ISR的调用,以达到运动控制算法的反复运行。
本发明通过以上措施实现了完整不变的从机DSP运动控制代码和主机程序在同一计算机处理器上以真实的实时状态运行,可以利用现有的主机代码开发环境对两部分程序进行方便有效的单步、断点等调试。该方法适用于各种独立运行于嵌入式处理器的运动控制算法的仿真调试。
附图说明
图1是一个典型运动控制系统的硬件组成及代码运行关系示意图;
图2是针对图1中系统的运动控制算法实时仿真调试方法示意图。
图3是本发明被应用在一个半导体生产设备工作台的示意图。
图4是对图3的设备在X方向典型的18毫秒内完成2.54mm的运动的仿真结果示意图。
具体实施方式
如图1所示,一个典型的运动控制系统由主机、从机和控制对象组成。主机CPU中运行的主程序调用DSP内存写函数DSPWrite()向从机DSP的数据交换内存写入运动命令,之后运行运动完成检测函数MotionDone()来检测从机是否完成所写入的运动命令。MotionDone()调用函数DSP内存读函数DSPRead()自从机DSP的数据交换内存中读出从机状态,判断运动命令是否完成,MotionDone()循环运行直至运动完成为止。从机DSP中的中断服务例程ISR首先调用编码器读函数ReadEnc()通过编码器接口读取控制对象运动部件的当前位置,其后经过运动控制算法的计算得出新的电流控制输出量,然后运行D/A写函数WriteDA()通过D/A将这一电流信号传递给控制对象的电机。ISR运行的过程中通过DSP的数据交换内存接受主机CPU的运动命令并将包含命令执行结果的自身状态反馈给主机CPU。ISR在时钟中断的精确触发下,每隔一个中断周期TItr运行一次,一直循环持续下去。控制对象的电机以从机DSP规定的电流驱动运动部件到达当前位置。
图2给出了针对图1中系统的运动控制算法实时仿真调试方案。在原来主机CPU中运行的主程序基础之上,把从机DSP上运行的ISR代码转移到主机CPU上运行,同时将DSP中的数据交换内存也转移定义到主机的内存映射中。将主程序中的函数DSPWrite()和DSPRead()分别修改为对定义在主机上的数据交换内存进行写入和读出。在主程序的函数MotionDone()中加入对ISR()的调用,以使ISR()随函数MotionDone()反复循环运行直至运动完成为止。将ISR()中的函数WriteDA()修改为调用运动仿真函数MotionSim()。函数MotionSim()根据运动控制算法计算的电流控制输出量用四阶龙格-库塔法(Runge-Kutta)计算控制对象的响应并存储在位置内存中。把ISR()中的函数ReadEnc()修改为从位置内存中读取系统当前位置。ISR()中ReadEnc()与WriteDA()之间的代码是运动控制算法的主体,在从DSP到主机的转移中保持完整不变。仿真调试方案中内存定义和函数的少量修改可以通过条件编译命令实现,达到同一源文件用于DSP可执行文件编译和运动控制算法实时仿真调试。方案中位置内存里储存的控制对象位置及其导出量(速度、加速度等)可以与各种数据可视化手段相结合,形成完整、直观、高效的,完全脱离从机和控制对象的运动控制算法虚拟实时仿真调试环境。方案中用于计算控制对象响应的四阶龙格-库塔法是最常用的准确数值积分方法,适用于任何可以用状态空间中表达(即动态特性可以写成一个线性一阶常微分方程组)的系统。一个运动控制系统中典型的单自由度质量-弹簧-阻尼运动部件的动力学方程可以写为
m d 2 x dt 2 + c dx dt + kx = F - - - ( 1 )
其中x为运动部件的位置,t为时间,m为运动部件的质量,c为阻尼系数,k为弹簧刚度,F为作用于运动部件的电机驱动力。方程(1)可以重写为
d 2 x dt 2 = F m - c m dx dt - k m x - - - ( 2 )
电机线圈内的电流和电机的驱动力之间存在以下关系
F=KfI
(3)
其中F为电机驱动力,I为运动控制算法计算得出的电流控制输出量,Kf为电机的力敏感度。将方程(3)代入方程(2)可以得到
d 2 x dt 2 = K f I m - c m dx dt - k m x - - - ( 4 )
定义变量矢量如下
y 1 y 2 = x dx dt - - - ( 5 )
定义相应的变量导数矢量如下
dydt 1 dydt 2 = dx dt d 2 x dt 2 - - - ( 6 )
将方程(4)代入方程(6)可以得到
dydt 1 dydt 2 = y 2 K f I m - c m y 2 - k m y 1
方程(5)和方程(7)给出了单自由度二阶线性动态系统的状态空间表达。根据四阶龙格-库塔法的定义,控制对象的响应通过以下数值积分方法计算
b1i=hdydxi(y1,n,y2,n)
b 2 i = hdyd x i ( y 1 , n + b 11 2 , y 2 , n + b 12 2 )
b 3 i = hdyd x i ( y 1 , n + b 21 2 , y 2 , n + b 22 2 )
b4i=hdydxi(y1,n+b31,y2,n+b32)
y i , n + 1 = y i , n + b 1 i 6 + b 2 i 3 + b 3 i 3 + b 4 i 6 - - - ( 8 )
其中i=1,2,h为积分的时间步长,在ISR中断周期TItr足够小的情况下可以把h设为TItr,y1,n和y2,n分别为方程(5)中变量矢量两个分量在当前时刻的已知值,yi,n+1为相应变量矢量分量在与当前时刻相隔时间h的下一时刻的计算值。
实施例:
下面以主机和从机代码中关键函数的修改来说明该实时仿真调试方法的具体实施步骤。代码都采用类C语言的伪代码的方式表示,与方法实施无关而保持不变的代码部分用省略号“…”代表。
实施方法时,首先在头文件中定义两个编译变量
#define DSPConfig
#define SimulationConfig
DSPConfig代表普通DSP可执行文件编译的配置,SimulationConfig代表实时仿真调试的配置,使用时根据需要将其中一行注释掉而保留另一行。
主机的主程序如下所示
Main()
{
DSPWrite(CommandAddress,MotionCommand);//向DSP的数据交换内存写入运动命令
MotionDone();//检测从机是否完成所写入的运动命令
}
其中CommandAddress为从机DSP数据交换内存中运动命令的地址,MotionCommand为运动命令。
DSP内存写函数DSPWrite()如下所示
DSPWrite(int Address,int Content)
{
*(int *)DSPWriteAddressPort=Address;//地址写入寄存器
*(int *)DSPWriteContentPort=Content;//内容写入寄存器
}
其中Address为写入地址,Content为写入内容,DSPWriteAddressPort为DSP内存写入地址寄存器的端口地址,DSPWriteContentPort为DSP内存写入内容寄存器的端口地址。方法实施后,DSPWrite()修改为
DSPWrite(int Address,int Content)
{
#ifdef DSP_config
*(int *)DSPWriteAddressPort=Address;//地址写入寄存器
*(int *)DSPWriteContentPort=Content;//内容写入寄存器
#endif
#ifdef simulation_config
*(int*)Address=Content;//内容直接写入地址指向的主机内存单元
#endif
}
运动完成检测函数MotionDone()如下所示
MotionDone()
{int Doneflag=0;//将运动完成标志初始化为假
while(!Doneflag)
{DSPRead(StatusAddress,&Doneflag);//从DSP数据交换内存读出从机状态
}
}
其中StatusAddress为从机DSP数据交换内存中状态的地址,Doneflag为运动完成标志。方法实施后,MotionDone()修改为
MotionDone()
{int Doneflag=0;//将运动完成标志初始化为假
while(!Doneflag)
{#ifdef simulation_config
ISR();//调用中断服务例程
#endif
DSPRead(StatusAddress,&Doneflag);//从DSP数据交换内存读出从机状态
}
}
DSP内存读函数DSPRead()如下所示
DSPRead(int Address,int*Destination)
{
*(int *)DSPReadAddressPort=Address;//地址写入寄存器
*Destination=*(int *)DSPReadContentPort;//寄存器内容读入目的地址
}
其中Address为写入地址,Destination为目的地址,DSPReadAddressPort为DSP内存读出地址寄存器的端口地址,DSPReadContentPort为DSP内存读出内容寄存器的端口地址。方法实施后,DSPRead()修改为
DSPRead(int Address,int *Destination)
{
#ifdef DSP_config
*(int *)DSPReadAddressPort=Address;//地址写入寄存器
*Destination=*(int *)DSPReadContentPort;//寄存器内容读入目的地址
#endif
#ifdef simulation_config
*Destination=*(int *)Address;//直接将地址指向的主机内存单元的内容读入目的地址
#endif
}
中断服务例程ISR()如下所示
ISR()
{float x;
x=ReadEnc();//通过编码器接口读取控制对象运动部件的当前位置
(运动控制算法)
WriteDA(I);//通过D/A将电流信号传递给控制对象的电机
}
其中x为控制对象运动部件的当前位置,I为运动控制算法计算得出的电流控制输出量,ReadEnc()与WriteDA()之间的代码是运动控制算法。
编码器读函数ReadEnc()如下所示
float ReadEnc()
{float EncValue;
EncValue=*(float *)EncValuePort;//读取编码器读数
return EncValue;//返回编码器读数
}
其中EncValuePort为编码器计数值端口地址。方法实施后,ReadEnc()修改为
float ReadEnc()
{float EncValue;
#ifdef DSP_config
EncValue=*(float*)EncValuePort;//读取编码器读数
return EncValue;//返回编码器读数
#endif
#ifdef simulation_config
return xSim;//直接返回仿真计算的当前位置
#endif
}
其中xSim为存储仿真计算的当前位置的全局变量,将会在后面关于运动仿真函数MotionSim()的描述中详细解释。
D/A写函数WriteDA()如下所示
WriteDA(float I)
{
*(float *)DAValuePort=I;//写入DA值寄存器
}
其中DAValuePort为DA值寄存器端口地址。方法实施后,WriteDA()修改为
WriteDA(float I)
{
#ifdef DSP_config
*(float*)DAValuePort=I;//写入DA值寄存器
#endif
#ifdef simulation_config
MotionSim(I);//调用运动仿真函数计算当前位置
#endif
}
在定义MotionSim()前,首先定义两个全局变量
float xSim,velSim;
其中xSim为仿真计算的当前位置,velSim为仿真计算的当前速度。通常在仿真起始时xSim和velSim都初始化为0。
根据方程(5)和方程(7)定义由矢量[y1y2]和电流I计算导数矢量[dydt1 dydt2]的函数derivative()如下
derivative(float*y,I,float *dydt)
{
dydt[0]=y[1];
dydt[1]=(Kf*I c*y[1]-k*y[0])/m;
}
其中I,m,Kf,c,k的定义均与方程(7)中相同。
根据方程(8)定义运动仿真函数MotionSim()如下
MotionSim(float I)
{int i;
float y[2],yt[2],dydt[2];
float h;
float b1[2],b2[2],b3[2],b4[2];
h=TItr;
y[0]=xSim;
y[1]=velSim;
deri vative(y,I,dydt);
for(i=0;i<2;i++)
b1[i]=h*dydt[i];
for(i=0;i<2;i++)
yt[i]=y[i]+0.5*b1[i];
derivative(yt,I,dydt);
for(i=0;i<2;i++)
b2[i]=h*dydt[i];
for(i=0;i<2;i++)
yt[i]=y[i]+0.5*b2[i];
derivative(yt,I,dydt);
for(i=0;i<2;i++)
b3[i]=h*dydt[i];
for(i=0;i<2;i++)
yt[i]=y[i]+b3[i];
derivative(yt,I,dydt);
for(i=0;i<2;i++)
b4[i]=h*dydt[i];
for(i=0;i<2;i++)
y[i]=y[i]+b1[i]/6+b2[i]/3+b3[i]/3+b4[i]/6;
xSim=y[0];
velSim=y[1];
}MotionSim()计算并最终更新当前仿真位置xSim和当前仿真速度velSim。
实施例参见图3:实时仿真调试方法被应用在一个半导体生产设备的工作台上。图3给出了工作台的结构,它由沿相互垂直的方向运动的X滑块1、Y滑块2和各自的驱动电机X电机3和Y电机4组成。对于工作台X方向的运动,X滑块是运动控制系统中控制对象的运动部件,它的特征值如下所示
m=5kg,c=0,k=0。
X电机的特征值为:Kf=16.31N/A;
按前面的说明对主机和DSP代码进行相应的修改,并将上列系统常数代入方程(7),就可以对运动控制系统在主机上进行完全脱离DSP和控制对象(X滑块和X电机)的真实反映运动控制算法实时运行状况的仿真和调试。
参见图4,该图表示了对设备在X方向典型的18毫秒内完成2.54mm的运动的仿真结果。图中显示了仿真计算得到的运动过程中的X滑块的理想和实际位置以及两者之间的差值-跟随误差,X电机电流。各信号的显示比例是理想/实际位置1mm/格,跟随误差1mm/格,电机电流5A/格。实时仿真调试方法可以以同样的方式应用在工作台Y方向的运动上。

Claims (6)

1. 一种实时运动控制算法仿真调试方法,由主机、从机和控制对象组成运动控制系统,其特征在于:该方法把从机DSP上运行的运动控制代码完整不变地转移到主机上运行,并采用数值仿真的方法来准确模拟控制对象的真实响应;
首先,把从机DSP上定义的用于与主机进行数据交换的内存区间转移定义到主机的内存映射中,并将相应的主机对DSP内存区间读写的函数修改为新的函数,新的函数对新定义的主机内存映射进行操作;
其次,将运动控制代码中通过输出接口更新驱动电机电流信号的函数修改为根据代码计算的输出量用数值积分方法来计算控制对象的响应,并存储在相应的内存单元中;
同时,把代码中通过输入接口读取运动控制系统当前位置的函数修改为新的函数,新的函数从存储控制对象响应的数值计算结果的内存单元中读取运动控制系统当前位置;
最后,在主机中循环检测从机状态,等待从机完成运动命令的函数中加入对从机DSP代码ISR的调用,以达到运动控制算法的反复运行。
2. 一种实时运动控制算法仿真调试方法,包括主机、从机和控制对象,其特征在于:
主机CPU中运行的主程序调用DSP内存写函数DSPWrite(),向从机DSP的数据交换内存写入运动命令,之后,运行运动完成检测函数MotionDone(),来检测从机是否完成所写入的运动命令;
MotionDone()调用函数DSP内存读函数DSPRead()自从机DSP的数据交换内存中读出从机状态,判断运动命令是否完成,MotionDone()循环运行直至运动完成为止;
从机DSP中的中断服务例程ISR首先调用编码器读函数ReadEnc()通过编码器接口读取控制对象运动部件的当前位置,其后经过运动控制算法的计算得出新的电流控制输出量,然后运行D/A写函数WriteDA()通过D/A将这一电流信号传递给控制对象的电机;
ISR运行的过程中通过DSP的数据交换内存接受主机CPU的运动命令并将包含命令执行结果的自身状态反馈给主机CPU;
ISR在时钟中断的精确触发下,每隔一个中断周期Tltr运行一次,一直循环持续下去;
控制对象的电机以从机DSP规定的电流驱动运动部件到达当前位置。
3. 一种实时运动控制算法仿真调试方法,包括主机、从机和控制对象,其特征在于:
在主机CPU中运行的主程序基础之上,把从机DSP上运行的ISR代码转移到主机CPU上运行,同时将DSP中的数据交换内存也转移定义到主机的内存映射中;
将主程序中的函数DSPWrite()和DSPRead()分别修改为对定义在主机上的数据交换内存进行写入和读出;
在主程序的函数MotionDone()中加入对ISR()的调用,以使ISR()随函数MotionDone()反复循环运行直至运动完成为止;
将ISR()中的函数WriteDA()修改为调用运动仿真函数MotionSim();
函数MotionSim()根据运动控制算法计算的电流控制输出量用四阶龙格-库塔法计算控制对象的响应并存储在位置内存中;
把ISR()中的函数ReadEnc()修改为从位置内存中读取系统当前位置;
ISR()中ReadEnc()与WriteDA()之间的代码是运动控制算法的主体,在从DSP到主机的转移中保持完整不变;
仿真调试方案中内存定义和函数的少量修改通过条件编译命令实现,达到同一源文件用于DSP可执行文件编译和运动控制算法实时仿真调试;
方案中位置内存里储存的控制对象位置及其导出量与各种数据可视化手段相结合,形成完全脱离从机和控制对象的运动控制算法虚拟实时仿真调试环境。
4. 根据权利要求3所述的实时运动控制算法仿真调试方法,其特征在于:
上述用于计算控制对象响应的四阶龙格-库塔法是准确数值积分方法,适用于任何可以用状态空间中表达,即动态特性可以写成一个线性一阶常微分方程组的系统;一个运动控制系统中典型的单自由度质量-弹簧-阻尼运动部件的动力学方程可以写为
m d 2 x dt 2 + c dx dt + kx = F - - - ( 1 )
其中x为运动部件的位置,t为时间,m为运动部件的质量,c为阻尼系数,k为弹簧刚度,F为作用于运动部件的电机驱动力;
方程(1)可以重写为
d 2 x dt 2 = F m - c m dx dt - k m x - - - ( 2 )
电机线圈内的电流和电机的驱动力之间存在以下关系
F=KfI
(3)
其中F为电机驱动力,I为运动控制算法计算得出的电流控制输出量,Kf为电机的力敏感度;将方程(3)代入方程(2)可以得到
d 2 x dt 2 = K f I m - c m dx dt - k m x - - - ( 4 )
定义变量矢量如下
y 1 y 2 = x dx dt - - - ( 5 )
定义相应的变量导数矢量如下
dyd t 1 dydt 2 = dx dt d 2 x dt 2 - - - ( 6 )
将方程(4)代入方程(6)可以得到
dy dt 1 dydt 2 = y 2 K f I m - c m y 2 - k m y 1
(7)
方程(5)和方程(7)给出了单自由度二阶线性动态系统的状态空间表达;根据四阶龙格-库塔法的定义,控制对象的响应通过以下数值积分方法计算
b1i=hdydxi(y1,n,y2,n)
b 2 i = hdydx i ( y 1 , n + b 11 2 , y 2 , n + b 12 2 )
b 3 i = hdydx i ( y 1 , n + b 21 2 , y 2 , n + b 22 2 )
b4i=hdydxi(y1,n+b31,y2,n+b32)
y i , n + 1 = y i , n + b 1 i 6 + b 2 i 3 + b 3 i 3 + b 4 i 6 - - - ( 8 )
其中i=1,2,h为积分的时间步长,在ISR中断周期TItr足够小的情况下可以把h设为TItr,y1,n和y2,n分别为方程(5)中变量矢量两个分量在当前时刻的已知值,yi,n+1为相应变量矢量分量在与当前时刻相隔时间h的下一时刻的计算值。
5. 根据权利要求3所述的实时运动控制算法仿真调试方法,其特征在于:上述导出量是速度或加速度。
6. 一种根据权利要求1-5任一项所述实时运动控制算法仿真调试方法的应用方法,其特征在于:上述实时仿真调试方法被应用在一个半导体生产设备的工作台上,工作台的由沿相互垂直的方向运动的X滑块、Y滑块和各自的驱动电机X电机和Y电机组成,对于工作台X方向的运动,X滑块是运动控制系统中控制对象的运动部件,它的特征值如下所示:m=5kg,c=0,k=0;
X电机的特征值为:Kf=16.31N/A;
对主机和DSP代码进行相应的修改,并将上列系统常数代入方程(7),就能对运动控制系统在主机上进行完全脱离DSP和控制对象,即X滑块和X电机,的真实反映运动控制算法实时运行状况的仿真和调试。
CNB2005102006395A 2005-10-24 2005-10-24 实时运动控制算法仿真调试方法 Expired - Fee Related CN100414513C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005102006395A CN100414513C (zh) 2005-10-24 2005-10-24 实时运动控制算法仿真调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005102006395A CN100414513C (zh) 2005-10-24 2005-10-24 实时运动控制算法仿真调试方法

Publications (2)

Publication Number Publication Date
CN1770046A CN1770046A (zh) 2006-05-10
CN100414513C true CN100414513C (zh) 2008-08-27

Family

ID=36751383

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005102006395A Expired - Fee Related CN100414513C (zh) 2005-10-24 2005-10-24 实时运动控制算法仿真调试方法

Country Status (1)

Country Link
CN (1) CN100414513C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105334349B (zh) * 2014-08-12 2018-09-25 上海新跃仪表厂 一种液浮加速度计闭环测试系统及其测试方法
CN104589071A (zh) * 2014-12-15 2015-05-06 广西科技大学 数控工作中心线轨鞍座的工作方法
CN107807880B (zh) * 2017-09-28 2021-03-19 中国科学院长春光学精密机械与物理研究所 多自由度运动控制系统调试方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04310993A (ja) * 1991-04-09 1992-11-02 Hitachi Zosen Corp 運動体のシミュレーション装置
CN1555015A (zh) * 2003-12-26 2004-12-15 中兴通讯股份有限公司 一种数字信号处理系统的调试方法
EP1487139A1 (de) * 2003-06-11 2004-12-15 ARC Seibersdorf research GmbH Kanalsimulator
JP2005100017A (ja) * 2003-09-24 2005-04-14 Seiko Epson Corp プロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法
CN1619446A (zh) * 2003-11-17 2005-05-25 城动科技(香港)有限公司 多轴数控处理系统
CN1622052A (zh) * 2004-12-15 2005-06-01 浙江大学 嵌入式信号处理器模拟器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04310993A (ja) * 1991-04-09 1992-11-02 Hitachi Zosen Corp 運動体のシミュレーション装置
EP1487139A1 (de) * 2003-06-11 2004-12-15 ARC Seibersdorf research GmbH Kanalsimulator
JP2005100017A (ja) * 2003-09-24 2005-04-14 Seiko Epson Corp プロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法
CN1619446A (zh) * 2003-11-17 2005-05-25 城动科技(香港)有限公司 多轴数控处理系统
CN1555015A (zh) * 2003-12-26 2004-12-15 中兴通讯股份有限公司 一种数字信号处理系统的调试方法
CN1622052A (zh) * 2004-12-15 2005-06-01 浙江大学 嵌入式信号处理器模拟器

Also Published As

Publication number Publication date
CN1770046A (zh) 2006-05-10

Similar Documents

Publication Publication Date Title
CN107678307B (zh) 半实物仿真测试系统
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
CN104460646B (zh) 用于对虚拟控制器进行实时测试的测试装置
US8135567B2 (en) Method of emulating machine tool behavior for programmable logic controller logical verification system
JP3803019B2 (ja) 制御プログラム開発支援装置
CN103477290A (zh) 控制器辅助装置、用于在该装置中执行的控制器辅助程序以及存储有该程序的记录介质
US11366945B2 (en) Soft-real-time hub providing data transport for processor-in-the-loop (PIL) simulations
JP2014041158A (ja) 電子制御システムをテストする方法
JP4846209B2 (ja) 工作機械シミュレータを有する数値制御装置
JP7052250B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
CN106484403A (zh) 一种机器人跨平台的图形化开发系统
KR20090001725A (ko) 로봇 구동을 위한 하드웨어 시뮬레이션 방법 및 시스템
CN100414513C (zh) 实时运动控制算法仿真调试方法
Lewerentz et al. Case study “production cell”: A comparative study in formal specification and verification
JP7003842B2 (ja) サポート装置およびサポートプログラム
US20210333786A1 (en) Apparatus and Method for Immersive Computer Interaction
Pohl et al. vMAGIC—automatic code generation for VHDL
Ishikawa et al. CPU model-based hardware/software co-design, co-simulation and analysis technology for real-time embedded control systems
CN101710233A (zh) 一种基于rcp的运动控制器的设计方法
Niyonkuru et al. A kernel for embedded systems development and simulation using the boost library
JP3948329B2 (ja) ロボットコントローラシミュレーション装置
CN110991020A (zh) 一种基于PLC和Soildworks软件的模拟仿真方法
Nakamoto et al. Virtual software execution environments for distributed embedded control systems
Brecher et al. Mechatronic development of PLC software with virtual machine tools
Bartosinski et al. Integrated environment for embedded control systems design

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: CETC Beijing Electronic Equipment Co., Ltd.

Assignor: No.45 Inst., China Electronic science and Technology Group Corp.

Contract fulfillment period: 2007.3.1 to 2014.12.29 contract change

Contract record no.: 2009990000523

Denomination of invention: Real-time simulating and debugging method for motion control algorithm

Granted publication date: 20080827

License type: Exclusive license

Record date: 2009.5.18

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2007.3.1 TO 2014.12.29; CHANGE OF CONTRACT

Name of requester: BEIJING ZHONGDIAN SCIENCE ELECTRONIC EQUIPMENT CO.

Effective date: 20090518

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080827

Termination date: 20111024