主要内容

使用Simulink编码器生成模糊系统的代码金宝app

您可以使用Simulink®Coder™生成模糊逻辑控制器块的代码。金宝app有关生成代码的更多信息,请参阅使用Simulink编码器生成代码金宝app(金宝appSimulink编码器)

虽然此示例为Type-1 Sugeno模糊推理系统生成代码,但工作流也适用于Mamdani和Type-2模糊系统。

生成模糊推理系统的代码

默认情况下,模糊逻辑控制器块使用双精度数据进行仿真和代码生成。这fuzzypid.模型配置为使用双精度数据。有关为代码生成配置模糊推理系统的详细信息,请参阅模糊逻辑控制器

mdl ='fuzzypid';Open_System(MDL)

验证Simulink中系统的性能是良好的做法。金宝app运行模拟。该模型可节省输出响应到Matlab®工作区。

SIM(MDL)

要为模型生成代码,请使用SLBUILD.(金宝appSimulink)功能。对于此示例,请抑制构建过程的命令窗口输出。

set_param(mdl,'rtwverbose''离开')SLBUILD(MDL)
###开始构建过程:fuzzypid ###成功完成构建过程:fuzzypid构建摘要顶部模型目标构建:模型动作重建原因==========================================================================================生成的代码和编译的代码生成信息文件不存在。1个1个模型(0型号已最新的型号)构建持续时间:0H 0M 15.191s

默认情况下,Simuli金宝appnk编码器为通用实时目标生成C代码。要在“配置参数”对话框中选择不同的目标文件和语言,请修改系统目标文件语言分别参数。

生成的代码存储在一个新的fuzzypid_grt_rtw.当前工作文件夹中的文件夹。此文件夹的名称取决于所选的目标文件。

在Windows®系统上,默认情况下,名为的可执行文件fuzzypid.exe.也添加到当前工作文件夹中。要在不编译的情况下生成代码,请在“配置参数”对话框中,选择仅生成代码参数生成代码之前。

运行可执行文件。

如果ispc status = system(mdl);别的DISP(“该示例仅在Windows系统上运行可执行文件。);结尾
该示例仅在Windows系统上运行可执行文件。

可执行文件成功完成后(status = 0.),软件创建一个fuzzypid.mat.包含模拟结果的数据文件。

您可以将输出响应与生成的代码进行比较,RTW_Y.,来自Simulink仿真的输出,金宝appy,使用以下代码。

加载fuzzypid.mat.情节(Tout,Y,'b-',rt_tout,rt_y,'ro') 传奇('金宝appsimulink''可执行''地点''东南'的)

来自生成的代码的结果与Simulink仿真匹配。金宝app

您还可以在此模型中为控制器子系统生成代码。为此,请在调用时指定子系统SLBUILD.功能。

SLBUILD([MDL'/ fuzzy pid'])
###开始构建过程:fuzzy0 ###成功完成构建过程:Fuzzy0 Build摘要顶级模型目标:模型动作重建原因=======================================================================================生成的cuzzy0代码生成和编译的代码生成信息文件不存在。1个中有1个(0型号已达到迄今为止)构建持续时间:0H 0M 11.657S

您可以根据您的应用程序部署生成的代码。例如,您可以配置可执行文件的属性并创建静态或动态库。有关更多信息,请参阅构建实时系统的过程工作流程(金宝appSimulink编码器)

为其他数据类型生成代码

模糊逻辑控制器块还支持用于仿真和代码生成的单精度和定点数据。金宝app在这两种情况下,与等效双精度模糊系统相比,所产生的模糊系统的精度降低。采用:

  • 单精度数据以减少系统的内存占用空间。

  • 如果您的目标平台仅支持固定点算法,则定点数据。金宝app

要使用其中一个数据类型,请设置数据类型块的属性,并在模型中配置其他组件以使用相同的数据类型。

fuzzypid_single.模型配置为单精度数据。打开模型。

mdl2 ='fuzzypid_single';Open_System(MDL2)

在这个模型中,数据类型模糊逻辑控制器块的参数设置为单身的。模糊逻辑控制器块会自动将输入信号转换为指定的数据类型。此外,模拟使用参数设置为代码生成。这模拟使用选项不会影响代码生成过程。相反,设置此选项使用生成代码使用的相同代码路径模拟您的模糊系统。

为此模型生成代码。

set_param(mdl2,'rtwverbose''离开')SLBUILD(MDL2)
###启动构建过程:fuzzypid_single ###成功完成构建过程:fuzzypid_single构建摘要顶部模型目标构建:模型动作重建原因========================================================================================================= fuzzypid_single代码生成和编译的代码生成信息文件不存在。1个型号中的1个(0型号已达到迄今为止)构建持续时间:0H 0M 15.535S

设置数据类型模糊逻辑控制器块的参数可确保所有推理步骤使用指定的数据类型。然而,根据模型中的其他块的配置,一些生成的代码仍然可以使用双精度数据。

也可以看看

相关话题