1.PMAC卡-简介和预备知识

PMAC卡是功能非常强大的运动控制卡,但是网上PMAC的教程很少,仅有的几个教程还是官网培训教程,罗列概念和记流水账,最不喜欢这样的教程。自己学习PMAC卡的时候走了许多弯路,刚好找完工作就写一下PMAC的相关教程,看完整个系列的教程,相信对于PMAC的使用是没有问题的,主要分为以下几个模块:

  1. 简介和预备知识
  2. PMAC硬件
  3. PMAC下位机编程
  4. PMAC上位机编程

PMAC简介

PMAC基本上算是自动控制行业中功能最强大的运动控制卡了,虽然价格不菲,但是使用及其方便,功能也极其强大,怎么强大自己去搜啦,这是官网链接

PMAC是一系列控制卡的简称,常用的有PMAC1、PMAC2、Turbo PMAC1、 Turbo PMAC2、UMAC、Clipper等,基本功能和使用方法是一样的,这里我使用的是Turbo PMAC1控制卡。

在国内PMAC有多家代理,笔者固定联系的是苏州均信,维修的话有北京泰道公司,北京泰道公司的官方QQ群号为190220668 ,在群里面可以提问,有各路大神和官方人员解答疑问,群共享里面也有许多资料供学习。

运动控制基础

“工欲善其事,必先利其器”,在本文中还是先说一下运动控制相关理论,这里只是一些基本概念,深入了解还是要自行查看相关资料。

定义:在复杂条件下将预定的控制方案、规划指令转变成期望的机械运动,实现机械运动精确的位置控制、速度控制、加速度(转矩)的控制。

最简单的运动控制系统

我们考虑一个最简单的控制卡-驱动器-电机反馈运动控制系统

控制器:根据要求的参考输入信号(如位移、速度、力等),产生相应的控制信号,这里对应PMAC控制卡。

执行机构:根据运动控制器发出的控制信号,产生操作量,作用在被控对象上,带动被控对象产生相应的运动。运动控制中执行机构通常由电机及其驱动器组成的,其中驱动器提供电机功率,使得电机做旋转或直线运动。

被控对象:将被操纵的机器设备称为被控对象。这里对应常用旋转电机运动模组或直线电机模组。

传感器(反馈检测装置):对被控对象的过程实际信号(如实际位移、实际速度、实际力等)进行检测、转换为电信号,经整形、放大提供给控制器,从而对被控对象构成闭环负反馈控制 。常用的传感器有光电编码器、光栅尺、测速发电机和张力/压力控制器等。

如上图,可以看到运动控制系统有反馈检测装置,就拿这里的运动控制系统来说,不使用反馈控制的运动控制系统就叫开环系统,反馈控制的是通过编码器采集的信号来反馈的运动控制系统就叫半闭环控制系统(因为此时的被控对象的信号是间接的方式得到的),反馈控制的是通过光栅尺采集的信号来反馈的运动控制系统就叫全闭环控制系统。

三环控制

关于三环控制,有一篇比较通俗的文章(原文链接),这里截取一段,稍作修改如下:



运动伺服一般都是三环控制系统,从内到外依次是电流环、速度环、位置环,这三环一起构成一个完整的运动控制系统。

1、电流环:电流环的输入是速度环PID 调节后的输出,我们称为“电流环给定”,然后电流环的这个给定和“电流环的反馈”值进行比较后的差值在电流环内做PID 调节输出给电机,“电流环的输出”就是电机的每相的相电流,“电流环的反馈”不是编码器的反馈而是在驱动器内部安装在每相的霍尔元件(磁场感应变为电流电压信号)反馈给电流环的。

2、速度环:速度环的输入就是位置环PID 调节后的输出以及位置设定的前馈值,我们称为“速度设定”,这个“速度设定”和“速度环反馈”值进行比较后的差值在速度环做PID 调节后输出就是上面讲到的“电流环的给定”。速度环的反馈来自于编码器(光栅尺)的反馈后的值经过“速度运算器”得到的。

3、位置环:位置环的输入就是外部的脉冲(如在控制卡中输入的待运动位置指令),外部的脉冲经过平滑滤波处理和电子齿轮计算后作为“位置环的设定”,设定和来自编码器反馈的脉冲信号经过偏差计数器的计算后的数值在经过位置环的PID 调节后输出和位置给定的前馈信号的合值就构成了上面讲的速度环的给定。位置环的反馈也来自于编码器(光栅尺)。



在上图中,我标出了三环控制和运动控制系统基本组成的对应关系,可以看到三环控制是把控制器、执行结构、被控对象和反馈检测细化了,上图中是一种常用的伺服电机驱动模式——速度控制模式(即电机驱动器包括速度环和电流环),其他的伺服电机驱动模式包括位置控制模式、力矩控制模式等等。

还需要注意的是在每一环的控制中,我们引入了PID控制的概念。

PID控制

PID是在工业控制中经典的控制算法,现在仍然被普遍的采用。

当我们知道被控对象目标控制值,和当前被控对象实际测量值,那么就可以计算出实际控制差值,这就是反馈,那么拿到这个反馈要如何处理得到输出信号给被控对象使得被控对象的实际测量值越来越接近目标控制值呢?这时候就要有一种计算输出信号的算法,这里就该PID工作了。

