Elementor #504

啥是matlab?(上 前世今生)

听到matlab这个名词,你会最先想到什么?反正我第一次听到这个词的时候我是挺懵的,不知道大家有没有同样的感受?第我一次听到这个词,好像是在高三的名词交流活动上,听一个学姐说学自动化或者计算机专业大一会有一门课教matlab。当时我的一个感受就是好懵,Matlab到底是个啥?是一个语言环境还是一个APP?是用于编程的还是用于数字计算呢?反正当时这个问题困扰了好久,直到真正接触了这个平台以后,才有了一个直观的认识。那今天我就用这篇文章带大家好好的认识一下什么是matlab,并讲一下他的前世今生,是什么样的一个契机让这一款超级强大,90%以上的工程领域都在使用的一个数学计算应用仿真工具诞生的。

在正式聊MATLAB这款科学计算软件时,先让我们从它的名字开始琢磨一下它是做什么的。MATLAB,全称Matrix Laboratory,即“矩阵实验室”,这个名字直观地反映了其最初的设计目的和核心功能——专注于矩阵运算。矩阵作为数学和科学计算中的基础工具,它的重要性不言而喻,而MATLAB正是围绕这一核心,构建了一个集科学计算、数值分析、矩阵计算、数据可视化及交互式程序设计于一体的计算环境。

MATLAB的历史可以追溯到20世纪70年代,当时美国新墨西哥大学的计算机科学系主任Cleve Moler(但我还是比较喜欢叫他的译名莫纳)为了减轻学生编程的负担,编写了最早的MATLAB。那时,矩阵计算是许多科学和工程领域不可或缺的一部分,但传统的编程语言如FORTRAN(是世界上最早出现的计算机高级程序设计语言之一),对于非专业程序员来说学习难度较大。莫纳教授的初衷是为学生们提供一个更易于使用的矩阵计算工具,让他们能更专注于问题的核心,而非编程细节。

最初,MATLAB只是一个简单的矩阵运算工具,用FORTRAN编写,主要用于课堂教学。然而,随着其功能的不断完善和用户的广泛好评,MATLAB逐渐引起了业界的关注。1984年,莫纳教授与Jack Little和Steve Bangert合作成立了MathWorks公司,正式将MATLAB推向市场,开启了其商业化进程。

自商业化以来,MATLAB经历了多次重要的版本更新和功能扩展。MathWorks公司不断增加新的工具箱(Toolbox),以覆盖更多数学和工程领域的需求。这些工具箱不仅扩展了MATLAB的应用范围,还极大地提高了其解决问题的能力和效率。从数值分析、信号处理、控制系统设计,到图像处理、深度学习、金融建模,MATLAB逐渐成长为一个功能全面的科学计算平台。在发展过程中,MATLAB还引入了许多创新特性,如面向对象编程(OOP)、并行计算支持、图形处理功能的增强等。这些特性使得MATLAB不仅能够处理复杂的数学和工程问题,还能够以更高效、更直观的方式展示和分析数据。此外,MATLAB还提供了丰富的预定义函数库和易用的编程环境,包括工具箱、编辑器、调试器等组件,极大地提高了编程效率。比如我现在手上正在使用的这个版本是2022a,就是2022年上半年更新的,这款里面一共有102个插件。可以说是包括了从数学计算到电气调试到机器人学正逆解运算领域的全覆盖。

那我们聊完他的历史之后,有些小伙伴们都要问了,那我们为什么要去学matlab这门课程呢?Matlab作为一个高级的计算处理工具是用于前沿的技术以及深度计算使用的,那像我们本科刚入学阶段即使放眼整个本科教育阶段可能都不会遇到多么复杂的计算需求。那我们去学Matlab有什么用呢,或者说我们为什么要这么早的去学习它?

