当前位置:首页 > MATLAB
  • 西班牙天然气公司使用 MATLAB 对电力市场进行预测

    21ic讯 MathWorks日前宣布,西班牙天然气公司(GAS NATURAL FENOSA )公司已使用 MATLAB 产品开发出可以帮助预测产能和需求并优化发电资产组合的模型。此外,该公司结合历史使用模式、天气预报、生产成本、监管规制以及其他各种运营因素,开发出一套优化和预测模型。西班牙天然气公司员工的生产率因此提高了一倍,能够更快地适应监管要求的变化,从而使得该公司的响应时间从几个月大幅缩减至几周。 西班牙天然气公司的工程师们使用 MATLAB 开发了一套用于分析可用数据、预测结果和优化发电计划的核心模型。每个 MATLAB 模型均可访问中心数据库中的历史电力消耗记录和价格数据、天气预报以及各发电厂的参数。在指定的一组约束条件(包括碳排放量上限和产能上限)下,采用 Optimization Toolbox 来最大限度地降低多家电厂的生产成本。工程师们通过  Statistics Toolbox 开发和评估价格仿真情景。 利用 MATLAB Compiler,该团队根据各个模型创建了独立的程序,这些程序昼夜不间断自动运行,方便了开发人员管理模型的更新以及各种最终用户对这些模型的访问,从而改进了更新管理和模型的访问控制。该团队还使用 Simulink 对 西班牙天然气公司基础设施中的发电机的行为进行建模。 伊比利亚地区电力市场技术部门主管 Isaac Pérez 说:“电力市场瞬息万变,所以我们需要了解如何才能及时响应监管标准或电力行业结构的变化,比如说可再生能源的产量增长。我们曾尝试使用无开发和自定义功能的商业软件包,但是根本无法应对我们需要解决的种种问题。在我们遇到的情况中,封闭式系统不太管用。我们需要的是开放的平台,这样我们才能开发自己的算法并进行计算。” MathWorks 西班牙/葡萄牙区域总经理 Juan Nasarre 说:“在西班牙,像 西班牙天然气公司 这样的具有超过 15,000 兆瓦发电能力且包括多种发电技术资产组合的公司,需要能够准确预测会影响其运营所在地各个市场的各种变数。MathWorks 工具有助于西班牙天然气公司 发现更好的商机,降低发电成本,从而提高销售利润。”   图注:西班牙天然气公司的风电场  

    时间:2011-05-11 关键词: matlab 天然气 电力市场

  • 上海工程技术大学在全院范围实施MATLAB和SIMULINK

    21ic讯 MathWorks 日前宣布,上海工程技术大学 (SUES) 为其汽车工程学院部署了 MATLAB、Simulink 和 30 多种其他 MathWorks 产品,用于分析、设计、仿真、代码生成和验证。该项举措将让全院师生和实验室人员都从中受益。这些产品因为在汽车行业的广泛应用而得到学校的青睐,计划被安装到汽车工程学院的所有教学场所内,包括新成立的 SUES-MathWorks 汽车仿真技术中心。 上海工程技术大学是入选中国国家教育部“卓越工程师教育培养计划”(PETOE) 的 61 所高校之一。PETOE 于 2010 年启动,旨在资助优秀工程类院校的学生参加为期多年的学习课程,并最终要有一年的时间在业内企业实地学习和实践。 上海工程技术大学汽车工程学院副院长王岩松说:“我们计划的一项重要内容是,为我们的师生提供汽车行业目前使用的最先进的工具。此外,通过应用 MathWorks 产品,课程的互动性和实践性都获得了改善,这非常有助于学生们理解汽车工程概念以及用于嵌入式开发的基于模型的设计。这样,结合我们的 PETOE 计划,我们的毕业生,这些中国未来的汽车设计工程师们,在进入职场时将拥有卓越的工作能力。” MathWorks 首席研究员 Jim Tung 说:“在教学中将理论与现实问题解决实践相结合,对于培养新一代的工程师至关重要。上海工程技术大学通过在课堂和实验室中配备全球汽车企业所广泛采用的软件工具和技术,是在为未来汽车设计领域培养和输送能够胜任的工程人才。”  

    时间:2011-07-01 关键词: matlab simulink 工程技术

  • 北京师范大学数学科学学院采用MATLAB

    21ic讯 MathWorks 日前宣布,北京师范大学(简称“北师大”)数学科学学院已将 MATLAB 产品系列应用于其教学课程。北师大最近被 Quacquarelli Symonds (QS) 世界大学排行榜提名为全球一流的教育类学府之一。北师大的数学科学学院是中国首个为全院师生提供 MATLAB 产品系列使用授权的数学类学院。 学院许可证涵盖了 MATLAB 和 20 种其他供并行计算、测试与测量、数据分析、信号和图像处理、符号数学以及优化所使用的产品。为了推动 MATLAB 在课堂上的应用,北师大的教职人员开发了一系列结合了 MATLAB 的课程,包括数学建模、小波分析和计算机图像处理等。比如在数学建模课程中,将向学生讲授如何使用MATLAB建立数学模型来解决实际问题。 北师大数学科学学院院长保继光说:“提供享誉国际的数学课程,是我们肩负的一项使命,作为这项使命的一部分,我们不断探索如何将最新的技术和行业最佳做法结合到我们的课程中。通过开设基于 MATLAB 的课程,并提供轻松访问 MATLAB 产品的授权,能够加强我们的学生解决实际问题的能力。我们的学生通过学习这些课程,能够在毕业时自如地运用这些工具。” MATLAB 的全学院应用也为北师大参加每年举办的全国数学挑战赛“全国大学生数学建模竞赛 (CUMCM)”提供了有力后盾。CUMCM 的举办宗旨是让学生通过数学建模的方式来解决问题和进行实验,激励学生学习数学的积极性。北师大是 CUMCM 组织委员会的成员之一,并且派出了 40 个参赛队伍来参加本次全国竞赛。北师大所有参赛队伍都使用 MATLAB 来加深对数学、数学建模以及业界通用的数学软件的实际了解。有两只参赛队伍在 2010 年的竞赛中获得了全国一等奖的好成绩。 MathWorks 研究员 Jim Tung 说道:“在当今的人才市场上,数学和工程领域的人才非常抢手,雇主们都在寻找懂得如何使用数学建模工具和方法来解决问题的求职者。北师大将 MATLAB 应用到教学课程中,并提供全学院访问授权,让全院师生都能使用 MATLAB 产品系列,为学生毕业求职增添了一个重要的砝码。”  

    时间:2011-09-22 关键词: 大学 matlab

  • MATLAB助力北京师范大学数学教学

    21ic讯 MathWorks 日前宣布,北京师范大学(简称“北师大”)数学科学学院已将 MATLAB 产品系列应用于其教学课程。北师大最近被 Quacquarelli Symonds (QS) 世界大学排行榜提名为全球一流的教育类学府之一。北师大的数学科学学院是中国首个为全院师生提供 MATLAB 产品系列使用授权的数学类学院。 学院许可证涵盖了 MATLAB 和 20 种其他供并行计算、测试与测量、数据分析、信号和图像处理、符号数学以及优化所使用的产品。为了推动 MATLAB 在课堂上的应用,北师大的教职人员开发了一系列结合了 MATLAB 的课程,包括数学建模、小波分析和计算机图像处理等。比如在数学建模课程中,将向学生讲授如何使用MATLAB建立数学模型来解决实际问题。 北师大数学科学学院院长保继光说:“提供享誉国际的数学课程,是我们肩负的一项使命,作为这项使命的一部分,我们不断探索如何将最新的技术和行业最佳做法结合到我们的课程中。通过开设基于 MATLAB 的课程,并提供轻松访问 MATLAB 产品的授权,能够加强我们的学生解决实际问题的能力。我们的学生通过学习这些课程,能够在毕业时自如地运用这些工具。” MATLAB 的全学院应用也为北师大参加每年举办的全国数学挑战赛“全国大学生数学建模竞赛 (CUMCM)”提供了有力后盾。CUMCM 的举办宗旨是让学生通过数学建模的方式来解决问题和进行实验,激励学生学习数学的积极性。北师大是 CUMCM 组织委员会的成员之一,并且派出了 40 个参赛队伍来参加本次全国竞赛。北师大所有参赛队伍都使用 MATLAB 来加深对数学、数学建模以及业界通用的数学软件的实际了解。有两只参赛队伍在 2010 年的竞赛中获得了全国一等奖的好成绩。 MathWorks 研究员 Jim Tung 说道:“在当今的人才市场上,数学和工程领域的人才非常抢手,雇主们都在寻找懂得如何使用数学建模工具和方法来解决问题的求职者。北师大将 MATLAB 应用到教学课程中,并提供全学院访问授权,让全院师生都能使用 MATLAB 产品系列,为学生毕业求职增添了一个重要的砝码。”  

    时间:2011-10-27 关键词: 助力 大学 matlab

  • DOCOMO采用MATLAB开发和验证移动通信系统

    21ic讯 MathWorks日前宣布,DOCOMO Beijing Communications Laboratories Co., Ltd.(DOCOMO Beijing Labs) 已经采用MATLAB来开发和验证新一代移动通信系统,如LTE-A中物理层的新技术和算法。相比以前使用C 和 C++作为唯一的开发工具,通过使用 MATLAB,DOCOMO Beijing Labs的研究人员可以更加快速地开发用于链路级和系统级仿真的算法。开发时间大约缩短为以前的50%。 为了验证使用 MATLAB实现的高级物理层算法,DOCOMO 的工程师们搭建了一个仿真平台,该平台使用 MATLAB、Signal Processing Toolbox和Communications System Toolbox等工具实现了一套完整的收发链路。接着,他们使用Parallel Computing Toolbox进行并行处理,并通过运行MATLAB Distributed Computing Server在不改变代码的情况下实现 32 核群集的并行处理,从而将完成大量仿真的时间从几周缩短为几小时。这样的提速使得仿真中用到的测试案例、参数设置和运行方案的数量比以前增加了四倍。更加全面的仿真验证使得 DOCOMO 的研究人员对其设计的可靠性增强了信心。 DOCOMO Beijing Labs 的主管研究工程师说:“使用 MATLAB,我们减少了编码时间, 从而能够将更多时间投入到创新移动通信算法的开发中。更重要的是,只要通过一些小 修改,我们就可以在我们的计算群集上加速算法的仿真,在更加广泛的运行条件和方案中充分评估和验证这些算法。” MathWorks 通信、电子和半导体行业营销经理 Arun Mulpur 说:“DOCOMO Beijing Labs 的工作直接影响到未来全球无线通信标准的开发。通过 MATLAB,这些研究人员和工程师能够探索新的构思和理论,开发算法和系统,并对他们的设计进行充分的功能验证。” DOCOMO Beijing Labs 运用 Monte Carlo 仿真来模拟由数十个基站和数以百计移动设备构成的无线通信系统,并且针对不同的方案和参数设置进行测试。研究人员需要执行众多仿真,而这些仿真的计算量都很大,在一台计算机上通常需要运行数周时间。Parallel Computing Toolbox 和 MATLAB Distributed Computing Server 的使用可以简化以下任务,即在群集中分配仿真并汇总结果,快速比较不同算法的性能,评估算法在不良信道条件下的可靠性以及评估整个网络和小区边缘的吞吐量。 DOCOMO Beijing Labs 最近演示了通过 MATLAB 开发和验证的两个设计的硬件实现:8x8 MIMO OFDM 系统和TD-LTE多用户MIMO系统 。

    时间:2012-01-16 关键词: docomo matlab 移动通信系统

  • 通俗易懂!单片机与Matlab的串口通信

    Matlab提供了对串口进行打开、关闭、以及串口参数设置等操作的一系列函数。利用这些函数可以选择串口号、 设置串口通信参数( 波特率、 数据位、停止位、 校验位等)、进行中断控制、流控制。从建立串口通信到结束串口通信的完整流程包括以下几个步骤: 1、创建串口对象,实现该功能的函数为: obj=serial(port,'PropertyName',PropertyValue,....); 例如:obj= serial(com3,'BaudRate'4800) 或使用以下默认设置,创建串口对象,在命令串口输入以下代码,第二句是查看其obj默认状态 obj = serial('com3'); obj 其中有两个重要设置项 BaudRate: 9600 % 波特率默认9600 Terminator: 'LF' %串口触发字符“换行符” 2、设置或者修改串口通信参数,实现该功能的函数为: set(obj,'PropertyName',PropertyValue,); 例如:set(obj,'BaudRate'4800); 这样,我们就发现串口的一些基本设置,可以在创建串口时设置,也可以创建串口之后再进行设置。 3、打开串口,实现该功能的函数为: fopen(obj); obj即为前边创建的串口对象。 其中,步骤2和3顺序是完全可以颠倒的。 4、从串口读写数据,在前面三个步骤正常完成后, 即可以从串口读数据或者向串口写数据, 也就是接 收或者发送数据。 这里我介绍几个常用函数,读函数:fread,fscanf;写函数:fwrite,fprintf. A = fread(obj,size); %从串口obj读取size字节长短的二进制数据,以数组形式存于A str = fscanf(obj); %从串口obj读取字符或字符串(ASCII码)形式数据,以字符数组形式存于str fwrite(obj,A); % 以二进制形式向obj写入数据A fprintf( obj,str); %以字符(ASCII码)形式向串口写数据str(字符或字符串) 5、关闭串口以及释放串口对象占用的存储空间。 fclose(obj); % 关闭串口 delete(obj); % 释放串口对象占用的内存空间, clear obj; % 释放串口对象在Matlab工作区中占用的存储空间 下一篇讲解着几个函数在实际的应用及不足。 实例1:在51单片机下载串口代码后,在matlab上执行如下代码: [plain] view plain copysr3 = serial('COM3'); % 使用默认设置创建串口sr3 fopen(sr3); %打开串口 fprintf(sr3,'xxx'); % 给串口写入数据 str = fscanf(sr3) %读取串口数据(无分号,可在Matlab工作区实时查看) fclose(sr3); %关闭串口 delete(sr3); clear sr3; 串口中断设置及中断处理函数 要实现自动收发数据,还需要定义串口中断处理函数以及触发串口中断的方式。定义触发串口中断的方式其目的是为了在串口检测到接收数据的时候,通知并启动串口数据接收函数进行数据接收操作; 在串口输出缓存为空的时候, 通知启动串口数据发送函数。 1、触发串口中断的方式。 Matlab检测到串口通信事件,从而触发串口中断。串口读写的事件包括: Bytes available,Outputempty。其中Bytes available事件有两种: 一种是接收到的字符数达到人工设定的数目时,则系统产生该事件; 另一种是当接收到指定字符时, 系统产生该事件。Output empty事件是在系统检测到输出缓存区为空时, 产生该事件。 2、中断方式设置 Bytes available 事件 set(obj,'BytesAvailableFcnMode','byte'); set(obj,'BytesAvailableFcnCount', 240); %串口检测到输入缓存中到达了240个字符数据时,触发串口中断。或 : set(obj,'BytesAvailableFcnMode','terminator'); set(obj,'terminator','H'); %当串口检测到字符H时,则触发串口中断 Output empty事件 输出缓存为空事件的产生。该事件由系统自动检测产生,不需要用户特别设置。该事件一般在输出缓存中的最后一个字符发送完毕后产生。用户可以定义该事件引起的串口中断处理函数。 3、串口中断处理函数 串口中断处理函数是重点中的重点,我查阅过一些文档,串口通信时接收数据一般分两种方式,一种是查询方式,一种是中断处理方式,了解处理器工作的人知道,使用查询方式需不断查询,耗用内存,效率十分低。所以实际通信过程中都使用中断方式,这就需要设置中断触发方式,中断处理函数。 很多参考文档都是使用matlab自带回调函数,再添加自己的代码,在最开始我也尝试这种方法,但发现实在太麻烦,还是选择自己写,其实很简单,只要注意几个细节问题,就能得到正常运行的函数。 串口中断处理函数定义: obj. BytesAvailableFcn=@ReceiveCallback; 再自行编写中断处理函数。 实例2:51单片机端依然使用串口代码,matlab执行如下函数:   以上代码均已实测,文章意在实现matlab与单片机之间的基本通信,串口函数简单,容易理解。

    时间:2017-06-14 关键词: matlab 单片机 串口通信

  • MATLAB中的SISOTOOL在数字式移相全桥中的应用

    摘要:开关电源技术的数字控制可实现先进的控制策略,简化系统的结构,缩小体积,提高系统性能。本文用MATLAB中的SISOTOOL实现了数字控制移相全桥的PI补偿,解决了移相全桥PI参数设计困难的问题,并用Simulink仿真验证了设计的结果。 叙词:SISOTOOL 移相全桥 数字控制 Abstract:The digital control of switching power supply technology can achieve advanced control strategy, simplify the system structure, reduce the volume and improve the performance . This paper realize the PI compensation of digital control Phase Shift Full Bridge, resolves its difficulty for designing PI paramenters using SISOTOOL of MATLAB and the simulation proves the result designed. Keyword:SISOTOOLPhase-Shifted-Full-Bridge digital control 1、引言    移相全桥在大功率场合应用的比较多,是技术比较成熟的一种开关拓扑。移相全桥DC/DC变换器是非线性时变电路。在分析时,用经典线性电路理论和控制理论对其进行小信号建模,建立开关的状态空间平均模型,对其配置零极点,设计控制器。而在数字控制里,最重要的就是PI调节。    PI参数的选择是很有讲究的。移相全桥空载的时候是一个欠阻尼二阶系统,带载时,系统的零极点又会发生变化。所以,PI的选择要使系统在整个负载范围内保持良好的动静态特性。PI参数的计算也有难度。用单环控制进行调节,可使控制器的设计简化,但是这种方法只有当负载扰动的影响在输出端表现之后,控制器才有反应,控制速度不快。因此,采用电压电流双闭环控制,当然,控制器比单环控制时更难设计。    用MATLAB中的SISOTOOL模块,在闭环控制系统的设计过程中进行校正,减少了设计的复杂性和重复性,有效地提高了校正系统的控制精度,给控制系统的设计带来更高的效率和更好的质量,简化了设计电压电流双闭环控制过程中大量的计算,最终得到稳定的模型和好的动态特性。2、移相全桥的模型    移相全桥ZVS变换器和普通的BUCK变换器有一定的相似性,由于移相全桥有漏感,所以又有着显著的不同。占空比对电感电流的传递函数[1]是                 (1)    其中Rd=4n2Llkfs。    经过计算,选取Uin=400V,U0=48V,开关率频fs=100kHz,输出功率P=400W,RL=5.76Ω。根据计算得,n=5,Lf=150uh,Cf=330uh, Llk=80uf。3、用SISO对移相全桥控制器进行PI参数配置    对一般的控制系统来讲,控制系统对开环频率特性的要求如下:    (1)为了获得较好的系统稳定性,开环系统中频段应有足够的频带宽度,以-20dB/dec的斜率穿越0分贝线;    (2)为了获得较好的动态特性,截止频率应较高;    (3)应该留有足够的相位裕量,工程领域普遍认为=45°表示系统具有足够的相位裕度,相位裕度越大,对应系统的超调量就会越小;    (4)为了提高系统的稳定特性,低频段应该有高的增益;    (5)为了提高系统的抗高频干扰能力,高频段应该有快的衰减。    本文采用全数字控制环路设计方法,在连续域中,通过SISOTOOL来配置PI控制器,离散化后再由DSP控制,移相全桥系统框图如图1所示。图1  移相全桥的控制框图    SISOTOOL是MATLAB中的一个图形用户界面,通过利用根轨迹图或伯德图来调整单输入单输出反馈控制系统,进行控制器的设计。它不需要以命令行的方式输入大量的指令,只需导入各环节的模型,用鼠标可以直接对屏幕上的对象进行操作。这样,与SISOTOOL连接的可视分析工具LTIviewer马上显示出设计结果,用户可结合闭环响应来调整增益和零极点,从而设计出满意的控制器。本文主要通过频域调节的方法,来得到合理的补偿控制器。3.1 电流环的设计    以输出滤波电感电流作为电流反馈,电流环功率级的传递函数计算后为    将输出滤波电感的电流作为控制系统内环,不仅可以大大提高控制系统的稳定性,改善系统的动态特性和稳态特性,而且还可以提供快速的过流保护。带电感电流内环的控制系统框图如图2所示。图2  电流控制环[!--empirenews.page--]    (1)取Ki=0.1,在命令行输入电流环功率级的开环传递函数,num=[0.066,34.722];den=[0.0000000495,0.2679,139.89];G=tf(num,den);sisotool    (2)导入系统各个环节的模型。点击“File”菜单下的“import..”导入对象模型G,出现如图3(a)所示界面。可以打开Analysis里面的Response to                     (a)                      (b)图 3    Step Command第一步,观察开环系统的阶跃响应,如图3(b)所示。    观察它的幅频特性,低频增益太低。由其阶跃响应可知,系统有静差,需要增大其比例系数。可用鼠标拖住右边幅频特性中的图形,使其增益大于一定数值,使阶跃响应无静差。然后,再加入积分环节也可相应提高其低频部分的增益。如图4所示。                     (a)                        (b)图4    为了使系统具有更快的动态响应,在保证系统稳定的前提下,电流环的截止频率不仅要大于电压环的截止频率,而且应该越大越好,因为该电流必须有足够的带宽使电流跟踪电流给定。一般取电流环的截止频率为开关频率的1/5~1/10。    为了保证足够的相位裕度,而且保证较高的截止频率,且以-20db穿越,考虑添加一个零点,再进行适当的调整,可得图5所示的图形。当相位裕度很大,截止频率很高时,系统超调很小或无超调。得到电流环的PI环节为               PI环节的参数是Ki=7550,Kp=5.67,相角裕度为135°,截止频率为5.33×106rad/sec。                    (a)                     (b)图53.2 电压环的设计    电压环的补偿网络是把已经设计好的电流内环看做电压调节系统中的一个环节来进行。就是说,设计电压补偿环节的时候必须先把电流环闭合,控制对象是输出误差电压控制信号到变换器输出电压的传递函数。对电压环来说,其功率级的传递函数包含电流环和负载。其系统控制框图如图6所示。图6 电压控制环    (1)首先要得出电流环的闭环传递函数    在command window输入下列语句:    num=[0.66,347.22];    den=[0.0000000495,0.2679,139.89];    num1=[5.67,7550];    den1=[1,0];    [num2,den2]=series(num,den,num1,den1);    num3=[0.1];    den3=[1];    [num4,den4]=feedback(num2,den2,num3,den3);    printsys(num4,den4);    (2)电流环的负载是由输出电容和负载组成的网络,和上一个环节串联。[!--empirenews.page--]    在command window输入下列语句:    num5=[5.76];    den5=[0.0019008,1];    [num6,den6]=series(num5,den5,num4,den4);   (3)取Kv=1/48,输入如下的指令:    num7=[1];      den7=[48];    [num8,den8]=series(num6,den6,num7,den7);    G1=tf(num8,den8);    Sisotool;    (4)同理,导入对象模型,命名为Gcv。观察开环系统的阶跃响应,如图7(b)所示。开环系统的阶跃响应有静差,因此,应该增大低频增益使其阶跃响应达到1。相应的加入积分环节也可以提高低频增益。                    (a)                    (b) 图7    经过调节后电压环的PI配置为     相角裕度为48.5°,截止频率为333rad/sec。系统幅频特性和阶跃响应如图8所示。                       (a)                       (b)图84、仿真结果 图9 移相全桥输出电压波形图10 有负载扰动时的波形    图9为移相全桥在正常情况下输出电压的响应波形,电压在很短的时间内达到48V。图10为有负载扰动时的波形,系统在遇到扰动后很快恢复平衡,输出仍然为48V。5、结论    采用SISOTOOL可以很快的设计出系统的双控制环,既能保证系统的稳定性,也能保证系统好的动态性能,大大缩短了设计系统需要的时间。在模型复杂、二阶以上的数字控制的电源系统中,用SISOTOOL对闭环控制系统进行校正,减少了设计的复杂性,有效地提高了校正系统的控制精度,提高了控制系统的设计的效率和质量。

    时间:2009-04-21 关键词: 数字式 matlab 电源技术解析 应用 相全桥 sisotool

  • MathWorks加强通过MATLAB和Simulink进行无线通讯和雷达设计的支持

    21ic讯 MathWorks宣布,显著加强了通过 MATLAB 和 Simulink 进行的无线通讯和雷达设计的支持。Release 2013a (R2013a) Phased Array System Toolbox 和 SimRF两个产品的新功能将使无线通讯和雷达设计人员能够更快地在 MATLAB 和 Simulink 类似环境中的建模和仿真。 Phased Array System Toolbox 的极化、阵列扰动和宽带阵列等新功能可帮助用户对端到端相控阵列系统进行建模或处理采集到的雷达数据。SimRF 推出一个新型电路包络分析解算器,可加速系统仿真和缩短模型加载时间;SimRF还扩展了用于系统级 RF 前端仿真的组件库。这些增强功能可帮助雷达和通信系统设计人员以更好的精度和性能对日益复杂的场景进行建模。 Cobham Defense Electronics 业务发展经理 Robert Liechty 说:“在设计和模拟雷达与通信市场中的相控阵列性能方面,我们在很大程度上依赖 MATLAB。Phased Array System Toolbox 帮助我们快速地测量和分析在波束控制下的天线波束方向图,以评估我们的设计性能。我们高兴地看到在 Release 2013a 中进行了重大改进,如 Sensor Array Analyzer 应用程序和新的统计建模功能,它们可使我们更多的工程师能够通过使用Phased Array System Toolbox 而进一步提高工作效率。” MathWorks 的信号处理高级策略师 Ken Karnofsky 说:“随着无线和雷达通讯变得日益复杂,设计人员需要了解 RF 设备和信号处理算法之间的交互以及它们对整体系统行为的影响。通过 MATLAB 和 Simulink 中的这些这些新增功能,系统设计师们可以避免去使用和维护很多不同的工具和旧的代码库。” Phased Array System Toolbox 的重要更新包括: · 单基地和多基地雷达系统建模(包括点目标、自由空间传播、表面杂波和阻塞干扰机),用于预估雷达系统的的最大作用距离、峰值功率和信噪比 (SNR); · 支持任意几何形状的传感器阵列和子阵列的建模,以对线性、平面和共形传感器阵列进行波束方向图分析; · 阵列和目标的极化与平台运动规格; · 用于加速杂波建模的 GPU 支持。 对 SimRF 的主要增强包括: · 加快了多个任意架构载波频率模型的电路包络仿真。与用于单载波串级系统离散时间仿真的同等基带技术结合,可在系统级实现快速 RF 建模与仿真; · 减少了仿真启动时间; · 通过增强的配置模块(包括不限数量的仿真频率和基音自动选择),方便设置电路包络仿真; · 提供了新的有源和无源组件模型(放大器、混合器、LC 梯形、变压器、噪音),同时还提供了通过 Simscape 语言创建的自定义 SimRF 模型。 上市时间 R2013a(包括 SimRF 和 Phased Array System Toolbox 的更新版本)已经上市。

    时间:2013-04-22 关键词: 无线通讯 mathworks matlab simulink

  • 跨界也能玩:5G 系统设计到七种技能

    跨界也能玩:5G 系统设计到七种技能

    无线通讯技术作为万物互联的纽带影响着物联网的发展。未来无线技术当中,5G则被视为当仁不让的核心技术之一。在5G系统到设计上,工程师们想要实现整个无线传输系统的设计,至少需要掌握七种不同的技能。   从上图可知,这七种技能需要不同的领域的工程师来协作完成,但是,因为系统复杂性增高和产品需求周期缩短等因素,跨领域设计是5G系统实现的必经之路。MathWorks公司的MATLAB 和Simulink软件,以七种武器应对七个关键挑战。 5G工程师必备的七种技能 首先,工程师应该清楚5G的无线通讯的系统构架,从整体上理解整个系统;其次,无线通讯信号从模拟到数字,工程师还需要了解DSP算法;第三,工程师要懂一些嵌入式软件开发的技术;第四,数字电路设计,如何把数字算法实现到相应到硬件电路之中也是不可缺少的;第五,模拟和数字混合设计,尤其是数字和模拟协同设计部分;第六射频技术,正确评估和选择不同的射频模块,这都是在射频设计期间需要考虑的内容;第七,天线阵列的设计也是一个非常重要的技术,关系大规模MIMO的成败。 全新工具箱实现5G设计的全覆盖 MathWorks把这些技术结合在一起,从系统构到算法开发,最终到5G系统的实现,MathWorks提供了一个完整的设计流程和软件平台。 MathWorks美国总部通信产品市场经理赵志宏先生介绍道:“MathWorks可以提供一个数字、射频和天线联合仿真的环境。针对FPGA或ASIC或是嵌入式处理器提供优化功能,能够直接产生HDL代码和C代码。针对标准化到信号,我们的产品可以直接和硬件测试仪器互连,可以直接发射和接收无线信号。”   (MathWorks美国总部产品市场经理 赵志宏先生) 在2015到2016年这两年中,MathWorks在射频和天线设计方面增加了很多新的功能。在R2015a的版本里增添了天线工具箱,工具箱里面为工程师提供了现有常用的天线原型库元件。工程师在设计某个天线时,可以通过元件库在天线原型的基础上修改参数,可以极大地简化天线设计,以及提供各种各样不同天线参数的分析能力。 2016年MathWorks在射频工具箱中新增加了射频的预算分析器,这个射频工具箱可以提供很多的关于射频方面分析的功能。 通过MATLAB和Simulink强大的弹性的设计能力、规范的算法平台、便捷的代码生成以及直接生产可实现的系统模型,可帮助用户加速5G无线通信系统的设计开发和性能优化。

    时间:2016-11-29 关键词: matlab simulink 5G 技术专访

  • 基于Matlab GUI的串口通信编程实现

    0 引言    Matlab是MathWorks公司开发的一种科学计算软件。Matlab运行稳定、可靠、使用方便,是广大科研人员进行科学研究的得力助手。Matlab不仅具有强大的科学计算功能,还具有满足一般要求的数据采集以及界面设计开发功能。Matlab GUI(Graphic User Interface)就是内置于Matlab的进行图形界面开发的模块。    本文利用Matlab GUI设计通过串口进行数据发送和接收的界面,并利用内置于Matlab的串口通信API实现串口数据发送与接收功能。1 Matlab GUl介绍    启动Matlab后,运行guide命令即可以启动Matlab GUI开发工具。如图1所示。    新建Blank GUI,如图2所示。    在新建Blank GUI界面中,包含了一般的界面元素,如菜单、按钮、坐标轴、控件等。添加必要的串口通信参数设置按钮。    运行后的界面如图3所示。2 串口数据发送与接收功能实现2.1 建立串口通信流程的基本步骤    Matlab提供了对串口进行打开、关闭、以及串口参数设置等操作的一系列函数。利用这些函数可以选择串口号、设置串口通信参数(波特率、数据位、停止位、校验位等)、进行中断控制、流控制。从建立串口通信到结束串口通信的完整流程包括以下几个步骤:    (1)为应用程序创建串口对象。实现该功能的函数为:        其中参数port为完整的串口名称,如cornl。PropertyName为串口通信参数,如baudrate,startbits等。创建串口对象的过程中,也可以忽略PropertyName。其函数为:        (2)连接打开串口。实现该功能的函数为:        obj即为使用创建串口对象函数的返回值。在连接打开串口后,可以对串口通信参数进行修改。    (3)设置或者修改串口通信参数。在能够有效地进行串口通信前,必须设置正确的串口通信参数。实现该功能的函数为:        obj即为使用创建串口对象函数的返回值;PropertyName为串口通信参数,如baudrate,startbits等。    (4)从串口读写数据。在前面三个步骤正常完成后,即可以从串口读数据或者向串口写数据,也就是接收或者发送数据。实现读串口功能的函数有多个。其区别在于根据到达串口数据的类型选择合适的读函数。主要包括:fgetl,fgets,fread,fscanf。这里主要介绍fread,fread函数实现从串口读入二进制数据。fread的实现形式为:    A=fread(obj,size)    A为读入的数据,以数组的形式存储,存储数据形式为字节;obj即为使用创建串口对象函数的返回值;size指定一次读操作读入字节的个数。实现写串口的函数有两个,分别为fwrite和fprintf。fwrite以二进制形式向串口写入数据,实现形式为:    fwrite(obj,A)    obj即为使用创建串口对象函数的返回值;A为写入的数据,以数组形式存储。fwrite以文本形式向串口写入数据,即以ASCII码的形式向串口写数据,实现形式为:    fprintf(obj,'cmd')    obj即为使用创建串口对象函数的返回值;cmd为写入的文本数据,以数组形式存储。    (5)关闭串口以及释放串口对象占用的存储空间。关闭串口函数为:fclose(obj)。释放串口对象占用的内存空间,函数为:delete(obj)。释放串口对象在Matlab工作区中占用的存储空间,函数为:clear obj。    以上5步是建立串口通信过程到关闭串口,释放串口占用资源的基本步骤。基本步骤可以实现手动收发数据。其例程如下:        运行以上语句后,显示的结果如下:        串口数据接收完毕后,需要关闭串口,并释放串口对象占用的资源,使用的命令如下:    2.2 串口中断设置及中断处理函数    要实现自动收发数据,还需要定义串口中断处理函数以及触发串口中断的方式。定义串口中断处理函数也就是定义串口数据接收或者发送函数。定义触发串口中断的方式其目的是为了在串口检测到接收数据的时候,通知并启动串口数据接收函数进行数据接收操作;在串口输出缓存为空的时候,通知启动串口数据发送函数。    (1)触发串口中断的方式。在Matlab串口通信编程中,Matlab通过检测到串口通信事件,从而触发串口中断。涉及到串口读写的事件包括:Bytes available,Output empty。其中Bytes available事件有两种:一种是接收到的字符数达到人工设定的数目时,则系统产生该事件;另一种是当接收到指定字符时,系统产生该事件。Output erupty事件是在系统检测到输出缓存区为空时,产生该事件。    Bytes available事件需要事先设置。可以使用函数:set(obj,'By tesAvailableFcnMode','byte');set(obj,'BytesAvailableFcn-Count',240);以上两个函数设置当串口检测到输入缓存中到达了240个字符的数据时,则触发串口中断。另外,也可以设置为当系统检测到某个字符达到串口,则触发串口中断。其设置函数为:set(obj,'BytesAvailableFcnMode','terminator');set(obj,'terminator',  'H')。以上两个函数设置当串口检测到字符H时,则触发串口中断。    输出缓存为空事件的产生。该事件由系统自动检测产生,不需要用户特别设置。该事件一般在输出缓存中的最后一个字符发送完毕后产生。用户可以定义该事件引起的串口中断处理函数。    (2)串口中断处理函数。串口中断处理函数可以根据用户需要自行定义。如串口读中断处理函数可以这样定义:obj.BytesAvailableF-cn=@reeeiveData。receiveData即为串口读中断处理函数。在读中断处理函数中可以进行串口读操作。即将输入缓存区中的数据读到用户自定义的存储变量中,以备后续的数据处理与分析。类似可以定义输出缓存为空时触发的串口中断处理函数:obj.OutputEmptyFcn=@write-Data。    本文开发的串口通信程序用于接收采集IMU(Inertial Measurement Unit)输出的加速度计和陀螺的测量数据。通过定义串口读中断事件和串口中断处理函数,实现了数据的自动采集,并以Matlab图形方式实时显示数据。3 串口通信程序的编译发布3.1 编译程序    为了对代码进行保密,以及方便用户发布可以在不同平台运行的可执行程序,Matlab提供了Matlab程序编译与发布功能。在进行Matlab程序编译之前,需要设置编译工具。在Matlab命令窗口中,输入运行mbuild-setup,进行编译工具设置。如图4所示。    mbuild-setup命令运行后,Matlab会检测已经安装在本机上的编译器,用户可以自行选择任意一个编译器,选择完毕后,运行编译命令,Matlab将使用用户选定的编译器对程序进行编译。    设置完毕编译工具后,即可以在命令窗口中运行编译命令,将Matlab程序编译成可执行程序。命令格式为:    mcc[-options]mifilel[mfile2…mfileN];    options为编译参数;mfilel为待编译的Matlab文件,如果包含多个Matlab文件,可以直接列在mfilel后面。    如将一个文件名为myfun.m的Matlab文件编译成一个独立可执行程序,可以使用mcc命令:    mcc-m myfun:    mcc命令可以用使用多个编译参数,相应参数的含义可以参见Matlab帮助文档。3.2 发布程序    Matlab文件编译完毕后,生成的可执行程序还需要.Matlab环境的支持,要发布到没有安装Matlab的机器上运行,还需要进行最后一项工作,即打包Matlab组件运行环境(Matlab Component Runtime,MCR)。将MCR与可执行程序一起打包,拷贝到其他没有安装Matlab的机器上,在该机器上安装MCR,安装完毕即可以直接在该机器上运行编译的Matlab可执行程序。MCR安装文件位于:    Matlab Root\toolbox\compiler\deploy\win32    在2008版Matlab中,已经内置了Matlab编译发布工具箱,在Matlab命令窗口中运行deploytool命令,即可以调出该工具窗口,通过该工具可以方便、快捷地编译发布Matlab程序。4 结语    Matlab具有强大的科学计算功能和图形显示功能,选用Matlab作为数据处理与分析工具是合适的,但其界面开发和数据采集功能相对较弱,不如VisualC++或者LabView强大。不过,对于一般的界面开发,和普通功能的串口通信开发,Matlab是足以胜任的,同时也可以直接利用其强大的数据分析与处理功能。本文基于Matlab GUI的串口通信功能的编程实现表明利用Matlab GUI可以进行包含一般界面元素的界面开发,在此基础上,加入串口通信功能,实现数据的实时采集与分析处理,并进行图形化显示。

    时间:2010-07-09 关键词: matlab 串口通信 gui 编程实现

  • 基于MATLAB的对零电流开关准谐振变换器的建模与仿真

    1引言 零电流开关(ZCS)准谐振变换器(QRC)因其内在的软开关特点和电路的简单。而有多种DC/DC变换器的拓扑类型。一般讲,零电流开关是通过在开关器件上增加一对谐振电感和电容,使其在开关开通和关断时流过开关的电流等于零,从而减少开关损耗以提高开关频率,有助于提高电源的功率密度。但是在没有一个好的电路模型下,设计基于零电流开关准谐振变换器的可调开关电源并不容易。因为其非线性和复杂的运行等,零电流开关准谐振变换器的建模相对很难。 本文通过对BUCK电路的零电流开关准谐振变换器的开关过程的分析,简化其开关过程,得到其非线性的等效模型,并在MATLAB对其进行了分析和仿真,包括用MATLAB的控制系统工具箱进行仿真。而该模型相当逼近的优点,即使在普通的计算机上,也能很快得到准确的仿真结果。同时,因为该模型是通过分析利用零电流开关运行的特点而建立的,因此也可以将其应用到相关的QRC拓扑电路上,并得到其仿真模型。 2工程仿真软件MATLAB的特点 比较目前常用的BASIC,FORTRAN和C语言等编程仿真程序,它们都要求编程者既对物理模型和有关算法有深刻的了解,而且还需要熟练掌握所用语言及编程技巧,即使如此,由于缺乏强有力的图形输出支持,使人机界面难以达到令人满意的理想效果。而对用户而言,要求其同时具备这两方面的能力是有一定难度的,因此编制、调试程序成为一项很繁杂的工作。MATLAB是由MathWork公司出版发行的著名数学分析软件。作为当今流行的第四代编程语言,完全可以克服这些困难,使科技人员从繁琐的程序代码中 解放出来,成为当前各个科研工作者的有力工具。MATLAB包含核心部分和各种可选的工具箱两个部分。它具有以下几个显著特点: 1)高效方便的矩阵运算MATLAB给出了矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效和方便。MATLAB的编程效率和可读性、可移植性远远高于其他高级语言。 2)开放式的结构MATLAB有丰富的库函数,在进行复杂的数学运算时可以直接调用,并且库函数同用户文件在形成上一样,即都为M文件,这样用户文件可以作为MATLAB的库函数来调用,因而用户可以根据自己的需要方便地建立和扩充新的库函数。另外,为了充分地利用FORTRAN、C语言的现有资源,通过建立MEX文件的形式混合编程,可方便地调用有关的FORTRAN、C语言的子程序。 3)MATLAB中提供了系统模型图形输入与仿真工具—SIMULINK。 4)大量的MATLAB配套工具箱和友好操作界面图形和可视化功能是现代应用软件发展的主要方向。MATLAB中的SIMULINK给科研人员提供了用自己擅长的CAD方法来实现系统的仿真工作。MATLAB提供了大量有用的工具箱。同时它允许用户自己开发特定用途的工具箱。 3零电流开关准谐振变换器的电路开关 过程分析 图1(a)和图1(b)分别给出全波模式和半波模式(本文主要讨论全波模式)零电流开关准谐振变换器。一个零电流开关包括一个功率开关S,二极管D1和D2,谐振电感Lr,谐振电容Cr。因为QRC的开关频率很高,它的一个开关周期相对于变换器的时间常数是可以忽略的。所以假设当ZCS关断时,开关电流是零,当ZCS开通时,开关电流是I,在一个开关周期内I是常数。 根据ZCS的工作原理,一个开关周期可以分为四个阶段:电感充电阶段,谐振阶段,电 容放电阶段以及自然续流阶段。谐振电流iLr和谐振电压vCr的波形如图2(a)和(b)显示 。 1)开关模态1[0~t1]——电感充电阶段 在此阶段,开关管S开通,电感Lr上电流iLr从0线性上升,因此S是零电流开通。Lr=Vz( 1)t1=(2) 式中:VS为输入电压。 2)开关模态2[t1~t2]——谐振阶段 从t1时刻开始,Lr和Cr开始谐振,状态方程为Cr=I-iLr(3)Lr=vCr(4) 初始条件分别是:当t=t1时iLr=I和vCr=Vz 当t=t2时iLr=0 由此可推得该段时间为t2-t1=(5)式中:θ=2π+arcsin(-ZnI/Vs),Zn=;ω=1/ 。 3)开关模态3[t2~t3]——电容放电阶段 由于t=t2时iLr=0,输出滤波电感电流全部流过谐振电容。Cr=iLr(6)t3-t2=(7) 4)开关模态4[t3~t4]——自然续流阶段 在此开关模态中,输出的滤波电感电流经过续流二极管D续流 [!--empirenews.page--] t4=Ts-t3(8) 式中:Ts为一个开关周期。 4零电流开关准谐振变换器的电路建模 建模的主要思想是把零电流变换的4个工作阶 段变为2个,即开关开通状态和关断状态。当AK之间的电流是零,我们认为是关断状态;而当AK之间的电流是I,则为开通状态。依照这个观点,一个零电流开关就非常相似于一个理想开关。开关模态2和3明显是开通状态,而开关模态4则处于关断状态。对于开关模态1,流过AK的电流从零上升到I在t1时间内,I是流过零电流开关和反向二极管的电流之和。按平均值处理,也就等同于开通和关断状态各处半个t1。所以我们得到开通时间为 ton=t3-0.5t1(9) 关断时间为 toff=t4-t3+0.5t1(10) 从而我们可以得到变换器的开通和关断状态方程。因为每一个开关周期都是非常短暂的,所以我们在一个开关周期内用时间平均法来综合两个阶段的方程。得到一个有关输出电压和开关频率的非线性状态方程。 我们得到处于ton时的状态方程=+Vs(11) 式中:IL是流过滤波电感的电流(IL=I); Vo是输出电压。 toff时的状态方程=+Vs(12) 用时间平均法,式(11)、(12)可合写为如下形式=+Vs(13) 式中:Ts=ton+toff。 这样我们到了关于状态矢量[VoIL]′和开关频率1/Ts的等效模型。 5参数设置和仿真 利用该模型仿真结果和利用实际电路得到的仿真结果(本文用pspice代替实际电路仿真 )如图4(a)、(b)所示。该模型得到的仿真结果和实际电路仿真得到的结果非常符合。仿 真电路中的各参数如表1所示。 表1测试电路各元件值VsLrCrLCR 15V1.6μH0.064μH100μH1μH10Ω 同时,我们假设功率开关管和二极管都是理想状态,开关管的开关频率为300kHz,并满足零电流开关的条件。<1(14) 6结语 本文推导得到的零电流开关准谐振变换器的非线性模型可以精确地模拟其暂态行为。通过MATLAB可以以较快的速度得到准谐振变换器的响应。利用该仿真模型,将会更有效地加快可调功率变换器的设计,特别是当控制参数和变换器的元件值变换时。在设计准谐振变换器时,通过选择合适的电路元件和操作范围,实现零电流开关。利用MATLAB进行仿真工作,突破了传统的仿真方法需要大量繁琐的编程调试工作,使用户不必对计算机系统本身赋予更多的注意,而将主要的精力集中在课题本身。基于图形界面的仿真建模方式的仿真软件——MATLAB适用范围极广,值得大力推广。

    时间:2011-03-14 关键词: 开关 建模 仿真 matlab 电流 电源技术解析 基于 变换器 谐振

  • FPGA的TCP/IP通信协议与Matlab通信系统的研究

     O 引言   近年来,随着信息技术的发展,网络化日加普遍,以太网被广泛应用到各个领域。例如在数据采集领域,一些小型监测设备需要增加网络实现远程数据传输的功能,只要那些设备上增加一个网络接口并实现了TCP/IP协议,就可以方便地接入到现有的网络中,完成远程传输数据的相关功能,所以小型设备的网络技术一直是大家关注的焦点。另一方面,随着单片FPGA的逻辑门数不断增大,人们开始考虑将整个嵌入式系统集成到单片FPGA来实现,于是2001年 Altera第一次提出了可编程片上系统(SOPC)概念,并且推出了第一款嵌入式处理器软核Nios以及之后的第二代Nios II以及相应的开发环境,此后Xilinx也推出了MicroBlaze微处理器软核,之后,随着Altera的CycloneIII和StraTIx IV以及Xilinx的Spartan6和Virtex6等一系列大容量FPGA的推出,Xilinx于2009年正式提出了目标平台设计并且推出了相应的软件ISE 11,至此,嵌入式系统真正开始走向了片上系统,自然,这中间也包括了以太网的嵌入式片上系统。   Matlab是美国MathWorks公司提供的商业数学仿真软件,其中Simulink是Matlab中的一种可视化仿真工具,是一种基于框图的设计环境,可以实现数据的仿真和处理,它提供了一种快速、直接明了的方式,用户可以实时看到系统的仿真结果并且进行相应的数据处理。基于以上事实,本文提出了基于FPGA的嵌入式以太网与Matlab通信系统的设计和研究,采用Xilinx公司的MicroBlaze嵌入式微处理器软核,利用它和相应外设IP核一起完成SOPC的设计并且完成与Simulink数据的传输,最后动态显示以太网传输的数据。   1 系统硬件平台设计   1.1 系统总体硬件的结构   在系统硬件结构中,考虑到系统复杂度和成本因素,我们选用了Xilinx公司的Spatan3A系列的XC3S700A作为主控制芯片,该芯片为Xilinx的Spartan系列的低端FPGA,采用了65nm技术,在集成度和性价比上都要优于先前Spartan系列的FPGA,系统外挂一块 Micron公司的32M×16bits的DDR2芯片MT47H32M16作为外扩SDRAM,以及一片Numonyx公司的16Mb的SPI Flash M25P16作为数据存储器,而10/100Mb以太网我们采用单片PHY芯片加Xilinx的MAC软核来实现。该方案将物理层和MAC分开,将MAC 用IP来实现,从而整个系统更加灵活。其中单片PHY芯片有BroADCom公司的BCM5221,Intel公司的LXT971A、 LXT972A,SMSC公司的DM9000、LAN83C185等。这里我们采用SMSC公司的LAN83C185来实现物理层。   1.2 系统整体框图   虽然Matlab中可以采用相关命令创建一个TCP/IP的模块进行数据的接收和显示,但是与Simulink中TC/IP模块相比较为繁锁,因此选择用后者动态实时显示从以太网发送过来的数据,并可进行相应的处理。本设计主要是完成发送正弦函数数据并在Simulink的接收模块中显示正弦函数图形。系统的整体的框图如图l所示:   2 MicroBlaze的系统硬件配置和Simulink接收块的搭建   2.1 MicroBlaze和系统设计   Xilinx公司的MicroBlaze嵌入式软核是业界优秀的32位软处理器IP核之一,它支持CroConnect总线标准设计集合,具有兼容性和重复利用性,最精简的核只需要400个左右的Slice,MicroBlaze软核内部采用哈佛结构的32位指令和数据总线,便于各个外设和它们之间的信号传输及相应的控制,它有下面的几种互联总线:   (1)处理器本地总线(PLB)。可以将多个PLB主设备和PLB从设备连接到整个的PLB系统中。   (2)高速的本地存储器总线(LMB)。用来取RAM块的同步总线。   (3)XCL总线。是一个高性能的外部内存访问总线。   (4)FSL总线。用于点对点的单向通信总线。使整个系统的软硬件设计,包括系统硬件平台的搭建,驱动程序的配置,Xilkernel操作系统内的核参数配置,软件库的设置,文件系统的生成及外设控制芯片接口配置都可以在EDK(Embedded Development Kit)内完成。EDK的整体开发流程如图2所示。     整个系统设计具体操作如下:   (1)在EDK的集成开发环境XPS(Xilinx Platform. Studio)中,处理器功能单元,系统外围总线结构,终端外设以及相应的地址映射和默认的驱动等都可以在BSB(Base System Builder)中完成。在Microblaze系统的基本构建中其主要设置如下:使用Single Processor System系统,Local Memory为16k,系统时钟频率为62.5MHz,定时器和以太网中断必须连接到处理器的中断控制器上,另外,本设计还用到的GIOP、 Ethernet MAC、DDR、SDRAM控制器等,其间用到的IP驱动,都是用xilinx提供IP的自带默认的相应驱动。   (2)最后XPS自动生成微处理器硬件规范MHS(Microprocessor Hardware SpecificaTIon)和描述软件系统结构的微处理器软件规范MSS(Micro-processor Software Specification)文件以及一些相关的文件。这些文件都可以手动进行修改,从而是使整个系统更加的优化。   (3)生成的系统最后生成bit文件,把其文件下载到目标板子上。   2.2 Simulink接收模块的搭建   Simulink中TCP/IP中的接收模块,其终端的地址,端口的设置要与FPGA上的以太网的IP地址、端口的设置一致,这就为 TCP/IP接收模块指定了要通信的地址即完成了接收模块TCP/IP的相关配置,也就完成了FPGA与Matlab中以太网通信的接收模块的搭建,在 Simulink中,具体的模块设计如图3所示。   通信数据通过此模块可以较直观地用图形动态显示。   3 系统的软件平台及网络协议的实现   3.1 软件内核和协议   本设计主要选择了Xilinx公司的精简嵌入式操作系统Xilkemel,它是Xilinx提供的用于EDK系统的小型、模块化的嵌入式操作系统内核,它支持Microblaze核,与EDK形成的硬件系统无缝连接,具有可定制、CPU资源占用较小、运行速度快等特点,是MicroBlaze嵌入式软核的理想操作系统,其整体的开发流程如图4所示。   网络通讯协议我们采用TCP/IP协议,该通讯协议采用四层(应用层、传输层、互连网络层、网络接口层)层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求,系统分为两部分实现:   第一部分为物理层和MAC层,本设计中用LAN83C185来实现物理层,MAC层由Xilinx公司的Ethernet MAC IP核,并作为整个MicroBlaze系统硬件的一部分在FPGA内实现。   第二部分是运输层和网际层,主要由软件代码实现。TCP/IP网络通信软件允许用户远程注册到另一个系统中,并从一个系统复制文件到另一个系统,虽然Xilkernel本身不带有文件处理系统和TCP/IP协议栈,但它与Xilinx公司的LwIP库具有良好的接口,加上系统支持库 LibXilMFS可形成一个比较完整的嵌入式系统,其特点是内核配置功能都已集成到EDK工具中,使用简单、方便,内核启动静态创建线程,而动态分配内存,可加载或卸载不同功能模块来实现内核的高扩展性。   本设计主要采用LwIP3.OOb(Light weight Internet Protocol stack)协议模块套用于嵌入式系统的开放源代码TCP/IP协议栈中,LwI-P3.00b提供二种API模式:Socket模式和RWA模式,由于 Socket模式开发难度不大,只要启动Xemacif input thread线程,从中断响应的过程中接收数据包并转移到LwlP的tepip thread中就可以。所以基于方便考虑我们决定上层协议部分协议模块采用Socket模式,因此需在MSS文件里对LwIP进行例化(包括相应的 LwIP参数设置)从而减少存储器利用量和代码编写。   3.2 网络通信程序的实现与设计   网络通信程序主要完成从超极终端发送数据,传到Simulink中的ICP/IP接收模块。下面是主要的网络通信程序:   Server_thread()函数是Xilkernel的第一个线程,初始化LwIP协议栈。   ServerAppThread()函数可完成MAC、IP、掩码以及网关的配置,并完成Socket应用。   以太网的配置如下: <-- 2010/7/10 23:03:27--> 当服务器程序开始运行时,主进程就创建一个套接字,     并通过bind函数绑定,用函数listen进行*,之后用lwip_accept进行接收,然后用sys_thread_new启动进程,processGet和Process Command函数分析数据包的内容并应用web serber定义的相关的命令实现相关的应用,write函数实现数据的发送,完成Socket服务并把数据发送给客户端。   Simulink中用TCP/IP模块,remote address参数设定为(211、80、192、237),端口设定为80,即与IP4_ADDR(&ipaddr,211,80,l92,237)和 address.sin port="htons"(80)设为一致,这样就保证了接收与发送网络地址和端口的一致性,保证数据传输的可实现性。设计发送的数据为:t=0:0.25:10,Y=sin(2*pi/10*t),数据列表如下:   对应的Simulink接收模块的数据图形显示如图5所示。   由图5我们可以看出,接收到的数据和发送的数据基本一致。   4 结论   本文研究了TCP/IP通信协议在Xilinx公司FPGA上的实现,介绍了其软硬件的系统组成及原理,通过建立一个例子加以说明和应用这个设计平台,证明了此平台设计可行性,并且完成了FPGA与Matlab的通信,为数据的实时显示及实时控制提供了很好的平台和设计方法,本设计也完成了 CPU软核设计的实现,其功能可根据需要进行定制,非常灵活,不但引入了软核处理器和嵌入式操作系统Xilkernel,而且应用了Lw-IP_300b 栈,使用大量的IP核,这样大大降低了系统平台的复杂度,缩短了开发的周期,其软硬件部分的设计分离的设计架构,使得整个系统修改和重构更加方便,真正实现了所谓的片上系统。而本设计采用Matlab接收数据,并且可利用其强大的数据采集、处理、仿真、实时动态显示的功能来更好完成数据分析研究。

    时间:2010-12-10 关键词: FPGA tcp matlab ip通信

  • MathWorks 使用 MATLAB 和 Simulink 加快航空航天设计

    全新飞行分析和可视化功能,加快飞行原型开发 今天,MathWorks 宣布面向航空航天设计领域推出了 MATLAB 和 Simulink 的全新飞行分析和可视化功能。在 2018b 版中,Aerospace Blockset 新增了飞行控制分析工具,协助分析航空航天飞行器的飞行品质;Aerospace Toolbox 增添了座舱飞行仪器用户界面的自定义功能,用于可视化和分析航空航天飞行器的运动和行为。现在,工程师可以制定从早期飞行器设计和开发阶段到飞行原型开发的连续工作流程,从而缩短从设计到测试所需的时间。 航空航天设计需要满足严格的设计和监管要求,以确保符合 MIL-F-8785C、DO-178 B 和 DO-178 C 等标准,工程团队通常会借助 Simulink 和 DO Qualification Kit 来实现这一目标。工程师之前使用内部或第三方工具执行飞行可视化和分析,现在可以直接在 Simulink 环境中进行飞行仿真、可视化和分析。得益于在设计工作流程早期使用基于模型的设计和 Simulink,团队可以更轻松地维护模型和代码。另外,工程师还可以与其他团队以及供应商分享模型,确保满足所有要求。 MathWorks 设计自动化市场总监 Paul Barnard 表示:“建模、仿真、分析和可视化功能对高度管制的航空航天行业至关重要。因此,Simulink 成为了这些工程师的首选设计环境。现在,由于这些团队能够执行迭代,因此可在数周内完成原型设计,而无需花费数月时间,从而进一步缩短了设计所需的时间。这样一来,工程师便可在预定期限内完成开发工作,同时还可保证高精度,并满足相关标准的要求。” Aerospace Blockset 能帮助工程师快速对航空航天飞行器动力学进行建模、仿真和分析。飞行控制分析工具是 2018b 版本中的新增功能,能对航空航天飞行器的动态响应执行高级分析。该工具包含模板和函数,前者可以帮助用户快速入门,后者则可用于计算和分析在 Simulink 中搭建的飞机模型的飞行品质。 Aerospace Toolbox 包含工具和函数,能帮助通过参考标准和模型来分析和可视化航天航空飞行器的运动。飞行仪表是 2018b 版本中的新增功能,可以通过标准座舱仪表显示测量结果。

    时间:2019-01-17 关键词: mathworks matlab simulink 航空航天

  • MathWorks 推出用于 MATLAB 的 5G Toolbox

    扩展无线标准功能,为 5G 系统提供符合标准的建模、仿真和验证工作流程 MathWorks 宣布,今天推出了 5G Toolbox。这款工具箱提供了符合标准的波形和参考设计,用于 3GPP 5G 新无线(NR)通信系统的物理层建模、仿真和验证。工程师使用 5G Toolbox 可以快速设计关键算法并预测符合 5G Release 15 标准规范的系统端到端链路性能。5G Toolbox 成为MathWorks公司的无线通信产品系列的一员,该产品系列还包括对 LTE 和 WLAN 标准的支持、大规模 MIMO 天线阵列和 RF 前端技术的仿真、无线测试以及无线电硬件的快速原型设计。 MathWorks 信号处理应用高级策划师 Ken Karnofsky 说道:“采用 5G 时,无线工程师需要验证其产品设计是否能够与不断发展的复杂新标准保持一致或共存。很少有公司拥有足够的资源或内部专业知识来理解和实施符合 5G 标准的设计。见证了 LTE Toolbox 如何帮助各团队在无线测试台上快速部署 pre-5G 设计之后,我们预计 5G Toolbox 将对主流无线市场产生类似的影响。” 5G Toolbox 可以帮助无线设计工程师管理不断增加的设计复杂性,同时缩短开发时间。工程师们现在可以使用该工具箱支持链路级仿真、黄金参考验证、一致性测试和测试波形生成,而无需从零开始。 5G Toolbox 是设计工作流程的基础,可帮助无线团队快速开发、设计原型和测试设计。很多公司公司原本对射频、天线和基带设计采用各自独立的工具,MIMO 技术经验有限,或者缺乏从仿真到原型设计的自动化,现在他们可依靠 MATLAB 作为仿真、空中测试和快速原型设计的通用环境。 身为 3GPP 工作组中多家公司的通用研发环境,MATLAB 同时也被用于 5G 标准的研发。

    时间:2018-11-09 关键词: mathworks matlab 5G toolbox

  • 基于Matlab和VC++混合编程的障碍检测系统设计

    摘要:文中主要研究移动机器人在环境未知情况下的障碍物检测问题,提出了一种基于Matlab和VC++混合编程的障碍物检测系统软件实现方法。该方法整合了MATLAB的数值计算功能,具有强大的图形、图像处理功能和VC++的可视化、执行速度快、易维护升级等特点。实验结果表明,这种检测方法在障碍物检测系统的开发过程中可以大大提高编程效率,并缩短软件的开发周期。 关键词:Matlab;VC++;混合编程;障碍物检测 0 引言     在智能移动机器人自主导航的研究中,应用视觉来进行实时障碍检测,一直是研究的热点问题。目前,许多研究工作者已将视觉导航应用到移动机器人的移动控制中,但由于其图像处理数据量大、算法较复杂,因此在具体应用中存在实时性较差、道路区域检测的算法不够鲁棒、只能适合算法特定的道路模型等缺点。为了提高移动机器人检测障碍物的实时性,文中提出了一种基于Matlab和VC混合编程的障碍物检测系统软件实现方法,可以大大提高编程的效率,缩短软件的开发周期,且可以快速准确地检测到障碍物。 1 VC++与Matlab混合编程方法     Matlab是由美国MatlaWorks公司推出的用于算法开发、数据分析以及数值计算的高级技术计算语言和交互式环境,在矩阵运算、数值计算和图形显示等方面,具有强大的功能,非常直观、简洁。它为各工程计算领域提供了相应的工具箱,在控制界、生物医学工程、语音处理、数字信号处理、雷达工程、信号分析、计算机技术等各行各业中都得到了广泛的应用。但是和其它高级编程语言相比,它的程序执行速度较慢,其源代码的公开不利于算法和数据的保密。     VisualC++是Microsoft公司推出的面向对象可视化编程的高级程序设计语言,它集成了功能强大的编译器、连接器、调试器、AppWizard等多种多样的可视化编程工具。它采用编译方式运行,运行速度快,特别是编写界面的能力很强。但它在数字处理分析、算法工具、编程效率和准确方便的绘制数据图像方面远低于Matlab语言。     Matlab与VC++常用的结合方法有5种:     ①Matlab引擎。     ②用Matcom将Matlab的M文件编译成C语言文件并嵌入VC++。     ③使用Matlab提供的函数库或C++接口函数库直接在VC中编程。     ④利用Matlab提供的MCC命令生成与Matlab文件对应的基于C语言或C++语言的包裹文件,再嵌入VC中。     ⑤应用组建技术实现Matlab与VC混合编程。     本研究针对5种方法进行了研究和试验。后4种方法对于Matlab的图像处理工具箱只有部分支持,而Matlab引擎对Matlab具有全功能调用功能,包括对于数字图像和通信对象处理的支持,故本文选用Matlab引擎来实现基于VC++和Matlab的障碍物检测系统研发平台。 2 障碍物检测系统的设计与实现 2.1 Matlab和VC接口编译环境的设置     在VC的集成环境中,如要实现与Matlab引擎之间的通信,需要对VC的编译环境进行一些设置,例如:为VC工程添加Matlab头文件、添加Matlab库文件等等。 2.2 VC中调用Matlab引擎的设置及程序实现     在VC中利用Matlab引擎进行图像处理,首先需要在程序中进行一些基本定义,如在使用Matlab引擎类的cpp文件中首先添加语句#inclu-de“engine.h”以及#include“matrix.h”,需要用Engine*m_ep定义Matlab引擎,用m_ep=engOpen(NULL)语句启动Matlab引擎;最后还要用engClose(m_ep)语句关闭Matlab引擎等。     本文研究的障碍物检测系统主要是先利用双目立体视觉来检测障碍物的位置及距离等信息,并对移动机器人的双摄像机进行控制来采集图像对,然后对图像进行一系列的处理。其软件设计采用模块化开发思想,主要包括图像采集模块、边缘特征提取模块、Otsu图像分割模块、摄像机标定模块、立体匹配模块和三维重建模块。障碍物检测系统主界面如图1所示。     图像Otsu分割Matlab图像处理部分源程序为:     3 障碍物检测系统检测过程及结果     图2~5为障碍物检测系统的处理过程,即从获取实时图像、图像预处理、障碍物特征提取、特征点匹配等过程,最后通过视差法计算出障碍物的位置坐标,从而为决策控制提供必要的信息。表1为检测到的障碍物中的部分点坐标。 4 结束语     本文利用Matlab和VC++混合编程的方法,将VC++的可视化图形界面功能和MATLAB的强大图像处理功能有机的结合起来,设计出移动机器人障碍物检测系统软件开发平台。在实际的科研中,省去了编写一些复杂烦琐的图像算法代码,可以为熟悉VC语言的工程技术开发实用图像处理算法研究提供方便;利用Matlab引擎可以简单有效的实现在VC中调用Matlab的功能,因此提高了效率,缩短了软件开发周期。

    时间:2011-04-11 关键词: vc matlab 混合编程 检测系统设计

  • 基于Matlab的FIR型希尔伯特变换器设计

    摘要:在通信系统中,希尔伯特变换是被广泛应用的重要变换。为了实现数字解调,通常需要借助希尔伯特变换器对信号进行分解,利用Matlab设计希尔伯特变换器是一种最为快捷、有效的方法。通过具体的设计、仿真及对原始信号和经过希尔伯特变换器输出延迟信号的比较,说明Matlab是一个在滤波器设计方面很有力的工具。 关键词:Matlab;Hilbert变换器;remez;FDATool工具 0 引言     通信系统中,经常需要对一个信号进行正交分解,即分解为同相分量和正交分量。由于希尔伯特变换可以提供90°的相位变化而不影响频谱分量的幅度,即对信号进行希尔伯特变换就相当于对该信号进行正交移相,使它成为自身的正交对。因此,希尔伯特变换在通信领域获得了广泛应用。     在传统的设计中,希尔伯特变换器可由一个FIR滤波器和一个时延模块实现,也可由一组滤波器对实现,而实现FIR型希尔伯特变换器的一个简单方法就是对原型低通滤波器作正弦/余弦变换。但是,无论哪种方法都需要通过计算对低通滤波器的系数进行转换,其计算繁琐且存在一定的误差。Matlab作为滤波器设计的基础软件,不仅可以快速有效地实现希尔伯特变换器的设计、分析仿真和最优化,而且可以直接计算出希尔伯特变换器的系数,加之Matlab具有强大的接口功能,为后续的设计提供了方便。 1 希尔伯特变换器的基本原理     连续时间信号x(t)的希尔伯特变换定义为:        由式(1)可得单位冲击响应h(t)=1/(πt),由于jh(t)=j/(πt)的傅里叶变换是符号函数sgn(w),所以希尔伯特变换器的频率特性为:        信号x(t)的希尔伯特变换可以看成是信号x(t)通过一个幅度为1的全通滤波器输出,信号通过希尔伯特变换器后,其负频率成分作+90°的相移,而正频率成分作-90°的相移。     这类滤波器要求滤波器的零频响应为0,若滤波器阶数为偶数,则还要求Nyquist频率(归一化频率为1)处的响应为0。即如果滤波器的阶数为偶数,那么增益在频率为0 Hz和fs/2处必须降为零,希尔伯特滤波器必须是一个带通滤波器。如果滤波器的阶数为奇数,那么增益在频率为0 Hz处必须降为零,希尔伯特滤波器必须是一个高通滤波器。 2 希尔伯特变换器的Matlab设计 2.1 直接程序法     Matlab信号处理工具箱提供了firls函数和remez函数,它们的调用格式语法规则相同,只是优化算法不同,函数firls利用最小二乘法使期望的频率响应和实际的频率响应间的误差最小;函数remez实现Park-McClellan算法,这种算法利用remez交换算法和Che-byshev近似理论设计滤波器,使实际频率响应拟合期望频率响应达到最优。     函数调用格式为b=remez(n,f,m,‘h’)或b=firIs(n,f,m,‘h’),其中,n为滤波器的阶数;f为滤波器期望频率特性的频率向量标准化频率,取值0~1,是递增向量,允许定义重复频点;m为滤波器期望频率特性的幅值向量,向量m和f必须同长度且为偶数;b为函数返回的滤波器系数,长度为n+1,本文将采用remez函数法。     下面设计一个希尔伯特变换器,要求采样频率为2 000 Hz,通频带为50~950 Hz,滤波器阶数为60阶。实现程序如下:         设计的希尔伯特变换器的特性如图1,图2所示。     从仿真结果可以观察到增益在0 Hz和1 000 Hz处降为零,即为带通滤波器;同时具有严格的线性相位特性,符合设计要求。在设计中如果特性不满足要求,原有的参数必须作相应的调整,在程序中只需对参数进行重新设定,就可以得到所需要的希尔伯特变换器。 2.2 利用FDATool工具设计法     FDATool是Matlab信号处理工具箱专用的滤波器设计分析工具,操作简单、灵活,可以采用多种方法设计不同的滤波器,同时可以实现滤波器的最小阶数设计。在Matlab命令窗口输入FDATool后回车就会弹出FDATool界面。     根据2.1中的设计实例,首先在Filter Type栏中选择Hilbert Transformer,在Design Method栏中选择Equiripple法,在filter order中选择60,在Frequencyand Magnitude Specifications中设置F=[50 950];M=[1 1];Fs=2 000,最后点击Design Filter,通过菜单选项Analysis可以在特性显示区看到滤波器的各种特性,如图3~图5所示。     在幅频特性和相频特性满足要求的同时,由图3可知单位脉冲响应为奇对称,即h(n)=-h(N-n-1),也符合希尔伯特变换器的特性。若设计不满足要求,则可以直接在FDATool界面中改变参数,在设计满足要求后,还可以把希尔伯特变换器的系数导出为Matlab变量,文本文件或C语言头文件等,这为后续的设计提供方便。 3 希尔伯特变换器的效果验证 3.1 直接程序验证法     对于所设计的希尔伯特变换器,频率为10 Hz的振动作为输入信号,采样频率为100 Hz,验证对应的数据点是否满足相位相差90°的特点,主要实现程序如下:             由图6可知,该希尔伯特变换器对阻带和通带波纹进行了控制,输出信号的相位比输入信号的相位前移了90°,符合希尔伯特变换的性质。如若把输入信号的频率变为-10Hz,则输出信号较之输入信号会后移90°,如图7所示。通过验证可知,该希尔伯特变换器实现了π/2移相。 3.2 Simulink仿真法     利用Matlab提供的Simulink工具对该希尔伯特变换器进行仿真,输入信号以3.1节中的要求为例,仿真系统如图8所示,在建立仿真系统时,注意对所选择的模块进行相应的参数设计。仿真结果如图9,图10所示。 4 结语     在Matlab平台上,采用直接程序法和FDATool工具法均可以快捷有效地完成希尔伯特变换器的设计,可以随时对比设计要求和希尔伯特变换器的特性,以使设计达到最优化。由于Matlab具有强大的接口功能,设计的结果可以很方便地移植到DSP,FPGA等器件中。在实际使用中,只需按要求修改参数,即可实现不同的希尔伯特变换器,实用性较强。

    时间:2011-05-16 关键词: matlab 变换器 fir 希尔伯特

  • 通信系统中Viterbi译码的Matlab仿真与实现

    摘要 数字通信作为一种前向纠错编码技术卷积码起着重要的作用。相应地,信息接收端对卷积码的译码实现也提出了更高的要求。文中提出的卷积码译码Matlab仿真方案,旨在用Viterbi译码实现对卷积码译码的功能。仿真结果表明,维特比是一种良好的译码方式。 关键词 Viterbi译码;卷积码;Matlab仿真     在现代通信中,信源、信宿和信道是组成通信系统的最基本单元。其中信源是产生信息的源,信宿是信息的目的地,信道则是传送载荷信息的信号所通过的通道,信源和信宿之间是通过信道连接的。通常从两方面来衡量通信系统的性能指标:数量和质量。一般数量指标用有效性渡量,而质量指标用可靠性度量。前者主要取决于信源的统计特性,而后者主要取决于信道的统计特性。在信道中传输数字信号,一般要求信源端把信息转换成电信号,并用尽量低速率的二进制数字信号表示,然而为了匹配信道的特性,弥补信道的缺陷,减少传输中的损伤,以更高的速率和更可靠的性能传输信息,需要对信息进行信道编码。而卷积码就是一种有效的前向纠错信道编码方式。维特比译码与卷积码算法共同实现了前向纠错,消除数据流中潜在的噪声,从而增加了数据传输的可靠性,改进了多噪声及衰落信道下译码的准确性,提高了数字系统的性能。 1 卷积码编码原理     卷积码是一个有限记忆系统,它将信息序列分隔成长度为k的一个个分组,在某一时刻的编码输出不仅取决于本时刻的分组而且取决于本时刻以前的(N-1)个分组,这种距离性决定了卷积码潜在的纠错能力。     下面以参数(2,1,7)的卷积码为例说明卷积码编码原理。此卷积码的卷积多项式参数为k=1,n=2,N=7,码的生成多项式为(171,133)卷积码编码器在任何一段时间内产生的n个码元不仅取决于这段时间中的k个信息位,而且还取决于前N-1段规定时间内的信息位。其意义为:输人为1 bit时,输出为2 bit,移位寄存器的个数为m=N-1=6,该编码器的状态数为2m=64,记为Si,i=0~63,观察卷积码的状态转移图可得结论:         图1中D表示将输入延迟一个时间单位;⊕表示异或;X,Y为输入经过不同的延时后的异或结果。     在编码器状态确定的情况下,不同输入所对应的编码器状态网格图如图2所示。     由于(2,1,7)状态数较多为64,所以用只有8个状态的卷积码(2,1,4)来说明卷积码编码器的状态转移过程。实线表示输入为0,虚线表示输入为1。观察图2可知,从第5组节点开始每个节点都可以由两个状态转移而来。类似可得出(2.1,7)从第8组节点开始每个节点可由两个状态转移而来。 2 维特比译码原理     Viterbi译码是卷积码的最大似然译码算法,是一种实用化的概率算法。它的基本思想是把已接收序列与所有可能的发送序列作比较,选择其中码距最小的一个序列作为发送序列。从图2的卷积码网格图可以看出,卷积码编码过程就是编码器状态沿着时间轴的一个转移过程。Vi terbi译码则是在如图2所示的网格图上搜索最可能的状态跳转路径,设(n,k,m)编码器输出的码序列为T,寄存器长度为L,经过离散无记忆通道(DMC)传输后送入译码器的序列是R=T+E,其中E为信道的错误序列。译码器根据接收序列R,按最大似然译码准则找到接收序列在如图2所示的编码器网格图上所走过的路径,这个过程就是译码器计算和寻找最大似然函数的过程,或者说是寻找最大度量路径的过程。其中最大似然函数为         寻找最大度量路径时首先要在t时刻读取所有状态的幸存路径度量值,再根据t+1时刻的输入算出跳转路径的度量值,将t时刻的幸存路径度量值和t+1时刻的跳转值相加,可得到t+1时刻到状态S的幸存路径度量值。这样每个状态都有一个幸存路径,根据这些幸存路径和最终编码器所处的状态就可以得到编码器的状态转移路径即译码结果。 3 维特比译码实现     维特比算法是将接收到的信号序列和所有可能的发送信号作比较,选择其中汉明距离最小的序列作为现在的发送信号序列。译码一般由图2所示的网格图中的S0状态开始,由于有6个寄存器,当每个寄存器的值都为已知时再输入才能得到唯一的编码器输出,所以译码初期连续接收12 bit的信息,它是由6 bit的输入得来的,由于6 bit的输入有64种可能的输出,所以将接收到的12 bit与64种可能相比对找出汉明距最小的一组即为想要的编码器输入也即译码器的输出。     一个完整的译码器一般包括以下7部分:状态发生器、累加器、比较器、度量值寄存器、信息序列寄存器、判决器、其他控制电路等,如图3所示。     对于(2,1,7)卷积码,在一个译码周期内,累加器完成64条支路度量值计算,比较器组完成同一状态的路径距离值比较,将较小者存入64个度量值寄存器。判决器选出64个信息序列寄存器中的最小者,并将相应信息序列寄存器的译码结果输出。     当确定各寄存器的初值后,从当前状态经过加比选蝶形运算后,到达下一状态,通过对每一分支度量的累积计算,经比较分析找到与接收序列距离最近的幸存路径。程序中的Nextstaterow是经过加比选得到的下一状态,将每次加比选的结果Nextstaterow保存下来放在一个数组Nextsatate中,当译码完成后Nextsatate中的各值即为译码所走过的路径,按照Nextsatate中的值,通过如图2所示的网格图回溯即可得到译码结果。     在信息传输的过程中,由于各种噪声的影响会造成接收到的数据有可能是误码,但连续出现2 bit的误码的概率又非常小,所以这里只考虑出现一比特误码的情况。当出现误码时两条岔路汉明距相等,由于基本不会出现2 bit的误码所以等到下一个节点时判断汉明距的大小就可以找到正确的输出。     图4是译码输出与编码器输入的比对,误码率很低,在所截取的图片中无误码出现,由仿真结果可清楚地看出译码器的输出与编码器的输入完全重合,说明译码器具有良好的前向纠错功能,用于通信系统可以提高信息传输的可靠性。 4 结束语     验证了Viterbi译码方案的可行性,这种译码方法得到的输出误码率可低至10-6。这种方案已用于某导航系统中,经测试,该译码方案在低信噪下也能达到较低误码率。

    时间:2012-04-28 关键词: 通信系统 仿真 matlab viterbi

  • 13款逆变电源的设计技术及具体应用案例

    利用晶闸管电路把直流电转变成交流电,这种对应于整流的逆向过程,定义为逆变。把直流电逆变成交流电的电路称为逆变电路。在特定场合下,同一套晶闸管变流电路既可作整流,又能作逆变。逆变电源广泛运用于各类:电力、通讯、工业设备、卫星通信设备、军用车载、医疗救护车、警车、船舶、太阳能及风能发电领域。本文为大家介绍的是几款不同原理的逆变电源的设计原理和方案。一款具有并联谐振的逆变电源电路设计原理与方案本文提出了一种应用于感应加热的并联谐振逆变电源设计方案,针对其主电路、斩波电路及逆变器控制电路等进行了分析和设计。三相交流电压通过不控整流及滤波电路后转换为直流电压,该电压被送到直流斩波器进行斩波调节,变为功率可调节的近似恒流源后输入逆变器,之后控制感应加热负载。直流斩波控制部分则通过传感器检测斩波输出的电流信号,经PI调节器,控制PWM的输出脉宽,从而改变斩波输出电流的大小,实现闭环控制。逆变器控制部分采用锁相环频率跟踪电路控制逆变器的工作频率,产生高频触发脉冲,驱动逆变电路中功率器件的通断。基于Matlab的孤立逆变电源设计方案本文设计的基于PWM的孤立逆变电源,其控制模型采用电压外环和电流内环双环控制策略,电压外环和电流内环均采用PI控制方式。应用Matlab软件建立实验模型进行仿真,通过仿真验证了控制系统设计方案的合理性,以及双环控制策略的应用效果,分析仿真结果证明了系统设计方案的合理性和有效性。基于ATmega8单片机控制的正弦波逆变电源本文所设计的逆变器是一种能够将DC 12V直流电转换成220V正弦交流电压,并可以提供给一般电器使用的便携式电源转换器。逆变电源的电路设计先变压,后变频,即先将直流电压转为高频交流电,再将高频交流电转换为50 Hz的正弦交流电源。小功率智能化中频逆变电源的研制 小型化和高性能本文研制一种基于TMS320LF2407A数字信号处理器和PS21964智能功率模块(IPM)的智能化SPWM中频逆变电源控制系统。对中频逆变电源的功率主电路、控制电路以及保护电路等进行了详细阐述。实现了中频逆变电源小型化和高性能的技术要求。基于87C196MH的车载逆变电源设计本设计巧妙地利用了高功率因数PWM控制芯片L4981A的Boost结构的功率校正电路来实现直流升压变换器的设计。提出了一种以87C19MH为控制核心,以IPM为开关器件的逆变电源的设计方案。逆变电源系统采用两级结构,第一级是DC/DC变换器,第二级是DC/AC逆变器;DC/DC变换器将110 V直流电压变换成400 V直流电压,DC/AC逆变器则将此直流电压逆变成有效值为230 V频率为50 Hz的交流电压,以带动负载。且系统具有输入过欠压、输出过流、缺相、负载短路、超温等保护功能。基于单片机的正弦波输出逆变电源的设计与实现本文给出了一种用单片机控制的正弦波输出逆变电源的设计,它以12V直流电源作为输入,输出220V、50Hz、0~150W的正弦波交流电,以满足大部分常规小电器的供电需求。该电源采用推挽升压和全桥逆变两级变换,前后级之间完全隔离。在控制电路上,前级推挽升压电路采用SG3525芯片控制,采样变压器绕组电压做闭环反馈;逆变部分采用单片机数字化SPWM控制方式,采样直流母线电压做电压前馈控制,同时采样电流做反馈控制;在保护上,具有输入过、欠压保护,输出过载、短路保护,过热保护等多重保护功能电路,增强了该电源的可靠性和安全性。直流电压前馈控制数字逆变电源设计与实现本文针对直流侧电压扰动时双环控制逆变电源的输出电压波形发生畸变、幅值发生变化的现象,提出了通过输入电压前馈控制环来修正基准正弦信号的幅值,从而改善逆变电源输出电压质量的三环控制方法。同时,借助于DSP强大的运算能力和丰富的外设,实现HPWM逆变电源的数字控制,从而简化了硬件电路。仿真结果表明,本文所提出的控制策略简单实用,可有效地提高逆变电源在直流输入电压扰动下的动态性能和稳态精度,并降低了输出电压的总谐波。基于DSP实现的开关逆变电源本文所描述系统由主电路和控制电路两部分组成。主电路部分,采用移相式零电压、零电流全桥变换器和相控周波变换器。采用高频环进行逆变,全桥变换器部分,利用可饱和电感Lr和隔直电容Cr实现对环流的阻断,可以在很宽的负载范围内实现超前桥臂的ZVS和滞后桥臂的ZCS,减小了开关应力,降低了损耗,提高了工作效率。控制部分,采用快速、高效的DSP作为核心控制器,通过光耦隔离,并有IGBT自保护的专门驱动芯片EXB841来驱动主电路中的功率开关管。与采样电路,保护电路配合,可对输出实行实时控制,具有较快的动态响应速度和良好的输出特性。基于ARM Cortex-M3和DSP的逆变电源设计本文描述了基于ARM7 Cortex-M3 的单片机STM32F103 和T I C2000 系列DSP 芯片TMS320F2808 联合控制的IPS 核心控制电路, 所设计的IPS 核心控制电路通过测试仿真及现场测试结果证明, 这种新型IPS 设计改善了IPS 结构设计, 满足IPS 运作的高要求, 而且丰富了远程监控等人机交互接口, 从而也间接多方面节约用户的管理成本。基于MT888O—DTMF的逆变电源的设计与开发本文提出基于DTMF远程通信的逆变电源系统。介绍DTMF收发控制器MT8880和三相PWM发生器SA8282的结构特性,由MT8880与单片机80C51和SA8282及IPM组成的基于DTMF技术的逆变电源,具有低成本高可靠远程数据通信的功能,形成远程遥测遥控逆变电源,扩大了逆变电源的应用范围。机车空调逆变电源控制系统及其实现本文设计了一种机车空调机组用多逆变器控制系统,上位微机控制电路是该系统的核心控制部分,通过CAN总线将控制指令传给逆变器控制电路,逆变器控制电路根据控制指令产生不同频率的SPWM信号控制逆变器工作;逆变器控制电路将各逆变器实际工作状态、故障信号等通过CAN总线上报给上位微机控制电路。与原有空调电源逆变器控制系统相比,有体积小、重量轻、数据交换方便、运行可靠、利于维修等优点。CPLD应用航空1l5V/400Hz高频链逆变电源本文采用复杂可编程逻辑器件(CPLD)来实现控制电路的设计。CPLD是在PAL、CAL的基础上发展起来的阵列型PLD,具有高密度、高速度的优点。本系统采用的是Altera公司MAX7000S系列的EPM7128SLC84-6可编程器件,该器件采用第二代多阵列矩阵结构,工作电压为5V,支持系统编程,工作频率可达151.5 MHz,具有128个宏单元,每个宏单元中的可编程扩展乘积项可达32个,具有可编程加密位,可对芯片内的设计加密。支持CAN总线的电动车辅助逆变电源的设计本文介绍的电动车用三相逆变电源属于车载辅助逆变电源。对该三相逆变电源的工作要求是:正常运行情况时独立维持辅助电机的稳定运行,能够根据上位机的指令适当调整工作状态;在负载发生故障(如电机短路)时迅速关系输出、安全关机,同时能够通过CAN总线向上位机和其它节点报告自身故障,引发车辆各系统的相关操作。更多关于逆变电源的技术资讯,欢迎访问 与非网逆变电源技术专区

    时间:2018-09-18 关键词: DSP matlab 电源技术解析 逆变电源 atmega8 87c196mh

  • 基于FPGA的TCP/IP通信协议与Matlab通信系统的研究

    O 引言   近年来,随着信息技术的发展,网络化日加普遍,以太网被广泛应用到各个领域。例如在数据采集领域,一些小型监测设备需要增加网络实现远程数据传输的功能,只要那些设备上增加一个网络接口并实现了TCP/IP协议,就可以方便地接入到现有的网络中,完成远程传输数据的相关功能,所以小型设备的网络技术一直是大家关注的焦点。另一方面,随着单片FPGA的逻辑门数不断增大,人们开始考虑将整个嵌入式系统集成到单片FPGA来实现,于是2001年 Altera第一次提出了可编程片上系统(SOPC)概念,并且推出了第一款嵌入式处理器软核Nios以及之后的第二代Nios II以及相应的开发环境,此后Xilinx也推出了MicroBlaze微处理器软核,之后,随着Altera的CycloneIII和StraTIx IV以及Xilinx的Spartan6和Virtex6等一系列大容量FPGA的推出,Xilinx于2009年正式提出了目标平台设计并且推出了相应的软件ISE 11,至此,嵌入式系统真正开始走向了片上系统,自然,这中间也包括了以太网的嵌入式片上系统。   Matlab是美国MathWorks公司提供的商业数学仿真软件,其中Simulink是Matlab中的一种可视化仿真工具,是一种基于框图的设计环境,可以实现数据的仿真和处理,它提供了一种快速、直接明了的方式,用户可以实时看到系统的仿真结果并且进行相应的数据处理。基于以上事实,本文提出了基于FPGA的嵌入式以太网与Matlab通信系统的设计和研究,采用Xilinx公司的MicroBlaze嵌入式微处理器软核,利用它和相应外设IP核一起完成SOPC的设计并且完成与Simulink数据的传输,最后动态显示以太网传输的数据。   1 系统硬件平台设计   1.1 系统总体硬件的结构   在系统硬件结构中,考虑到系统复杂度和成本因素,我们选用了Xilinx公司的Spatan3A系列的XC3S700A作为主控制芯片,该芯片为Xilinx的Spartan系列的低端FPGA,采用了65nm技术,在集成度和性价比上都要优于先前Spartan系列的FPGA,系统外挂一块 Micron公司的32M×16bits的DDR2芯片MT47H32M16作为外扩SDRAM,以及一片Numonyx公司的16Mb的SPI Flash M25P16作为数据存储器,而10/100Mb以太网我们采用单片PHY芯片加Xilinx的MAC软核来实现。该方案将物理层和MAC分开,将MAC 用IP来实现,从而整个系统更加灵活。其中单片PHY芯片有BroADCom公司的BCM5221,Intel公司的LXT971A、 LXT972A,SMSC公司的DM9000、LAN83C185等。这里我们采用SMSC公司的LAN83C185来实现物理层。   1.2 系统整体框图   虽然Matlab中可以采用相关命令创建一个TCP/IP的模块进行数据的接收和显示,但是与Simulink中TC/IP模块相比较为繁锁,因此选择用后者动态实时显示从以太网发送过来的数据,并可进行相应的处理。本设计主要是完成发送正弦函数数据并在Simulink的接收模块中显示正弦函数图形。系统的整体的框图如图l所示:   2 MicroBlaze的系统硬件配置和Simulink接收块的搭建   2.1 MicroBlaze和系统设计   Xilinx公司的MicroBlaze嵌入式软核是业界优秀的32位软处理器IP核之一,它支持CroConnect总线标准设计集合,具有兼容性和重复利用性,最精简的核只需要400个左右的Slice,MicroBlaze软核内部采用哈佛结构的32位指令和数据总线,便于各个外设和它们之间的信号传输及相应的控制,它有下面的几种互联总线:   (1)处理器本地总线(PLB)。可以将多个PLB主设备和PLB从设备连接到整个的PLB系统中。   (2)高速的本地存储器总线(LMB)。用来取RAM块的同步总线。   (3)XCL总线。是一个高性能的外部内存访问总线。   (4)FSL总线。用于点对点的单向通信总线。使整个系统的软硬件设计,包括系统硬件平台的搭建,驱动程序的配置,Xilkernel操作系统内的核参数配置,软件库的设置,文件系统的生成及外设控制芯片接口配置都可以在EDK(Embedded Development Kit)内完成。EDK的整体开发流程如图2所示。   整个系统设计具体操作如下:   (1)在EDK的集成开发环境XPS(Xilinx Platform. Studio)中,处理器功能单元,系统外围总线结构,终端外设以及相应的地址映射和默认的驱动等都可以在BSB(Base System Builder)中完成。在Microblaze系统的基本构建中其主要设置如下:使用Single Processor System系统,Local Memory为16k,系统时钟频率为62.5MHz,定时器和以太网中断必须连接到处理器的中断控制器上,另外,本设计还用到的GIOP、 Ethernet MAC、DDR、SDRAM控制器等,其间用到的IP驱动,都是用xilinx提供IP的自带默认的相应驱动。   (2)最后XPS自动生成微处理器硬件规范MHS(Microprocessor Hardware SpecificaTIon)和描述软件系统结构的微处理器软件规范MSS(Micro-processor Software Specification)文件以及一些相关的文件。这些文件都可以手动进行修改,从而是使整个系统更加的优化。   (3)生成的系统最后生成bit文件,把其文件下载到目标板子上。   2.2 Simulink接收模块的搭建   Simulink中TCP/IP中的接收模块,其终端的地址,端口的设置要与FPGA上的以太网的IP地址、端口的设置一致,这就为 TCP/IP接收模块指定了要通信的地址即完成了接收模块TCP/IP的相关配置,也就完成了FPGA与Matlab中以太网通信的接收模块的搭建,在 Simulink中,具体的模块设计如图3所示。   通信数据通过此模块可以较直观地用图形动态显示。   3 系统的软件平台及网络协议的实现   3.1 软件内核和协议   本设计主要选择了Xilinx公司的精简嵌入式操作系统Xilkemel,它是Xilinx提供的用于EDK系统的小型、模块化的嵌入式操作系统内核,它支持Microblaze核,与EDK形成的硬件系统无缝连接,具有可定制、CPU资源占用较小、运行速度快等特点,是MicroBlaze嵌入式软核的理想操作系统,其整体的开发流程如图4所示。   网络通讯协议我们采用TCP/IP协议,该通讯协议采用四层(应用层、传输层、互连网络层、网络接口层)层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求,系统分为两部分实现:   第一部分为物理层和MAC层,本设计中用LAN83C185来实现物理层,MAC层由Xilinx公司的Ethernet MAC IP核,并作为整个MicroBlaze系统硬件的一部分在FPGA内实现。   第二部分是运输层和网际层,主要由软件代码实现。TCP/IP网络通信软件允许用户远程注册到另一个系统中,并从一个系统复制文件到另一个系统,虽然Xilkernel本身不带有文件处理系统和TCP/IP协议栈,但它与Xilinx公司的LwIP库具有良好的接口,加上系统支持库 LibXilMFS可形成一个比较完整的嵌入式系统,其特点是内核配置功能都已集成到EDK工具中,使用简单、方便,内核启动静态创建线程,而动态分配内存,可加载或卸载不同功能模块来实现内核的高扩展性。   本设计主要采用LwIP3.OOb(Light weight Internet Protocol stack)协议模块套用于嵌入式系统的开放源代码TCP/IP协议栈中,LwI-P3.00b提供二种API模式:Socket模式和RWA模式,由于 Socket模式开发难度不大,只要启动Xemacif input thread线程,从中断响应的过程中接收数据包并转移到LwlP的tepip thread中就可以。所以基于方便考虑我们决定上层协议部分协议模块采用Socket模式,因此需在MSS文件里对LwIP进行例化(包括相应的 LwIP参数设置)从而减少存储器利用量和代码编写。   3.2 网络通信程序的实现与设计   网络通信程序主要完成从超极终端发送数据,传到Simulink中的ICP/IP接收模块。下面是主要的网络通信程序:   Server_thread()函数是Xilkernel的第一个线程,初始化LwIP协议栈。   ServerAppThread()函数可完成MAC、IP、掩码以及网关的配置,并完成Socket应用。  以太网的配置如下: <-- 2010/7/10 23:03:27--> 当服务器程序开始运行时,主进程就创建一个套接字,     并通过bind函数绑定,用函数listen进行*,之后用lwip_accept进行接收,然后用sys_thread_new启动进程,processGet和Process Command函数分析数据包的内容并应用web serber定义的相关的命令实现相关的应用,write函数实现数据的发送,完成Socket服务并把数据发送给客户端。   Simulink中用TCP/IP模块,remote address参数设定为(211、80、192、237),端口设定为80,即与IP4_ADDR(&ipaddr,211,80,l92,237)和 address.sin port="htons"(80)设为一致,这样就保证了接收与发送网络地址和端口的一致性,保证数据传输的可实现性。设计发送的数据为:t=0:0.25:10,Y=sin(2*pi/10*t),数据列表如下:   对应的Simulink接收模块的数据图形显示如图5所示。   由图5我们可以看出,接收到的数据和发送的数据基本一致。   4 结论   本文研究了TCP/IP通信协议在Xilinx公司FPGA上的实现,介绍了其软硬件的系统组成及原理,通过建立一个例子加以说明和应用这个设计平台,证明了此平台设计可行性,并且完成了FPGA与Matlab的通信,为数据的实时显示及实时控制提供了很好的平台和设计方法,本设计也完成了 CPU软核设计的实现,其功能可根据需要进行定制,非常灵活,不但引入了软核处理器和嵌入式操作系统Xilkernel,而且应用了Lw-IP_300b 栈,使用大量的IP核,这样大大降低了系统平台的复杂度,缩短了开发的周期,其软硬件部分的设计分离的设计架构,使得整个系统修改和重构更加方便,真正实现了所谓的片上系统。而本设计采用Matlab接收数据,并且可利用其强大的数据采集、处理、仿真、实时动态显示的功能来更好完成数据分析研究。

    时间:2012-09-02 关键词: FPGA tcp matlab ip通信

首页 上一页 6 7 8 9 10 11 12 13 14 15 下一页  尾页 
发布文章

技术子站

更多

项目外包

更多

推荐博客