什么是运动控制?

  运动控制就是通过机械传动装置对运动部件的位置、速度进行实时的控制管理,使运动部件按照预期的轨迹和规定的运动参数(如速度、加速度参数等)完成相应的动作。

运动控制系统的典型构成

  1. 开环系统(电机:步进电机;驱动器:脉冲分配,电流放大)

  2. 半闭环系统(电机:直流伺服电机、交流伺服电机;驱动器:电流放大,位置反馈控制)

  3. 半闭环系统(直流伺服电机、交流伺服电机;驱动器:速度反馈控制,电流放大;运动控制器:运动规划,速度指令,位置反馈取自电机轴)

  4. 全闭环系统(驱动器:速度反馈控制,电流放大;运动控制器:运动规划,速度指令,位置反馈取自负载)

  全闭环伺服系统可以消除机械传动带来的误差,而半闭环系统只能补偿部分误差,因此,半闭环伺服系统的精度比全闭环伺服系统的精度要低一些。由于采用了位置检测装置,所以全闭环系统的位置精度在其他因素确定了之后,主要取决于检测装置的分辨率和精度。

  注意半闭环系统2与3的区别。驱动器如果工作在位置模式,运动控制器(运动控制卡、PLC...)就只做位置轨迹的规划(Trajectory generator),每个通信周期发送目标位置到驱动器。驱动器接收到设定位置后,与当前位置比较,并依据控制器-驱动器通信周期与驱动器位置环周期进行线性或者非线性插值,将插值作为每个位置环周期的“设定位置”。

  举个例子,假设驱动器位置环周期是125us,控制器和驱动器通信周期为 2ms,当前位置为 0,目标位置为 1mm,那么接下来 16 个周期驱动器位置环的“设定位置”就依次为:0.0625mm,0.125mm, 0.1875mm, 0.25mm,……1mm. 如果没有插值,那么接下来驱动器的第 1 个周期的设定位置就是 1mm,驱动器在第 125us时,位置为 1mm,在 2-16 个周期,设定位置维持不变,相当于电机停止,直到第 2ms,接收到新的“给定位置”。由于间隔仅为 2ms,电机并不会真的停止,而是表现为顿挫感,转动不流畅,不连贯。

  驱动器如果工作在速度模式,那么控制器就不仅做位置曲线的规划,还要完成位置环的调节。此时NC周期与位置环周期相等,不必插值。伺服驱动器的位置环被忽略,其速度环直接接受上层给出的“设定速度。

驱动器工作模式(Modes of operation)

   CANopen DSP 402协议中对象字典6060h 处定义了驱动器的工作模式:

  不同的驱动器支持的工作模式有所不同。比如下图左边是MAXON的EPOS2驱动器支持的模式,右边是MAXPOS驱动器支持的工作模式(可以看出它们都遵循了CANopen 402标准):

  

  从上面的这些表中可以看出关于位置控制主要有三种模式:周期同步位置模式(CSP),轮廓位置模式(PPM),位置模式(PM)。

  1. 轮廓位置模式(Profile Position Mode)
  Speed, position and acceleration can be limited, profiled moves using a Trajectory Generator can be executed. The trajectory generator supplies the control loop(s) with the demand values.

  轮廓位置模式下,驱动器接收主站发送来的目标位置指令,在驱动器内部根据速度、加速度规划参数设置进行轨迹规划。例如:应用程序要求伺服轴以设定的速度、加速度运动到某个目标位置,驱动器接到这个指令后,在内部的轨迹生成器中计算出每个NC周期(比如:1ms)伺服轴应该到达的位置,然后发送给位置环去执行。

  2. 位置模式(Position Mode)
  Position demand value can be set directly. The Position Mode allows positioning without profile, i.e. the target position is set immediately as a new set value for the position control loop.  The Position Mode is a useful operating mode for a situation wherethe axis acts as a slave axis commanded by progressive positions set values without large jumps. Hence, the path generator is not needed. An example for a progressive set value is an analog set value voltage.

  Special operating modes without path generation are Master Encoder Mode where the slave axis follows the signal pulses from an external encoder (e.g. that of a master axis) or Step Direction Mode, where each pulse command from a stepper motor drive corresponds to a small rotating angle. Alternative operating modes allow running the motion controller without receiving on-line commands. Instead, analog voltage signals or signal pulses are used as command values. These incoming signals are converted to set values that are directly fed into the corresponding control loop without a profile or trajectory being generated.

  

  3. 周期同步位置模式(Cyclic synchronous position mode) ,与轮廓位置模式(Profile Position Mode )不同,其轨迹发生器位于控制器端,而非驱动器内。在该模式下,控制器只需要周期性的下发目标位置即可(与位置插补模式的原理相类似),而且可以设置附加的速度前馈(Velocity offset)或转矩前馈(Torque offset):

  即轮廓位置模式的Trajectory Generator在驱动器内,周期同步位置模式的Trajectory Generator在控制器内,而位置模式(Position Mode)、电子手轮模式(Master Encoder Mode)、脉冲/方向模式(Step Direction Mode)则不需要轨迹生成器。

参考:

固高运动控制技术基础

英威腾SV-DA100交流伺服驱动器EtherCAT技术指南_V1.00

Motion Control for Newbies, featuring maxon EPOS2 P  p46