那让我去解释的话我觉得理由是非常充分的,第一点就是因为学习matlab的下限非常低。在上文也提到了matlab中使用的语言是进行过封装的,它的使用难度是非常低的,基本只要记住几个运算符和大概十几个命令语句,就可以比较熟练的使用它的最基本功能矩阵运算了,而且相比较于Python和c语言他没有严格的语法要求,可以说是对于零基础的小白太友善了。所以很多学校都会拿matlab作为计算机初步这门课程的教学载体去教一些计算机原理,常识,也通过使用matlab去讲述一些编程思想,计算思想。第二点,我觉得就是学习它的主要目的就是与大一上学期的线性代数课程相匹配,用matlab作为一个计算工具去测试矩阵方程,可以帮助我们很好的理解矩阵运算的原理,解析行列式的变换。那第3点呢我觉得就是matlab将是未来机器人研究的核心计算平台。因为未来AI的成熟,并将会让人形机器人成为行业的主流,这必然牵扯到了大量的运动学正解运算,这种大量的计算可不能跟之前的工业机器人或者说是传统的轮式动平台,四足机械狗的计算量相比,毕竟原来的机械臂可能最多也就6~7个关节,但人形机器人的一条腿或者一只胳膊,它的自由度可能都达到了十几个,它的姿位调节时计算所需要的矩阵数量以及计算复杂程度不是手算或者说是常规计算工具所能达到的,这时候matlab里面的计算插件就派上了用场,接插件不仅仅可以输出关节所需要的矢量数据,还可以用可视化的仿真软件展示出来。所以说matlab在未来肯定会陪伴机器人工程自动化这些专业的同学们很久很久。提早的接触也是可以帮助我们有足够的时间去消化它的一些基础用法,为未来的深入使用奠定一定的基础。

可3D打印支线客机模型分享

可3D打印支线客机模型分享

          在开学前几天的忙碌中,我抽空随手画了一个支线客机可3D打印的模型。我并没有刻意按照某一个具体的型号来设计,完全是凭着自己的感觉,觉得怎么好看就怎么画。画这个模型的主要目的是想做一个有内构模型,用于Steam课程的教学演示。我想给同学们展示一下客机的基本结构,特别是需要有一定的客舱内饰。为了让客舱的结构个个模块的排布更加直观展现出来,因此我特意增加了机身的宽度,不过这也让机身看起来有点短粗短粗的,不太成比例。

         在设计之初,我就明确了这个模型是为了教学演示而制作的,所以一定要加工成实体。因此,我在设计时充分考虑了加工的便捷性。整架飞机都可以使用3D打印技术来生产制造。其中,机身以及各个尾翼、机翼的主体部分对精度要求不高,可以使用FDM 3D打印技术进行加工。而客舱的座椅、内饰以及厨房、卫生间等部分则需要使用精度更高的光固化3D打印加工方式。在设计所有零件时,我都考虑了3D打印机的尺寸和精度,确保最大零件不超过25cm,这样市面上绝大部分3D打印机都可以直接加工。同时,1.2mm和1.6mm的壁厚也保证了0.4mm的喷嘴可以将墙壁填充满,确保机身拥有足够的刚性。此外,我还对座椅角度进行了调整,并删减了一些细节,这样大大减少了打印时所需要的支撑,尽可能减少了耗材的使用,降低了成本。

         除此以外也有很多的细节并没有完全制作出来,比如说舱门与机身之间的连杆部分,发动机的内部构造,起落架……最后也欢迎大家为这款模型补充更多的细节。还是老规矩,三维图纸放到下面的链接了,大家可以点击下载。

嵌入式开发下(开发板硬件设计)

嵌入式开发下(开发板硬件设计)

在电子工程领域,设计电路板(PCB)是一项至关重要且极具挑战性的任务,它不仅是硬件设计的基础,更是连接电路理论与实践的桥梁。PCB设计融合了模拟电子(模电)知识、数字电子原理以及先进的计算机辅助设计(CAD)技术,是现代电子产品开发不可或缺的一环。

模电学习是构建PCB设计的基石。模拟电子技术,作为电子工程学科的重要组成部分,主要研究连续变化的物理量(如电压、电流)的处理与控制。在PCB设计中,模电知识尤为关键,因为它直接关系到信号的放大、滤波、转换等关键环节。设计师需深入理解放大器的工作原理、反馈机制、频率响应特性以及噪声抑制等概念,以确保电路在PCB上的实现既稳定又高效。模电学习不仅限于理论学习,更需通过实践加深理解。例如,通过搭建简单的电路模型,如运算放大器电路、RC/RL滤波电路等,观察并分析其输入输出特性,这样的经验对于后续PCB布局布线时预测和解决问题至关重要。

