力矩电机控制系统 一、 设计目的及任务 力矩电机分直流力矩电机和交流力矩电机, 其工作原理和普通直流和交流电机的工作原理是一样的。 但是不同的是直流力矩电机的电枢绕组的电阻比普通直流电机的电枢绕组的电阻大, 同样交流力矩电机转子的电阻比普通交流电机的转子电阻大。 对于力矩电机我们注重它的技术参数主要是额定堵转电压, 额定堵转电流和额定堵转电流下的堵转时间。 力矩电机的特点是具有软的机械特性, 可以堵转。 当负载转矩增大时能自动降低转速, 同时加大输出转矩。 当负载转矩为一定值时改变电机端电压便可调速,但转速的调整率不好。 因而在电机轴上加一测速装置, 配上控制器, 利用测速装置输出的电压和控制器给定的电压相比, 来自动调节电机的端电压, 使电机稳定。 设计任务就是要设计一个控制系统来控制力矩电机, 使其产生满足要求的力矩。 1、 能产生所要求的力矩, 可用于一些地面模拟设备上, 用来模拟设备运行时的干扰力矩; 2、 可用于控制系统设计课程实验设备或是控制算法的验证。 二、 设计要求 本系统为力矩电机的控制系统, 设计要求如下: 1、 可以产生三种固定的力矩波形; 2、 可以根据要求任意设定力矩波形, 这样可以大大增加系统的灵活性; 3、 可以实现单片机和 PC 的相互传输; 4、 控制精度高, 响应快; 5、 力求简单, 实用。 三、 设计方案 系统的装置由光电码盘, 稀土永磁直流力矩电机和飞轮组成。 在控制器的设计上, 为了做到简单、 实用, 选择了常用的 PID 控制; 为了提高系统的控制精度, 从软件上对系统进行误差补偿。 1、 系统工作原理 通过控制向力矩电机施加的电流, 向飞轮施加力矩, 使飞轮加速后减速旋转,反作用力矩通过模拟器机械装置的底座同时施加到连接的转台上, 达到向状态施加力矩的作用, 全部过程再闭环控制下进行。 系统总体框图如图 1 所示: 2、 控制系统描述 电机转动的角度经光电码盘检测转化为脉冲输出, 对脉冲信号进行计算就得到角度转动的累计值, 控制计算机将指令与光电码盘输出的角度信号相比较, 得到误差信号, 计算机将误差信号按照控制算法后, 经 D/A 输出并经功率放大后转换控制计算机 功率放大飞轮机械装置码盘 图 1. 系统总体框图 成驱动电流施加到力矩电机上, 电机按输入信号要求驱动负载转动。 系统机械装置单台质量在 5.2Kg 以内, 地盘直径为 150mm, 系统转子的转动惯量 J=0.0078kg·m2, 所以在 0.02N·m 力矩作用 0.5 秒时, 系统可以从 0º/s 达到73.2º/s, 这是一个不太高的转速, 从使用角度分析, 这样比较有利、 系统驱动采用稀土力矩电机, 其技术指标为: 在加入电机 1.78A 电流时, 电机输出 0.28N·m 的力矩, 最大可加入 5.3A 的电流, 此时电机将输出 0.84N·m 的力矩。 角度测量采用高精度光电编码器, 分辨率为 2000 脉冲/周, 经四倍频后可达到 8000 脉冲/周。 3、 机械系统描述 机械系统为可拆装结构, 为了时结构讲古可靠, 对连接、 定位部分进行了强化,系统支撑轴承采用高精度级别的轴承, 从而减小系统的质量。 在机构上选用两端出轴的的电机, 一段直接接负载飞轮, 另一端通过联轴器接光电码盘, 电机在机械装置的中部, 4、 系统功能和操作 系统可以产生三种固定的力矩波形; 也可以根据要求任意设定力矩波形, 这样可以大大增加系统的灵活性; 同时可以实现单片机和 PC 的相互传输; 上电后系统进入零位模式, 电机始终保持零位, 直到接收到上位机的控制指令为止。 用串口发送 1~3 之间的数, 命令电机做不同的运动, 使其加速得到力矩。 四、 硬件设计 系统选用 AD 公司的 AduC841 作为控制处理器; 选用 EPM7218 作为逻辑控制器; 码盘选用欧姆龙公司的光电码盘来采集电机实际转动的位置信息作为系统的反馈传感器。 1、 ADuC841 芯片 ADuC841 芯片是 ADI 公司生产的 MCS-51 系列单片机的兼容芯片, 其功能框图如图 2 所示, 它在保持 MCS51 系列单片机优良的性价比的同时, 还具有如下主要资源及功能: · 单指令周期 20MIPS8052 内核; · 6 通道 12 位高速 420kSps 模拟/数字转换器; · 2 个 12 位电压输出 DAC; · 62KB 片内闪速/电檫除程序存储器; · 4KBy 片内 Flash/EE 数据存储空间; · 2304B 片内 RAM 数据存储空间; · 精确的 2.5V 参考电压; · 时间间隔计数器; · USART 串行接口 I/O; · 看门狗定时器, 电源监视器。 ADuC841 可用于精密仪器和传感器控制、 瞬间捕获系统、 以及 DAS 和通信系统等。 它自身集成了高性能的多通道的 ADC, 双通道的 DAC, 和一个 20MHz、 8位的 8052 内核。 ADuC841 的时钟直接由外部的晶振倍频到 20MHz。 特殊功能寄存器(SFRS) 这部分空间被映射到内部数据存储器的的高 128 位, 只能直接访问它们。 它们为 CPU 和片上外围设备提供一个界面。 除了程序计数器 PC 和 4 个通用寄存器块外, 所有的都在 SFR 区域。 特殊功能寄存器包含了 CPU 和片上外围设备的控制、配置和数据寄存器。 PCON: 它包含电源优化和通用状态标志位。 图 2. ADuC841 功能框图 2、 光电码盘信号处理逻辑芯片 EPM7128 由于选用的是增量编码器, 所以需要对编码器输出的脉冲进行计数, 采用 CPLD芯片, 并开发了相应的逻辑程序。 CPLD(Complex Programmable Logic Device) 即为复杂可编程逻辑器件, 是从EPLD 改进而来的, 采用 EEPROM 工艺制作, 对逻辑宏单元和 I/O 单元也有重大的改进, 它的性能更好, 实用更方便。 从结构上看, CPLD 大都包含了三种结构:宏单元、 可编程 I/O 单元和可编程内部连线。 宏单元是 CPLD 器件的基本单元, 宏单元内部主要包括“与或” 阵列、 触发器和多路选择其等电路, 能独立地配置为组合或者时序工作方式。 3、 硬件电路结构设计 系统采用 ADuC841 作为主控芯片, 来完成所有的运算和控制过程, 采用欧姆龙公司生产的光电码盘来采集电机实际转动的位置信息, 然后根据系统要求运行的轨迹, 生成控制器的指令曲线, 将位置信息和指令信息作差, 得到系统的偏差,利用 PID 控制的策略, 设计而行控制器, 依据偏差的大小来调节系统的控制量,对于输出的控制量在输出前加入饱和限制, 当偏差超过一定的范围时, 强制的将偏差拉为给定值, 将控制量送入 DAC, 生成模拟量形式的控制量, 进而送入模拟电路, 控制对应的电机进行工作, 电机依据给定的指令, 按照对应的运动曲线进行运转, 由于 DAC 的输出的时 0~5V 的电压, 为了使电机能够实现正反向的转动,我们将 DAC 的输出控制量和一个 2.5V 的基准源送到一个加法电路中进行计算,使得输出的控制量是-2.5~2.5V 的一个电压值, 从而实现了电机的正反转的控制。 系统的硬件框图如图 3 所示。 4、 功放系统 功放部分主要用于接受 D/A 给出的脉冲指令信号, 通过低通滤波后转变为模拟信号, 该信号经过功率放大后用于驱动电机转动, D/A 给出的脉冲指令信号经过一次电压跟随和一次低通滤波转换为模拟信号, 通过实验观察, 滤波后信号的纹波较小, 完全能够满足对电机转动稳定性的要求, 低通滤波的带宽的要求而设计为 300rad/s。 滤波后的信号经过一次电压跟随以增强带负载能力, 该信号作为控制系统的输入信号控制电机的转动, 由于 D/A 给出的信号为单极性输出, 而为了电机能过获得正反两个方向的转动, 要求将系统的参考基准设为 2.5V, 当控制信号低于 2.5V时电机反转, 高于 2.5V 时电机正转。 电机驱动电路的工作原理: 单片机给出的 D/A 信号, 经过低通滤波电路, i 放大及功率输出之后驱动电机。 如图 4 所示, 该部分的功能是由 DAC0 给出控制信号, 经有源滤波后电压取反;DAC1 给出一个偏置电压, 其中 DAC1 时单片机给出的 2.5V 电压信号, 2.5 V 接一电压跟随电路后, 输出和控制信号信号的输出再经过一个反向求和电路, 得到电机的真实控制信号即控制器输出信号和基准做差, 当控制器输出大于 2.5V 时电机正转, 小于 2.5V 时电机反转; 然后给到功放输出来驱动电机。 此处用达林顿管BD681 和 BD682 是为了增加输出的驱动能力。 系统上电延时部分电路设计 系统上后, 单片机自身有延时, 由此导致的结果时数字电路的相应滞后与模拟电路部分, 结果上电后电机有一个冲击转动, 为了 消除这个冲击, 设计时加入一个延时电路。 此电路由一个时间继电器和三个普通几点器组成, 时间继电器控制三个普通继电器。 不通电时普通几点的长闭节点闭合, 使电机处于短路状态。 当5V 和 12V 供电都正常之后, 时间继电器延时 10 秒(该时间可调), 普通继电器常闭节点打开, 使转台投入工作, 与此同时时间继电器给单片机一个信号, 到哪偏激接到此信号后, 控制系统开始工作, 此后整个系统处于受控工作状态。 驱动电路的设计是为了满足正反旋转的要求而设计成互补功率输出形式, 按照力矩指标要求及电机参数, 系统中采用的达林顿管的最大输出电流为 1A, 为了防止达林顿管功耗过大而导致放热, 设计时采用散热片为其散热, 当达林顿管持续流过电流小于 0.4A 时温度升高的很小, 完全可以满足系统再最大力矩输出时的要CPLD7128 运 行 状 态选择模块 晶振 ADuC841 P0控制信号 码盘采样值 64KB FLASHDAC1DAC0电机驱动电路电机 串行口PC 机2304BRAM图 3. 系统硬件框图 求, 带宽指标为 500kHz, 完全可以满足系统要求。 R 图 4. 电路原理图 C1103R1100K+5VSW112345678SW2R21KR41KR31K+5VR51K+5VLED12345J2.112345J2.2123J1.212J1.112J4Vcc1 6C1+1V+2C1-3C2+4C2-5V-6T2OUT7R2IN8T2IN10R2OUT9T1IN11R1OUT12R1IN13T1OUT14GND1 5U3MAX202+5VC80.1C70.1C60.1C40.1C50.1T1OUTR1INRXDTXDC11105+C1247uF+12VC13105+C1447uF-12VC15105+C1647uF+5VC21104C22104C23104C24104C25104C26104C27104C28105C29105C30105+5VC17105C18105+12V-12VC19105C20105I/OE2/GCLK22IN/GCLK183IN/OE184INPUT/GLCR1TCK62IO17IO28IO45IO57IO58IO60IO61IO63IO64IO65IO67IO68IO69IO70IO73IO74IO75IO76IO77IO79IO80IO81IO33IO34IO35IO36IO37IO39IO40IO41IO44IO6IO46IO48IO49IO50IO51IO52IO54IO55IO56IO8IO9IO10IO11IO12IO15IO16IO4IO18IO20IO21IO22IO24IO25IO27IO5IO29IO30IO31TDI14TDO71TMS23U2EPM7128TDITDOTMSR81KNC1GND2OUT3VCC4U4P1.11P1.22P1.33AVDD4AVDD5AGND6AGND7AGND8CREF9VREF10DAC011DAC112P1.4/ADC413P1.5/ADC514P1.6/ADC615P1.7/ADC716RESET17P3.0/RXD18P3.1/TXD19P3.2/INT020P3.3/INT121DVDD22DGND23DGNDP3.424P3.525P3.6/WR26P3.6/RD27SCLOCK28SDATA29P2.030P2.131P2.232P2.333XTAL134XTAL235DVDD36DGND37DGND38P2.439P2.540P2.641P2.742EA43PSEN44ALE45P0.046P0.147P0.248P0.349P0.452P0.553P0.654DGND50DVDD51P0.755P1.056U1ADuC841+5VA11Y12A23Y24A35Y36GND7Y48A49Y510A511Y612A613VCC14U574LS04R72KR62K+5VBLACKWHITER210KR410K+5VR210KTDITDOTM SOUT0OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT1OUT2OUT3OUT4OUT5OUT6OUT7P2.6P2.7sel20sel21sel20sel21+5VDGND+5VDGND+5V+5VDGNDDGNDTDITDOTM STCKDGND+5VDGND+12V-12VAGND+5VDGNDBLACKWHITEIN A+3IN A-2IN B+5IN B-6OUT A1OUT B7VCC8VEE4U6LP353IN A+3IN A-2IN B+5IN B-6OUT A1OUT B7VCC8VEE4U7LP353123J3R1INDGNDT1OUTDAC0DAC1R9R10+12V-12VR11C9R14R13R12123J6.2123R15+12V-12VC10R16R17Q1Q2D1D2R19R18+12V-12V12J5JZC233pFC333pF+5Voeoe 五、 软件设计 1、 光电码盘信号处理逻辑 逻辑运算的主要功能是对光电编码器脉冲信号四倍频, 并对四倍频后的脉冲进行加减计数, 提高对电机转角的精确检测。 由于采用增量式光电码盘, A、 B 两路脉冲信号输出香味相差 90 度, 若 A 相 超前 B 相 90 度为正转, 否则则认为 B 相超前 A 相 90 度电机为反转。 电机正转时进行加计数, 反转时减计数, 当单片机发出输出使能信号时, 把计数值锁存到一个寄存器, 并输出计数值。 程序流程图如图 5 所示。 程序设计实用状态检测的方法, 将正转和反转分别分为 4 种状态的循环, 当两个时刻的状态满足正转循环的情况时, 判断电机为正转, 将计数器加一; 反之亦然。 2、 主程序工作过程 系统要求能产生规定的典型的 3 种力矩波形。 分别定义为状态 0、 状态 1、 状态 2。 控制系统主程序流程图 6 如图所示, 系统的工作过程为, 上电后首先进行系统的初始化, 包括设置堆栈首地址, 上电后将 DAC 输出的 2.5V 电压, 来平衡硬件电路中 2.5V 的偏置电压, 从而使电机在上电时(控制率未投入以前) 保持静止状态; 初始化定时器的控制字及定时时长: 另外初始化中断设置, 打开系统中断和定时器中断。 在这里我们采用 3.3ms 的采样时间。 由于单片机在上电之后的一段时间之内, 需要对系统内部的一些设置进行初始化, 这样单片机将处于失控状态, 而在这段时间内, 模拟电路中的 2.5V 已经投入运行, 在这种情况下 2.5V 的电压将加在了电机电枢的两端, 从而使电机进行转动,而这种转动是我们所不希望见到的。 因此, 在这里我们采用了 时间继电器来消除单片机的失控时间, 采用肠壁继电器, 使得在上电后电机电枢两端处于短接状态,延时 10s 后, 等单片机系统的初始化过程结束后, 将常闭节点打开, 电机处于正常的运行状态, 进而消除了失控时间的问题。 延时 10s 后, 单片机系统等待上位机发送命令指令, 当上位机发送 0x30 到下位机时, 电机投入运行状态 0; 当上位机发送 0x31 到下位机时, 电机投入运行状态 1; 当上位机发送 0x32 到下位机时, 电机开始 判断电机转向加计数 减计数 是否有输出使能信号 锁存并输出计数值 返回 正向反向无有图 5. 四倍频计数程序流程图 投入运行状态 2。 下位机接收到上位机的命令指令以后, 则出发定时器 0 开始即使,定时器溢出后, 则系统进入定时器中断子程序, 进行相应的控制和操作, 下位机向上位机上传电机误差的初始值, 然后在进入死循环时, 每隔 0.1s 将电机的误差值上传到上位机进行运算和处理。 3、 定时器中断子程序工作过程 定时器中断子程序流程图如下图 7 所示, 其工作过程如下, 首先定义一些在中断子程序中使用到的变量, 另外还要进行一些定时器的初始化处理。 紧接着发出控制指令, 控制光电码盘对电机的当前位置信息进行采集, 获得 32 位的关于电机位置的计数值 f。 按照指标要求, 给出电机运转的指令曲线 u, 将 u 和 f相减得系统的偏差 e(e=u-f) ,根据 e 的大小, 将设计好的二型 PID 控制器投入, 经过运算后得到系统的控制参数, 为了 防止系统溢出, 加入先付指令, 然后根据上位机下达的控制指令, 将不同的电机控制参数以不同的方式投入运转, 从而实现不同的控制。 六、 控制系统设计 控制器设计步骤: · 建立力矩电机模型 · 画出对象的波特图, 根据控制精度要求设计增益 控制主程序 启动定时器 0 延时时间到? 结束 否是 系统初始化(堆栈、 DAC、 定时器、 中断、 控制参量初始化)延时控制, 时间继电器延时 10s,消除单片机初始化失控时间 上下微机通信, 接受上位机控制指令, 选择不同的控制策略 定时器中断子程系统等待定时器溢出, 进入死循环, 循环中将误差上传到 PC 机 图 6. 控制主程序流程图 定时器中断子程序 针对 e 加入控制算法, 生成控制信号中断返回 中断系统中参数定义,定时器定时初始化 延时控制, 时间继电器延时 10s,消除单片机初始化失控时间 按照控制要求输出控制量 读取光电码盘 32 位计数值 f 生成电机控制指令 u 计算偏差 e=u-f 图 7. 定时器中断子程序 · 根据动态指标设计带宽, 确定剪切频率 ωc 系统采用稀土力矩电机, 其技术指标为: 在加入电机 1.78A 电流时, 电机输出0.28N·m 的力矩; 最大空载转速为 1500r/min(50πrad/s)。 由于系统的负载和所加电压的因素, 实际转速最大为 6πrad/s, 很有可能因为力矩加载过长而使电机饱和。