主要内容

出口仿真软件模金宝app型与模型和FMU进口块独立FMU保护

这个例子展示了如何导出模型独立FMU®模型与外部引用。金宝app在这个示例中,该模型f14_flight_control演示了出口保护模型和独立FMU FMU进口块。

金宝app仿真软件编译器™许可证需要独立FMU出口和仿真软件编码器™许可证需要创建保护模型。

这个例子包含三个步骤:

出口仿真软件模金宝app型与FMU保护模型的代码生成功能

在本节中,下面的步骤说明如何启用FMU保护模型的代码生成功能FMU出口。FMU代码生成的工件必须挤在出口之前独立FMU保护模型。保护模式作者可以使用以下步骤创建一个保护模型与FMU代码生成工件。另外,保护模型作者可以添加到现有的代码生成工件保护模型和API金宝appSimulink.ProtectedModel.addTarget如果你的保护模型不包含FMU代码生成的工件,请联系作者的保护模型。使用金宝appSimulink.ProtectedMode金宝appl.getSupportedTargets得到的目标列表模型支持保护。金宝app

这个例子中打开模型控制器,集系统目标文件fmu2cs.tlc和出口模型来保护模型。

%打开示例模型控制器模型=“控制器”;open_system(模型);

模型打开后,去配置对话框和更新系统目标文件fmu2cs.tlc配置参数>代码生成

%替代命令行选项设置模型的代码生成目标fmu2cs.tlc保护%这使得模型导出为独立FMU保护set_param(模型,“SystemTargetFile”,“fmu2cs.tlc”);

不一致的硬件实现的硬件属性会导致出口独立FMU时失败。配置这些参数,用户可以打开配置参数>硬件实现。模型控制器使用以下设置代码生成。模型中使用相同的设置f14_flight_control

生成保护模型模拟选项卡并选择保存>保护模式。将打开一个对话框,用户可以选择选项创建一个受保护的模式。

要启用代码生成独立FMU出口,检查使用生成的代码并选择混淆的源代码内容类型

%生成保护模型金宝appSimulink.ModelReference.protect(模型,“模式”,“CodeGeneration”,“ObfuscateCode”,真正的);
创建“控制器”的保护模式。# # #开始连续模型参考模拟构建。# # #成功更新了模型参考模拟目标:控制器# # #开始串行代码生成建立模型参考。# # #检查模型参考代码生成目标模型的状态“控制器”。# # #模型参考代码生成目标(Controller.c)模型控制器是过时的,因为控制器。c并不存在。# # #设置硬件实现>设备类型模型的MATLAB主机控制器。和工件生成代码的# # # # # #模型特定的文件夹结构生成代码建立文件夹:/ tmp / Bdoc23a_2213998_1264587 / tpb6552cb0_829a_4a43_a243_2e42907df8c7 slprj fmu2cs /控制器# # #上调用目标语言编译器控制器。rtw # # #使用系统目标文件:/ mathworks /猛击/棒/ Bdoc23a /构建/ matlab /工具箱/共享/模型/ fmuexport / fmu2cs。金宝apptlc ...................................................................# # #保存二进制信息缓存。# # #使用工具链:GNU gcc / g + + | gmake(64位Linux) # # #创建/ tmp / Bdoc23a_2213998_1264587 / tpb6552cb0_829a_4a43_a243_2e42907df8c7 / slprj / fmu2cs /控制器/控制器。可”……# # #建筑“Controller_rtwlib”:“/ mathworks /猛击/棒/ Bdoc23a /构建/ matlab / bin / glnxa64 / gmake”- f控制器。可所有gcc - c -fwrapv - fpic o0 -msse2 -DCLASSIC_INTERFACE = 0 -DALLOCATIONFCN = 0 -DMAT_FILE = 0 -DONESTEPFCN = 0 -DTERMFCN = 1 -DMULTI_INSTANCE_CODE = 0 -DINTEGER_CODE = 0 dmt = 0 -DTID01EQ = 0 -DMODEL =控制器-DNUMST = 1 -DNCSTATES = 4 -DHAVESTDIO -DRT -DUSE_RTMODEL - i / tmp / Bdoc23a_2213998_1264587 / tpb6552cb0_829a_4a43_a243_2e42907df8c7 - i / tmp / Bdoc23a_2213998_1264587 / tpb6552cb0_829a_4a43_a243_2e42907df8c7 slprj / fmu2cs /控制器i / mathworks /猛击/棒/ Bdoc23a /构建/ matlab /走读生/包括我/ mathworks /猛击/棒/ Bdoc23a /构建/ ma金宝apptlab / simulink /包括我/ mathworks /猛击/棒/ Bdoc23a /构建/ matlab rtw / c / src - i / mathworks猛击/棒/ Bdoc23a /构建/ matlab rtw / c / src / ext_mode常见我/ tmp / Bdoc23a_2213998_1264587 / tpb6552cb0_829a_4a43_a243_2e42907df8c7 slprj / fmu2cs / _sharedutils - i / mathworks /猛击/棒/ Bdoc23a /构建/ matlab工具箱/共享/模型/ fmuexport / fmi2_noprefix - o”控制器。o”“/ tmp / Bdoc23a_2213998_1264587 / tpb6552cb0_829a_4a43_a243_2e42907df8c7 slprj / fmu2cs /控制器/控制器。c”# # #创建静态库。/ Controller_rtwlib。一个…… ar ruvs ./Controller_rtwlib.a Controller.o ar: creating ./Controller_rtwlib.a a - Controller.o ### Created: ./Controller_rtwlib.a ### Successfully generated all binary outputs. gmake: Nothing to be done for `all'. Finished creating protected model '/tmp/Bdoc23a_2213998_1264587/tp6304bd43/simulinkcompiler-ex90564728/Controller.slxp'.
%生成模型后保护模型close_system(模型);