The Position-based Type II On-Line Trajectory Generation Algorithm

V-rep学习笔记:Reflexxes Motion Library 1

V-rep学习笔记:Reflexxes Motion Library 3

DS402几种位置模式的区别

CiA DSP 402标准

周期同步位置模式(CSP),轮廓位置模式(PPM),位置模式(PM)的更多相关文章

  1. opencv学习之路(28)、轮廓查找与绘制(七)——位置关系及轮廓匹配

    一.点与轮廓的距离及位置关系 #include "opencv2/opencv.hpp" #include <iostream> using namespace std ...

  2. 【OpenCV学习笔记】三十、轮廓特征属性及应用(七)—位置关系及轮廓匹配

    http://blog.csdn.net/abc8730866/article/details/69219992 轮廓特征属性及应用(七)—位置关系及轮廓匹配 1.计算点与轮廓的距离及位置关系——po ...

  3. java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二)

    本篇我们将讨论以下知识点: 1.线程同步问题的产生 什么是线程同步问题,我们先来看一段卖票系统的代码,然后再分析这个问题: package com.zejian.test; /** * @author ...

  4. Activity的生命周期与加载模式——Activity的4种加载模式

    配置Activity时可指定android:launchMode属性,该属性用于配置该Activity的加载模式,该属性支持如下4个属性值. standard:标准模式,这是默认的加载模式. sing ...

  5. ASM:《X86汇编语言-从实模式到保护模式》越计卷:实模式下对DMA和Sound Blaster声卡的控制

    说实话越计卷作者用了16页(我还是删过的),来讲怎么控制声卡,其实真正归纳起来就那么几点. ★PART1:直接存储访问 1. 总线控制设备(bus master) 在硬件技术不发达的早期,处理器是最重 ...

  6. ASM:《X86汇编语言-从实模式到保护模式》第17章:保护模式下中断和异常的处理与抢占式多任务

    ★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259 ...

  7. Javascript模式(第五章对象创建模式)------读书笔记

    一 命名空间模式 1 命名空间模式的代码格式 var MYAPP={ name:"", version:"1.0", init:function(){ } }; ...

  8. ASM:《X86汇编语言-从实模式到保护模式》第14章:保护模式下的特权保护和任务概述

    ★PART1:32位保护模式下任务的隔离和特权级保护  这一章是全书的重点之一,这一张必须要理解特权级(包括CPL,RPL和DPL的含义)是什么,调用门的使用,还有LDT和TSS的工作原理(15章着重 ...

  9. ASM:《X86汇编语言-从实模式到保护模式》第13章:保护模式下内核的加载,程序的动态加载和执行

    ★PART1:32位保护模式下内核简易模型 1. 内核的结构,功能和加载 每个内核的主引导程序都会有所不同,因为内核都会有不同的结构.有时候主引导程序的一些段和内核段是可以共用的(事实上加载完内核以后 ...

随机推荐

  1. javax.inject包

    javax.inject包 java提出的依赖注入标准,有别于以下传统的对象获取方式 构造方法 工厂模式 服务器定位模式(e.g. JNDI) 开发过程中是会有很多层层依赖的对象的,例如,Stopwa ...

  2. mongosync同步1,oplog同步会读取其他集合同步

    使用mongosync同步数据     注意: 我下面的这个mongodb版本较低(3.2.16), 还可以用这个工具来同步数据.工具不支持更高版本的mongodb了. 使用方法: https://g ...

  3. asp.net core 微信H5支付(扫码支付,H5支付,公众号支付,app支付)之2

    上一篇说到微信扫码支付,今天来分享下微信H5支付,适用场景为手机端非微信浏览器调用微信H5支付惊醒网站支付业务处理.申请开通微信H5支付工作不多做介绍,直接上代码. 首先是微信支付业务类(WxPayS ...

  4. springboot+thymeleaf简单使用

    关于springboot想必很多人都在使用,由于公司项目一直使用的是SpringMVC,所以自己抽空体验了一下springboot的简单使用. 环境搭建 springbooot的环境搭建可以说很灵活, ...

  5. Nordic Collegiate Programming Contest NCPC 2017-Problem G Galactic Collegiate Programming Contest

    题目大意:有n( n<1e5 )只队伍参加程序竞赛,然后给m个信息,每个信息告诉你第p 个队伍过了一题,并且告诉你罚时是多少,让你输入每个信息之后,第一个队伍的 排名. 思路:一眼看过去就像数据 ...

  6. Python 可命名元祖

    import collections MytupleClass = collections.namedtuple('MytupleClass',['x','y','z']) obj = Mytuple ...

  7. Loader监听数据源的变化

    步骤: 1.新建一个继承SQLiteOpenHelper的帮助类 2.在MainActivity中定义LoaderManager和SimpleCursorAdapter 3.按顺序重写如下方法:ini ...

  8. 洛谷 [P1024]一元三次方程求解【二分答案】

    题目链接:https://www.luogu.org/problemnew/show/P1024 题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b ...

  9. 爬虫之Resquests模块的使用(二)

    Requests Requests模块 Requests模块是一个用于网络访问的模块,其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能 ...

  10. java enum的一种写法记录

    public enum TestEnum { provider { @Override public void provide() { this.name = "hjzgg"; } ...