树莓派上部署的SIL和PIL验证
这个例子展示了如何通过使用软件在循环(SIL)和处理器在循环(PIL)执行来验证生成的代码。在本例中,PIL执行使用树莓派®硬件板。
运行MATLAB代码
这个例子使用了这些支持文件:
kalman01.m
包含MATLAB®函数kalman01
对于卡尔曼估计。position.mat
包含关于对象轨迹的输入数据。test01_ui.m
是装载输入数据的MATLAB脚本position.mat
进入工作区,调用kalman01
利用卡尔曼滤波算法估计目标位置,最后调用plot_trajectory
绘制物体实际轨迹和卡尔曼估计的函数。plot_trajectory.m
包含了plot_trajectory
上面描述的函数。
要测试MATLAB代码,请运行脚本test01_ui
.
test01_ui
当前地块保持
最新剧情公布
在显示的图中,您可以看到卡尔曼估计非常接近物体的实际轨迹。测试数据包括两个位置上的突变或不连续。这些不连续检验了卡尔曼滤波器可以快速地重新调整它的估计,并重新精确地跟踪目标。
有关更多信息,请参见MATLAB卡尔曼滤波算法的C代码生成.
软件在循环(SIL)执行
在SIL执行中,通过MATLAB SIL接口,代码生成器在开发计算机上编译和运行库代码。
配置SIL执行
创建一个编码器。EmbeddedCodeConfig
对象生成静态C库。设置VerificationMode
财产“银”
.可选地,为SIL执行启用Microsoft®Visual Studio®调试器。
Config = code . Config (“自由”);配置。VerificationMode =“银”;%的配置。SILDebugging = true;
检查生产硬件设置是否为默认值“通用->MATLAB主机计算机”
.
disp (config.HardwareImplementation.ProdHWDeviceType);
通用->MATLAB主机计算机
生成静态库并运行SIL执行
使用codegen
命令与配置对象配置
的静态C库和SIL接口kalman01
函数。要执行SIL执行,只需调用生成的SIL接口kalman01_sil
在MATLAB命令行。
在codegen
命令,以及
选项使您能够运行测试脚本test01_ui
打电话给kalman01
函数替换为对生成的SIL接口的调用kalman01_sil
.
codegen配置配置arg游戏{0 (2, 1)}kalman01报告以及test01_ui
运行测试文件:'test01_ui',带有MEX函数'kalman01_sil.mexw64'。要终止执行:清除kalman01_sil
最新剧情公布
代码生成器创建这些输出文件夹:
codegen \ lib \ kalman01
-静态库kalman01
.codegen \ lib \ kalman01 \硅
的SIL接口代码kalman01
.
方法的输出与此运行的输出相匹配kalman01
MATLAB函数。
在SIL执行期间调试代码
如果启用Microsoft Visual Studio调试器,则运行测试文件将打开Microsoft Visual Studio IDE,其中在开始处带有调试器断点kalman01_initialize
而且kalman01
功能。
您可以使用调试器特性来观察代码行为。例如,您可以逐级遍历代码并检查变量。
结束调试会话。
删除所有断点。
按“继续”按钮(F5).
SIL执行一直运行到完成。
终止SIL的执行
终止SIL执行过程。
清晰的kalman01_sil;
停止“kalman01”的SIL执行
也可以使用命令清晰的墨西哥人
,它从内存中清除MEX函数。
Windows®平台使用说明
在Windows平台上执行SIL的使用注意事项:
Windows防火墙可能会阻止SIL的执行。若要允许执行,请使用“Windows安全警报”对话框。以Windows 7为例,单击允许访问.
假设MATLAB当前的工作目录(文件夹that
松材线虫病
是UNC路径(例如,\ \ server \ \ b \ c
)在Windows平台上。如果您从这个路径启动一个SIL可执行文件,那么SIL可执行文件的启动位置可能是不可预测的,并且与MATLAB当前工作目录不同(例如,C:\Windows
).要解决这个问题,使用UNC路径的映射网络驱动器作为您的MATLAB当前工作目录。
循环中处理器(PIL)执行
在PIL执行中,通过MATLAB PIL接口,代码生成器在目标处理器或等效指令集模拟器上交叉编译并运行生产目标代码。在您运行一个PIL执行之前,您必须为您的目标设置一个PIL连接配置。在本例中,PIL执行使用树莓派®硬件板。
配置PIL执行
创建一个编码器。EmbeddedCodeConfig
对象生成静态C库。设置VerificationMode
财产“公益诉讼”
.设置硬件
属性设置为树莓派的硬件板配置对象。
Config = code . Config (“自由”);配置。VerificationMode =“公益诉讼”;配置。硬件= code . Hardware (“树莓π”);
如果您是第一次使用Raspherry Pi硬件板,您还必须指定用户名
,DeviceAddress
,密码
的属性配置。硬件
参数。
生成静态库并运行PIL执行
使用codegen
命令与配置对象配置
的静态C库和PIL接口kalman01
函数。要执行PIL执行,您可以简单地调用生成的PIL接口kalman01_pil
在MATLAB命令行。
在codegen
命令,以及
选项使您能够运行测试脚本test01_ui
打电话给kalman01
函数替换为对生成的PIL接口的调用kalman01_pil
.
codegen配置配置arg游戏{0 (2, 1)}kalman01报告以及test01_ui
生成的elf的位置:/home/ Pi / matlab_ws / r2021b /c / users /aghosh/ documents / examples /ecoder-ex65983262/codegen/lib/kalman01/pil代码生成成功:查看报告运行测试文件:'test01_ui'与MEX函数'kalman01_pil.mexw64'。“树莓派”启动应用程序:“codegen\lib\kalman01\pil\kalman01”。清除kalman01_pil ###正在启动应用程序kalman01.elf…
最新剧情公布
代码生成器创建这些输出文件夹:
codegen \ lib \ kalman01
-静态库kalman01
.codegen \ lib \ kalman01 \公益诉讼
的PIL接口代码kalman01
.
方法的输出与此运行的输出相匹配kalman01
MATLAB函数。
Windows防火墙可能会阻止PIL的执行。若要允许执行,请使用“Windows安全警报”对话框。以Windows 7为例,单击允许访问.
终止PIL执行
终止PIL执行过程。
清晰的kalman01_pil;
主机应用程序产生以下标准输出(stdout)和标准错误(stderr)消息:
也可以使用命令清晰的墨西哥人
,它从内存中清除MEX函数。
另请参阅
codegen
|coder.config
|编码器。EmbeddedCodeConfig