磁悬浮设计文档

合集下载

磁悬浮实验报告(一)2024

磁悬浮实验报告(一)2024

磁悬浮实验报告(一)引言概述本文档旨在提供对磁悬浮实验的详细分析和结论。

磁悬浮技术是一种利用磁场与磁体相互作用产生浮力的技术,它在交通运输、工业制造等领域具有广泛的应用前景。

通过该实验,我们将探索磁悬浮技术的基本原理和悬浮稳定性的影响因素。

正文内容1. 实验装置搭建- 首先,我们准备了磁悬浮实验所需的磁体和磁场产生装置。

- 其次,我们安装了用于测量悬浮高度和稳定性的传感器和仪器。

- 最后,我们调整了磁场强度和位置,以确保磁悬浮平台的稳定性和可控性。

2. 磁悬浮原理分析- 我们对磁悬浮的基本原理进行了详细解释,包括法拉第电磁感应定律和电磁力学原理。

- 我们介绍了磁悬浮实验中所需的磁场调节和控制技术,以保证悬浮平台的平稳运行。

3. 悬浮稳定性实验- 我们对悬浮系统中的稳定性进行了详细研究。

- 我们分析了悬浮高度、磁场强度和位置调节对悬浮稳定性的影响。

- 我们通过实验数据和观察结果,评估了悬浮稳定性的变化趋势。

4. 动态特性分析- 我们对磁悬浮系统的动态特性进行了研究。

- 通过改变悬浮平台上的负载和外力的作用,我们观察了系统响应的速度和稳定性。

- 我们使用传感器和仪器来记录和分析系统的动态响应,以便进一步优化磁悬浮系统。

5. 发展前景和挑战- 我们讨论了磁悬浮技术在交通运输和工业制造中的潜在应用前景。

- 同时,我们也提出了当前磁悬浮技术面临的一些挑战和限制,并提出了进一步改进的可能性。

总结通过本文档,我们详细介绍了磁悬浮实验的搭建过程、磁悬浮原理、悬浮稳定性实验、动态特性分析以及磁悬浮技术的发展前景和挑战。

这些研究将为磁悬浮技术的应用和进一步研究提供有益的参考。

我们相信,随着磁悬浮技术的不断发展和完善,它将在未来的交通和工业领域发挥重要作用。

毕业设计 磁悬浮

毕业设计 磁悬浮

编号:审定成绩:xxxx大学毕业设计(论文)设计(论文)题目:基于磁悬浮球装置的控制算法研究学院名称:xxx学生姓名:xx专业:xxxxxxxx班级:xxx学号:xxx指导教师:xx答辩组负责人:xx填表时间:2010年6 月xxxx大学教务处制摘要磁悬浮系统是一个复杂的非线性、自然不稳定系统,其控制器性能的好坏直接影响磁悬浮技术的应用,其研究涉及控制理论、电磁场理论、电力电子技术、数字信号处理以及计算机科学等众多领域。

由于磁悬浮系统对实时性的要求很高,在很大程度限制了先进控制算法的开发和应用。

为了满足日益复杂的控制要求和提高控制系统的实时性,本文以单自由度磁悬浮球系统为研究对象,在分析磁悬浮系统构成及工作原理的基础上,建立了数学模型并对其控制器进行了研究,以期望达到更好的控制效果。

本文首先分析了磁悬浮系统的工作原理,建立了系统的数学模型和线性化模型,并在此基础上利用MATLAB软件以及其中的SIMULINK仿真工具箱对模型开环和闭环系统进行了仿真。

然后,根据得出的系统传递函数,在SIMULINK环境下搭建系统开环传递函数,并据此进行PID控制器的设计和调节,以及用根轨迹法和频率响应法控制系统。

【关键词】磁悬浮球PID控制器根轨迹频率响应ABSTRACTThe magnetic levitation system is a complex, nonlinear, naturally unstable system. And the controller’s performance directly influences the wide applications of the magnetic levitation technology. The research on such a system involves control theory, electromagnetism, electric and electronic technology, digital signal processing, computer science and so on. Because the magnetic levitation system’s real time demand is rigorous, the development and application of advanced controllers is limited. In order to meet the requirement of complex controller and improving the real-time performance, this paper introduces the magnetic levitation control system based on the single-freedom-degree magnetic levitation ball system, then established the mathematic model and its controller is studied, and expected totter control effect.This paper analyses the working principle of maglev system, establishing the mathematic model of the system and the linear model, and on the basis of using the software MATLAB, and SIMULINK tool to model and the closed-loop system is simulated. Then, according to the system transfer function in building system under the environment of SIMULINK open-loop transfer function, the design and adjustment of the PID controller, and with the root locus method and the method of frequency response controlled control system.【key words】Magnetic levitation ball PID controller Root locusFrequency response目录前言 (1)第一章磁悬浮系统的概述 (2)第一节磁悬浮的分类及应用前景 (2)第二节磁悬浮技术的研究现状 (3)第三节磁悬浮的控制方法和发展趋势 (4)第二章磁悬浮系统的分析和建模 (6)第一节磁悬浮系统的分析 (6)第二节磁悬浮系统的工作原理 (6)第三节磁悬浮系统的建模 (7)一、控制对象的运动方程 (7)二、电磁铁中控制电压与电流的模型 (8)三、电流控制模型 (9)四、电压控制模型 (11)第三节磁悬浮球系统的搭建 (14)一、开环系统搭建 (14)二、闭环系统搭建 (15)第四节本章小结 (17)第三章控制器的设计和调试 (18)第一节 PID控制器的设计和调试 (18)一、PID控制基础 (18)二、PID控制参数整定 (19)三、磁悬浮系统中的PID控制 (21)第二节根轨迹控制器的设计和调试 (23)一、根轨迹法的基本概念和原理 (23)二、磁悬浮系统的根轨迹校正 (24)第三节频率响应控制器的设计和调试 (27)一、频率响应法的基本概念和分析 (27)二、磁悬浮系统中的频率响应 (29)第四节本章小结 (33)结论 (34)致谢 (35)参考文献 (36)附录 (38)一、英文原文 (38)二、英文翻译 (47)三、源程序 (54)前言磁悬浮技术是将电磁学、机械学、动力学、电子技术、自动控制技术、传感技术、检测技术和计算机科学等高新技术有机结合在一起,成为典型的机电一体化技术。

《磁悬浮列车作业设计方案-2023-2024学年科学青岛版》

《磁悬浮列车作业设计方案-2023-2024学年科学青岛版》

《磁悬浮列车》作业设计方案一、设计目标本次作业设计旨在让学生了解磁悬浮列车的基本原理和应用,并通过实践操作提升学生的动手能力和团队合作能力。

二、设计内容1. 磁悬浮列车的原理介绍2. 磁悬浮列车的结构组成3. 磁悬浮列车的应用领域4. 设计制作一个简易磁悬浮列车模型三、设计步骤1. 磁悬浮列车的原理介绍通过教师讲解和PPT展示,让学生了解磁悬浮列车是一种利用磁力悬浮技术实现悬浮运行的高速列车,其主要原理是利用同性磁极相斥、异性磁极相吸的原理,使列车悬浮在磁场中运行。

2. 磁悬浮列车的结构组成介绍磁悬浮列车的主要结构组成,包括磁悬浮装置、车体结构、动力系统等,让学生了解磁悬浮列车的各个部件的功能和作用。

3. 磁悬浮列车的应用领域讲解磁悬浮列车在城市交通、高铁运输等领域的应用情况,引导学生思考磁悬浮列车的优势和未来发展方向。

4. 设计制作一个简易磁悬浮列车模型分组让学生设计制作一个简易的磁悬浮列车模型,要求模型能够悬浮在磁场中并能够运行。

学生可以利用磁铁、铁磁体等材料进行制作,通过实践操作提升动手能力和团队合作能力。

