登录
首页 » Others » 三相直流无刷电机驱动程序.doc

三相直流无刷电机驱动程序.doc

于 2021-11-20 发布
0 292
下载积分: 1 下载次数: 1

代码说明:

检测霍尔传感器的值可以判断出转子的位置,再使能相应的上下桥臂,则能驱动电机运动;若要让电机持续转动,则必须再次检测传感器值及使能相应的上下桥臂。这里采用的是将霍尔传感器输出的三根线相边的IO口配置成外部中断,并且为边沿触发,在中断函数中加入传感器检测与上下桥臂切换程序,如此电机就能持续运转

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 软考-信息安全工师(汇总1000
    软考,信息安全1000道题目,涵盖了今年题目,可以下载参考。
    2020-12-11下载
    积分:1
  • 商品销售管理系统 C++实例 MFC 数据库
    商品销售管理系统 C++实例 MFC 数据库 源代码
    2020-11-29下载
    积分:1
  • RBM 算法理解
    RBM 算法理解 这份笔记参考了很多网上的资源,也加入很多自己的理解和详细推导, 非常适合初学者使用, 这篇笔记属于复合型产物,感谢那些网上无私奉献自己心得的人们。RBM能量模型这里说一下RBM的能量模型,这里关系到RBM的理解能量模型是个什么样的东西呢?直观上的理解就是,把一个表面粗糙又不太圆的小球,敚到一个表面也匕较粗糙的碗里,就随便往里面一扔,看看小球停在硫的哪个地方。一般来说停在碗底的可能性比较大,停在靠近碗底的其他地方也可能,甚至运气好还会停在碗口附近(这个碗是比较浅的一个碗):能量模型把小球停在哪个地方定义为一种状态,每种状态都对应着个能量,这个能量由能量函数来定义,小球处在某和状态的概率(如停在碗底的概率跟停在碗口的慨率当然不一样)可以通过这种状态下小球具有的能量来定义(换个说法,如小球停在了碗∏附近,这是·种状态,这个状态对应着一个能量,而发生“小球停在碗口附近”这种状态的概率,可以用来表小,表小成,其中是能量函数),其实还有一个简单的理解,球在碗底的能量一般小于在碗边缘的,比如重力势能这,显然碗底的状态稳定些,并且概率大些,就是我认为的能量模型。1.概率分布函数。各个节点的取值状态是概率的、随机的,这里用了3种概率分布来描述整个RBM网络,有联合概率密度,条件概率密度和边缘概率密度2.能量函数。随机神经网络的基础是统计力学,差不多思想是热力学米的,能量函数是描述整个系统状态的一种测度。系统越有序或者概率分布越集中(比如小球在碗底的情况),系统的能量越小,反之,系统越无序并且概率分布发散(比如平均分布),则系统的能量越大,能量函数的最小值,对应着整个系统最稳定的状态RBM能量模型的作用是什么呢?为什么要弄清楚能量模型的作用呢?第一、RBM网终是一种无监督学习的方法,无监督学习的目的自然就是最大限度的拟合输入数据和输出数据。第二、对于组输入数据来说,如果不知道它的分布,那是非常难对这个数据进行学习的。例如:如果我们实现写出了高斯函数,就可以写出似然睬数,那么就可以进行求解,就知道大致的参数,所以实现如果不知道分布是非常痛苫的·件事情,但是,没关系啊,统计力学的一项硏究成果表明,任何概率分布都可以转变成基于能量的模型,即使这个概率分布是未知的。我们仍然可以将这个分布改写成能量函数第三、能量函数能够为无监督学习方法提供个特殊的东两)日标函数b)标解换句话说,使用能量模型使得学丬一个数据的变得容易叮行了。能否把最优解的求解嵌入能量模型中至关重要,决定着我们具体问题求解的好坏。能量模型要捕获变量(这里我理解的是各个分量之间的关系)之间的相关性,变量之间的相关程度决定了能量的高低。把变量的相关关系用图表是一个图,以概率为测度,所以是概率图)模型的能量模型。由上面所说,RBM是一种概率图模型,既然引入了概率,那么就可以通过采样技术来求解,在CD( contrastive diⅳ vergence)算法中采栟部分扮演着模拟求解梯度的角色。能量模型需要定义一个能量函数,RBM能量函数如下:()=∑∑∑∑这个式子的含义非常明显,每个节点有一个能量, hidden和wsbe之间的连接也有个能量,如何求解呢?如果ⅵ isible有组取值(1,0,1),对应的 hidden取值是(1,0,1,01,0,分别带入上面的公式,最后得到的结果就是能量,这里要注意到()里面的地位是相等的,不存在先后顺序,这是一个结构整体的能量值为什么要搞能量函数?前面指出未知分布不好求解但是可以通过能量函数米表示,那么能量函数的概率模型很大程度上可以得到未知分布的概率模型,这样大致就知道了未知分布的分布既然知道了—个RBM网络 hidden和 visible整个框架的能量函数,那么可以定义这个能量函数(能量)出现的概率,很显然这个能量的出现与 hidden和sbe的每个节点的取值都有关系,那么这个能量出现的概率就是和的联合概率密度里可以将能量函数理解成小球在碗里面具体的一个位置所具有的一个能量,那么联合概率密度就是能量也就是这个状态出现的概率)这个概率不是随便定义的,是有统计热力学解释的定义了联合概率密度,那么我就可以得到一个分布,现在再回来前面的知识,可以得到1最初是未知分布的数据,求解参数,完全无从下手2.将未知分布的数据与能量函数联合在起3定义这个能量函数出现的概率,其实也就是对应着未知分布数据一个函数出现的概率4我们可以得到能量函数的概率分布,这个分布就叫 Gibbs分布,这里不是一个标准的Gibs分布,而是一个特殊的 Gibbs分布,这个分布有一组参数,其实就是能量函数中的那儿个前面知道∫下面可以得到边缘概率密度和()∑∑也可以得到条件概率密度和∑∑从概率到极大似然上面的内容已经得到了Gb分布的各种概率密度函数,现在回到最初的目的,即求解让RBM网络表示的Gibs分布最大可能的拟合输入数据,或者换一种说法,求解的目标可以认为是让RBM网终表示的 Gibbs分布与输入样本的分布尽可能的接近现在的小问题是“最大可能的拟合输入数据"这句话怎么定义:假设表小样本空间,即里面含有很多个不同的,是输入样本的分布,()表示训练样本的概率,再假设是RBM网络表示的 Gibbs分布的的边缘分布,即可以理解成每种不同情况的都对应着一个概率。输入样本的集合定义为,那么样木真实的分布和RBM网络表示的边缘分布的KL距离就是2者之间的差异性(KL的详细讲解见附录),样本的真实分布(什么是样本的分布?见附录)与RBM网络表示的边缘分布的KL距离如下所示()20)-0=2()0)2()(如果输入样本表小的分布与RBM表小的Gbbs分布完全符合,这个KL距离就是0,否则是一个大于0的数山附录对熵的定义(在KL讲解里面)可知,上面)的第一项是输入样本的熵,这个是·个固定的数,输入样本固定了,熵就固定了,第二项明显无法直接求。由KL的性质可知,KL是一定大于0的,那么当第二项最大的时候,整个KL最小,我们本来的日的也是求KL最小。注意到第二项-∑()()中的()当样木固定的时候,是固定的而函数是递增的,即当∑()最大即可。在实际应用中,我们采用的是∑(),其中是样本的个数。这里的-∑()就是极大似然估计(这里大家可以∈代替了∈Ω,这是为什么呢?拿一个2维向量来说,(1,0),(1,1),(0,0)这3个的概率和是1,(0,1)出现的概率是0,那么样本空间是(1,0),(1,1),(0,0),但是我们采样的时候只采样到∫(1,0),(1,1),那么这次的输入样本的集合就是(1,0)(1,1))。结论就是求解输入样本的极大似然,就能让RBM网络表示的 Gibbs分布和样本本身表示的分布最接近。求解极大似然这里对似然的定义参考我的另一篇笔记EM算法这个样本从所有样本被取到的概率为0)=∏(b)b∈6()=(0)=∑(0)c⊙在RBM模型中,上面的似然函数写成(上面的式子中是样本,也可以理解为一个isbe节点):(O)-(0)-l()O∈()=∏(b)=∑()0∈对这个函数进行求导02(066∈⊙66我们由能量模型应该也知道了()的概率∑,那么下面开始求导∑06∑c8上面这个式子一定要注意一个问题,即第一项的和第二项的00是不一样的。第一项的是固定的里面的取多少它就取多少而第二项里面的是所有可能的,其实这个细节也可以从∑和∑中发现出来()注意到()和,上面的式子可以写成∑0606∑()∑x((2m0)2x(2m0606第一项和第二项分别是和的期望,这2个是不同的,第一060个求在下的期望,第二项求的是这个函数在概率()下的期望。将O和()由最前面的东西代换,可得到以下3个式了∑∑∑∑∑∑()∑∑()∑()∑∑(这里用到了一个技巧∑这里∑是指hden中第个向量为0,其他分量的值任取的一组向量。?岁∑()∑()∑()∑()∑∑∑∑)-∑()-∑∑()()-∑()∑()∑∑=∑()-∑∑()()=∑()-∑()∑())-∑()(可以发现和的第二项都含有∑,这意味着要对进行遍历,这明显不可能,但是算梯度需要怎么小呢?这时就可以通过 markov采样来算,只要抽取一堆样本,这些样本符合RBM网络表示的Gibs分布,就可以把上面3个偏导数算出来。具体的处理过程是对于每个训练样本,都用某种抽样方法抽取一个对应的,这个是符合RBM网络所表示的Gbs分布的。那么对于整个训练集{米说,就得到一组对应的符合RBM网络表示的Gibs分布的样本集{然后拿这个样本去估算第二项∑,那么梯度就可以用以下的式了来近似了:()(=)-∑()(=)-∑()上面的式子中表小第个训练样木,是所对应的符合RBM网络表小的Gs分布的样本,在式子中用表示。梯度求出来了,就可以求解了,最后不断迭代就可以得到
    2020-12-11下载
    积分:1
  • STM32的DS18B20数字温度传感器序,亲测可用
    STM32的DS18B20数字温度传感器程序,亲测可用。内有详细注释和说明文档,很好的参考资料。
    2020-11-28下载
    积分:1
  • μC/OS-II操作系统在STM32上的移植
    详细介绍μC/OS-II操作系统在STM32上的移植过程,引导初学者完成基本的操作系统架构的创建。建立工程使用(我使用版)在目录下建立工程,工程名为。选一个系列的芯片,哪一个都无所谓(我选的是因为我的板子就是用这个芯片),接下来要注意的是当弹出是否拷贝启动代码到工程文件夹时要选,因为标准外设厍里已经有启动代码了。将里的顶层日录名改为,并将第一个名改为把日录下所有和文件加载到工程里的在下建立一个目录用来放置系统初始化代码。把拷贝到文件夹拷贝到文件夹中。是中断服务程序文件。是标准外设库的配置文件,对于工程中不需要的外设,可以注释掉里面的包含的头文件。这里我建议先仅留下,用到什么再打开什么,这样编译起来快一点,当然也可都留着。使用标准外设库事实上标准外设库的使用在中的节中已有说明,下面我把其中的步骤罗列一下根据所选芯片,把中的启动代码加到工程中,这一步在上面凵经做过了。在的行,根据所选芯片类型,去掉相应注释,这里我去掉行的注释(大谷量型片)去掉行的注释,启用标准外设库。在的行,根据所选芯片主频,去掉相应注释,默认注释已去掉,如果你的芯片主频是,就不用做修改了,这里我的芯片是注释去掉注释跑马灯程序现在可以使用标准外设库了,下面以一个简单的跑马灯程序说明。在日录下建立作为系统入口在下建立一个日录用来放置板级支持代码,建立代码如下:在中建立组,并将各种代码加入。在工程的选项卡的中添加选项卡中选选项卡中选选项卡选打钩,这一步大家可以根据自己手上的仿真器做不同选择。编译运行。在上的移植详解虽然目前网上凵经有不少关于在上的移植版本,包括也有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所帮助。我的移植基本上是从零开始的。首先想要做好移植,有两方面的內容是必须要了解。日标芯片内核原理虽然我们移植的目标芯片是,但操作系统的移植基木是针对内核(以下简称)而言的,所以我们只需了解内核就好了。片就是内核加上各种各样的外设。怎么才能了解呢?看一本书权威指南(宋岩译,网上多的很)就好了,很多同学可能想,看完这本书移植的新鲜劲都没了,因此我把该书和移植有关的章节都刎了出来,并对其中的重点内容进行介绍,我数了数相关章节还不到页,就这点内容,总要看了吧。相关章节如下概览主要了解的概貌。刚开始看时不用追求仝部理解,后面会有详细介绍,很多内容多看几遍就明白。其中指令集,只要了解,只使用就了基础寄存器组通用寄存器堆栈寄存器有两个,和同时只能看见一个引用时,引用的是正在使用的那个可用于异常服务和应用程序只能用于应用程序系统复位后,用的堆栈指针是连接寄存器,又名,存储返冋地址程序计数寄存器,又名特殊功能寄存器程序状态字寄存器组(中断屏蔽寄存器组(控制寄存器(程序状态字寄存器组()分为应用程序中断号执行每个都是位,由于这个寄存器有效位是错开的,因此可以组合访问。中断屏蔽寄存器组(),这三个寄存器用于控制异常的使能和除能。控制寄存器()它有两个作用:定义特权级别选择当前使用哪个堆栈指针操作模式和特权极别操作模式处理者模式和线程模式异常处理:处理者模式主程序:线程模式不区分特权级和用户级,程序始终工作在特权级这两个堆栈指针的切换是全自动的,就在出入异常服务例程时由硬件处理。没什么好讲的,需要看。复位序列初值初值复位向量异常异常类型分为系统异常编号和外部中断大于优先级支持个固定的高优先级和多达级的可编程优先级。在中,每个中断都有一个优先级配置寄存器(个,用来配置该中断的优先级。但该寄冇器并不是每个位都被使用,不同制造商生产的芯片不相同,譬如使用位,也就是说支持个可编程优先级(参考注意该寄存器是以对齐的,因此每个中断的优先级配置寄存器位有效,位无效。对于优先级,又分为抢占优先级和亚优先级,中的应用程序中断及复位掉制寄存器的优先级分组描述了如何划分抢占优先级和亚优先级什么意思?以为例,优先级配置寄存器不是位有效吗,如果中的优先级分组值为,则优先级配置寄冇器的位确定抢占优先级,位确定亚优先级。此时所有中断有个抢占优先级,每个抢占优先级有个亚优先级。抢占优先级高的中断可以抢占抢占优先级低的中断,即抢占优先级决定了中断是否可以嵌套相同抢占优先级的中断不能嵌套,但当抢占优宄级相同的异常有不止一个到来时,就优先响应亚优先级最高的异常。参考附求表表中断优先级寄存器阵列共系统异常优先级寄冇器共个优先级相同,看中断号,中断号小的优先。向量表初始在处,可以通过向量表偏移量寄存器(地址:)更改,般无需更收。中断输入及挂起行为需要看。异常可不看和主要用在分特权级和用户级的操作系统,不区分特权级和用户级可以不管这个东西。这里说点题外话,一开始我很奇怪为什么会提供这种中断,因为这种中断一般都是用在大型的操作系统上,如系统上,可又不提供,应该是无法移植系统。后来我才知道是针对没有的嵌入式系统而设计的不过还是很怀疑有人会在像这种芯片上用中断主要做上下文切换,也就是任务切换,是移植过程中最重要的中断。主要有两点中断是手工往的悬起寄存器中写产生的(由写)中断优先级必须设为最低在讲移植代码时会介绍具体是如何做的。对于的部分应认真研读一下。与中断控制负责芯片的中断管理,它和内核紧密相关。如果对于中断配置不是很了解,可以看看节讲述了定时器,需要看。中断的具体行为中断/异常的响应序列当开始响应一个中断时以及入栈取向量选择堆栈指针,更新堆栈指针,更新连接寄存器,更新程序计数器对移植米说,需要注意异常返同在中,进入中断时,寄存器的值会被自动更新。节对史新后的值进行说明。这里统称。返回时通过把往里写来识别返回动作的。因为是一个特殊值,所以对于,汇编语言就不需要类似这种指令,而用语言开发时,不需要特殊编译器命令指示个函数为中断服务程序。实际上,中断服务程序如果是代码编写,汇编成汇编代码,函数结尾一般是嵌套的中断只要注意:中断嵌套不能过深即可。和这两节说明对中断的响应能力大大提高了,主要是硬件机制的改进。但对移植来说,并不需要关注异常返回值对不同状态进入中断时,寄存器的值进行说明,需要看。这里有一点需要注意,该点在讲移植代码时再介绍利对移植来说,并不需要关注。的低层编程这·章仅需关注节,因为对移植来说汇编与的接口是必须面对的。汇编与的接口有两点需要知道当主调函数需要传递参数(实参)时,它们使用。其中传递第一个,传递第个在返冋时,把返冋值写到中在函数中,用汇编写代码时,可以随便使用,而使用则必须先以上内容和移植多少都有些关系,刚开始看,可能不太明白,多看几遍就好了。
    2020-12-07下载
    积分:1
  • 智慧农业顶层设计与解决方案
    近年来,智慧农业发展突飞猛进,众多技术、资金、人才的流入,为农业现代化发展提供了广阔的发展空间与平台机遇。在刚举办的“互联网+现代农业”暨智慧农业高峰论坛上,就当前智慧农业、互联网+现代农业的发展现状,主办方托普云农副总经理朱旭华接受了采访,立足智慧农业的发展生态圈,呼吁多方力量携手共同推进互联网+现代农业的发展。“智慧农业作为一个非常巨大的市场,不可能是一家企业能做的完的、做的好的,要想持续健康发展,还需要更多的合作共赢、互帮互助。”在朱旭华看来,这种合作并不是简单的你依附我,我依附你,而是产生倍增效应,1+1一定要大于2。一号文件代表政府的引导和市场的方向,尤其是农业供给侧改革这个概念。
    2020-12-04下载
    积分:1
  • STM8 模拟串口 IO口模拟
    STM8 模拟串口 IO口模拟,实现接收数据返回测试
    2020-12-06下载
    积分:1
  • matlab肌电处理序,数据和滤波在两个文本文件中,需要滤波的话改下文本文件中的原信号
    matlab肌电处理程序+滤波器+原始次数据+仿真图像+中值频率+平均功率频率
    2021-05-06下载
    积分:1
  • MDC-Max机床监控与数据采集系统
    MDC-Max机床监控与数据采集系统
    2020-12-04下载
    积分:1
  • ANSYS命令流中英对照、ANSYS算例、Ansys中文帮助、ansys单元手册、ANSYS单元手册摘要
    ANSYS命令流中英对照、ANSYS算例、Ansys中文帮助、ansys单元手册、ANSYS单元手册摘要
    2020-07-04下载
    积分:1
  • 696518资源总数
  • 106215会员总数
  • 5今日下载