matlab仿真用什么cpu,为自定义目标配置处理器在环 (PIL) 仿真

准备工作

稍后在此示例中,您要将文件夹添加到搜索路径。创建文件夹路径。

sl_customization_path = fullfile(matlabroot,...

'toolbox',...

'rtw',...

'rtwdemos',...

'pil_demo');

如果此文件夹已在搜索路径上,请将其删除。

if strfind(path,sl_customization_path)

rmpath(sl_customization_path)

end

重置自定义。

sl_refresh_customizations

为编译和检查过程创建一个临时文件夹(在您的系统临时文件夹中)。

currentDir = pwd;

rtwdemodir();

使用 SIL 仿真测试生成的代码

为针对 SIL 配置的模型进行仿真。通过将 SIL 仿真行为与 Normal 仿真行为进行比较,验证为主机编译的生成代码。

确保示例模型是新打开的。

close_system('rtwdemo_sil_modelblock',0);

close_system('rtwdemo_sil_counter',0)

open_system('rtwdemo_sil_modelblock')

CounterA Model 模块中显示有文本 (SIL),表示其引用模型是针对 SIL 仿真配置的。

运行系统的仿真。

set_param('rtwdemo_sil_modelblock','StopTime','10');

sim('rtwdemo_sil_modelblock');

### Starting build procedure for model: rtwdemo_sil_counter

### Successful completion of build procedure for model: rtwdemo_sil_counter

### Preparing to start SIL simulation ...

Building with 'Microsoft Visual C++ 2017 (C)'.

MEX completed successfully.

### Updating code generation report with SIL files ...

### Starting SIL simulation for component: rtwdemo_sil_counter

### Stopping SIL simulation for component: rtwdemo_sil_counter

目标连接配置

从针对 PIL 的目标连接配置入手。

制作一份目标连接配置类的本地副本。

src_dir = ...

fullfile(matlabroot,'toolbox','coder','simulinkcoder','+coder','+mypil');

if exist(fullfile('.','+mypil'),'dir')

rmdir('+mypil','s')

end

mkdir +mypil

copyfile(fullfile(src_dir,'Launcher.m'), '+mypil');

copyfile(fullfile(src_dir,'TargetApplicationFramework.m'), '+mypil');

copyfile(fullfile(src_dir,'ConnectivityConfig.m'), '+mypil');

将复制的文件设置为可写。

fileattrib(fullfile('+mypil', '*'),'+w');

更新包名称以反映文件的新位置。

coder.mypil.Utils.UpdateClassName(...

'./+mypil/ConnectivityConfig.m',...

'coder.mypil',...

'mypil');

验证现在您的当前文件夹中有文件夹 +mypil,其中包含文件 Launcher.m、TargetApplicationFramework.m 和 ConnectivityConfig.m。

dir './+mypil'

. Launcher.m

.. TargetApplicationFramework.m

ConnectivityConfig.m

查看代码以启动 PIL 可执行文件

使用 mypil.Launcher 类对用来启动 PIL 可执行文件的工具进行配置。在编辑器中打开此类。

edit(which('mypil.Launcher'))

查看此文件的内容。setArgString 方法为可执行文件提供额外的命令行参数。这些参数可以包括 TCP/IP 端口号。对于嵌入式处理器实现,您可以选择对这些设置进行硬编码。

配置总体目标连接配置

查看 mypil.ConnectivityConfig 类。

edit(which('mypil.ConnectivityConfig'))

查看此文件的内容。您应该能够从中找出以下内容:

rtw.connectivity.RtIOStreamHostCommunicator 实例的创建,用于配置 TCP/IP 通信信道的主机端。

对 Launcher 的 setArgString 方法的调用,用于配置 TCP/IP 通信信道的目标端。

对 setTimer 的调用,用于配置计时器以测量执行时间。

要定义您自己的目标特定计时器以进行执行时间探查,您必须使用代码替换库来指定函数 code_profile_read_timer 的替换项。使用命令行 API 或 crtool 用户界面。

查看目标端通信驱动程序

查看文件 rtiostream_tcpip.c。

rtiostreamtcpip_dir=fullfile(matlabroot,'toolbox','coder','rtiostream','src',...

'rtiostreamtcpip');

edit(fullfile(rtiostreamtcpip_dir,'rtiostream_tcpip.c'))

向下滚动到此文件的末尾。查看以确认此文件包含函数 rtIOStreamOpen、rtIOStreamSend 和 rtIOStreamRecv 的 TCP/IP 实现。这些函数是目标硬件与主机通信所必需的。对于特定于您的目标硬件和通信信道的上述每个函数,您都必须提供一个实现。

将目标端通信驱动程序添加到连接配置

使用 mypil.TargetApplicationFramework 类对要包含在编译版本中的其他文件进行配置。在编辑器中打开此类。

edit(which('mypil.TargetApplicationFramework'))

使用 sl_customization 注册目标连接配置

要使用新目标连接配置,您必须提供 sl_customization 文件。sl_customization 文件用来注册您的新目标连接配置并指定使用它所需的条件。此文件中指定的条件可以包括系统目标文件的名称和硬件实现设置。

您可以查看 sl_customization 文件。对于此示例,您不必对该文件进行更改。

edit(fullfile(sl_customization_path,'sl_customization.m'))

将 sl_customization 文件夹添加到搜索路径并刷新自定义。

addpath(sl_customization_path);

sl_refresh_customizations;

使用 PIL 仿真测试生成的代码

运行 PIL 仿真。

close_system('rtwdemo_sil_modelblock',0)

open_system('rtwdemo_sil_modelblock')

set_param('rtwdemo_sil_modelblock/CounterA','SimulationMode','processor-in-the-loop (pil)');

set_param('rtwdemo_sil_modelblock','StopTime','10');

sim('rtwdemo_sil_modelblock');

### Starting build procedure for model: rtwdemo_sil_counter

### Generated code for 'rtwdemo_sil_counter' is up to date because no structural, parameter or code replacement library changes were found.

### Successful completion of build procedure for model: rtwdemo_sil_counter

### Connectivity configuration for referenced model "rtwdemo_sil_counter": My PIL Example ###

EXECUTING METHOD SETARGSTRING

SETARGSTRING called from line 71 of ConnectivityConfig.m

### Preparing to start PIL simulation ...

Building with 'Microsoft Visual C++ 2017 (C)'.

MEX completed successfully.

### Updating code generation report with PIL files ...

### Starting application: 'rtwdemo_sil_counter_ert_rtw\pil\rtwdemo_sil_counter.exe'

Starting PIL simulation

Started new process, pid = 14132

Stopping PIL simulation

Terminated process, pid = 14132

查看前面的消息。确认仿真正常运行而没有错误。您现在已实现了一个 PIL 的目标连接配置。您可以使用相同的 API 来为您自己的嵌入式处理器、下载工具和通信信道组合实现连接配置。

清理

删除此示例的搜索路径。

rmpath(sl_customization_path)

重置自定义。

sl_refresh_customizations

关闭模型。

close_system('rtwdemo_sil_modelblock',0)

close_system('rtwdemo_sil_counter',0)

rtwdemoclean;

cd(currentDir)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值