四、评判标准1. 对磁悬浮列车原理、结构组成和应用领域的理解水平2. 制作的磁悬浮列车模型是否能够悬浮并能够运行3. 团队合作能力和创新能力五、作业要求1. 撰写一份关于磁悬浮列车的小结,包括对原理、结构组成和应用领域的理解以及制作磁悬浮列车模型的过程和体会。

2. 提交制作的磁悬浮列车模型和相关材料。

3. 学生可以自由选择团队合作或个人完成作业,但需在小结中说明完成方式。

六、作业时间安排第一周:介绍磁悬浮列车的原理和结构组成第二周:讲解磁悬浮列车的应用领域第三周:设计制作磁悬浮列车模型第四周:展示作业效果并进行评判七、总结通过本次作业设计,学生将能够全面了解磁悬浮列车的原理、结构和应用,提升动手能力和团队合作能力,培养学生的创新认识和实践能力,为未来的科技创新奠定基础。

磁浮课程设计

磁浮课程设计

一、设计初始条件(已知技术参数):1、磁浮车辆总重:300kN2、车辆总重:200kN;其中,簧下重量65kN3、车辆载重:100kN4、悬浮架数目:3台5、悬浮模块数目:2块/悬浮架6、电磁铁线圈数目:4块/模块7、悬浮轨道形式:F型悬浮轨8、电磁铁形式:U型电磁铁4线圈结构9、磁铁两极中心距:192mm10、额定悬浮气隙:8mm11、最大起浮气:18mm12、悬浮导轨极宽:28mm13、线路最小半径:50m二、磁浮车受力情况分析磁浮车额定重量300kN。

其中载重100kN,车厢135kN,簧下重量65kN。

考虑电磁铁承载力变化:偏载:载重50~100%,则为50~100kN超载:载重50~100%,则为50~100kN直线电机法向力:额定重量20~50%,则为60~150kN横向错位影响:车辆总重20~50%,则为60~150kN动态悬浮力:车辆总重20~50%,则为60~150kN每台电磁铁受力不均等:车辆总重20~50%,60~150kN富裕量:车辆总重20~50%,60~150kN则F A=G+F法向+F富裕量=300+150+150=600kNF=300+100+100+150+150+150+150+150=1250kNmax每辆磁浮车有3台悬浮架,每个悬浮架有2个悬浮模块,每个悬浮模块有4块电磁铁线圈。

则可计算出每辆车的电磁铁线圈数n=3*2*4=24个。

可以计算出每个电磁铁的额定悬浮力和最大起浮力为:f 额=A F /24=25kNF x =max F /24≈52kN三、电磁铁设计 (1)电磁铁长度计算已知参数给出:额定悬浮气隙:8mm 、最大起浮气隙:18mm 、 悬浮导轨极宽:28mm 、最大可用磁密:T B m 3.1~1.1 。

考虑错位的起浮力计算公式如下⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-+-++≡⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛ββββπππr l z F F z w z w w mr ml m z 1121tan tan 0=1.80F其中,()2002m m mB F w l μ=根据设计要求,在最大起浮气隙和最大错位时,电磁铁仍具有最大起浮力。

下推式磁悬浮系统软件设计

下推式磁悬浮系统软件设计

下推式磁悬浮系统软件设计摘要磁悬浮系统能够创造一个无接触、无摩擦、无润滑的特殊空间环境,磁悬浮技术可以用于实现零部件间无摩擦相对运动,不仅提高了运动速度与精度,而且还能延长零部件使用寿命。

由于磁悬浮系统的这些优点,目前它不仅在电气等工业领域得到广泛应用,而且在人类生活中也开始得到应用,充分显示了磁悬浮技术在国民经济发展和人们生活质量提高方面具有广阔的发展前景,因此对它进行设计或研究具有十分重要的理论意义和现实意义. 其中对磁悬浮系统的控制成为目前的首要问题。

随着磁悬浮技术的广泛应用,对磁悬浮系统的控制已成为首要问题。

本设计以 Arduino 开发板为平台,以 PID 控制和脉宽调制为原理,通过单片机编程设计出 PID 控制器对磁悬浮系统进行控制。

PID 控制器自产生以来,一直是工业生产过程中应用最广、也是最成熟的控制器,以其结构简单、易实现、适应性强等优点,处于主导地位。

本设计将创建一个基于Arduino 开发板的下推式磁悬浮系统,在分析磁悬浮系统构成及工作原理的基础上,确定控制方案,通过编写系统控制程序,不断调节PID 控制参数,并通过调节PWM 的占空比来实时控制电磁线圈的电流,从而使悬浮物体在设定位置得到与干扰力相平衡的电磁吸力,最终得到一个稳定的磁悬浮系统,此外系统还能够和 PC 机进行动态通信,由PC 机实现对该磁悬浮系统的实时控制。

最后,本设计对以后研究工作的重点进行了思考,提出了自己的见解。

关键词:磁悬浮系统,Arduino 开发板,PID 控制,脉宽调制THE SOFTWARE DESIGN OFPUSH TYPE MAGNETIC LEVITATION SYSTEMABSTRACTMagnetic levitation system can create a no conta ct, no friction, no lubrication of the special space environment . Maglev technology can be used to implement parts of no friction between the relative motion, not only increases the movement speed and accuracy, but also can prolong the service life of components. Because of these advantages of maglev system, it not only in the electrical industry is widely used, but is also beginning to be used in human life. It fully shows that magnetic suspension technology has a board development prospect on improving the development of national economy and the quality of life. Therefore, it has a very important theoretical significance and practical significance on designing or researching the system, and the control of the system has become the first problem.With the extensive application of maglev technology, the control of the maglev system has become a priority. In this paper, for the principle of PID control, Arduino development board as platform, PID controller designed to control magnetic suspension system. Since PID controllers have been the process of industrial production has been most widely and most sophisticated controller by its simple structure, easy to implement, robust, etc., in a dominant position.This design will create a magnetic suspension system bas ed on the Arduino development board. On the basis of analyzing of magnetic suspension system’s structure and working principle, we will get the control scheme. Through making the program of the control system, regulating the PID parameters and changing the frequency of the PWM, we can control the electromagnetic coil current in real time, and the suspended object will obtains an electromagneticforce to balance the gravity at the predetermined locations. Then we will get a stable magnetic suspension system. In addition, the system can do a dynamic communication with the personal computer, and realize the real -time control by the personal computer. At last, the key research works for further study are proposed.KEY WORDS: magnetic suspension system, Arduino development board, PID controller, Pulse Width Modulation目录前言 (1)第 1 章绪论 (2)§1.1 设计的依据与意义 (2)§1.2 国内外同类设计的概况综述 (3)§1.3 本课题设计的主要任务 (4)第 2 章磁悬浮系统的结构 (5)§2.1 磁悬浮系统的工作原理 (5)§2.2 磁悬浮系统的组成 (6)§2.3 磁悬浮系统的结构特点 (7)§2.4 磁悬浮系统的主要参数 (7)第 3 章下推式磁悬浮控制系统设计 (9)§3.1 位置检测原理 (9)§3.2 控制系统设计 (10)§3.2.1 系统数学模型 (10)§3.2.2 控制器设计 (11)§3.2.3 系统仿真 (12)§3.3 小结 (14)第 4 章磁悬浮软件设计 (15)§4.1 软件开发环境介绍 (15)§4.1.1 Arduino nano 开发板介绍 (16)§4.1.2 Arduino编程环境 (17)§4.2 软件设计思想与程序流程图 (19)§4.3 数据采集 (20)§4.4 PID调节控制 (21)§4.5 PWM输出 (24)§4.6 上位机通信 (27)§4.7 按键变化功能 (27)第 5 章运行调试与结果分析 (30)§5.1 硬件接线 (30)§5.2 程序的编译与上传 (30)§5.3 确定系统极性 (31)§5.4 PID参数整定 (32)§5.5 结果 (34)结论 (36)参考文献 (37)致谢 (38)前言磁悬浮技术属于自动控制技术,它是随着控制技术的发展而建立起来的。

