硬件部分
旋转编码器是一种角度传感器,它分为光电式、接触式和电磁感应式三种。我们在闭环系统中常用光电式编码器来测角度。
旋转编码器有增量编码器和绝对编码器两种,如图13. 1为增量式光电编码器原理示意图,它由发光元件、光电码盘、光敏元件和光电检测装置组成。光电式编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,这是目前应用最多的传感器。光电码盘是在一定直径的圆板上等分地开通若干个长方形孔,圆板不透光,长方孔透光。由于光电码盘与被测装置同轴,被测装置旋转时,光电码盘与之同速旋转,光源透过光电码盘的孔在光栏板上形成忽明忽暗的光信号,经光电检测装置检测到并转换为电信号,然后通过信号处理电路的整形、放大、分频、记数、译码后输出。
图13. 1增量式光电编码器原理
增量式光电编码器直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差π/2,将输出信号送入鉴向电路,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。
光电式增量编码器的测量精度取决于它所能分辨的最小角度α (分辨角、分辨率),而这与码盘圆周内所分狭缝的线数有关。
N — 编码器线数。
由于光电式脉冲编码盘每转过一个分辨角就发出一个脉冲信号,因此,根据脉冲数目可得出工作轴的回转角度,由传动比换算出直线位移距离;根据脉冲频率可得工作轴的转速;根据A、B两相信号的相位先后,可判断光电码盘的正、反转,以得到待测装置转向。
由于光电编码器输出的检测信号是数字信号,因此可以直接进入计算机进行处理,不需放大和转换等过程,使用非常方便,因此应用越来越广泛。
对于线数为n 的编码器,设信号采集卡倍频数为m ,则编码器码盘旋转一圈输出的脉冲数为:n*m 。本实验使用的是P-ZSP3806GC型号2000线增量式编码器,四倍频。
编码器红色线接DSP+5V,黑色线接地,白色线接GIO51,绿色线接GPIO50,黄线接GPIO53(可不接)。
图13. 2编码器数据采集电路
模型搭建
“代码生成QEP-M法测速实验模型”,如下图:
图13. 3 QEP-M法测速实验模型
用MATLAB/Simulink R2018b或者更高版本MATLAB/Simulink新建仿真模型。
“1”是中断模块,双击该模块打开参数对话框,根据图13. 4中断向量表,CPU中断序列选择5,PIE中断序列选择1,优先级选择30;
图13. 4 QEP中断向量配置
“2”是QEP模块,打开参数对话框,General配置:勾选正交方向标志输出端口,采样时间设置为“-1”;Position counter配置:最大位置计数器“8000”,位置计数器复位模式“在最大位置复位”;
图13. 5 QEP- General配置、Position counter配置
Speed calculation配置:eQEP捕获周期分频器“1”,单位位置事件分频器“1”,捕获计时器与位置“on unit time-out event”,单位定时器周期“150000”;
图13. 6 QEP- Speed calculation配置
Signal data typs配置:求积方向标志数据类型“int32”,位置计数器值数据类型“int32”;Interrupt配置:勾选单位超时中断使能。
图13. 7 QEP- Signal data typs配置
“3”是单位延时模块,使用默认配置即可。
“4”是数据类型转换器,输出数据类型“single”。
图13. 8 数据类型转换器配置
“5”是多端口开关,数据端口顺序“从0开始连续”,数据端口数量“2”。
图13. 9多端口开关配置
子系统tmpg>0、tmpg<0,通过开关模块进行判断,如下:
图13. 10 子系统模块
下载运行
第一步:DSP板上电
用MATLAB/Simulink R2018b或者更高版本MATLAB打开“Lab12_QEP_M_Experiment.slx”;
图13. 11 QEP-M法测速实验模型
其中“1”为模型配置按钮,点击该按钮,弹出配置对话框,然后配置目标硬件的资源,在“Build Action”中设置编译选项,在“Target hardware resources”中的eQEP栏,引脚分配分别选择GPIO51至GPIO53;
图13. 12“Hardware Implementation”选项的设置
“2”是“Build,Deploy&Start”,模型编译下载按钮,点击该按钮,模型会自动编译,在matlab路径下生成目标代码,同时建立ccs工程文件。
第二步:将生成的代码烧入DSP核心板
首先,打开ccs,导入刚才代码生成建立的工程,点击编译,生成.out文件。(注:工程位置即matlab/simulink代码生成的位置)
其次,使用“仿真线”将DSP板“仿真线”接口与电脑相连,右键.ccxml文件选择“Launch Selected Configuration”打开事先配置好的仿真器。
最后,在Debug界面通过进行链接,点击
下载.out文件,点击Browse project选择生成的“.out”文件并点击“OK”。
第三步:点击运行程序并观察实验结果
实现现象:程序运行后,拨动编码器旋转,在Expressions中rpm和tmpg发生变化。
图13. 13 拨动编码器速度参数发生改变
上述内容讲解了代码生成模型的搭建思路。大家点点收藏的同时,麻烦点点赞同哦,谢谢! 代码生成模型已在某鱼上架,有需要的小伙伴可以看看。