CN113067527A - 适于执行电机控制的控制器和控制*** - Google Patents
适于执行电机控制的控制器和控制*** Download PDFInfo
- Publication number
- CN113067527A CN113067527A CN202110348872.7A CN202110348872A CN113067527A CN 113067527 A CN113067527 A CN 113067527A CN 202110348872 A CN202110348872 A CN 202110348872A CN 113067527 A CN113067527 A CN 113067527A
- Authority
- CN
- China
- Prior art keywords
- processor
- operating system
- controller
- cache
- data
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P29/00—Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Control Of Electric Motors In General (AREA)
Abstract
本发明提供了一种适于执行电机控制的控制器和控制***。所述控制器包括:第一处理器,配置为运行第一操作***和电机控制,其中所述电机控制运行于所述第一处理器的中断服务程序中;耦接到所述第一处理器的高速缓存;缓存控制器,用于加载所述第一操作***的原语到所述高速缓存,并锁定所述高速缓存;其中所述第一处理器、所述高速缓存和所述缓存控制器集成在同一芯片中。
Description
技术领域
本发明主要涉及控制器,尤其涉及一种适于执行电机控制的控制器和控制***。
背景技术
运动控制和电机控制是工业自动化领域的核心技术。实现运动控制的运动控制器和实现电机控制的电机控制器,是目前自动化领域中常见的自动执行复杂工作的装置上的两个关键控制部件。在其他领域,例如电动机器人、数控机床、电动多旋翼飞行器、电动汽车、机械义肢、机械手掌、电动移动载具中,也会使用包括运动控制和电机控制的控制器。
传统上,大多数的工业自动化***(比如机器人、大型机床)采用的是分布式控制方式。分布式控制方式具体地说是一个运动控制器与多个电机控制器配合。运动控制器和电机控制器之间、电机控制器与电机控制器之间使用总线(例如现场总线)进行通信。
这种分布式的控制方式具有很多已知的缺点。例如硬件器件多会导致硬件成本高、占用空间大。又如,总线通信方式容易受到干扰,且在数据传输量和传输速度方面存在瓶颈。
为此,业界提出了“驱控一体”的设想,期望实现集成了运动控制器、电机控制器等功能为一体的工业控制器。而同时实现运动控制和电机控制,需要有操作***提供任务调度、文件管理和网络通信等基础服务。而且电机控制任务以固定的周期执行,为了保证电机控制的性能,此任务允许的延迟很小。
发明内容
本申请要解决的技术问题是提供适于执行电机控制的控制器和控制***,可以满足电机控制的低延迟需求。
为解决上述技术问题,本申请提供了一种适于执行电机控制的控制器,包括:第一处理器,配置为运行第一操作***和电机控制,其中所述电机控制运行于所述第一处理器的中断服务程序中;耦接到所述第一处理器的高速缓存;缓存控制器,用于加载所述第一操作***的原语到所述高速缓存,并锁定所述高速缓存;其中所述第一处理器、所述高速缓存和所述缓存控制器集成在同一芯片中。
在本申请的一实施例中,所述第一处理器包括单个处理核心,且所述第一处理器还配置为运行运动规划。
在本申请的一实施例中,所述第一处理器包括多个处理核心,所述多个处理核心以对称多处理模式运行所述第一操作***,且还配置为运行运动规划。
在本申请的一实施例中,控制器还包括:第二处理器,配置为运行第二操作***和运动控制,所述第二操作***不同于所述第一操作***;其中所述第一处理器与所述第二处理器集成在所述同一芯片中。
在本申请的一实施例中,所述第一处理器包括第一处理核心组合,所述第二处理器包括第二处理核心组合,所述第一处理核心组合和所述第二处理核心组合分别包括一个或多个处理核心。
在本申请的一实施例中,控制器还包括可编程逻辑器件,耦接所述第一处理器,与所述第一处理器协同进行电机控制。
在本申请的一实施例中,所述可编程逻辑器件与所述第一处理器和所述第二处理器集成在所述同一芯片中。
在本申请的一实施例中,所述电机控制包括电流环计算,或者包括电流环计算与速度环计算和/或位置环计算的组合。
在本申请的一实施例中,所述可编程控制器执行电流环计算,所述第一处理器执行速度环计算和/或位置环计算。
在本申请的一实施例中,控制器还包括所述第一操作***的至少一部分,其包括:代码段和数据段,所述代码段和数据段分别对应指定的内存区域;第一标识,第一标识用于指定链接器将所述第一操作***的原语放到所述代码段中;第二标识,用于指定链接器将所述第一操作***的原语的访问数据放到所述数据段中;其中所述第一操作***配置为在启动后将所述代码段和数据段加载到所述指定的内存区域。
在本申请的一实施例中,所述缓存控制器加载所述第一操作***的原语到所述高速缓存的步骤包括:禁止所述高速缓存的工作;允许指定的高速缓存区域加载数据;访问指定的内存区域以将所述内存区域中的所述第一操作***的原语和访问数据加载到所述高速缓存区域;以及允许所述高速缓存正常工作。
本申请的另一方面提出一种在控制器上运行电机控制的方法,所述控制器包括第一处理器、缓存控制器和耦接到所述第一处理器的高速缓存,且所述第一处理器、所述高速缓存和所述缓存控制器集成在同一芯片中,所述方法包括以下步骤:启动所述第一处理器;在所述第一处理器上运行所述第一操作***;通过所述缓存控制器加载所述第一操作***的原语到所述高速缓存,并锁定所述高速缓存;以及在所述第一处理器的中断服务程序中运行电机控制。
在本申请的一实施例中,所述第一处理器包括单个处理核心,且所述方法还包括在所述第一处理器运行运动规划。
在本申请的一实施例中,所述第一处理器包括多个处理核心,其中在所述第一处理器上以对称多处理模式运行所述第一操作***,且运行运动规划。
在本申请的一实施例中,所述控制器还包括第二处理器,与所述第一处理器集成在同一芯片中,所述方法还包括:启动所述第二处理器;以及在所述第二处理器上运行第二操作***和运动控制,所述第二操作***不同于所述第一操作***。
在本申请的一实施例中,所述控制器还包括可编程逻辑器件,耦接所述第一处理器且与所述第一处理器和所述第二处理器集成在所述同一芯片中,所述方法还包括:在所述可编程逻辑器件上与所述第一处理器协同进行电机控制。
在本申请的一实施例中,所述第一操作***包括:代码段和数据段,所述代码段和数据段分别对应指定的内存区域;第一标识,第一标识用于指定链接器将所述第一操作***的原语放到所述代码段中;第二标识,用于指定链接器将所述第一操作***的原语的访问数据放到所述数据段中;所述方法还包括通过所述第一操作***将所述代码段和数据段加载到所述指定的内存区域。
在本申请的一实施例中,所述方法还包括:在链接文件里定义代码段和数据段,所述代码段和数据段分别对应指定的内存区域;在所述第一操作***的源码中,定义所述第一操作***的原语时添加第一标识,所述第一标识用于指定链接器将所述第一操作***的原语放到所述代码段中;在所述第一操作***的源码中,定义所述第一操作***的原语的访问数据时添加第二标识,所述第一标识用于指定链接器将所述访问数据放到所述数据段中;编译所述第一操作***的源码并链接为可执行程序。
本申请的另一方面提出一种控制***,包括如上所述的控制器。
与现有技术相比,本发明通过处理器的中断服务程序来运行电机控制所需的强实时任务。并且操作***原语加载到高速缓存并锁定,降低这部分操作***原语的执行时间,使其在执行时屏蔽中断服务的操作不会导致电机控制所需的中断被延迟。
附图说明
包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本申请原理的作用。附图中:
图1是根据本发明一实施例的控制器的逻辑结构。
图2是根据本发明第一实施例的控制器的电路框图。
图3是根据本发明第一实施例的控制器的示例运行过程。
图4是根据本发明第二实施例的控制器的电路框图。
图5是根据本发明第二实施例的控制器的示例运行过程。
图6是根据本发明第三实施例的控制器的电路框图。
图7是根据本发明第四实施例的控制器的电路框图。
图8是根据本发明第四实施例的控制器的示例运行过程。
图9是根据本发明一实施例的运行电机控制的方法流程图。
图10是根据本发明一实施例的加载操作***原语到高速缓存的方法流程图。
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本申请保护范围的限制。此外,尽管本申请中所使用的术语是从公知公用的术语中选择的,但是本申请说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本申请。
应当理解,当一个部件被称为“在另一个部件上”、“连接到另一个部件”、“耦接于另一个部件”或“接触另一个部件”时,它可以直接在该另一个部件之上、连接于或耦接于、或接触该另一个部件,或者可以存在***部件。相比之下,当一个部件被称为“直接在另一个部件上”、“直接连接于”、“直接耦接于”或“直接接触”另一个部件时,不存在***部件。同样的,当第一个部件被称为“电接触”或“电耦接于”第二个部件,在该第一部件和该第二部件之间存在允许电流流动的电路径。该电路径可以包括电容器、耦接的电感器和/或允许电流流动的其它部件,甚至在导电部件之间没有直接接触。
本发明的实施例描述包含运动控制和电机控制功能的控制器。图1是根据本发明一实施例的控制器的逻辑结构。如本领域技术人员所理解的,运动控制功能指的是根据具体的应用任务,将设备所有电机轴随着时间的动作目标计算出来。根据具体应用的不同,计算步骤、计算对象和计算的参数变量可能也会不同,但其最终目的都是为了得到电机给定值和时间的关系,并产生对应的“各轴电机给定值——时间”数据流(数据信息)。电机给定值例如可以是电机的转角位置、转速、转矩中的任意一种或几种。
电机给定值会在对应的时间点上准时地被下发给电机控制功能执行。电机控制功能是根据运动控制计算出的给定值去控制驱动电路,从而驱动电机又快又稳地达到给定值的要求。电机控制中会涉及到“电流环”、“速度环”和“位置环”计算。根据给定值不同所需要计算的控制环也不同。一般情况下,给定值为角度值时,计算所有三个环;给定值为速度值时,计算电流环、速度环;给定值为力矩时,计算电流环。因此最基本的***都会至少有电流环。电机控制功能可以实时地接收并处理各轴电机给定值的数据信息并控制电机的转动,当所有轴在规定的时间点到达规定的给定值(可能是角度值、也可能是速度或力矩),则最终反应在终端执行上的合成运动就会是应用任务所需要的样子。对于一个需要各轴动作协调的设备或***来说,最理想的是同时同步地计算和控制所有轴,使得各轴协调合成出来的终端执行器运动准确。
参考图1所示,根据本发明一实施例的控制器10可包括运动控制器11和电机控制器12。运动控制器11可执行前述的运动控制功能。电机控制器12可执行前述的电机控制功能。示教器(Teach Pendant,TP)是运动控制器11的上位机,用于给运动控制器11发送应用任务指令,或者进行计划控制的编辑。运动控制器11从示教器接收命令,据此进行运动规划,发送运动控制数据,如前述的各轴电机给定值给电机控制器12。电机控制器12可以据此产生驱动控制信号(如脉冲宽度调制PWM信号)给电机驱动器13,由后者驱动电机运转。
在本发明的各实施例中,控制器10可以应用于电动机器人、数控机床、电动多旋翼飞行器、电动汽车、机械义肢、机械手掌、电动移动载具等场合,用于各类多轴的、轴之间须动作协调的、电机驱动的设备的运动任务计算控制和电机控制。
在本发明的各实施例中,对电机的轴数不做限定,可以是6轴或8轴,也可以是更少的轴,或者更多的轴。
在本申请的上下文中,处理核心为中央处理器(CPU)。中央处理器(CPU)中可包含高速缓存,如一级缓存(L1 Cache)。在本申请的上下文中,高速缓存(高速缓冲存储器)如本领域技术人员所通常理解的,是存在于主存储器(memory)与处理器之间的存储器,其速度比主存储器高得多,接近于处理器的速度。处理器中的二级缓存(L2 Cache)可作为额外的高速缓存。可使用和多个CPU耦接的二级缓存,实现CPU之间的通讯。
图2是根据本发明第一实施例的控制器的电路框图。参考图2所示,本实施例的一种集成运动控制和电机控制的控制器20可包括处理核心21、缓存控制器23和高速缓存(cache)24。单个处理核心21作为本实施例中的第一处理器,配置为运行第一操作***、运动控制和电机控制。高速缓存24是处理核心21和内存之间的二级缓存。可以理解,高速缓存24也可以是其他级别的缓存。高速缓存24耦接到处理核心21。处理核心21、缓存控制器23和高速缓存(cache)24集成在同一芯片中。
在此实施例中,处理核心21运行了操作***,并且执行运动控制和电机控制任务。操作***可以管理整个控制器的运作,完成网络通信、文件管理、设备管理、任务调度和***调试等基础功能。操作***上可以运行具体的应用任务,例如运动控制任务。运动控制任务可将控制器所在设备的所有电机轴随着时间的动作目标计算出来。运动控制任务的实现方式可以是多种多样的。例如根据应用需求不同,可以选择性嵌入不同的具体规划算法模块,开发任务解析软件,进行各种路径规划和关节空间转化。路径规划和关节空间转化的具体算法还可根据应用情况不同而有很大区别。例如工业机器人可使用运动学及其反解算法,无人机可通过调节各轴电机转速来实现悬浮、前进的路径规划变量和关节转化算法。本领域技术人员完全可以根据具体应用需求来设计运动控制功能。
在本实施例中,操作***是小型强实时***,例如RTThread。
处理核心21通过运行运动控制任务,可以规划出控制器20所控制的设备的各个轴在不同时间的位置值、速度值、转矩值或其组合,作为电机给定值。也就是说,电机给定值可以是前述3个值中的任意一种或几种。
处理核心21可以执行电机控制任务,根据前文计算出的电机给定值控制电机驱动器,驱动电机又快又稳地达到电机给定值的要求。在本实施例中,在处理核心21的中断服务程序25中执行电机控制26。具体而言,指定某个时钟中断为高(例如最高)优先级中断,该中断可以抢占其他中断服务程序,电机控制的强实时任务运行于中断服务程序25中。通过这一方式,可以满足电机控制的强实时要求。
电机控制中会涉及到电流环计算、速度环计算和/或位置环计算。根据电机给定值不同所需要计算的控制环也不同。一般情况下,当电机给定值为位置值时,计算所有三个环;当电机给定值为速度值时,计算电流环和速度环;当电机给定值为力矩时,计算电流环。由此,处理核心21的电机控制任务可以选择性地进行电流环计算,或者进行电流环计算与速度环计算和/或位置环计算的组合。处理核心21计算驱动电机达到所需电机给定值要求位置、速度或力矩所需的电流,根据计算结果输出驱动控制信号(如PWM信号)给IGBT或IPM或其他类型的功率器件来驱动电机。
在处理核心21所运行的小型强实时***的核心部分中,有需要屏蔽中断的关键代码段——操作***原语。原语是在操作***中调用核心层子程序的指令。与一般广义指令的区别在于原语是不可中断的,而且总是作为一个基本单位出现。它与一般过程的区别在于:它们是“原子操作(primitive or atomic action)”。所谓原子操作,是指一个操作中的所有动作要么全做,要么全不做。换言之,原语是一个不可分割的基本单位,因此,在执行过程中不允许被中断。原子操作在管态下执行,常驻内存。在本实施例中,将操作***原语及其访问(读和/或写)的数据载入到高速缓存24中以确保其执行时间足够短。参考图2所示,缓存控制器23将操作***原语24a从内存30加载到高速缓存24,并锁定高速缓存24。
在一个实施例中,操作***包括代码段和数据段,分别对应指定的内存区域。例如:定义代码段名为“RTcode”,数据段名字为“RTdata”。操作***还包括第一标识及第二标识。第一标识用于指定链接器将操作***原语24a放到前述代码段中,其格式例如为__attribute__((section(".RTcode")))。第二标识用于指定链接器将操作***原语的访问数据放到数据段中,其格式例如为__attribute__((section(".RTdata")))。在一个实施例中,对操作***源码进行修改以包含上述部分。然后,对操作***源码编译并链接为可执行程序。操作***配置为在启动后将代码段和数据段加载到内存30中指定的内存区域。
程序启动后的初始化阶段,缓存控制器23加载操作***原语到高速缓存24。具体过程包括:禁止高速缓存24的工作;允许指定的高速缓存区域加载数据;访问内存30中指定的内存区域以将该内存区域中的操作***的原语和访问数据加载到高速缓存24中指定的高速缓存区域;允许高速缓存24正常工作。这些步骤完成后,保证了操作***原语的代码和访问数据所在的内存区域映射到了高速缓存24,操作***原语的代码和访问的数据也被加载到高速缓存24。之后,缓存控制器23可锁定指定的高速缓存区域,使其所映射的内存地址不会发生改变,从而避免控制器将高速缓存区域映射到其他地址。
在一些实施例中,操作操作原语的执行时间小于1微秒(μm)。
在一实施例中,数据流从非实时任务流向强实时电机控制任务时,使用无锁队列,从而降低延迟。反过来,非实时任务读取强实时电机控制任务的反馈数据,并对数据进行“写”控制。
图3是根据本发明第一实施例的控制器的示例运行过程。参考图3所示,处理核心21在运动控制过程中产生运动控制数据,并根据运动控制数据进行电机控制,产生驱动控制信号给电机驱动器31,由电机驱动器31输出电流控制电机32运转。从电机32处采集的反馈数据,可反馈到处理核心21。反馈数据可包括位置数据、速度数据、力矩数据和电流数据中的一部分或全部。
图4是根据本发明第二实施例的控制器的电路框图。参考图4所示,本实施例的一种集成运动控制和电机控制的控制器40可进一步包括处理核心21、缓存控制器23、高速缓存(cache)24和可编程逻辑器件(PLD)42。处理核心21,配置为执行操作***、运动控制和电机控制。PLD 42耦接处理核心21,与处理核心21协同进行电机控制。在此实施例中,处理核心21、缓存控制器23、高速缓存24和PLD 42集成在同一个处理芯片中。
与前一实施例不同的是,本实施例引入了PLD 42,PLD 42具有并行计算快速的特点,因此当电机轴数多时,这是一个明显的优势。PLD 42与处理核心21耦接以实现协调。在此,耦接的方式例如是通过处理器与PLD之间的接口41来实现。一些SoC芯片,如Altera公司的Cyclone V芯片提供了这样的接口。在各实施例中,PLD 42的类型可以是现场可编程门阵列(Field Programmable Gate Array,FPGA)。
在一实施例中,处理核心21与PLD 42组成电机控制器,协同执行电机控制任务,根据处理核心21计算出的电机给定值去控制电机驱动器31,驱动电机32又快又稳地达到电机给定值的要求。
在各实施例中,可在组合为电机控制器的处理核心21和PLD 42之间分配电机控制任务。当处理核心21和PLD 42的组合协同负责位置环计算、速度环计算和电流环计算时,分配电机控制任务的方式例如是:处理核心21负责电流环计算,PLD 42负责速度环计算和位置环计算;或者处理核心21负责位置环计算和速度环计算,PLD 42负责电流环计算。当处理核心21和PLD 42的组合仅协同负责位置环计算、速度环计算和电流环计算中的一部分,例如速度环计算和电流环计算时,任务在处理核心21和PLD 42间的分配可相应地调整。例如处理核心21负责速度环计算、PLD 42负责电流环计算。本实施例的其他细节可参考第一实施例,在此不再展开。
图5是根据本发明第二实施例的控制器的示例运行过程。参考图5所示,处理核心21在运动控制过程中可产生运动控制数据。处理核心21和PLD 42进一步可根据运动控制数据进行电机控制,产生驱动控制信号给电机驱动器31,由电机驱动器31输出电流控制电机32运转。在此,假设处理核心21处理位置环和速度环计算,而PLD 42处理电流环计算。从电机32处采集的反馈数据,可反馈到处理核心21。反馈数据可包括位置数据、速度数据、力矩数据和电流数据中的一部分或全部。根据应用需求,也可以完全没有反馈数据,形成局部开环或全开环控制,这不会影响整个控制***的基本功能的实现及其性能。本实施例的其他细节可参考第一实施例和第二实施例,在此不再展开。
图6是根据本发明第三实施例的控制器的电路框图。参考图6所示,本实施例的控制器60可包括由多个处理核心组成的第一处理器61、PLD62和高速缓存63。与第二实施例不同的是,本实施例中,包括处理核心1至N(N为正整数)的多个处理核心作为第一处理器61,以对称多处理(SMP)模式运行操作***。
对第一处理器61来说,操作***和运动控制任务的运行可以在多个处理核心间分配。PLD 62耦接第一处理器61,与第一处理器61协同进行电机控制。参考第一实施例可知,PLD 62可以省略,此时仅由第一处理器61进行电机控制。
图7是根据本发明第四实施例的控制器的电路框图。参考图7所示,本实施例的的控制器70可包括第一处理核心21、第二处理核心22、缓存控制器23、高速缓存(cache)24和可编程逻辑器件(PLD)72。第一处理核心21,配置为执行第一操作***和电机控制。第二处理核心22,配置为执行第二操作***和运动控制。第二操作***和第一操作***不同。高速缓存24耦接到第一处理核心21和第二处理核心22。第一处理核心21和第二处理核心22配置为在运动控制和电机控制期间,通过高速缓存24进行数据交互。可编程逻辑器件(PLD)72耦接第一处理核心21,与第一处理核心21组成电机控制器,协同进行电机控制。第一处理核心21、第二处理核心22、缓存控制器23、高速缓存(cache)24和PLD72集成在同一芯片中。
与第二实施例不同的是,本实施例引入了第二处理核心22。第二处理核心22运行通用操作***,例如有实时补丁的Linux***。这类操作***生态完善,实时性偏弱。第一处理核心21仍然运行小型强实时***。根据第一处理核心21和第二处理核心22的配置,二者常态地形成非对称多路处理结构(AMP)。第一处理核心41完成运动任务解析、上位机通信等功能。具体而言,用户程序在上位机的人机交互界面编辑好后,上位机通过网线把用户程序传输到控制器70,程序的解析由第二处理核心22完成,第二处理核心22会把用户指令解析成运动控制器能够识别的指令。
***的备份和恢复、数据文件和日志文件的分类记录和管理等文件管理功能在第二处理核心22里实现。
状态管理模块运行在第二处理核心22。监控的状态包括外部设备的状态、运动控制器的状态和电机控制器的状态等。驱控一体的控制器70会根据状态管理模块收集的状态作出相应的处理,还会把一些状态信息通过网络传输给上位机。
第二处理核心22通过运行运动控制任务,可以规划出控制器70所控制的设备的各个轴在不同时间的位置值、速度值、转矩值或其组合,作为电机给定值。也就是说,电机给定值可以是前述3个值中的任意一种或几种。第二处理核心22可在预定的时间点(或提前一个确定、明确的时间量)上将对应的电机给定值输出给第一处理核心21执行。在另一实施例中,第一处理核心21和第二处理核心22协调完成运动规划任务。
第一处理核心21根据计算出的电机给定值控制电机驱动器,驱动电机又快又稳地达到电机给定值的要求。电机控制中会涉及到电流环计算、速度环计算和/或位置环计算。根据电机给定值不同所需要计算的控制环也不同。一般情况下,当电机给定值为位置值时,计算所有三个环;当电机给定值为速度值时,计算电流环和速度环;当电机给定值为力矩时,计算电流环。由此,电机控制器的电机控制任务可以选择性地进行电流环计算,或者进行电流环计算与速度环计算,或者电流环计算与位置环计算,或者进行电流环计算、速度环计算与位置环计算。第一处理核心21和PLD 42之间的任务可以进行各种可能的分配,如位置环计算在第一处理核心21进行,其他环在PLD 42进行,或者位置环和速度环计算都在第一处理核心21进行,而电流环计算在PLD 42进行。这主要取决于控制环路计算速率的要求和硬件平台的性能限制。
在本实施例中,第一处理核心21和第二处理核心22虽然使用AMP模式,但是可以共享高速缓存24。即第一处理核心21和第二处理核心2242配置为在运动控制和电机控制期间,通过高速缓存24进行数据交互。具体地说,在运动控制期间,第一处理核心21可以将运动控制数据(如电机给定值)写入高速缓存24中,第二处理核心22则可以从高速缓存24读取运动控制数据。如前所述,在各实例中,运动控制数据包括位置数据、速度数据、力矩数据和/或电流数据,根据第一处理核心21和第二处理核心22之间的任务分配而定。相应地,第一处理核心21可将反馈数据写入高速缓存24中,第二处理核心22从高速缓存43读取反馈数据。相应于运动控制数据的类型,反馈数据可包括位置数据、速度数据、力矩数据和/或电流数据。例如当运动控制数据是位置数据时,反馈数据一般包括位置数据,也可包括速度数据、电流数据。当运动控制数据是速度数据时,反馈数据一般包括速度数据,也可包括位置数据、电流数据。当然可以理解,反馈数据可以与运动控制数据无关。例如反馈数据常态地包括位置数据、速度数据、力矩数据和电流数据中的任意一种或几种;甚至根据应用场合需要直接反馈终端执行器的位置或姿态数据给运动控制处理器也是可行的(例如无人机的姿态、速度,或者电动汽车的姿态、速度)。
在图未示的实施例中,第一处理核心21和/或第二处理核心22的数量可以是多个,从而分别扩展成多核的第一处理器和/或第二处理器。
图8是根据本发明第四实施例的控制器的示例运行过程。参考图8所示,第二处理核心22在运动控制过程中可产生运动控制数据给第一处理核心21。第一处理核心21和PLD72可根据运动控制数据进行电机控制,产生驱动控制信号给电机驱动器31,由电机驱动器31输出电流控制电机32运转。在此,假设第一处理核心21处理位置环和速度环计算,而PLD 72处理电流环计算。从电机32处采集的第一反馈数据,可反馈到第一处理核心21。第一处理核心21可向第二处理核心22反馈第二反馈数据。第一反馈数据可包括位置数据、速度数据、力矩数据和电流数据中的一部分或全部。第二反馈数据可以是完全来自第一反馈数据。第二反馈数据也可以不是完全来自第一反馈数据。例如第二反馈数据可以包括第一处理核心21产生的数据。根据应用需求,也可以完全没有第一反馈数据或第二反馈数据,形成局部开环或全开环控制,这不会影响整个控制***的基本功能的实现及其性能。
图9是根据本发明一实施例的运行电机控制的方法流程图。参考图9所示,此方法包括如下步骤:
在步骤901,启动第一处理器;
在步骤902,在第一处理器上运行第一操作***;
在步骤903,通过缓存控制器加载第一操作***的原语到高速缓存,并锁定高速缓存;
在步骤904,在第一处理器的中断服务程序中运行电机控制。
根据前述第一实施例的架构,第一处理器包括单个处理核心21。此时方法在步骤902中还包括在第一处理器运行运动规划。
根据前述第二实施例的架构,控制器还包括PLD 42,此时还包括在PLD42上与第一处理器协同进行电机控制。
根据前述第三实施例的架构,第一处理器包括多个处理核心。此时在步骤902中,在第一处理器上以对称多处理模式运行第一操作***,且运行运动规划。
根据前述第四实施例的架构,控制器还包括由第二处理核心22组成的第二处理器。此时方法还包括:在步骤901启动第二处理器,在步骤902中在第二处理器上运行第二操作***和运动控制,第二操作***不同于第一操作***。
如前文所述,第一操作***包括代码段、数据段、第一标识和第二标识,用于将将操作***原语和访问数据加载到指定的内存区域。这一步骤的实现方法如图10所示,包括以下步骤。在步骤1001,在链接文件里定义代码段和数据段,所代码段和数据段分别对应指定的内存区域。在步骤1002,在第一操作***的源码中,定义第一操作***的原语时添加第一标识,第一标识用于指定链接器将第一操作***的原语放到代码段中;在步骤1003,在第一操作***的源码中,定义第一操作***的原语的访问数据时添加第二标识,第一标识用于指定链接器将访问数据放到数据段中。在步骤1004,编译第一操作***的源码并链接为可执行程序。在步骤1005,第一操作***启动后会将数据段和代码段加载到指定的内存区域。在步骤1006,缓存控制器将数据段和代码段从指定的内存区域加载到指定的缓存区域。这一步骤的流程已经于前文描述。
本申请中使用了流程图用来说明根据本申请的实施例的***所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“***”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (19)
1.一种适于执行电机控制的控制器,包括:
第一处理器,配置为运行第一操作***和电机控制,其中所述电机控制运行于所述第一处理器的中断服务程序中;
耦接到所述第一处理器的高速缓存;以及
缓存控制器,用于加载所述第一操作***的原语到所述高速缓存,并锁定所述高速缓存;
其中所述第一处理器、所述高速缓存和所述缓存控制器集成在同一芯片中。
2.根据权利要求1所述的控制器,其特征在于,所述第一处理器包括单个处理核心,且所述第一处理器还配置为运行运动规划。
3.根据权利要求1所述的控制器,其特征在于,所述第一处理器包括多个处理核心,所述多个处理核心以对称多处理模式运行所述第一操作***,且还配置为运行运动规划。
4.根据权利要求1所述的控制器,其特征在于,还包括:
第二处理器,配置为运行第二操作***和运动控制,所述第二操作***不同于所述第一操作***;
其中所述第一处理器与所述第二处理器集成在所述同一芯片中。
5.根据权利要求4所述的控制器,其特征在于,所述第一处理器包括第一处理核心组合,所述第二处理器包括第二处理核心组合,所述第一处理核心组合和所述第二处理核心组合分别包括一个或多个处理核心。
6.根据权利要求1-5任一项所述的控制器,其特征在于,还包括可编程逻辑器件,耦接所述第一处理器,与所述第一处理器协同进行电机控制。
7.根据权利要求6所述的控制器,其特征在于,所述可编程逻辑器件与所述第一处理器和所述第二处理器集成在所述同一芯片中。
8.根据权利要求1所述的控制器,其特征在于,所述电机控制包括电流环计算,或者包括电流环计算与速度环计算和/或位置环计算的组合。
9.根据权利要求6所述的控制器,其特征在于,所述可编程控制器执行电流环计算,所述第一处理器执行速度环计算和/或位置环计算。
10.根据权利要求1所述的控制器,其特征在于,还包括所述第一操作***的至少一部分,其包括:
代码段和数据段,所述代码段和数据段分别对应指定的内存区域;
第一标识,第一标识用于指定链接器将所述第一操作***的原语放到所述代码段中;
第二标识,用于指定链接器将所述第一操作***的原语的访问数据放到所述数据段中;
其中所述第一操作***配置为在启动后将所述代码段和数据段加载到所述指定的内存区域。
11.根据权利要求1所述的控制器,其特征在于,所述缓存控制器加载所述第一操作***的原语到所述高速缓存的步骤包括:
禁止所述高速缓存的工作;
允许指定的高速缓存区域加载数据;
访问指定的内存区域以将所述内存区域中的所述第一操作***的原语和访问数据加载到所述高速缓存区域;以及
允许所述高速缓存正常工作。
12.一种在控制器上运行电机控制的方法,所述控制器包括第一处理器、缓存控制器和耦接到所述第一处理器的高速缓存,且所述第一处理器、所述高速缓存和所述缓存控制器集成在同一芯片中,所述方法包括以下步骤:
启动所述第一处理器;
在所述第一处理器上运行所述第一操作***;
通过所述缓存控制器加载所述第一操作***的原语到所述高速缓存,并锁定所述高速缓存;以及
在所述第一处理器的中断服务程序中运行电机控制。
13.根据权利要求12所述的方法,其特征在于,所述第一处理器包括单个处理核心,且所述方法还包括在所述第一处理器运行运动规划。
14.根据权利要求12所述的方法,其特征在于,所述第一处理器包括多个处理核心,其中在所述第一处理器上以对称多处理模式运行所述第一操作***,且运行运动规划。
15.根据权利要求12所述的方法,其特征在于,所述控制器还包括第二处理器,与所述第一处理器集成在同一芯片中,所述方法还包括:
启动所述第二处理器;以及
在所述第二处理器上运行第二操作***和运动控制,所述第二操作***不同于所述第一操作***。
16.根据权利要求12-15任一项所述的方法,其特征在于,所述控制器还包括可编程逻辑器件,耦接所述第一处理器且与所述第一处理器和所述第二处理器集成在所述同一芯片中,所述方法还包括:在所述可编程逻辑器件上与所述第一处理器协同进行电机控制。
17.如权利要求12所述的方法,其特征在于,所述第一操作***包括:
代码段和数据段,所述代码段和数据段分别对应指定的内存区域;
第一标识,第一标识用于指定链接器将所述第一操作***的原语放到所述代码段中;
第二标识,用于指定链接器将所述第一操作***的原语的访问数据放到所述数据段中;
所述方法还包括通过所述第一操作***将所述代码段和数据段加载到所述指定的内存区域。
18.如权利要求12所述的方法,其特征在于,所述方法还包括:
在链接文件里定义代码段和数据段,所述代码段和数据段分别对应指定的内存区域;
在所述第一操作***的源码中,定义所述第一操作***的原语时添加第一标识,所述第一标识用于指定链接器将所述第一操作***的原语放到所述代码段中;
在所述第一操作***的源码中,定义所述第一操作***的原语的访问数据时添加第二标识,所述第一标识用于指定链接器将所述访问数据放到所述数据段中;
编译所述第一操作***的源码并链接为可执行程序。
19.一种控制***,包括如权利要求1-11任一项所述的控制器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110348872.7A CN113067527A (zh) | 2021-03-31 | 2021-03-31 | 适于执行电机控制的控制器和控制*** |
PCT/CN2022/077106 WO2022206214A1 (zh) | 2021-03-31 | 2022-02-21 | 适于执行电机控制的控制器和控制*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110348872.7A CN113067527A (zh) | 2021-03-31 | 2021-03-31 | 适于执行电机控制的控制器和控制*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113067527A true CN113067527A (zh) | 2021-07-02 |
Family
ID=76565184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110348872.7A Pending CN113067527A (zh) | 2021-03-31 | 2021-03-31 | 适于执行电机控制的控制器和控制*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113067527A (zh) |
WO (1) | WO2022206214A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022206214A1 (zh) * | 2021-03-31 | 2022-10-06 | 实时侠智能控制技术有限公司 | 适于执行电机控制的控制器和控制*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140025930A1 (en) * | 2012-02-20 | 2014-01-23 | Samsung Electronics Co., Ltd. | Multi-core processor sharing li cache and method of operating same |
CN103744342B (zh) * | 2014-01-22 | 2016-09-14 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制*** |
US11157407B2 (en) * | 2016-12-15 | 2021-10-26 | Optimum Semiconductor Technologies Inc. | Implementing atomic primitives using cache line locking |
CN109240191B (zh) * | 2018-04-25 | 2020-04-03 | 实时侠智能控制技术有限公司 | 集成运动控制和电机控制的控制器和控制*** |
CN110842920B (zh) * | 2019-11-12 | 2021-12-07 | 佛山智能装备技术研究院 | 一种单处理芯片的控驱一体***架构 |
CN113067527A (zh) * | 2021-03-31 | 2021-07-02 | 实时侠智能控制技术有限公司 | 适于执行电机控制的控制器和控制*** |
-
2021
- 2021-03-31 CN CN202110348872.7A patent/CN113067527A/zh active Pending
-
2022
- 2022-02-21 WO PCT/CN2022/077106 patent/WO2022206214A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022206214A1 (zh) * | 2021-03-31 | 2022-10-06 | 实时侠智能控制技术有限公司 | 适于执行电机控制的控制器和控制*** |
Also Published As
Publication number | Publication date |
---|---|
WO2022206214A1 (zh) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240191B (zh) | 集成运动控制和电机控制的控制器和控制*** | |
Gasparetto et al. | Path planning and trajectory planning algorithms: A general overview | |
Martinov et al. | From classic CNC systems to cloud-based technology and back | |
Lloyd et al. | Extending the RCCL programming environment to multiple robots and processors | |
WO2006025775A1 (en) | A control system for real time applications for cooperative industrial robots | |
Gwiazda et al. | Integrated approach to the designing process of complex technical systems | |
CN113067527A (zh) | 适于执行电机控制的控制器和控制*** | |
CN114690767A (zh) | 一种机器人轨迹规划方法、***以及机器人 | |
US20210216056A1 (en) | Programmable logic controller and operating method for a programmable logic controller and computer program product | |
CN112148035A (zh) | 多无人机轨迹优化方法、装置、存储介质及计算机设备 | |
US11682999B2 (en) | Motor control method, motor control model conversion method, motor control system, motor control model conversion system, and motor control model conversion program | |
Buttazzo | Application design issues | |
Zeqiri | Functional parameters and performance requirement in the industrial system | |
Sudo et al. | Autonomous Assembly Process Planning According to the Production Line Configuration | |
Wilkening et al. | Mixed-Critical Control Architecture for Industry 5.0 | |
Wigström | Energy efficient multi-robot coordination | |
Kharkov et al. | Development and Research of Methods for Designing Electronic Controls for Cyber-Physical Systems and Multi-Coordinate Mechatronic Technological Complexes | |
Koepper et al. | Behavior-Based Approach for Calculation of a Robot Arm's Inverse Kinematics on a FPGA | |
Yu et al. | Open and portable NURBS interpolator based on quantum framework | |
Adamson et al. | Feature-Based Adaptive Manufacturing Equipment Control for Cloud Environments | |
Gavioli et al. | Adaptive Localization for Autonomous Racing Vehicles with Resource-Constrained Embedded Platforms | |
CN118131675A (zh) | 一种民用电传飞控直接模式控制律实现方法 | |
Wang et al. | Adaptive Machining Using Function Blocks | |
Doronina et al. | An Approach to Modeling the Interrelations Variability at Elements of Production Systems with a Variable Structure | |
Eversheim et al. | Off-Line Programming of Numerically Controlled Industrial Robots Using the ROBEX-Programming-Systems |
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 |