永磁磁悬浮演示装置结构设计

永磁磁悬浮演示装置结构设计

题目:永磁磁悬浮演示装置结构设计目录摘要 (4)Abstract (5)第一章绪论 (6)1.1 永磁磁悬浮技术研究背景 (6)1.2 磁悬浮技术的研究现状 (11)1.3 本文的主要内容 (15)第二章磁悬浮演示装置的结构设计 (15)2.1结构组成 (15)2.2 磁悬浮演示装置的两大部分及建模 (16)2.2.1 浮动磁座部件 (16)2.2.2 固定磁座筋板 (21)2.3 导向轮的选择安装 (24)2.4 永磁磁悬浮演示装置的结构优化 (25)第三章永磁磁悬浮演示装置的力学特性分析 (27)3.1 ANSYS MAXWELL有限元分析 (27)3.1.1 MAXWELL有限元分析简介 (27)3.1.2 永磁磁悬浮装置的MAXWELL 2D静态分析 (27)3.2 ANSYS有限元分析 (32)3.2.1 永磁磁悬浮装置的结构静力学分析 (32)3.2.2 永磁装置的结构静力学分析 (32)第四章零件加工工艺的分析 (35)4.1 机械加工工艺的具体概念 (35)4.2 机械加工工艺流程 (35)4.3 制定机械加工工艺规程的内容和步骤 (36)第五章永磁体的安装注意 (39)第六章总结与展望 (41)6.1 本文主要工作 (41)6.2 展望 (41)参考文献 (43)致谢 (44)永磁磁悬浮演示装置结构设计摘要永磁磁悬浮技术是集电磁学、电子技术、控制工程、信号处理、机械学、动力学为一体的典型的机电一体化技术。

随着电子技术、控制工程、信号处理元器件、电磁理论及新型电磁材料的发展和转子动力学的进展, 永磁磁悬浮技术得到了长足的发展。

目前国内外研究的热点是磁悬浮轴承和磁悬浮列车, 而应用最广泛的是磁悬浮轴承。

它拥有无接触、无摩擦、使用寿命长、不用润滑以及高精度等特殊的优点。

本文设计的永磁磁悬浮演示装置主要用于展示永磁磁悬浮原理,通过该装置体现永磁磁悬浮零能耗悬浮、无电磁辐射等特点,从模型角度去研究该技术在列车、轴承等领域的运用可行性。

大学磁悬浮导轨课程设计

大学磁悬浮导轨课程设计

大学磁悬浮导轨课程设计一、课程目标知识目标:1. 理解磁悬浮导轨的基本原理,掌握其工作方式和相关物理概念;2. 学习磁悬浮导轨的关键技术,包括磁悬浮系统的设计、悬浮控制及驱动技术;3. 了解磁悬浮导轨在我国及世界范围内的应用现状和发展趋势。

技能目标:1. 能够运用所学知识分析和解决磁悬浮导轨在实际应用中出现的问题;2. 培养学生运用科学方法进行磁悬浮导轨相关实验操作的能力;3. 提高学生的团队协作和沟通能力,通过小组讨论、报告等形式,展示对磁悬浮导轨的研究成果。

情感态度价值观目标:1. 培养学生对磁悬浮导轨技术及其应用的兴趣,激发学生探索新技术的热情;2. 强化学生的环保意识,认识到磁悬浮导轨在节能减排方面的重要性;3. 培养学生具备创新精神和实践能力,树立投身国家科技创新事业的信念。

课程性质:本课程为大学学科课程,以理论与实践相结合的方式进行教学。

学生特点:学生具备一定的物理基础,对新技术具有好奇心和探索欲望,具备一定的自主学习能力。

教学要求:教师需结合课本内容,注重理论与实践相结合,通过案例分析、实验操作等形式,引导学生掌握磁悬浮导轨的相关知识,培养其创新和实践能力。

同时,关注学生的情感态度价值观的培养,激发学生的学习兴趣和责任感。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 磁悬浮导轨原理及物理基础- 磁悬浮基本概念- 磁悬浮导轨的工作原理- 相关物理知识(磁学、电磁学)2. 磁悬浮导轨关键技术- 磁悬浮系统设计- 悬浮控制技术- 驱动技术3. 磁悬浮导轨应用与现状- 国内外磁悬浮导轨发展历程- 磁悬浮列车及其优势- 磁悬浮导轨在其他领域的应用4. 磁悬浮导轨实验与操作- 实验室安全与规范操作- 磁悬浮导轨实验原理与步骤- 实验数据分析与处理5. 磁悬浮导轨发展前景与挑战- 技术创新与发展趋势- 环保与能源利用- 面临的挑战与解决方案教学大纲安排:第一周:磁悬浮导轨原理及物理基础第二周:磁悬浮导轨关键技术第三周:磁悬浮导轨应用与现状第四周:磁悬浮导轨实验与操作第五周:磁悬浮导轨发展前景与挑战教学内容与课本关联性:本教学内容紧密围绕教材相关章节,确保学生能系统掌握磁悬浮导轨相关知识。

磁悬浮实验报告范文

磁悬浮实验报告范文

磁悬浮实验报告范文一、实验目的:1.理解磁悬浮原理和应用。

2.掌握磁悬浮实验装置的组装和调试。

3.通过实验观察和分析磁悬浮参数对悬浮稳定性的影响。

二、实验装置:1.磁悬浮装置主要由磁悬浮底座、磁悬浮转子、电磁铁组成。

2.磁悬浮转子由磁悬浮轴承和转子组成。

3.电磁铁通过调节电流来产生磁场控制磁悬浮装置。

三、实验步骤:1.组装磁悬浮装置:根据实验指导书的要求,依次将磁悬浮底座、磁悬浮轴承和磁悬浮转子组装好。

2.调试磁悬浮装置:调节电流控制磁悬浮装置,使转子在悬浮高度合理范围内稳定运行。

3.改变磁悬浮参数:调节电流、转子质量等参数,观察转子悬浮稳定性的变化。

4.记录实验数据:记录各组合参数下的转子悬浮高度、稳定性等数据。

四、实验结果:根据实验数据,我们可以得到以下结论:1.当电流增大时,磁悬浮力增大,转子悬浮高度增加。

当电流过大时,磁悬浮力会超过转子重力,造成悬浮过高,不稳定。

2.当转子质量增大时,转子悬浮高度减小。

由于重力增大,需要更大的磁悬浮力才能使转子悬浮。

3.当电流和转子质量都很小时,磁悬浮力较小,转子容易接触到磁悬浮底座,导致悬浮不稳定。

五、实验分析:1.实验结果与理论相符。

根据磁悬浮原理,电流和转子质量是影响磁悬浮力的重要因素,实验结果也验证了这一点。

2.实验中可能存在的误差。

由于实验条件的限制,实际实验中可能存在一些误差,例如磁悬浮装置的制作和调试不够精确等。

3.实验的应用前景。

磁悬浮技术在交通运输、精密仪器等领域具有广阔的应用前景,通过实验我们深入了解了磁悬浮的原理和参数对悬浮稳定性的影响,为今后进一步研究和应用磁悬浮技术打下了基础。

六、实验总结:通过本次实验,我们深入掌握了磁悬浮原理和应用,并通过实验观察和分析了磁悬浮参数对悬浮稳定性的影响。

实验结果与理论相符,为今后更深入地研究和应用磁悬浮技术提供了基础。

同时,我们也明确了实验中可能存在的误差和不足之处,需要进一步完善实验装置和调试方法。

初中物理做磁悬浮实验设计

