您可以使用Simulink®Coder™为模糊逻辑控制器模块生成代码。金宝app有关生成代码的更多信息,请参见使用Simulink®Coder™生成代金宝app码(金宝app仿真软件编码器).
虽然这个示例为1型Sugeno模糊推理系统生成代码,但工作流也适用于Mamdani和2型模糊系统。
默认情况下,模糊逻辑控制器块使用双精度数据进行仿真和代码生成。的fuzzyPID
模型配置为使用双精度数据。有关为代码生成配置模糊推理系统的更多信息,请参见模糊逻辑控制器.
mdl =“fuzzyPID”;open_system (mdl)
在Simulink中验证系统的性能是一个很好的实践。金宝app运行仿真。模型保存输出响应u
到MATLAB®工作空间。
sim (mdl)
要为模型生成代码,使用rtwbuild
(金宝app仿真软件编码器)函数。对于本例,禁止生成过程的命令窗口输出。
set_param (mdl“RTWVerbose”,“关闭”) slbuild (mdl)
# # #开始构建过程:fuzzyPID # # #成功完成构建过程:fuzzyPID模型建立目标:总结构建模型重建行动的理由 ========================================================================================= fuzzyPID代码生成和编译代码生成信息文件不存在。建造时间:0小时0米36.597秒
默认情况下,Simuli金宝appnk Coder为通用的实时目标生成C代码。如果要选择不同的目标文件和语言,请在“配置参数”对话框中修改系统目标文件和语言参数,分别。
生成的代码存储在一个新的fuzzyPID_grt_rtw
当前工作文件夹中的文件夹。此文件夹的名称取决于所选的目标文件。
在Windows®系统上,默认情况下,一个名为fuzzyPID.exe
也添加到当前工作文件夹中。若要生成不经过编译的代码,请在“配置参数”对话框中选择只生成代码参数在生成代码之前。
运行可执行文件。
如果Ispc status = system(mdl);其他的disp (该示例仅在Windows系统上运行可执行文件。);结束
该示例仅在Windows系统上运行可执行文件。
在可执行文件成功完成之后(状态= 0
),该软件创建一个fuzzyPID.mat
包含模拟结果的数据文件。
您可以比较生成代码的输出响应,rtw_y
,利用Simulink仿真的输出,金宝appy
,使用以下代码。
负载fuzzyPID.mat情节(吹捧,y,“b -”rt_tout rt_y,“罗”)传说(“金宝app模型”,“可执行”,“位置”,“东南”)
生成的代码的结果与Simulink模拟相匹配。金宝app
您还可以为这个模型中的控制器子系统生成代码。为此,在调用时指定子系统slbuild
函数。
slbuild ([mdl' /模糊PID '])
# # #开始构建过程:Fuzzy0 # # #成功完成构建过程:Fuzzy0模型建立目标:总结构建模型重建行动的理由 ======================================================================================= Fuzzy0代码生成和编译代码生成信息文件不存在。1个模型建立(0个模型已经更新)建立时间:0小时0米18.575秒
您可以根据应用程序的需要部署生成的代码。例如,您可以配置可执行文件的属性,并创建静态或动态库。有关更多信息,请参见建立实时系统的过程工作流(金宝app仿真软件编码器).
模糊逻辑控制器模块还支持单精度和定点数据,用于仿真和代码生成。金宝app在这两种情况下,与等价的双精度模糊系统相比,所得到的模糊系统的精度降低了。使用:
单精度数据,以减少系统的内存占用。
定点数据如果你的目标平台只支持定点算法。金宝app
要使用这些数据类型之一,请设置数据类型属性,并配置模型中的其他组件以使用相同的数据类型。
的fuzzyPID_single
模型配置为单精度数据。打开模型。
mdl2 =“fuzzyPID_single”;open_system (mdl2)
在这个模型中数据类型参数设置为单
.模糊逻辑控制器模块自动将输入信号转换为指定的数据类型。此外,模拟使用参数设置为代码生成
.的模拟使用选项不会影响代码生成过程。相反,设置此选项将使用生成的代码所使用的相同代码路径模拟模糊系统。
为这个模型生成代码。
set_param (mdl2“RTWVerbose”,“关闭”) slbuild (mdl2)
###成功完成的构建过程:fuzzyPID_single的构建总结顶部模型目标构建:模型重建行动的原因 ================================================================================================ fuzzyPID_single代码生成和编译代码生成信息文件不存在。建造时间:0小时0米24.565秒
设置数据类型参数,确保所有推理步骤使用指定的数据类型。然而,根据模型中其他块的配置,一些生成的代码仍然可以使用双精度数据。