找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4956|回复: 4
收起左侧

基于quartus的直流电机控制实验 含源代码、电路图、仿真波形图

[复制链接]
ID:770361 发表于 2020-6-5 15:05 | 显示全部楼层 |阅读模式
这是我们电路测试的直流电机学习作品,软件是quartus,用了我一个礼拜的时间,附件里是源程序、波形图、电路图,分享给大家,希望对大家学习有一些帮助。

直流电机实验
一、实验目的
1、学习直流电机的工作原理和控制方式,了解PWM控制原理
2、熟悉QuartusⅡ软件的相关操作,掌握数字电路设计的基本流程;
3掌握混合编辑法进行编辑的基本方法,熟悉软件环境的参数配置,仿真,管脚分配,下载等基本操作。
二、实验原理
1.直流电机:
①定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
直流电机的两根控制引脚AB,电流流入的大小决定了电机的转速。当用脉冲波输入时,周期恒定时,占空比大的平均电流就大,平均电流越大,转速越高,等效于占空比越大,转速越高,所以可以用PWMPulse Width Modulation)方式来控制转速;通过脉冲波输入的引脚来控制方向。
本实验中采用RF-310T-11400型号直流电机,同时配有光耦测速模块。通过检测输出脉冲来检测电机转速。

2.设计原理框图:


3.混合编辑法步骤:
(1)建立新工程
a)指定新工程名称;
b)选择需要加入的文件和库;
c)选择目标器件;  
d)选择第三方EDA工具;
e)结束设置。
(2)建立文件 File→New→Device Design Files…,建立多个VHDL文本文件。
(3)输入程序代码
(4)创建图元 File→Create/update→Create Symbol File for Current File→生成*.bsf格式的图形文件。生成的图元符号在顶成设计中作为模块使用。
(5)建立原理图文件并添加图元符号
(6)连接各模块并命名
(7)编译工程
(8)仿真
a) 系统默认为时序仿真。
b) 功能仿真 Assignment→Setting→Simulator Setting…,单击Processing→Generate Functional simulation Netlist→单击波形仿真按钮;
仿真结果正确后,继续后续步骤。
(9)引脚分配 Assignment→Pins…
(10)下载验证
        a)对引脚分配后必须再重新编译;
b)配置下载电缆--Tools→Programmer…
c)JTAG模式下载--下载文件为 *.sofd)Active Serial 模式下载--下载文件为 *.pof


三、实验设备
1微机                                                              1台
2直流电机                                                                                                                  1
3Windows 操作系统 
4QuartusII 8.09.0应用软件
四、实验步骤
1、按照实验准备将相应的跳线连接好,调节拨码开关选择对应的模块;
2、打开QuartusⅡ软件,采用混合编辑法编辑直流电机的电路图和程序:新建一个工程,找到本次实验每个模块的源程序,并将每个模块编译成图元符号文件,该图元符号可以在顶层原理图文件中作为模块使用;新建一个顶层原理图文件,在其中将原理图输入,即添加各个模块的图元符号并连接各个模块;编译工程;仿真;将程序下载到实验平台上。
3、将en置高(SW4拨上),LED8亮表示可以调速,将start置高(SW1拨上)电机开始工作,调动directSW2)控制电机转动方向,按F1键加快电机转速,当达到最高速时,LED1指示灯亮,按F2键电机减速,当达到最小时,LED3指示灯亮;在调节转速时,观察数码管上显示的电机转速,表示每秒多少转,即rps
注意:由于电机的驱动电流原因,在刚开始的增速过程中,要增加到一定程度时,输出相应的电流才能驱动电机。即按键F1起初按下的几次,电机会没有反映,多按几次就好了。

五、实验内容
1. VHDL语言设计一个直流电机控制器,要求方向可控(可正转、反转),速度可控制加速和减速,并可测速,用数码管显示当前转速
2. QuartusⅡ软件进行编译、下载到实验平台上进行验证
(1) 仿真电路:

(2) 操作步骤
建立VHDL文本文件,输入各个模块的代码;
1) 分频模块(div):

2) 比较模块(cmp)

3) 测速模块(rate)

4) 方向控制模块(mux1)
5) 调速模块(cnt16
6) 标准阶梯波产生器(cnt16_bz)
7) 按键检测模块(key_check   
8) 显示模块(xianshi)


② 创建图元文件:
1) 分频模块(div):
2) 比较模块(cmp)
3) 测速模块(rate):
4) 方向控制模块(mux1):
5) 调速模块(cnt16)
6) 标准阶梯波产生器(cnt16_bz)
7) 按键检测模块(key_check)
8) 显示模块(xianshi)
③ 建立原理图文件并添加图元符号:
连接后的原理图如图所示:

④ 建立波形图文件:

如图,时钟信号clk50MHz,
oc_pulse信号为50MHz
反相信号direct周期为480ns
start信号置为高电平;
en置为高电平;
加速、减速信号speed_upspeed_down都为周期为30ns的时钟信号,且不同时起效。
⑤ 仿真结果:
如图,仿真方式为功能仿真


④结果分析
1) 从波形图中可以看出,当方向控制信号direct改变时,电机信号立即从motorA变为motorB,即实现了正转和反转的切换,方向可控。
2) 从波形图中可以看出,当减速信号speed_down置高,加速信号speed_up为时钟信号时,电机加速,即电机的占空比逐渐增大;当加速信号speed_up置高,减速信号speed_down为时钟信号时,电机减速,即电机的占空比逐渐减小,即实现了速度可控制。
3) data[2..0]的波形可以看出,可以实现测速,将实时速度显示出来;
4) 从数码管a-g的波形可以看出,显示器可以将当前转速通过数码管显示出来;
5) 当电机速度减至最小时,speed_min为低电平,速度增到最大时,speed_max为低电平,说明可以正常显示速度为最大、最小时的情况

六、总结和问题讨论
1. 调试方法:可以先将每个模块分别运行,通过输入模拟信号仿真使其保证实现正常功能后再连接成完整电路,可以提前得知需要修改和调试的模块
2. 体会和建议:只有仔细思考代码之后的逻辑才能更好地理解实验、做好实验。

16.png
15.png
14.png
13.png
7.png
4.png
3.png
2.png
1.png

wendukonzhi.zip

1.72 MB, 下载次数: 54, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:328014 发表于 2020-6-6 01:45 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:948017 发表于 2021-7-1 20:23 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:989497 发表于 2021-12-11 19:12 来自手机 | 显示全部楼层
楼主用的什么开发版呀
回复

使用道具 举报

ID:739441 发表于 2024-1-29 14:13 | 显示全部楼层
这个看是写的不错o,就是很老的版本了,现在都用到18,可想而知当年写代码的这个人功底多深, 那个时代就玩电机了,现在应该是个大佬了吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表