初中物理做磁悬浮实验设计

初中物理做磁悬浮实验设计
初中物理做磁悬浮实验设计取直径15 mm,厚8 mm的圆形磁铁,直径0.2 mm漆包线250 cm,装有两节五号电池的电池盒,用漆包线绕制一个直径20 mm的圆形线圈,两端各留50 mm,并将线头的漆用砂纸打磨掉。

将线圈套在磁铁上,把线圈的两条引线分别与电池的正、负极相接,线圈就跳起,并悬浮在磁铁的正上方。

若线圈通电后不跳起,只要将接电源正、负极的两根线圈引线调换位置,就能跳起并悬浮。

原来线圈通电后就成了一个电磁铁,只要它与磁铁相对的这面的磁极与磁铁的磁极相同,它们就互相排斥,使线圈悬浮在空中(线圈太重或相互斥力太小都不能悬浮)。

现代交通工具磁悬浮列车,就是利用这个道理将列车悬浮在空中,使列车与轨道间无摩擦,减少前进阻力,所以可达到更高的速度,现已能达到500 km/h以上,而普通高速列车只有100 km/h以上。

第 1 页共 1 页。

磁悬浮演示装置设计毕业设计报告

磁悬浮演示装置设计毕业设计报告
1.2
在多年研究工作下和转子动力学和控制理论的研究和随着电子元件的高度集成化,国内外在此技术上获得了巨大的进展。然而在还是在实现产品化和研究理论的过程中,此磁悬浮技术有还是遗留很多难题,众所周知的磁悬浮列车悬浮与推进的技术难题以及复杂的控制系统实现都不是很成熟,需要完成的研究是实现工程化和组成系统的技术提升,还需要运用电磁技术、电子技术、直线电机、机械技术、计算机技术、新型材料和系统分析等方面的技术研究成果。
Abstract:Magnetic levitation system is a complex nonlinear nature unstable system air control performance directly affects the application of magnetic levitation. The research includes control theory, field theory, electronic related technologies. magnetic levitation system for real-time demanding, to use advanced algorithms control algorithms enable stable levitation.
This paper introduces the principle of magnetic levitation system, built on the basis of a physical model using the Hall sensor magnetic levitation collect data use ARM processor to process data and control the position of the suspension. The system transfer function and the received data, and accordingly design function and regulation PID control, and ultimately suspension stability.

磁悬浮演示装置设计设计报告

磁悬浮演示装置设计设计报告

磁悬浮演示装置设计设计报告毕业设计题目:磁悬浮演示装置设计院:电气信息学院专业:电子信息工程班级: 1101 学号: 25 学生姓名:余东升导师姓名:李延平完成日期: 2015年 6月 10日诚信声明本人声明:1、本人所呈交的毕业设计(论文)是在老师指导下进行的研究工作及取得的研究成果;2、据查证,除了文中特别加以标注和致谢的地方外,毕业设计(论文)中不包含其他人已经公开发表过的研究成果,也不包含为获得其他教育机构的学位而使用过的材料;3、我承诺,本人提交的毕业设计(论文)中的所有内容均真实、可信。

作者签名:日期:年月日毕业设计(论文)任务书题目:磁悬浮演示装置设计姓名余东升学院电气信息学院专业电子信息工程班级1101 学号201101030125指导老师李延平职称讲师教研室主任刘望军一、基本任务及要求:课题内容是以TI公司的Tiva C平台为基础实现一个磁悬浮实验演示装置,具体要求如下:1、搭建实验装置的实物平台;2、实现对磁铁的悬浮控制;3、磁平衡的控制参数可调;4、完成实物制作二、进度安排及完成时间:1、第一周至第二周:查阅资料、撰写文献综述和开题报告;2、第三周至第四周:毕业实习;3、第五周至第六周:各参数测试算法研究;4、第七周至第八周:完成硬件的设计及模型组装;5、第九周至第十一周:完成系统硬件电路的设计及调试;6、第十二周至第十三周:完成单片机程序的编写及调试;7、第十四周至第十五周:撰写设计说明书;8、第十六周:毕业设计答辩目录摘要 (I)Abstract (II)第1章概述 (1)1.1磁悬浮的研究背景 (1)1.2磁悬浮研究的现状 (1)第2章系统方案 (3)2.1 系统总体方案设计 (3)2.2 霍尔传感器 (3)2.3 信号处理方案 (4)2.4 线圈驱动器选型 (5)2.5 主控芯片选择 (5)第3章系统硬件设计 (7)3.1 主控模块设计 (7)3.2电源设计 (8)3.3 传感器电路设计 (8)3.4 控制线圈驱动模块设计 (8)3.5霍尔元件与控制线圈的安装 (9)第4章软件设计 (10)4.1 编程语言的选择 (10)4.2 主程序设计 (10)4.3 模块程序设计 (11)第5章调试与运行 (15)5.1 编程工具CCS的介绍 (15)5.2程序调试与下载 (16)5.3 PID调试与结果 (17)第6章结论与展望 (19)参考文献 (20)致谢 (21)附录程序 (22)磁悬浮演示装置设计摘要:磁悬浮系统是一种非线性,复杂、自然不稳定系统,其空控制性能的好坏直接影响磁悬浮的应用。

磁悬浮原理物理课程设计

磁悬浮原理物理课程设计

磁悬浮原理物理课程设计一、课程目标知识目标:1. 学生能理解磁悬浮的基本原理,掌握磁极间的相互作用规律。

2. 学生能描述磁悬浮列车的工作原理,了解其在现代交通中的应用。

3. 学生能运用磁悬浮原理解释相关现象,如磁悬浮物体的稳定性、磁性材料的特性等。

技能目标:1. 学生通过实验操作,提高观察、分析、解决问题的能力。

2. 学生能够运用所学知识,设计简单的磁悬浮实验装置,培养动手实践能力。

3. 学生通过小组合作,提高沟通、协作能力。

情感态度价值观目标:1. 学生对物理学科产生兴趣,激发探索科学的热情。

2. 学生认识到磁悬浮技术在生活中的应用,增强科技创新意识。

3. 学生在学习过程中,培养勇于尝试、积极进取的精神风貌。

课程性质:本课程为物理学科拓展课程,以实验和实践为主,注重培养学生的动手能力和创新能力。

学生特点:学生处于八年级,已具备一定的物理基础,对新鲜事物充满好奇心,具备初步的实验操作能力。

教学要求:结合学生特点,注重理论与实践相结合,提高学生的实际操作能力和解决问题的能力。

在教学过程中,关注学生的个体差异,引导他们主动探究、积极思考,培养科学素养。

通过分解课程目标为具体的学习成果,为后续的教学设计和评估提供依据。

二、教学内容1. 磁的基本概念:磁场、磁极、磁力线等。

2. 磁悬浮原理:磁极间的相互作用规律,磁悬浮现象及其应用。

3. 磁悬浮列车:工作原理、优点、发展现状及前景。

4. 磁性材料:性质、分类及应用。

教学大纲:第一课时:磁的基本概念及磁悬浮原理1. 引导学生了解磁场、磁极、磁力线等基本概念。

2. 讲解磁极间的相互作用规律,引导学生理解磁悬浮现象。

第二课时:磁悬浮列车及磁性材料1. 介绍磁悬浮列车的工作原理、优点、发展现状及前景。

2. 讲解磁性材料的性质、分类及应用。

教学内容安排与进度:1. 第一课时:2课时,讲解磁的基本概念和磁悬浮原理。

2. 第二课时:2课时,介绍磁悬浮列车及磁性材料。

教材章节及内容:1. 八年级物理下册第四章第四节:磁场与磁力。

磁悬浮列车设计方案

磁悬浮列车设计方案

