在树莓派上部署的SIL和PIL验证
这个例子展示了如何通过使用软件在循环(SIL)和处理器在循环(PIL)执行来验证生成的代码。在本例中,PIL执行使用了Raspberry Pi®硬件板。
运行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 =“银”;%的配置。sildebug = 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来终止执行:清除kalman01_sil
最新剧情公布
代码生成器创建以下输出文件夹:
codegen \ lib \ kalman01
-静态库kalman01
.codegen \ lib \ kalman01 \硅
- SIL接口代码kalman01
.
方法的输出与此运行的输出匹配kalman01
MATLAB函数。
SIL执行期间的调试代码
如果启用microsoftvisualstudio调试器,则运行测试文件将打开microsoftvisualstudio IDE,在的开始处使用调试器断点kalman01_initialize
而且kalman01
功能。
您可以使用调试器特性来观察代码行为。例如,您可以逐级检查代码和变量。
结束调试会话。
删除所有断点。
按“继续”键(F5).
SIL执行运行到完成。
终止SIL执行
终止SIL执行过程。
清晰的kalman01_sil;
###停止“kalman01”的SIL执行
您也可以使用该命令清晰的墨西哥人
,从内存中清除MEX函数。
Windows®平台使用说明
在Windows平台上执行SIL的使用注意事项:
Windows防火墙可能会阻止SIL的执行。要允许执行,请使用“Windows安全警报”对话框。以Windows 7操作系统为例,单击允许访问.
假设MATLAB当前工作目录(即
松材线虫病
显示)为UNC路径(例如,\ \ server \ \ b \ c
)在Windows平台上。如果从此路径启动SIL可执行文件,则启动SIL可执行文件的位置可能是不可预测的,并且与MATLAB当前工作目录不同(例如,C:\Windows
).要解决此问题,请使用UNC路径的映射网络驱动器作为MATLAB当前工作目录。
在环处理器(PIL)执行
在PIL执行中,通过MATLAB的PIL接口,代码生成器在目标处理器或等效的指令集模拟器上交叉编译并运行生产对象代码。在运行PIL执行之前,必须为目标设置PIL连接配置。在本例中,PIL执行使用了Raspberry Pi®硬件板。
配置PIL执行
创建一个编码器。EmbeddedCodeConfig
对象生成一个静态C库。设置VerificationMode
财产“公益诉讼”
.设置硬件
属性设置为树莓派的硬件板配置对象。
Config = code . Config (“自由”);配置。VerificationMode =“公益诉讼”;配置。硬件= code . Hardware (“树莓π”);
如果您是第一次到您的拉斯派硬件板,您还必须指定用户名
,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'。函数“kalman01”的连接配置:“树莓派”###启动应用程序:“codegen\lib\kalman01\pil\kalman01”。clear 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