随着科技的进步,PCB设计软件从最初的简单绘图工具发展到如今的集成化、智能化平台,极大地提高了设计效率和设计质量。目前市面上的pcb设计软件种类十分丰富像Altium Designer,KiCad,Cadence Allegro ,嘉立创EDA。

就个人而言,我常将Altium Designer(AD)和嘉立创EDA这两个搭配使用。然后接下来就主要要和大家聊一聊这两个pcb设计软件并分享一下具体感受。

首先来说Altium Designer。Altium Designer是一款由Altium公司开发的电子产品开发系统,它集成了原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等多种功能于一体,为电子工程师和设计师提供了全面的设计解决方案。Altium Designer作为Altium公司的旗舰产品,凭借其强大的功能和灵活的设计环境,赢得了广泛的用户认可。在全球市场内,Altium Designer具有较高的市场占有率。

我之前存在AI写过一个文段儿让他简述一下为什么Altium Designer这么的受欢迎,相比较其他的PCB设计软件它有怎样的一个优势?AI给我的一个回答有三大点1. 强大的集成性   2. 丰富的库资源3. 智能化设计工具以及强大的仿真和验证功能。但其实前两个点我感觉前两个点并不能说是他的一个特点,因为这两个点基本上是每一款设计软件能在市面上流通的一个最基础要求,要说哪款软件最能说得上是拥有丰富的资源库,我觉得那嘉立创上万种可选型的封装库,与一站式的加工与购买毫无疑问的当选第一名。我觉得大家之所以选择AD或者说是我为什么这么喜欢用AD的原因是在于它超级智能化的设计工具。以及强大的仿真功能和验证功能。

AD内置了众多智能化设计工具,如自动布线器、规则检查器以及交互式布线助手等。这些工具不仅能够大幅度减少手动操作的工作量,还能通过智能算法优化布线结果,提高设计的可靠性和美观度。特别是自动布线器,在遵循预设规则的前提下,能够迅速生成高质量的布线方案,极大地节省了我的时间。AD的自动布线近两年来发展应该可以说是非常迅速。布线成功率非常高,尤其是在20版本以后的自动布线几乎可以完全代替人工(但这仅仅只在不考虑信号干扰的前提下)。所以像我做的这些开发板或者是板卡基本都用自动布线。因为我画的绝大部分板子很少会涉及到高频线。有的话其实也就晶振电路和芯片外围电路部分会涉及到一些,需要特别注意一下信号干扰。其他部分的串口连接只要是能连通其实就够了,所以在设计这些板卡的时候,我更偏向用AD,就是因为它比较强大的自动布线功能可以节省大量的时间。一般我都会先手动把晶振电路连完。之后再用自动布线连接其他线路,最后再稍微的检查一遍是否有线路交叉或者是间距过小就可以使用了。通过这样方式设计的PCB可以节省2/3以上的时间。所以对于设计者来说,自动布线功能其实有的时候还是挺有用,挺重要的。即使如果涉及到大量的高频线无法使用自动布线进行布线的话,还可以用这个功能检验所画板子的体积是否足够,一般都会在放置完元器件之后自动布线跑一下,看板子上面是否能将全部线路连接起来,如果不够的话,再去修改板型或者是层数。

我们再来聊一下AD的一个交互设计体验。我身边绝大部分从事电子信息工程类学习或者是此类教学工作老师的一个感受来看,Altium Designer16是公认的最好用的一个版本。16版的交互界面会比之后的版本更加流畅,侧边栏的一个使用体验也会更加方便。但其实这得看个人的一个使用喜好。从我的个人的一个感受来看的话,其实16版本之前的一个交互界面确实很舒服,但自动布线以及检验功能就要相比之后版本要差很多。所以具体使用哪个版本的话还是根据自己的一个需求和使用习惯决定。