自制教具磁悬浮列车设计方案一、制作材料:53cm × 20cm×3cm的木料、2cm×1cm×3mm的强力磁铁一百多块、小型铁钉一包、几片10厘米×5厘米的薄木片、53厘米×20厘米、21厘米×20厘米的玻璃各两快、若干装饰彩纸等材料。

二、制作工具:老虎钳、羊角锤、剪刀、尺子等。

三、制作过程:1. 准备一块长方体木料,大小大致53cm×20cm×3cm,在53cm ×20cm长方形面上横向留出2条宽2厘米磁铁轨道槽,磁铁轨道槽上方用薄木片盖上,并用铁钉加以固定(这样可以防止强力磁铁在拼装过程中向外挤压,可以使强力磁铁的拼装更加方便。

)2. 磁铁轨道槽钉上薄木片以后,把磁铁按排列单位进行横向组合连续磁铁拼装,并将两条磁铁轨道槽拼装完整。

两条轨道的磁铁排列呈左右对称方式。

3. 准备一块厚2cm的木料板,木料板宽度略小于53cm ×20cm×3cm长方体木料,长度自定。

留出方式和53cm × 20cm×3cm 长方体木料相同。

列车上的底面磁铁轨道拼装方式和53cm ×20cm×3cm长方体木料类似,磁铁方向也横向组合连续拼装,以增强列车悬浮滑行的稳定性,列车上的两条底面磁铁轨道呈左右对称方式,宽度和53cm × 20cm×3cm长方体木料磁铁轨道相同。

4、依据53cm × 20cm×3cm长方体木料,制作底座,用以安放53cm × 20cm×3cm长方体木料。

5. 准备4块玻璃,长53厘米、宽20厘米,长21厘米、宽20厘米的玻璃各两块,再将这4块玻璃固定到长方体底座木料的前后左右四侧,玻璃下面部分和长方体底座木料对齐,成为列车防滑护栏板。

为防止悬浮列车滑出两侧,在列车防滑护栏板左右两侧再固定几块小型防滑玻璃。

《制作磁悬浮笔架作业设计方案》

《制作磁悬浮笔架作业设计方案》

《制作磁悬浮笔架》作业设计方案一、设计背景随着科技的不息发展,磁悬浮技术逐渐成为人们关注的焦点。

磁悬浮技术通过磁场的力量使物体悬浮在空中,给人一种奇奥的感觉。

因此,本次作业设计将利用磁悬浮技术制作一个磁悬浮笔架,既实用又具有科技感,能够吸引人们的注意。

二、设计目标1. 制作一个磁悬浮笔架,能够悬浮在空中并稳定支持笔筒。

2. 设计简单、外观美观,符合摩登科技感的风格。

3. 提高学生对科技的兴趣,培养他们动手能力和创造力。

三、设计方案1. 材料准备:- 电磁铁:用于产生磁场,支持笔架悬浮。

- 磁铁:用于与电磁铁互相作用,实现磁悬浮效果。

- 通明塑料管:用于制作笔筒,放置笔和其他文具。

- 电线、开关、电池等电子元件:用于搭建电路,控制磁悬浮效果。

2. 制作步骤:- 第一步:将电磁铁固定在一个平整的底座上,确保稳定性。

- 第二步:在电磁铁的上方放置一个磁铁,调整位置使其与电磁铁互相作用。

- 第三步:将通明塑料管切割成适当长度,制作成笔筒的形状。

- 第四步:在笔筒底部安装一个小磁铁,使其能够与电磁铁互相吸引。

- 第五步:搭建电路,毗连电磁铁、开关、电池等元件,调试磁场力度和稳定性。

- 第六步:将笔筒放置在磁悬浮位置,调整磁铁的位置使其悬浮稳定。

四、预期效果通过以上设计方案,预期能够制作出一个能够磁悬浮的笔架,实现笔筒在空中悬浮的效果。

这不仅可以提高学生对科技的兴趣,还能培养他们的动手能力和创造力。

同时,这样的设计也具有一定的实用性,可以作为一个奇特的文具放置工具,吸引人们的眼球。

五、总结本次作业设计方案旨在利用磁悬浮技术制作一个磁悬浮笔架,通过简单的材料和制作步骤,实现笔筒在空中悬浮的效果。

这不仅能够吸引人们的注意,还能培养学生的动手能力和创造力,提高他们对科技的兴趣。

希望通过这样的设计,能够激发学生的创新思维,让他们在动手实践中体会到科技的魅力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目设计主题:基于MSP430F5438的交流磁悬浮控制器的设计完成时间:2013.11.14学生姓名:刘天月指导教师:王庐山○目○录一、引言 (1)二、MSP430F5438单片机简介 (1)三、磁悬浮控制系统结构框图 (2)四、系统功能实现分析 (2)五、程序功能说明 (3)六、程序清单(附) (5)一、引言磁悬浮是根据电磁感应原理和楞次定律,由交流电流通过线圈产生交变磁场,交变磁场使闭合的导体产生感生电流,感生电流的方向,总是使自己的磁场阻碍原来磁场的变化。

因此线圈产生的磁场和感生电流的磁场是相斥的,若斥力超过重力,可观察到磁悬浮现象。

交流磁悬浮控制器的设计采用MSP430F5438A单片机控制,由检测机构反馈高度电信号给单片机,再由MSP430F5438A单片机产生一路触发脉冲信号,控制交流调压模块电路的输出,从而实现对线圈高度的闭环控制。

二、MSP430F5438单片机简介MSP430系列单片机是美国德州仪器公司研发的一款16位超低功耗单片机[3],因为其具有精简指令集的混合信号处理器,所以称之为混合信号处理器。

该系列单片机具有如下特点:◆处理能力强MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。

这些特点保证了可编制出高效率的源程序。

◆运算速度快MSP430 系列单片机能在25MHz晶体的驱动下,实现40ns的指令周期。

16位的数据宽度、40ns的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如 FFT 等)。

◆超低功耗MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。

首先,MSP430 系列单片机的电源电压采用的是1.8-3.6V 电压。

因而可使其在1MHz 的时钟条件下运行时,芯片的电流最低会在165μA左右,RAM 保持模式下的最低功耗只有0.1μA。

其次,独特的时钟系统设计。

在 MSP430 系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL 和FLL+)时钟系统和DCO数字振荡器时钟系统。

可以只使用一个晶体振荡器(32768Hz),也可以使用两个晶体振荡器。

由系统时钟系统产生 CPU 和各功能所需的时钟。

并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。

由于系统运行时开启的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。

在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。

在实时时钟模式下,可达2.5μA ,在RAM 保持模式下,最低可达0.1μA 。

◆片内资源丰富MSP430 系列单片机的各系列都集成了较丰富的片内外设。

它们分别是看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10位/12位ADC、16位Σ-Δ ADC、DMA、I/O端口、基本定时器(Basic Timer)、实时时钟(RTC)和USB控制器等若干外围模块的不同组合。

其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 A/D 转换器;16 位定时器(Timer_A 和 Timer_B )具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、 PWM 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,P0、P1、P2 端口能够接收外部上升沿或下降沿的中断输入;10/12位硬件 A/D 转换器有较高的转换速率,最高可达200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位 D/A 转换;硬件I2C 串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用的DMA 模块。

MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。

另外,MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。

当系统处于省电的低功耗状态时,中断唤醒只需5μs 。

方便高效的开发环境MSP430 系列有 OTP 型、 FLASH 型和 ROM 型三种类型的器件,这些器件的开发手段不同。

对于 OTP 型和 ROM 型的器件是使用仿真器开发成功之后烧写或掩膜芯片;对于FLASH 型则有十分方便的开发调试环境,因为器件片内有 JTAG 调试接口,还有可电擦写的 FLASH 存储器,因此采用先下载程序到 FLASH 内,再在器件内通过软件控制程序的运行,由 JTAG 接口读取片内信息供设计者调试使用的方法进行开发。

这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编程器。

