安装硬件支持包:我是新买的电脑,所以matlab的版本是2020a,各位选择的话,一定要选择14b之后的,如果配置吃得消,就选最新的把。
打开matlab>点击附加功能>获取硬件支持包,选择安装硬件支持包:Simulink Support Package for Arduino Hardware 。如图第三个安装包。
因为美国网络问题可能出现各种安装错误的问题,这个不用我多说怎么解决了吧。
安装好后就可以开始使用了
三.Arduino与simulink的连接
在第一次使用Arduino与simulink的控制系统设计时,需要进行一些步骤的连接和参数的调整。首先打开matlab 2020a,因为我是新的本子,所以装的最新的,但是用起来也不是很习惯。第一次需要将matlab的当前文件夹换一下,我的默认是 C:Program FilesPolyspaceR2020abin
但是在这个目录下,你会发现,使用simulink进行编译的时候会出现下面的错误
Your current working folder is: C:Program FilesPolyspaceR2020abinSimulink does not permit you to modify the MATLAB installation area. Please change to a working folder that is not in the MATLABinstallation area and re-try the previous command.如下图
我是在桌面上新建一个文件夹使用的。
好的,接下来就是打开Simulink library browser进行代码块的拖拽了,在simulink library中找到 Simulink support package for Arduino Hardware,点击进入,在Common中找到digital output 块,如下图。
使用过arduino 的小伙伴都知道,Arduino 在13号引脚上,是自带一个LED灯的,所有的Arduino的课程的第一个都是blinker,就是闪烁的LED灯。选择这个块以后,将号码改成13号,或者自己搭建一个LED灯的电路,记得串联一个470Ω的电阻用来限流。
给这个块一个脉冲信号,使用Pulse Genarator块,在参数设置上,一共四个参数,从上到下,分别是1,3,50,0。一会解释。如图
图片中的左侧脉冲的参数设置。
第一个参数是脉冲的峰值大小,使用1就可以的。第二个是一个pwm的周期的时间。选择3s。第三个是脉宽的占空比,选择50%,这样的灯闪烁是亮灭时长对称的。
第四个是相位延迟,当数值为0的时候,刚开始的初始值为1,也就是一开始就发脉冲。 当设置为数值t的时候,此初始脉冲会相应的延迟时间t,可以使用默认的0。
到这里,所有的块的设置就完成了。接下来要对硬件的相关参数进行设置了
右击simulink空白处,点击configuration parameters进入下面的界面。
修改下面几个参数。在单片机的控制中,一般希望他的运行时间是无穷的。所以stop时间选择修改为inf。求解器solver要修改成discrete(no continuous states)。下一步修改Hardware Implementation 中的Hardware board选择Arduino uno。下面的host-board connection可能需要改成手动的,我以前的台式机就是识别不出来,有使用山寨的ch340的uno板子也可能识别不出来。这个推荐使用Atmega 64作为串口芯片的Arduino(国产的也就贵几块钱)。
在过去的版本中,可以使用normal,external的模式进行控制系统的运行。但是在2020版本的matllab已经找不到这几个选择了。只有部署到硬件,和正常的run。所谓的部署到硬件是直接让arduino自己运行,matlab直接将simulink生成的代码直接烧录到单片机中。另一种run,是simulink自动生成一段串口通讯的代码,实现实时的交互,可以在运行的过程中不断修改单片机的相关参数,比如led灯的脉宽改变亮度。但是同时,这样的操作会受限于串口通讯的带宽。根据《simulink与低成本硬件及机电一体化》这本书中说到的,在外部模式下运行,模型的最小运行步长是30ms,求解器的步长需要设置为50ms(matlab2013b)版本下。我在这里不推荐大家使用这样的方式,除非是做一些简单的实验课程。因为很多自动化的控制系统编码器,后者步进电机的控制采样时间可能需要至少2-5ms的时间。
四.运行结果
安装硬件支持包:我是新买的电脑,所以matlab的版本是2020a,各位选择的话,一定要选择14b之后的,如果配置吃得消,就选最新的把。
打开matlab>点击附加功能>获取硬件支持包,选择安装硬件支持包:Simulink Support Package for Arduino Hardware 。如图第三个安装包。
因为美国网络问题可能出现各种安装错误的问题,这个不用我多说怎么解决了吧。
安装好后就可以开始使用了
三.Arduino与simulink的连接
在第一次使用Arduino与simulink的控制系统设计时,需要进行一些步骤的连接和参数的调整。首先打开matlab 2020a,因为我是新的本子,所以装的最新的,但是用起来也不是很习惯。第一次需要将matlab的当前文件夹换一下,我的默认是 C:Program FilesPolyspaceR2020abin
但是在这个目录下,你会发现,使用simulink进行编译的时候会出现下面的错误
Your current working folder is: C:Program FilesPolyspaceR2020abinSimulink does not permit you to modify the MATLAB installation area. Please change to a working folder that is not in the MATLABinstallation area and re-try the previous command.如下图
我是在桌面上新建一个文件夹使用的。
好的,接下来就是打开Simulink library browser进行代码块的拖拽了,在simulink library中找到 Simulink support package for Arduino Hardware,点击进入,在Common中找到digital output 块,如下图。
使用过arduino 的小伙伴都知道,Arduino 在13号引脚上,是自带一个LED灯的,所有的Arduino的课程的第一个都是blinker,就是闪烁的LED灯。选择这个块以后,将号码改成13号,或者自己搭建一个LED灯的电路,记得串联一个470Ω的电阻用来限流。
给这个块一个脉冲信号,使用Pulse Genarator块,在参数设置上,一共四个参数,从上到下,分别是1,3,50,0。一会解释。如图
图片中的左侧脉冲的参数设置。
第一个参数是脉冲的峰值大小,使用1就可以的。第二个是一个pwm的周期的时间。选择3s。第三个是脉宽的占空比,选择50%,这样的灯闪烁是亮灭时长对称的。
第四个是相位延迟,当数值为0的时候,刚开始的初始值为1,也就是一开始就发脉冲。 当设置为数值t的时候,此初始脉冲会相应的延迟时间t,可以使用默认的0。
到这里,所有的块的设置就完成了。接下来要对硬件的相关参数进行设置了
右击simulink空白处,点击configuration parameters进入下面的界面。
修改下面几个参数。在单片机的控制中,一般希望他的运行时间是无穷的。所以stop时间选择修改为inf。求解器solver要修改成discrete(no continuous states)。下一步修改Hardware Implementation 中的Hardware board选择Arduino uno。下面的host-board connection可能需要改成手动的,我以前的台式机就是识别不出来,有使用山寨的ch340的uno板子也可能识别不出来。这个推荐使用Atmega 64作为串口芯片的Arduino(国产的也就贵几块钱)。
在过去的版本中,可以使用normal,external的模式进行控制系统的运行。但是在2020版本的matllab已经找不到这几个选择了。只有部署到硬件,和正常的run。所谓的部署到硬件是直接让arduino自己运行,matlab直接将simulink生成的代码直接烧录到单片机中。另一种run,是simulink自动生成一段串口通讯的代码,实现实时的交互,可以在运行的过程中不断修改单片机的相关参数,比如led灯的脉宽改变亮度。但是同时,这样的操作会受限于串口通讯的带宽。根据《simulink与低成本硬件及机电一体化》这本书中说到的,在外部模式下运行,模型的最小运行步长是30ms,求解器的步长需要设置为50ms(matlab2013b)版本下。我在这里不推荐大家使用这样的方式,除非是做一些简单的实验课程。因为很多自动化的控制系统编码器,后者步进电机的控制采样时间可能需要至少2-5ms的时间。
四.运行结果