马上注册 登录
中文乐高 返回首页

史上最强的个人空间 https://bbs.cmnxt.com/?28630 [收藏] [复制] [分享] [RSS]

日志

关于LEGO与MATLAB在大学中的影响

热度 2已有 3475 次阅读2012-8-5 20:19 | MATLAB, Simulink, Stateflow, NXT

在大学中肯定缺少不了MATLAB的存在,因为MATLAB涉及的领域真的很广,你如果翻翻核心文学,很多都是用MATLAB软件的。也因此证明了世界是数学的,不管是数学建模,还是通信,还有控制。如果用stateflow去建立控制器比想想要快的多,因为说白了,控制其实就是状态机组成的,而控制器算法就是PID。而MATLAB把这两方面都进行了优化,简单说这几年MATLAB就是更能让客户,不会因为数学公式不会,则放弃MATLAB,而是让产品更具有自动化,客户拿来就能用。
Simulink:操作更是如此,1000多个模块,你就都看看了解了解,就能搭建模型。
MATLAB工具箱:我现在用MATLAB基本上编代码很少了,因为MATLAB把工具箱都变成了GUI界面,就是跟VB一样,参数都是选择,最好还能一键M代码生成,对生成的代码改改就是自己的代码。
其实MATLAB那个PID优化有个学名,叫做一键PID优化,Stateflow中就连if-else都不用自己去写,就能完成编程工作。
如果学的深了,其中Simulink有个帮助,就是特别简单的弹簧阻尼震动的例子,你可以写微分方程做,也可以直接应用Simulink中的弹簧模块去做。甚至还可以自己在CAD软件画一个系统,然后自动变成Simulink模块。
近两年MATLAB推出了MATLAB Coder,就是从M语言生成C代码,把它和Simulink Coder合并叫Embedded coder。就是各种代码自动生成,而且能优化。说白了谁都知道MATLAB编程简单,还能生成C代码。Simulink可能接触的比较少,因为容易出错,书上介绍的也少,但是Simulink优点就是动态仿真,基于时间的,这是Matlab做不到的。Stateflow属于Simulink一个模块,但是非常出名的原因是它和Simulink有很大的区别,就相当于一个分段函数的分段点。我曾经用Simulink生成了一段代码,点选优化选项和不点选优化选项,差别是33%。而且生成的代码也不可能有出错的可能性。

LEGO NXT在大学中可能就不是那么常见了,但是大学常见的是机器人比赛,我们学校就有一个因为机器人比赛进清华了。但是LEGO的优点是不能泯灭的,它可以进行硬件电路的快速原型建立,给一些想学编程,但是不想学电路知识,不想看许许多多用户手册的人提供了很好的条件。因为现在大学,你除非买现成的开发板,才能自己编编程序,还是验证性的,而且显示的也没有机器人这么直观。否则必须自己学习画PCB板子,自己调试。现在编程的人一个月至少6000,画板子的一个月至少3000元。

最后说说MATLAB与LEGO NXT的联系。MATLAB 2012a开始完全支持LEGO NXT硬件。也就是能生成嵌入式代码直接给NXT运行。这样就完美的把电路原型设计简化,把底层驱动编写简化,完全让学生学习模型的设计,而不是迷失于复杂代码之中。设计出的模型直接生成代码做验证,不会有代码出错的可能性。现在什么最赚钱就是模型的设计,算法的开发,如果孩子能提前体会MATLAB设计流程,这才能对以后人生有重大的帮助。
展望未来一下,国外很多都是用MATLAB开发汽车,但是国内却很少,不过我相信如果中国发展道路一定会跟外国靠拢的。而且MATLAB现在可以对DSP,ARM,MSP430等生成优化的代码,对任何的板子都可以生成嵌入式代码,而且对特定板卡给了底层驱动。

我希望大家能多多使用MATLAB去学习LEGO NXT而不是去玩玩。

路过

雷人

握手

鲜花

鸡蛋

全部作者的其他最新日志

发表评论 评论 (4 个评论)

回复 imlucky1 2012-8-11 14:37
lego NXT还是很好玩的,玩是少不了的。MATLAB可以怎么着把这个玩搞高级一点,玩出更多名堂出来。。。
回复 史上最强 2012-8-11 14:50
imlucky1: lego NXT还是很好玩的,玩是少不了的。MATLAB可以怎么着把这个玩搞高级一点,玩出更多名堂出来。。。
我现在能想出更高级的就是,如果你lego做好了,那么当上大学参加机器人比赛的时候,搭建好实物模型后,matlab也会生成对应的单片机,DSP,FPGA等代码。而且matlab还有一种功效就是,不管现在什么编程语言都无法做到虚拟仿真吧。必须上板验证,但是matlab可以做到,虚拟仿真,节省大量时间花在现实验证上面。
回复 史上最强 2012-8-11 15:04
imlucky1: lego NXT还是很好玩的,玩是少不了的。MATLAB可以怎么着把这个玩搞高级一点,玩出更多名堂出来。。。
其实你也看过数独那个机器人吧。如果用matlab做就会比较简单了。数字识别就用matlab的神经网络工具箱,直接生成simulink模块,数独算法,也可以很快编出来。控制可以利用stateflow编写,控制算法利用PID算法。
回复 imlucky1 2012-8-11 16:14
唔。。。找个时间,要和儿子试着做一下。也许明年暑假。

facelist

您需要登录后才可以评论 登录 | 马上注册

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2026-11-14 04:02 , Processed in 0.018730 second(s), 20 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

返回顶部