开发语言有汇编语言和 C 语言。

三、磁悬浮控制系统结构框图磁悬浮控制系统结构框图四、系统功能实现分析交流磁悬浮控制器要求实现对线圈悬浮高度的闭环控制。

交流磁悬浮控制器由MSP430F5438A 单片机电路、数码管显示和键盘电路、交流调压电路和串口AD 转换电路(ADS1118)等几部分组成。

MSP430F5438A 控制部分采用TI 公司的MSP430F5438A 为主控芯片;数码管显示和键盘由MSP430F5438A 直接控制和检测;交流调压电路由MSP430F5438A控制实现调压;线圈悬浮通过带动滑动变阻器产生模拟信号,经过串口AD转换电路变换后送入MSP430F5438A,实现对线圈高度的闭环控制。

交流磁悬浮控制器系统接线图如下:交流磁悬浮控制器系统接线图被控制线圈部分实物图交流调压电路原理图交流调压电路用于对线圈的控制,实现对线圈的电压控制,从而改变线圈高度。

五、程序功能说明SW1和SW2为启动与停止按键,分别用于交流磁悬浮控制器启动和停止的控制;SW3为设定高度增加按键;SW4为设定高度减小按键。

具体要求实现如下功能:1、按键要求:◆设定功能按上升“↑”键或下降“↓”键可以设定交流磁悬浮的线圈高度,设定范围为00.0毫米至30.0毫米,设定值在右边四个数码管的后面三个显示,单位毫米;◆起停功能按“起动”功能键可实现交流磁悬浮控制器的起动功能,按“停止”功能键可实现交流磁悬浮控制器的停止功能,在开机时控制器要处于停止状态,交流磁悬浮的线圈高度显示“00.0”。

启动前后均可设定交流磁悬浮线圈高度。

2、人机交互要求:要求前面板数码管显示清晰,稳定,无阴影,频率最高位消隐;根据功能要求显示不同的数值。

按键去抖,避免按键错误判断。