接下来我们再聊一下嘉立创。今天主要了解一下他们公司设计PCB的软件嘉立创EDA(白嫖板子,打样流程会单独再出一篇文章)。

嘉立创eda是目前为数不多的完全免费的设计平台。它的发展历史其实并不长,大概是在10年代才逐渐开始面向大众使用。所以他的一个使用操作体验,我觉得相比较已经发展将近40年的AD来说肯定是要有一定差距的。尤其是在智能检验以及自动布线上面会感到明显的差距。但这并不意味着嘉立创eda不是一款优秀的PCB设计软件。嘉立创eda给我最大的感受就是他的元器件库真的太丰富了。因为这款软件是可以联网的,嘉立创将他们供应链里面全部元器件的封装都发布在库中,使用时直接搜索拖拽即可。所以并不用像AD一样,每次需要新的元器件时都要从官网或者是第三方软件中下载。并且使用嘉立创eda画完图之后可以直接用他的打样平台下单板子和元器件,不用再导出其他文件了。确实非常的方便。而且嘉立创eda还支持导入用其他软件所设计的电路图。所以一般我都会用奥designer 设计完板子之后导入到嘉立创eda中。之后再检查对应的元器件封装是否有误,就可以一键点击下单。之后就可以等待元器件以及板子的送达了。当然如果拿到了嘉立创的smt贴片券话也可以直接让工厂贴好片。

之前我也问过一些相关领域的从业人员,他们平时的一个设计工作绝大部分都是在个人电脑上的AD进行的。(正版价格很贵,初创公司或小型企业很难支持,个人使用盗版不会被起诉。)之后导入以公司名称注册的嘉立创平台进行打样任务。

Ok,那以上就是我今天想和大家分享的内容了。

 

未来太空车设计制作挑战(太空车移动平台越障能力)

未来太空车设计制作挑战(太空车移动平台越障能力)

该项目是一个太空车模型设计与制作项目,旨在通过缩比模型展示实际太空探测任务中的工程挑战和技术应用。项目包括太空车结构与目的学习,结构设计、控制器选型与编程、动力系统设计、红外遥控系统设计以及悬挂装置设计等方面的内容。学生们将使用提供的基础硬件套件包,结合自身创意进行太空车模型的制作,并在此基础上进行进一步的创作开发。通过该项目,学生们将学习到硬件制作、程序编写、遥控系统设计等技能,并展示他们对月球探测技术的理解和应用能力。最终的预期成果是每组完成一台缩比例太空车模型,具有远程操控功能和翻越复杂地形的能力,可为相关研究和教育提供实物展示,促进对月球探测技术的理解和探索。

基本信息

项目名称

未来太空车设计挑战

项目持续时间

5-20小时(可根据需求定制课时)

核心驱动问题

太空车移动平台越障能力

学科

数学,信息技术,物理,工程学

项目年级

初一至初三

课程内容

一.课程引入

 1.太空探索的意义。

2.太空车的角色。

3.组建团队,分成5个小组,确定团队成员、分工、公约。

二.太空车基础知识

1.太空车的类型。

2.无人太空车的组成。

3.悬挂系统设计。

4.动力系统设计。

5.学习红外遥控系统设计。

6.学习 mixly 编程。

三.设计太空车

 1.发布任务。

 2.分发设计方案,设计图。以及太空车基础套件儿。

3.各小组进行方案设计,绘制设计图。列出还需要的额外零件。

 4.老师下到各小组进行一对一辅导。

四.制作,测试阶段

1.领取改造使用的套件外的材料。

 2.根据提供的基础硬件套件包,并结合自己的设计进行太空车的制作。

3.用 mixy,编写控制程序并进行调试,答辩 PPT 制作。

五.项目汇报与越障竞赛。

1.各小组进行项目汇报,每组5分钟,讲述设计思路以及实现的功能。老师进行评分。

2.障碍越野赛,每组2次机会,记录行进完赛道所用的时间。并换算成相应分数。

 3.跟据总分进行排名,并颁奖。