simulink仿真demo临摹笔记之模型比较
临摹时怎么看自己搭建的模型与官方demo是否完全相同呢?可以使用模型比较工具。
在模型文件上点右键,选择“比较对象”-“选择。。。”:
浏览到要比较的文件:
点击“比较”后,就会打开比较窗口,有点像beyond compare:
最下方会显示两个模型具体的不同点。
有时配置参数的不同也会导致仿真结果的不同。
点击不同点:
会自动打开两个模型的相应的配置参数页面:
如果没有找到具体的参数,可以在“所有参数(All Parameters)”里面搜索:
另外,配置参数可以导出来。
导出的m脚本可以手动更改,然后再执行即可生效。
脚本的格式:
% Solver
cs.set_param('StartTime', '0.0'); % Start time
cs.set_param('StopTime', '10.0'); % Stop time
cs.set_param('SolverType', 'Variable-step'); % Type
cs.set_param('EnableConcurrentExecution', 'off'); % Show concurrent execution options
cs.set_param('Solver', 'VariableStepAuto'); % Solver
cs.set_param('MaxStep', 'auto'); % Max step size
cs.set_param('MinStep', 'auto'); % Min step size
cs.set_param('InitialStep', 'auto'); % Initial step size
cs.set_param('RelTol', '1e-3'); % Relative tolerance
cs.set_param('AbsTol', 'auto'); % Absolute tolerance
cs.set_param('ShapePreserveControl', 'DisableAll'); % Shape preservation
cs.set_param('MaxConsecutiveMinStep', '1'); % Number of consecutive min steps
cs.set_param('MaxNumMinSteps', '-1'); % MaxNumMinSteps
cs.set_param('AutoInsertRateTranBlk', 'off'); % Automatically handle rate transition for data transfer
cs.set_param('PositivePriorityOrder', 'off'); % Higher priority value indicates higher task priority
cs.set_param('ZeroCrossControl', 'UseLocalSettings'); % Zero-crossing control
cs.set_param('ZeroCrossAlgorithm', 'Nonadaptive'); % Algorithm
cs.set_param('ConsecutiveZCsStepRelTol', '10*128*eps'); % Time tolerance
cs.set_param('MaxConsecutiveZCs', '1000'); % Number of consecutive zero crossings