登录
首页 » Others » A*算法 A star 算法(matlab)

A*算法 A star 算法(matlab)

于 2020-12-07 发布
0 220
下载积分: 1 下载次数: 4

代码说明:

A*算法 A star 算法(matlab)版本,可以直接使用,包含路径优化

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

发表评论

0 个回复

  • 基于FPGA的数字通信实现多路数据时分复用和解复用系统系统
    本文档介绍了一种基于FPGA的数字通信多路时分复用和解复用系统,使用硬件描述语言很好的实现了系统功能。第2页共63页AbstractThe system is designed for data multiplexed and de-multiplexed. It is based on TDMThe systern includes the transmitter and the receiver. They are implemented mainly by FPGaThere are three inputs in the transmission system: data from A/converter, DIPI and DIP2The three channels are out serially and time-divisional under the FPgas control. The FPGain the transmitter is divided into four modules which are frequency divider, Barker generator,data multiplexer and voltage display. voltage display is used for processing the data convertedy ADC and sending it to the LED. The serial data are serial shifted into the FPGa in thereceiver. Bit-synchronize and frame-synchronize are both picked up, and then de-multiplexThe FPGA in the receiver is divided into three modules which are digital PLL, datade-multiplexer and voltage display. The transmitter will multiplex four ways of 8-bit paralleldata. The first way is adC data, the second and the third way is generated by dip-key. Theother is Barker code used for frame synchronizing. The receiver will maintain the bitsynchronizing, recognize one frame and de-multiplex three ways data. The essay will discussthe design progress, the programming idea and some problems. Works have to be done by thedesigner are: Specify all system components, Make system specification, Draw systemschematics, Write RTL code according the schematics, Synthesis and simulate the rtl codeDesign the PCBS, Validate the functions of the FPGA on-line.Keywords: DPLL; Frame-synchronize; TDM; Verilog HDl; Serial A/D convert;第3页共63页目录引1数字复接系统简介52数字复接方法及方式2.1数字复接的方法…中中·2.2数字复接的方式………3系统原理和各模块设计………………………63.1系统原理及框图…3.2发端系统设计…3.3收端系统设计…···中··中··中····中·,中………93.4FPGA的设计流程“····“:*·············=·······*·*··3.4.1设计输入···“··++··+··*+··+··+++*···++++·*·+·++34.2设计综合……………………123.4.3仿真验证123.4.4设计实现……123.4.5时序分析123.5发端FPGA设计………………………133.5.1分频模块…翻……143.5.2复接模块……………………………………153.5.3显示模块……………………163.5.4编译与仿伤真…………………183.6收端FPGA设计……………………………………………………193.6.1数字锁相模块…………···→····;··中·······中···········→··············203.6.2解复用模块…··++·*···中+“··“++………………………213.6.3显示模块………………………………………………223.6.4编译与仿真………………………………223.7数字锁相环原理及设计……………………………2338串行AD工作原理………………2539并行D/A的工作原理…263.10 Altera flex10K10介绍………………………………………………………………274系统调试…………………………………………………325 Quartus||软件及 Ver log语言简介…………325.10 artus I软件简介……………………………………………………325.2 Verilog语言简介……………………………………………………………34第4页共63页6结论····“4··+·→··*·*··“······+“·+····“······“··+·+“+·…“*·.·+··+“·+·+·*··…………35谢辞36参考文献·a···.········和··::··中.事…37附录…38docn豆丁www.oocin.com第5页共63页引言数字复接、分接技术发展到80年代已经趋于成熟,形成了完善的EI、T系列。它使得多路低速信号可以在髙速信道中传输,同时提髙信道的利用率。PLD/FPGA是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。可以毫不夸张的讲,PID/FPGA能完成任何数字器件的功能,上至高性能CP,下至简单的74电路,都可以用PLD/FPGA来实现。PLD/FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD/FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD/FGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。,PLD/FGA的这些优点使得PLD/FPGA技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言的进步。本设计主要利用了FPGA及 Verilog hdl语言来设计数字复、接分接系统。数字复接系统简介在数字通信网中,为了扩大传输容量和提高传输效率常常需要把若干个低速数字信号合并成为一个高速数字信号,然后再通过高速信道传输,这就是所谓的数字复接技术。数字复接是一种已经非常成熟的技术,广泛地应用于无线通信、光通信和微波接力通信。图1-1数字复接系统方框饜图1-1所示,数字复接系统包括数字复接器( digital multiplexer)和数字分接时钟「定时同定时步复分日恢接复器( digital de- multiplexer)两部分。数字复接器是把两个或多个低速的支路数字信号按照时分复用方式合并成为一路高速的合路数字信号的设备;数字分接器是把合路数字信号分解为原来的支路数字信号的设备。数字复接器是由定时、调整和复接单元所组成;数字分接器是由同步、定时、分接和恢复单元所组成。定时单元给设备提供统一的基准时间信号,同步单元给分接器提供与复接器基准时间同步的时间信号,调整单元负责同步输入的各支路信号。恢复单元与调整单元相对,负贵把分接出来的各支路信号复原第6页共63页2数字复接方法及方式2.1数字复接的方法数字复接的方法主要有按位复接、按字复接和按帧复接三种(1)按位复接按位复接的方法是每次只复接每个支路的·位码,复接后,码序列中的第·位表示第一路中的第一位码;第二位表示第二路的第一位码;以此类推,第N位表示第N路的第一位码。这N位码形成第一时隙。同样,第二时隙是有每路的第二位码复接而成。这种复接方法的特点是设备简单、只需小容量存储,易于实现(2)按字复接按字复接就是每次复接支路的一个字或字节。复接后的码顺序是每个封隙为一路n位码。它的特点是利于多路合成和处理,但要求有较大的存储容量,使得电路较为复杂(3)按帧复接这种方法是每次复接一个之路的一帧数码,它的特点是复接时不破坏原来的帧结构,有利于交换,但要求有更大的存储容量。22数字复接的方式按照复接时各低速信号的情况,复接方式可分为同步复接、异步复接与准同步复接。(1)同步复接同步复接被复接的各个支路信号在时间上是完全同步的。在实际应用中,由于各个支路信号到达的时间不一样,造成支路间的码位相位不同,使得信息不能被正确复接。因此需要对支路进行相位调整。在复接时,要插入帧同步码及其它的业务码。(2)异步复接将没有统一标称频率的不同支路数字信号进行复接的方式成为异步复接。在数字通信中广泛采用这种复接方式。(3)准同步复接准同步复接是指参与复接的各个低速信号使用各自的时钟,但各支路的时钟需要在定的容差范围内。准同步复接实际上是在同步复接的基础上增加了码速调整功能3系统原理和各模块设计3.1系统原理及框图首先介绍系统的工作过程。此数字通信系统分为发端和收端两部分。在发端,FPGA对A①D变换数据、DIP1数据和DIP2数据插入帧同步码,形成一帧,对此帧按位时分复用并串行发送出去。同时,A/D输入端的模拟电压值将通过FPGA的处理,显示在七段数码管上。在收端,FPGA首先从串行码中提取位时钟,然后识别帧同步。当识别出帧同步后,FPGA解复用三路并行码,分别将这三路并行码送到后面的D/A变换器、LED1和LED2同时,第一路并行码通过FGA的处理,显示到七段数码管上。传输帧结构如图3-1所示:第7页共63页帧同步第一路第二路|第三路图3-1传输帧结构总系统框图如图3-2所示:七段数码管七段数码管A/DD/A信道DI P1立FPGA收端FPGALED 1DIP2LED2图3-2总系统框图3.2发端系统设计图3-3是发端系统方框图七数码簣豆丁A/D信道DP1愛端FPGADIP2图3-3发端系统方框图如图3-3所示,发端有三路信号:A/D变换信号、拨码开关1和拨码开关2产生的8位信码。AD变换的信码经过FPGA处理显示到七段译码管上,它代表变换前模拟信号的电压值。由于三路信号都是静态信号,因此输入不用进行码速变挨和码速调轄。输出信号的码速率为256Kbps。发端电路在做PCB时需要单层布线,因此将发端系统板倣成三块小板,分为三个图,分别是发端主图、AD变换图和LED显示图。发端主图如34所示,以发端FPGA为核心,其它功能块逐一实现。为了FGA运行的稳定,要在其周围加入6个滤波电容,电容值为0.1uF。拨码开关与排阻共同构成八位信码,分别接到FPGA的8个I/0端口。复位电路是系统正常运行的必要部分,它由按键开关,电解电容和电阻构成。主图板与AD变换板、LED显示板之间用插针和电线连接。这些插针和电线将为A/D变换板和LED显示第8页共63页板提供电源和通信路径。此外,FPGA还需要配置电路。配置电路在开杌时将配置文件载入到FPGA中,FPGA才可以工作。配置电路由上拉电阻和插座组成,其中,五个端口接到FGA五个配置引脚,他们是:DATA0、 sTATuS、 nCONFIG、 CONF DONE与DCLK。3图AA399999温899998旨若起Ed kDYnizisr含已四=图3-4发端主图原理图A/D变换图如图35所示,要说明的是,这里没有采用并行A/D,而是采用了串行A/D,这样可以节省FPGA的管脚。我使用的ADC型号是TC549。TLC549转换输入端模拟量为数字量,为FPGA提供串行数据。这块板的电源由主图板提供,电源端接到主图板的电源端。TLC549需要一片0.1uF的陶瓷电容为芯片的电源端滤波。在做PCB时,这片电容应靠近芯片的VCC与GND。TLC549的模拟输入量有电位器分压和外部输入,通过单刀双掷开关选择。外部输入的模拟量可以是信号源输出,音频输入等。AA「区YcAy图3-5AD变换图第9页共63页LED显示图如图3-6所示,我用五位LED显示模拟电压值。它可以提供0.0001的显示精度。这五位LED由一位独立LED和一个四LED组组成。这五个LED采用扫描方式显示。扫描显示是LED显示的常用方法。通过五个PNP管控制五个LED分时发光,时隙为32ms。在此时隙下,人眼不会察觉到LED分别点亮,而是同时在亮。此法不仅节省七段译码驱动芯片和FPGA的管脚,而且节约电能。小数点的位置固定不变:因此只需将独立LED的小数点设计为常亮。LED数码管采用共阳极,公共端接PP发射极,PNP集电极接电源,PNP的导通由FPGA控制。七段译码芯片采用DM74LS47,它是一片驱动共阳极LED数码管的芯片。同样,在这片芯片的VCC与GND之间加入0.1uF陶瓷滤波电容和essOyNC 5v In图3-6LED显示图3.3收端系统设计收端系统框图如图3-7所示七段数码管D/A信道收端FPGAED1LED2图3-7收端系统框图
    2020-12-03下载
    积分:1
  • 微电网多目标容量优化设计nsga2算法的matlab实现
    考虑自平衡能力的并网型微电网多目标容量优化设计nsga2算法matlab实现
    2020-12-04下载
    积分:1
  • 强大的完善的 活动抽奖系统(适合各单位搞的活动用)
    创意点一: 实现了一个根据人数自动变化抽奖屏幕的抽奖圆盘,抽奖通过圆盘动态显示,能够让台下观众看清楚转盘的情况,增加刺激性以及参与度。创意点二: 不仅实现转盘的动态显示,而且还有一个动态显示转盘转到什么名单的地方,这样做的目的是追踪圆盘的轨迹,且增加了系统的刺激性。创意点三: 这个抽奖系统,以及抽奖形式(据本人了解),在生活中常有出现,但是并没有人尝试开发相应的抽奖系统,故说我们实现了创意,发掘了生活中的创意点以及充分体现了我们的激情以及创造性。创意点四: 为了能够让这个系统能够让不同的单位显示,我们故意添加了背景,从而可以让不同单位在使用本系统的时候添加属于自己的标志。
    2020-12-02下载
    积分:1
  • 本科生毕业设计 基于jsp的小型旅游网站
    这是大学本科生毕业设计作品 课题题目为基于JSP的小型旅游网站 该网站是以一旅行社为基准 面向网络中的所有客户 为其提供服务的小型旅游网站 已完成了网站的所有基础内容 该资源内有源代码 毕业设计论文 在论文中有详细的数据库建表过程 只需稍加修改即可使用 为了查重安全 也可选择其中有用的内容 该作品在大学中的毕业设计成绩为良 希望这个作品可以为您提供有用的帮助 也可以对其进行改进 谢谢!
    2020-11-29下载
    积分:1
  • c# 悬浮窗口 带提示框提示 可拖动 类似于迅雷 (源代码)
    c# 悬浮窗口 带提示框提示 可拖动 类似于迅雷
    2020-12-04下载
    积分:1
  • FreeRTOS中文入门手册
    FreeRTOS中文入门手册方便初学者入门学习,讲的很好,很值得学习第一章任务管理Designed For Micr。 contr。11exs;概览附录中提供了使用源代码的实用信息小型多任务嵌入式系统简介不同的多任务系统有不同的侧重点。以工作站和桌面电脑为例:·早期的处理器非常昂贵,所以那时的多仟务用于实现在单处理器上支持多用户。这类系统中的调度算法侧重于让每个用户公平共享处理器时间。随着处理器功能越来越强大,价格却更偏宜,所以每个用户都可以独占一个或多个处理器。这类系统的调度算法则设计为计用户可以同时运行多个应用程序,而计算机也不会显得反应迟钝。例如某个用户可能同时运行了一个字处理程序,一个电子表格,一个邮件客户端和一个浏览器,并且期望每个应用程序任何时候都能对输入有足够快的响应时间。桌面电脑的输入处珒可以归类为软实时。为了保证用户的最佳体验,计算机对每个输入的响应应当限定在一个恰当的时间范围——但是如果响应时间超出了限定范闱,并不会让人觉得这合电脑无法使用。比如说,键盘操作必须在键按下后的某个时间内作出明显的提示。但如果按键提示超出了这个时间,会使得这个系统看起来响应人慢,而不致于说这台电脑不能使用。仅仅从单处理器运行多线程这一点来说,实时嵌入式系统中的多任务与桌面电脑的多任务从概念上来讲是相似的。但实时嵌入式系统的侧重点却不同于桌面电脑特别是当嵌入式系统期望提供硬实时行为的时候。硬实时功能必须在给定的时间限制之内完成——如果无法做到即意味着整个系统的绝对失败。汽车的安全气囊触发机制就是一个硬实吋功能的例子。安全气囊在撞击发生后给定时间限制内必须弹出。如果响应时间超出了这个时间限制,会使得驾驶员受到伤害,而这原本是可以避免的大多数嵌入式系统不仅能满足硬实时要求,也能满足软实时要求。Designed For Micr。 contr。11exs;术语说明在屮,每个执行线程都被称为任务。在嵌入式社区屮,对此并没有个公允的术语,但我更喜欢用任务而不是线程,因为从以前的经验米看,线程具有更多的特定含义本章的目的是让读者充分了解:在应用程序中,如何为各仟务分配处理时间。●在任意给定时刻,如何选择任务投入运行。●任务优先级如何影响系统行为。●任务存在哪些状态。此外,还期望能够让读者解:●如何实现一个任务。●如何创建一个或多个任务的实例●如何使用任务参数。如何改变一个已创建任务的优先级●如何删除任务。●如何实现周期性处理。空闲任务何时运行,可以用来干什么本章所介绍的概念是理解如何使用的基础,也是理解基于的应用程序行为方式的基础——因此,本章也是这本书中最为详尽的一章Designed For Micr。 contr。11exs;任务函数任务是由语言数实现的。唯一特别的只是任务的函数原犁,其必须返回而且带有一个指针参数。其数原型参见程序清单。void ATaskFunction( void *pvParameters )程序清单任务函数原型每个任务都是在自己权限氾围内的一个小程序。其具有程序入口,通常会运行在一个死循环中,也不会退出。一个典型的任务结构如程序清单所示。仟务不允许以任何方式从实现函数中返回一一它们绝不能有条语句,也不能执行到函数末尾。如果一个任务不再需要,可以显式地将其删除。这也在程序清单展现个任务函数可以用来创建若干个任务—创建出的任务均是独立的执行实例,拥有属于自己的栈空间,以及属于自己的自动变量栈变量,即任务函数本身定义的变量v。 d ATaskFunction(v。1d* pArameters)/*可以像普通函数一样定义变量。用这个函数创延的每个任务实例都有一个属于自己的 vAria1b1 eExamp1e变量。但如果 varial1e3 xample被定义为 static,这一点则不成立-这种情况下只存在一个变量,所有的任务实例将会共享这个变量。int ivariableExample =0;/*仨务通常实现在一个死循环中。*/for(ii)/*完成任务功能的代码将放在这里。*//*如果任务的具体实现会跳出上面的死循环,则此任务必须在函数运行完之前朋除。传入NUL参数表示删除的是当前任务*vTaskDelete( NULL程序清单典型的任务函数结构Designed For Micr。 contr。11exs;顶层任务状态应用程序可以包含多个任务。如果运行应用程序的微控制器只有一个核那么在任意给定时间,实际上只会有一个仼务被执行。这就意味着一个任务可以有一个或两个状态,即运行状态和非运行状态。我们先考虑这种最简单的模型——但请牢记这其实是过于简单,我们硝后将会看到非运行状态实际上又可划分为若千个子状态。当某个任务处于运行态时,处理器就正在执行它的代码。当一个任务处于非运行态时,该任务进行休眠,它的所有状态都被妥善保存,以便在下一次调试器决定让它进入运行态时可以恢复执行。当任务恢复执行时,其将精确地从离开运行态时正准备执行的那一条指令开始执行。A tasks that areOnly one tasknot currentcan be in theRunning are in theRunning state atNot Running Stateany one timeNot RunningRunning图顶层任务状态及状态转移任务从非运行态转移到运行态被称为切换入或切入或交换入相反,任务从运行态转移到非运行态被称为切换出或切出或交换出的调度器是能让任务切入切出的唯一实体。Designed For Micr。 contr。11exs;创建任务函数创建仟务使用的函数这可能是所有数中最复杂的函数,但不幸的是这也是我们第一个遇到的函数。但我们必须首先掌控任务因为它们是多任务系统中最基本的组件。本书中的所有示例程序都会用到,所以会有人量的例子可以参考。附录:描述川到的数据类型和命名约定。portBASE TYPE xTaskCreate( paTASK CODE pvTaskCodeconst signed port CHAR conist pcNameunsigned portSHORT usstackDepthunsigned portEASE TYPE uxPriorityxTaskHandle *pxCreatedTask程序清单函数原型表参数与返回值参数名描述任务只是永不退出的函数,实现常通常是个死循环。参数只一个指向任务的实现函数的指针效果上仅仅是函数名具有描述性的任务名。这个参数不会被使用。其只是单纯地用于辅助调试。识别一个具有可读性的名字总是比通过句柄来识别容易得多。应用程序可以通讨定义常量来定义任务名的最大长度—一包括结朿符。如果传入的字符串长度超过了这个最大值,字符串将会自动被截断。Designed For Micr。 contr。11exs;当任务创建时,内核会分为每个任务分配属于任务自己的唯一状态。值用于告诉内核为它分配多人的栈空间。这个值指定的是栈空间可以保存多少个字,而不是多少个字节比如说,如果是位宽的栈空间,传入的值为则将会分配字节的栈空间。栈深度乘以栈宽度的绩果万不能超过~个类型变量所能表达的最人值。应川程序通过定义常量来决定空闲任条任用的栈空间大小。在为微控制器架构提供的应用程序中,赋予此常量的值是对所有任务的最小建议值如果你的任务会使用大量栈空间,那么你应当赋予一个更大的值。没有任何简单的方法可以决定一个任务到底需要多大的栈空间。计算出来虽然是可能的,但人多数用户会先简单地赋予一个自认为合理的值,然后利用提供的特性来确证分配的空间既不欠缺也不浪费。第六章包括了一些信息,可以知道如何去查询任务使用了多少栈空问。仟务函数接受一个指向的指钅的值即是传递到任务中的值。这篇文档中的一些范例程序将会示范这个参数可以如何使用指定任务执行的优先级。优先级的取值范围可以从最低优先级到最高优先级是一个由用户定义的常量。优生级号并没有上限除了受限于采用的数据类型和系统的有效内存空间,但最妊使用实际需要的最小数值以避免内在浪费。如果的值超过了,将会导致实际赋给任务的优先级被自动封顶到最大合法值。Designed For Micr。 contr。11exs;用于传出任务的句柄。这个句枢将在调川中对该创建出来的任务进行引用,比如改变任务优先级,或者删除仟务。如果应用程序中不会用到这个任务的包柄,则川以被设为返回值有两个可能的返回值:表明任务创建成功。由于内存堆空间不足,无法分配足够的空间来保存任务结构数据和任务栈,因此无法创建任务。第五章将提供更多有关内存管理方面的信息。例创建任务附录:包含一些关于示例程序生成工具的信息。本例演示了创建并启动两个任务的必要步骤。这两个任务只是周期性地打印输出守符串,采用原始的空循环方式来产生周期延迟。两者在创建时指定了相同的优先级,并且在实现上除输出的字符串外完全一样—程序清单4和程序清单5是这两个仟务对应的实现代码。Designed For Micr。 contr。11ers;
    2020-12-09下载
    积分:1
  • BP、RBF神经网络分类
    利用BP神经网络与RBF(径向基函数)网络对行人、自行车、卡车三类目标进行分类,比较两种网络的分类性能,包含三类目标的数据信息,完整的代码
    2020-12-10下载
    积分:1
  • qt5.3 实现直尺
    qt实现直尺,支持放大缩小,移动,旋转,画线等操作,源码直接编译运行即可。
    2020-12-09下载
    积分:1
  • 抠图matting源码及论文.zip
    【实例简介】本科毕业设计做的,压缩文件包括源码、matlab GUI界面、原图三分图背景图及写的毕业论文;利用基于学习的抠图方法得出图片的alpha图之后,可以将原图与背景图融合得到以假乱真的效果。
    2021-11-27 00:32:13下载
    积分:1
  • 弹塑性力学习.pdf
    较全面的弹塑性力学习题,包括了习题和习题详解两部分,涵盖了常见的多种弹塑力学题目,详细阐述了边界条件的应用,是学习此课程的重要参考用书
    2020-06-24下载
    积分:1
  • 696516资源总数
  • 106562会员总数
  • 4今日下载