PID详细名称为:比例-积分-微分控制方式,是一种误差控制算法,综合作用可以使系统更加准确稳定的达到控制的期望。

关于PID算法的原理和调节策略通俗讲解参见这篇文章

如果想深入研究,参见这篇文章,英文好的好的话也可以参见wiki

在使用PMAC完成运动控制的时候,调整PID是必不可少的一个环节,一定要对PID原理有基本了解和知道PID的调节步骤。

那么,关于PMAC学习的预备知识基本上是这么多,这里只是对一些概念简要介绍,要深入了解的需要认真查阅相关资料学习。

原创,转载请注明来自http://blog.csdn.net/wenzhou1219

时间: 2024-10-31 14:48:17

1.PMAC卡-简介和预备知识的相关文章

L1--数据结构简介与预备知识

介绍 如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应的操作,这个相应的操作叫做算法. 数据结构 = 个体 + 个体的关系 算法 = 对存储数据的操作(解题的方法和步骤) 衡量算法的标准 1.时间复杂度:大概程序要执行的次数,而非执行的时间: 2.空间复杂度:算法执行过程中,大概所占用的最大的内存: 3.难易程度 4.健壮性 数据结构的地位 数据结构是软件中最核心的

《C++ Primer Plus》学习笔记 第1章 预备知识

第一章 预备知识C++在C语言的基础上添加了对"面向对象编程"的支持和对"泛型编程"的支持.类 —— 面向对象模板 —— 泛型编程1.1 C++简介1.2 C++简史1.3 可移植性和标准1.4 程序创建的技巧http://www.cnblogs.com/moonlightpoet/p/5611668.html1.5 总结

WPF学习08:MVVM 预备知识之COMMAND

WPF内建的COMMAND是GOF 提出的23种设计模式中,命令模式的实现. 本文是WPF学习07:MVVM 预备知识之数据绑定的后续,将说明实现COMMAND的三个重点:ICommand  CommandManager InputBindings COMMAND简介 一般情况我们应用设计如下,一个个控件的各类Handler直接关心了如何实现具体的应用逻辑. 借助COMMAND,我们将具体实现的应用逻辑放在COMMAND中实现,控件只需要绑定相应的COMMAND,而无需关心应用逻辑,从而实现界面

(连载)边喝咖啡边学Unity——第二章 预备知识体系

第二章 预备知识体系 --本章涉及空间数学.解析几何.线性代数.计算机图形学.算法.数据结构等众多基础学科.同上一章相比,虽然枯燥,但是绝不能称为废话之章,即使粗略的看一遍,也比直接跳过来的好,详细地读完,会让读者以后的开发之路走的更加平坦. 并且本章的知识不仅仅对您的Unity游戏开发有帮助,对于大部分软件开发人员都是大有作用的. 作为传统3D游戏编程来讲,需要运用到的知识面非常之广,涉及到的学科特别之多.而通常讲编程的书籍,会弱化数学知识,讲数学的书籍,会弱化编程方面的知识.这就是我在第一章

记数据结构--入门和预备知识

数据结构(一)--入门和预备知识 1. 概述 数据结构定义: 我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中, 以及在此基础上为实现某个功能(如元素的CURD.排序等)而执行的相应操作,这个相应的操作也叫算法. 数据结构 = 元素的存储 + 元素的关系的存储算法 = 对数据存储的操作 算法: 算法就是:解决问题的方法和步骤 衡量算法有如下标准: 时间复杂度(程序要执行的次数,并非执行时间) 空间复杂度(算法执行过程中大概要占用的最大内存) 难易程度(可读

C++预备知识

目录 预备知识 1. 前言 1.1 简介 1.2 原因 2. 计算机结构 3. 计算机工作过程 4. 计算机系统的多级层次 预备知识 1. 前言 1.1 简介 这是我讲解\(c++\)的第一部分,首先介绍了现代计算机的组成结构,主要由五部分组成,有输入设备.输出设备.存储器.运算器以及控制器,它们共同协作完成了计算机的各种功能:其次介绍了计算机在执行机器指令的过程,主要分为两个步骤,有存储程序和数据和运行程序.最后介绍了计算机系统的多级层次,主要有五层结构,自底向上分别为微指令系统.使用机器语言

[转]预备知识—程序的内存分配

因为经典,所以转发. 一.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 栈区(stack)  —   由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 堆区(heap)   —   一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回    收.注意它与数据结构中的堆是两回事,分配方式倒是类似于链表. 全局区(静态区)(static) —,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,

word2vec 中的数学原理详解(二)预备知识

  word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了很多人的关注.由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感.一些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟,出于好奇,我也成为了他们中的一员.读完代码后,觉得收获颇多,整理成文,给有需要的朋友参考. 相关链接 (一)目录和前言 (二)预备知

《软件调试的艺术》笔记--预备知识

1.gcc的-g选项 如果要使用gdb进行调试,必须在编译时在gcc中加入-g选项,使用参数 -g 表示将源代码信息编译到可执行文件中. 如果不使用-g选项: #include <stdio.h> int main(void) { int i = 1; i = i + 1; printf("i = %d\n",i); return 0; } gcc main.c gdb a.out (gdb) b main Breakpoint 1 at 0x4004f8 (gdb) r