显示按键部分原理图如下:数码管显示部分原理图按键部分原理图六、程序清单(附)/** P4.3(TB0.3)---IN1(Pulse capture)* P7.3(TA1.2)---OUT1(Pulse Output)*/#include"msp430x54xA.h"#include"BoardConfigure.h"#include"Clock.h"#include"ads1118.h"#include"smg.h"void CaptureAndPulseOuput_GPIO_Init();void PID_Init(void);unsigned int PID_Work();extern unsigned char Start_Stop;// PID Parameter setting initfloat PID_Set;float CurrentValue ;float MinValue;float MaxValue;float PID_Measure;struct PID{float Ki;float Kp;float Kd;float E2;float E1;float E;float OutPut;float ValueSet;} Control;volatile unsigned int Sample_V oltage = 0;int ADC_Result;extern unsigned int Height_Setting_Value;unsigned int Height_Sampling_Vlaue = 0 ;unsigned int Offset_Angle = 0; // Middle timer // Height_Setting_Value = (3.3V/45)*Setting_V oltage_Value,//45 : 是滑动变阻器的的长度(mm)// Height_Setting_Value unit : mm; Setting_V oltage_Value unit:mV//unsigned int Setting_V oltage_Value = 0;void main(){WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timerInit_Clock(); // Clock Configure,MCLK=SMCLK=20MHZIndependentKey_GPIO_Init();Smg_GPIO_Init();ADS1118_GPIO_Init(); // ADS1118ADS1118_SPI_Init();PID_Init();// Capture InitCaptureAndPulseOuput_GPIO_Init();TBCCTL3 = CM_3 + SCS + CCIS_1 + CAP + CCIE; // Capture both edges,CCIxBTBCTL = TBSSEL_2 + MC_2 + TBCLR ; // SMCLK_20M,contmode,clear TAR,__bis_SR_register(GIE);while(1){while(Start_Stop == 0){Independent_Key_Scan();LED_Display();// Offset_Angle = 7000;__bic_SR_register(GIE);}__bis_SR_register(GIE);Independent_Key_Scan();// ADS1118 +-4.096V Range, AIN1,860SPSADS1118_ADS_Config(0xC3E3);ADC_Result = ADS1118_ADS_Read(); // Read data from ch1,the last time resultSample_V oltage = (unsigned int)(((long)(ADC_Result))*4096/32768);// unit : mvLED_Display();ADC_Result = ADS1118_ADS_Read(); // Read data from ch1,the last time resultSample_V oltage = (unsigned int)(((long)(ADC_Result))*4096/32768);// PID Process,Height_Sampling_Vlaue=Sample_V oltage/10;// Height_Sampling_Vlaue= Height_Sampling_Vlaue+10;PID_Set = 3300.0*Height_Setting_Value/45;PID_Measure = Sample_V oltage ;//Offset_Angle = PID_Work();Offset_Angle = 32000 - PID_Work();if(Offset_Angle <= 7000){Offset_Angle = 7000 ;}if(Offset_Angle >= 32000){Offset_Angle = 32000 ;}LED_Display();}}void CaptureAndPulseOuput_GPIO_Init(){P4SEL |= BIT3; // P4.3 Select captureP4DIR &=~BIT3;P7DIR |= BIT3; // P7.3 select output LOW Default P7OUT &=~BIT3;}// TimerB Interrupt Vector (TBIV) handler#pragma vector=TIMER0_B1_VECTOR__interrupt void TIMER0_B1_ISR(void){switch(__even_in_range(TBIV,14)){case 0: break; // No interruptcase 2: break;case 4: break; // reservedcase 6: __no_operation();// 触发角度从1.8°到179.2°,旁边为电网误差偏移量// 对应延时时间Offset_Angle:6000~45000TA1CCR0 = Offset_Angle;TA1CTL = TASSEL_2 + MC_1 + TACLR + TAIE; // smCLK=5M, upmode, clear TARbreak; // reservedcase 8: break; // reservedcase 10: break; // reservedcase 12: break; // reservedcase 14:__no_operation();LED1_ON;break; // overflowdefault: break;}}// Timer_A3 Interrupt Vector (TAIV) handler#pragma vector=TIMER1_A1_VECTOR__interrupt void TIMER1_A1_ISR(void){unsigned char i = 0;switch(__even_in_range(TA1IV,14)){case 0: break; // No interruptcase 2: break; // CCR1 not usedcase 4: break; // CCR2 not usedcase 6: break; // reservedcase 8: break; // reservedcase 10: break; // reservedcase 12: break; // reservedcase 14: for(i=0;i<5;i++){P7OUT ^=BIT3;Delay_us(50);}P7OUT &=~BIT3; // overflowTA1CTL &=~TAIE;break;default: break;}}void PID_Init(void){MinValue=0; // Offset_Angle = 6000 , AC output voltage up to maxMaxValue=32000; // Offset_Angle = 40000 , AC output voltage up to minControl.Kp=2;Control.Ki=0.1;Control.Kd=0;PID_Set=0;Control.OutPut=32000;}unsigned int PID_Work(){float Up,Ui,Ud;float Ax,Bx,Cx,Tx=0.05; // TX:sampling frequencyControl.ValueSet = PID_Set; //普通增量式PIDCurrentValue = PID_Measure;Control.E = Control.ValueSet-CurrentValue;Ax=Control.Kp*(1+Tx/Control.Ki+Control.Kd/Tx);Bx=Control.Kp*(1+2*Control.Kd/Tx);Cx=Control.Kp*(Control.Kd/Tx);Up =Ax*Control.E;Ui = Bx*Control.E1;Ud = Cx*Control.E2;Control.E2 = Control.E1;Control.E1 = Control.E;Control.OutPut +=(Up-Ui+Ud);if(Control.OutPut<MinValue)Control.OutPut=MinValue;else if (Control.OutPut>MaxValue)Control.OutPut=MaxValue;return (unsigned int)Control.OutPut;}//DCP-202 from left to right ,corresponding first to eighth LED//first to last LED corresponding to Bit selection://P3.0,P3.5,P3.4,P11.0,P11.1,P11.2,P1.6,P1.7;// DCP-202(P1)--------DCP-200(JC)// KEY1------P2.4----Start// KEY2------P2.5----Stop// KEY3------P2.6-----Increase// KEY4------P2.7-----Decrease#include"msp430x54xA.h"#include"BoardConfigure.h"#include"smg.h"unsigned char Start_Stop = 0;unsigned int Height_Setting_Value = 0; // unit : mmextern unsigned int Height_Sampling_Vlaue ;const unsigned char Dis_Data[16] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; // Common Anode segment code void Independent_Key_Scan(void){unsigned char KeyValue = 0;if((P2IN&0xf0)!= 0xf0){LED_Display(); // Delay10msif((P2IN&(BIT4 + BIT5 + BIT6 + BIT7))!= (BIT4 + BIT5 + BIT6 + BIT7)){if((P2IN&BIT4)!=BIT4) // StartKeyValue = 1;}if((P2IN&BIT5)!=BIT5) // Stop{KeyValue = 2;}if((P2IN&BIT6)!=BIT6) // Increase {KeyValue = 3;}if((P2IN&BIT7)!=BIT7) // Decrease {KeyValue = 4;}}while(((P2IN&(BIT4 + BIT5 + BIT6 + BIT7))!= (BIT4 + BIT5 + BIT6 + BIT7))) {LED_Display();}LED_Display();if(KeyValue == 1){Start_Stop = 1;}if(KeyValue == 2){Start_Stop = 0;}// height setting,unit mm,LSB Height is 1mmif(KeyValue == 3){if(Height_Setting_Value >= 30){Height_Setting_Value = 30;}else{Height_Setting_Value += 2;}}if(KeyValue == 4){if(Height_Setting_Value <= 0){Height_Setting_Value = 0;}else{Height_Setting_Value -= 2;}}}}void IndependentKey_GPIO_Init(void){P2DIR &=~(BIT4 + BIT5 + BIT6 + BIT7); // Select P2.4-7 as Input}void Smg_GPIO_Init(){P8DIR |= 0xff; // Segment code,a~h----p8.0~p8.7,select output,LOW ValidLED_Segment |= 0xff;P3DIR |= BIT0+BIT5+BIT4; // Bits Code,select output,Low level on transistorP11DIR |= BIT0+BIT1+BIT2;P1DIR |= BIT6+BIT7;P3OUT |= BIT0+BIT5+BIT4;P11OUT |= BIT0+BIT1+BIT2;P1OUT |= BIT6+BIT7;}// DCP-202 前面四个数码管显示转速,后面为调制信号频率void LED_Display(){/*LED_Selection_Bit0;LED_Segment = Dis_Data[Motor_Speed / 1000];Delay_ms(1);*/LED_Selection_Bit1;LED_Segment = Dis_Data[Height_Sampling_Vlaue /100];Delay_ms(1);LED_Selection_Bit2;LED_Segment = Dis_Data[ Height_Sampling_Vlaue/10%10]&0x7f; // Open dotDelay_ms(1);LED_Selection_Bit3;LED_Segment = Dis_Data[Height_Sampling_Vlaue % 10];Delay_ms(1);/*LED_Selection_Bit4;LED_Segment = Dis_Data[Fc * 10 / M / 100];Delay_ms(1);*/LED_Selection_Bit5;LED_Segment = Dis_Data[Height_Setting_Value / 10];Delay_ms(1);LED_Selection_Bit6;LED_Segment = (Dis_Data[Height_Setting_Value % 10])&(0x7f);Delay_ms(1);LED_Selection_Bit7;LED_Segment = Dis_Data[0];Delay_ms(1);LED_Selection_Bit_Off; // Close Led displayDelay_ms(1);}/*void init_clock(void){unsigned int i;WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timerP5SEL |= 0x0C; // Port select XT2UCSCTL6 &= ~XT2OFF; // Ena××e XT2 even if not used UCSCTL3 |= SELREF_2; // FLLref = REFOUCSCTL4 |= SELA__XT2CLK; //辅助系统时钟来源XT2-25M UCSCTL4 |= SELS_5 + SELM_5; // SMCLK=MCLK=XT2-25M_NOP();UCSCTL5 |= DIVM__2 + DIVS__16+DIV A__16; // MCLK25M,SMCLK==ACLK=25M/16do{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flags SFRIFG1 &= ~OFIFG; // Clear fault flagsfor(i=0;i<0xFFFF;i++); // Delay for Osc to stabilize}while (SFRIFG1&OFIFG); // Test oscillator fault flag}*//*void main(){GPIO_Init();init_clock();while(1){LED_Display();}}*//** smg.h** Created on: 2013-5-30* Author: Administrator*/#ifndef SMG_H_#define SMG_H_#define LED_Segment P8OUT#define LED_Selection_Bit0 P3OUT &=~BIT0;P3OUT |= BIT5+BIT4;P11OUT |= BIT0+BIT1+BIT2;P1OUT |= BIT6+BIT7#define LED_Selection_Bit1 P3OUT &=~BIT5;P3OUT |= BIT0+BIT4;P11OUT |= BIT0+BIT1+BIT2;P1OUT |= BIT6+BIT7#define LED_Selection_Bit2 P3OUT &=~BIT4;P3OUT |= BIT0+BIT5;P11OUT |= BIT0+BIT1+BIT2;P1OUT |= BIT6+BIT7#define LED_Selection_Bit3 P11OUT &=~BIT0;P3OUT |= BIT0+BIT5+BIT4;P11OUT |= BIT1+BIT2;P1OUT |= BIT6+BIT7#define LED_Selection_Bit4 P11OUT &=~BIT1;P3OUT |= BIT0+BIT5+BIT4;P11OUT |= BIT0+BIT2;P1OUT |= BIT6+BIT7#define LED_Selection_Bit5 P11OUT &=~BIT2;P3OUT |= BIT0+BIT5+BIT4;P11OUT |= BIT0+BIT1;P1OUT |= BIT6+BIT7#define LED_Selection_Bit6 P1OUT &=~BIT6;P3OUT |= BIT0+BIT5+BIT4;P11OUT |= BIT0+BIT1+BIT2;P1OUT |= BIT7#define LED_Selection_Bit7 P1OUT &=~BIT7;P3OUT |= BIT0+BIT5+BIT4;P11OUT |= BIT0+BIT1+BIT2;P1OUT |= BIT6#define LED_Selection_Bit_Off P3OUT |= BIT0+BIT5+BIT4;P11OUT |= BIT0+BIT1+BIT2;P1OUT |= BIT6+BIT7void Smg_GPIO_Init();//void init_clock(void);void LED_Display();void Independent_Key_Scan(void);void IndependentKey_GPIO_Init(void);#endif /* SMG_H_ */// MSP430F5438A// -----------------// /|\| |// | | |// --|RST |// | |// | P3.7|-> Data Out (UCB1SIMO)// | |// | P5.4|<- Data In (UCB1SOMI)// | |// \CS <-|P1.1 P5.5|-> Serial Clock Out (UCB1CLK)////// Shuyang Zhong// U-Program China, Texas Instruments Inc.// Mar 2013// Built with CCE Version: 5.1.1//******************************************************************************#include "msp430x54xA.h"#include"ads1118.h"void ADS1118_GPIO_Init(void){P1OUT |= 0x02; // Set P1.1 for CSP1DIR |= 0x02; // Set P1.1 to output directionP3SEL |= 0x80; // P3.7 option selectP5SEL |= 0x30; // P5.4,5 option selectP5DIR |= 0x01; // Set P5.0 to output direction}void ADS1118_SPI_Init(void){UCB1CTL1 |= UCSWRST; // **Put state machine in reset**UCB1CTL0 |= UCMST+UCSYNC+UCMSB; // 3-pin, 8-bit SPI master// Clock polarity high, MSB UCB1CTL1 |= UCSSEL_2; // SMCLKUCB1BR0 = 0x05; // /2UCB1BR1 = 0; //UCB1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**__delay_cycles(100); // Wait for slave to initialize}void ADS1118_ADS_Config(signed int temp_config_value){signed int Config_Value;Config_Value = temp_config_value;//Config_Value = 0x8583; // Initial Config Register// ADS1118 configuration AIN0/AIN1, FS=+/-2.048, DR=128sps, PULLUP on DOUTP1OUT &=~ 0x02; // Set CS low__delay_cycles(100); // Wait for slave to initialize ADS1118_WriteSPI(Config_Value,0); // Write configuration to ADS1118 __delay_cycles(100); // Wait for slave to initializeP1OUT |= 0x02; // Set CS high}int ADS1118_ADS_Read(void){unsigned int Data, Config_Value;//Config_Value = 0x058B;Config_Value = 0;// ADS1118 configuration AIN0/AIN1, FS=+/-2.048, DR=128sps, PULLUP on DOUTP1OUT &=~ 0x02; // Set CS lowData = ADS1118_WriteSPI(Config_Value,1); // Read data from ADS1118 P1OUT |= 0x02; // Set CS highreturn Data;}/** Mode 0: Only write config register to ADS1118* Mode 1: Write config register to ADS1118 as well as read data from ADS1118*/signed int ADS1118_WriteSPI(unsigned int config, unsigned char mode){signed int msb;unsigned int temp;signed int dummy;temp = config;if (mode==1) temp = 0;while(!(UCB1IFG&UCTXIFG));UCB1TXBUF = (temp >> 8 ); // Write MSB of Configwhile(!(UCB1IFG&UCRXIFG));msb = UCB1RXBUF; // Read MSB of Datawhile(!(UCB1IFG&UCTXIFG));UCB1TXBUF = (temp & 0xff); // Write LSB of Configwhile(!(UCB1IFG&UCRXIFG));msb = (msb << 8) | UCB1RXBUF; // Read LSB of Datawhile(!(UCB1IFG&UCTXIFG));UCB1TXBUF = (temp >> 8 ); // Write MSB of Configwhile(!(UCB1IFG&UCRXIFG));dummy = UCB1RXBUF; // Read MSB of Configwhile(!(UCB1IFG&UCTXIFG));UCB1TXBUF= (temp & 0xff); // Write LSB of Configwhile(!(UCB1IFG&UCRXIFG));dummy = (dummy <<8) | UCB1RXBUF; // Read LSB of Config__delay_cycles(100);return msb;}/*void main(void){volatile int ADC_Result;float V oltage_ch1;float V oltage_ch2;WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timerADS1118_GPIO_Init();ADS1118_SPI_Init();//ADS_Config();while(1){ADS1118_ADS_Config(0xB583); //config ch2ADC_Result = ADS1118_ADS_Read(); // Read data from ch1,the last timeresultV oltage_ch1 = ADC_Result*1.0/32768*2.048;__delay_cycles(10000); //need to wait time until end of convertADS1118_ADS_Config(0x8583); //config ch1ADC_Result = ADS1118_ADS_Read(); // Read data from ch1,the last timeresultV oltage_ch2 = ADC_Result*1.0/32768*2.048;__delay_cycles(10000);if(V oltage_ch1<V oltage_ch2) //Range +1.0V to +1.2V{P5OUT &=~BIT0; // If result exceed the range, toggle LED1 }else P5OUT |= BIT0; // If in the range, light LED1}}*/#ifndef __ADS1118_H__#define __ADS1118_H__void ADS1118_GPIO_Init(void);void ADS1118_SPI_Init(void);void ADS1118_ADS_Config(signed int temp_config_value);int ADS1118_ADS_Read(void);signed int ADS1118_WriteSPI(unsigned int Config, unsigned char mode);#endif#include"msp430x54xA.h"#include"Clock.h"void Init_Clock(){WDTCTL = WDTPW + WDTHOLD ; // 关看门狗P7SEL |= 0x03 ; // 端口选择外部低频晶振XT1UCSCTL6 &=~XT1OFF ; // 使能外部晶振UCSCTL6 |= XCAP_3 ; // 设置内部负载电容UCSCTL3 |= SELREF__XT1CLK ; // DCOref = XT1UCSCTL4 |= SELA_0 ; // ACLK = XT1__bis_SR_register(SCG0) ; // 关闭FLL控制回路UCSCTL0 = 0x0000 ; // 设置DCOx, MODxUCSCTL1 = DCORSEL_7 ; // 设置DCO振荡范围UCSCTL2 = FLLD__1 + 609 ; // Fdco = ( FLL_FACTOR + 1)×FLLRef = (649 + 1) * 32768 = 21.2992MHz__bic_SR_register(SCG0) ; // 打开FLL控制回路__delay_cycles(1024000) ;do{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除XT2,XT1,DCO 错误标志SFRIFG1 &= ~OFIFG ;}while(SFRIFG1&OFIFG) ; // 检测振荡器错误标志UCSCTL5 |= DIVM__1 + DIVS__4; //MCLK=20M;SMCLK=5M;ACLK=32768}/*unsigned int i;WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer// P11DIR = BIT0+BIT1+BIT2; // P11.1-2 to output direction//P11SEL |= BIT0+BIT1+BIT2; // P11.1-2 to output SMCLK,MCLK P5SEL |= 0x0C; // Port select XT2UCSCTL6 &= ~XT2OFF; // Ena××e XT2 even if not used UCSCTL3 |= SELREF_2; // FLLref = REFOUCSCTL4 |= SELA_2; // ACLK=REFOCLKUCSCTL4 |= SELS_5 + SELM_5; // SMCLK=MCLK=XT2-25M_NOP();UCSCTL5 |= DIVM__1 + DIVS__4; //MCLK=25M;SMCLK=25/4M;ACLK=32768do{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flags SFRIFG1 &= ~OFIFG; // Clear fault flagsfor(i=0;i<0xFFFF;i++); // Delay for Osc to stabilize}while (SFRIFG1&OFIFG); // Test oscillator fault flag}*/#ifndef __CLOCK_H__#define __CLOCK_H__void Init_Clock();#endif// Description; CPU Frequency (MCLK)=25MHZ//// MSP430F5438A// -----------------// /|\| XIN2|-// | | | 25MHZ// --|RST XOUT2|-// | |// | P9.6 Buzzer|<--AN1(KEY1)// | P10.6|<--AN1(KEY1)// | P10.7|<--AN2(KEY2)// | P5.0|-->LED1// | P5.1|-->LED2//#ifndef __BOARDCONFIGURE_H__#define __BOARDCONFIGURE_H__#include "msp430x54xA.h" // Import msp430x54xA.h#define CPU_F ((unsigned long)20) // Unit MHZ#define Delay_us(x) __delay_cycles((unsigned int)x*CPU_F) // Unit us#define Delay_ms(x) __delay_cycles(CPU_F*(unsigned int)x*1000) // Unit ms#define LED1_ON P5DIR |= BIT0 ; P5OUT &= ~BIT0 // Low valid#define LED1_OFF P5DIR |= BIT0 ; P5OUT |= BIT0#define LED2_ON P5DIR |= BIT1 ; P5OUT &= ~BIT1 // Low valid#define LED2_OFF P5DIR |= BIT1 ; P5OUT |= BIT1#define Buzzer_ON P9DIR |= BIT6 ; P9OUT |= BIT6 // High valid#define Buzzer_OFF P9DIR |= BIT6 ; P9OUT &= ~BIT6#endif19。

相关文档
最新文档