从模型和生成的代码调用外部C代码
调用现有的外部函数从一个模拟或通过使用遗留代码工具生成的代码。
学习如何:
评估一个C函数作为模型的一部分®模型模拟。金宝app
调用一个C函数生成的代码从一个模型。
信息模型的例子,请参阅准备一个控制算法模型C代码生成。
更换过程
打开示例模型,rtwdemo_PCG_Eval_P4
。
对于许多基于模型设计应用程序,除了模型®模型,设计包括一组现有的C函数已经被测试和验证。金宝app你可以将这些功能集成到一个模型®模型和生成代码使用功能。金宝app
在本例中,您创建一个自定义模型®块调用现有的C函数。金宝app然后包括块模型和测试整个系统通过模型模拟仿真软件®。金宝app
在模型的例子中,你可以替换查找块(查找表)在PI控制器调用现有的C函数。在文件中定义的函数SimpleTable.c
和SimpleTable.h
。
创建调用C函数的块
指定一个现有的C函数的调用,使用一个功能块。可以自动的创建功能块使用遗留代码的工具。在该工具中,首先为您现有的C函数指定一个接口。然后工具使用该接口来创建一个功能块。
使用遗留代码工具为现有的C函数创建一个功能块SimpleTable.c
。
def = legacy_code (“初始化”)
您可以使用结构def
定义的函数接口现有的C代码。
2。填充的字段结构。
3所示。创建功能。
legacy_code (“sfcn_cmex_generate”def)
4所示。编译功能。
legacy_code (“编译”def)
5。创建一个功能块。
legacy_code (“slblock_generate”def)
生成的功能块中调用C函数SimpleTable.c
。现在,您可以使用此功能块模型。
6。创建TLC文件。
legacy_code (“sfcn_tlc_generate”def)
这个命令创建了一个薄层色谱文件,它是一个功能的组件,用于指定如何生成的代码块。
通过仿真验证外部代码
当你在一个仿真软件集成现有的C代码®模型,验证生成的功能块。金宝app
验证更换查找模块,比较仿真结果查询块产生的结果产生的新功能块。
1。打开验证模型。
正弦波阻止产生输出值[2:2]。
查找表的输入范围(1):1)。
查找表输出输入的绝对值。
查找表剪辑输出在输入限制。
2。运行验证模型。
图中显示验证结果。现有的C代码和仿真软件®表块产生相同的输出值。金宝app
验证C代码的仿真软件®模型金宝app
后验证现有的C函数代码作为一个独立的组件,验证模型中的功能。完成验证,使用测试工具模型。
1。打开测试工具。
2。运行测试工具。
仿真结果与黄金价值。
从生成的代码调用C函数
代码生成器使用薄层色谱文件处理功能块像其他块。代码生成器可以实现表达折叠功能块,手术结合多个计算成一个单一的输出计算。
1。构建完整的模型。
2。检查生成的代码PI_Control_Reusable.c
。
现在生成的代码调用SimpleTable
C函数。
数据显示生成的代码前后C代码集成。在集成之前,代码调用生成的查找程序。集成后,生成的代码调用C函数SimpleTable
。