出口仿真软件模金宝app型与可调参数独立FMU

这部分出口一个参考模型Aircraft_dynamics_Model作为一个独立的FMU将用于嵌套FMU出口工作流程。

%开放模式Aircraft_dynamics_Model模型=“Aircraft_Dynamics_Model”;open_system(模型);

下图展示了出口独立FMU对话框。用户可以手动选择模型的变量暴露FMU接口使用参数下表访问参数FMU……FMU出口对话框。在这个例子中,我们让变量医学博士,兆瓦,Uo,Zd。其他功能,如包源代码,配置模型变量,添加额外的资源通过UI FMU包是可用的。阅读更多关于独立FMU导出功能:独立FMU出口金宝app仿真软件模型

注意:您可能会看到一条警告消息指示变量名称不是独特的,太长,或包含无效字符,他们将重命名。预计这个如果你有变量名符合上述条件,你会看到重命名变量,当你导入FMU FMU块。

%出口模型飞机动力学独立FMUexportToFMU2CS(模型,“CreateModelAfterGeneratingFMU”,“关闭”);
设置系统联合仿真目标FMU模型“Aircraft_Dynamics_Model”。设置硬件实现>设备类型模型的MATLAB主机“Aircraft_Dynamics_Model”。# # #“GenerateComments”是禁用的联合仿真独立FMU出口。
警告:以下变量名称不是独一无二的,太长,或包含无效字符:“电梯偏转d(度),垂直阵风wGust(英尺/秒),旋转阵风qGust (rad /秒),垂直速度w(英尺/秒),距率q (rad /秒)。他们将重新命名为:“ElevatorDeflectionD_deg_、VerticalGustWGust_ft_sec_ RotaryGustQGust_rad_sec_, VerticalVelocityW_ft_sec_, PitchRateQ_rad_sec_”。
模型建立目标:总结构建模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Aircraft_Dynamics_Model代码生成和编译。代码生成信息文件不存在。1 1模型的建立(0模型已经更新)构建持续时间:0 h 0米17.87秒# # #独立FMU联合仿真模型已成功出口到:“/ tmp / Bdoc23a_2213998_1264587 / tp6304bd43 / simulinkcompiler-ex90564728 / Aircraft_Dynamics_Model.fmu”。金宝app
close_system(模型);

与外部引用独立金宝appFMU出口仿真软件模型

本节说明如何出口仿真软件模型金宝appf14_flight_control与一个独立的外部引用FMU可调参数。模型f14_flight_control使用受保护的模型和FMU前一步中生成的,模型块控制器引用保护模型Controller.slxp,FMU进口块飞机动力学模型引用Aircraft_Dynamics_Model.fmu

%开顶模型参考模型和FMU保护模型=“f14_flight_control”;open_system(模型);

打开FMU进口块对话框和配置可调参数在嵌套FMU出口。参数医学博士,Mw, Uo, Zd金宝appSimulink.Parameter对象模型中定义的工作区。

%变量关联FMU导出对话框中的参数和模型%这允许变量导出生成的嵌套FMU可调参数集(“f14_flight_control /飞机动力学模型”,“医学博士”,“医学博士”);集(“f14_flight_control /飞机动力学模型”,“瓦”,“瓦”);集(“f14_flight_control /飞机动力学模型”,“Uo”,“Uo”);集(“f14_flight_control /飞机动力学模型”,“Zd”,“Zd”);

构建和导出模型f14_flight_control一个独立的FMU,单击下拉按钮保存模拟选项卡并选择独立FMU。按照出口程序如前一节所述。

% 2.0 FMU联合仿真模型导出到独立exportToFMU2CS(模型,“CreateModelAfterGeneratingFMU”,“上”);

一个独立的FMU中生成目的地从导出对话框中指定的文件夹。利用模型创建并打开如果用户选择生成独立FMU后创建模型

sdfdw

close_system(模型);