Main Content

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

Advisor.authoring.generateBlockConstraintsDataFile

(권장되지 않음) 블록 제약 조건에 대한 사용자 정의 검사를 위한 XML 데이터 파일 생성

Advisor.authoring.generateBlockConstraintsDataFile는 권장되지 않습니다. 대신 Advisor.authoring.createBlockConstraintCheck을 사용하세요.

자세한 내용은 Define Model Advisor Checks for Supported and Unsupported Blocks and Parameters를 참조하세요.

설명

Advisor.authoring.generateBlockConstraintsDataFile(dataFile, 'constraints',constraintslist)dataFile이라는 XML 데이터 파일을 생성합니다. 이 데이터 파일은 사용자 정의 검사에 포함된 제약 조건을 지정합니다. 데이터 파일은 태그 지정을 사용하여 제약 조건 정보를 지정합니다. 사용자 정의 검사를 생성할 때 데이터 파일을 사용합니다.

기본 작업 공간에서 제약 조건 개체를 정의한 다음 이러한 개체를 이 함수에 대한 입력으로 전달합니다. 이러한 제약 조건은 루트 제약 조건일 수도 있고 루트 제약 조건에 대한 전제 조건일 수도 있습니다. 복합 제약 조건을 정의할 수도 있습니다. 여러 루트 제약 조건을 지정하고 복합 제약 조건을 지정하지 않은 경우 Simulink는 CompositeOperatorand를 사용하여 복합 제약 조건을 구현합니다.

예제

모두 축소

이 MAB 검사 다중 포트 스위치 블록의 데이터 포트 설정 확인에 대한 사용자 정의 검사를 만듭니다. 멀티포트 스위치 블록의 경우 검사에는 데이터 포트 순서: 매개변수 설정이 Specify indices인지 확인하는 제약 조건이 포함되어 있습니다. 매개변수에 이 설정이 있는 경우 default case에 대한 데이터 포트: 매개변수 설정이 Additional data port, default case에 대한 진단: 설정이 None인지 확인하는 제약이 있습니다.

세 개의 PositiveBlockParameter 제약 조건 개체를 만듭니다.

c1 = Advisor.authoring.PositiveBlockParameterConstraint(); 
c1.ID = 'ID_A2'; 
c1.BlockType = 'MultiPortSwitch'; 
c1.ParameterName = 'DataPortOrder'; 
c1.SupportedParameterValues = {'Specify indices'}; 
c1.ValueOperator = 'eq'; 

c2 = Advisor.authoring.PositiveBlockParameterConstraint(); 
c2.ID = 'ID_A3'; 
c2.BlockType = 'MultiPortSwitch'; 
c2.ParameterName = 'DataPortForDefault'; 
c2.SupportedParameterValues = {'Additional data port'}; 
c2.ValueOperator = 'eq'; 

c3 = Advisor.authoring.PositiveBlockParameterConstraint(); 
c3.ID = 'ID_A4'; 
c3.BlockType = 'MultiPortSwitch'; 
c3.ParameterName = 'DiagnosticForDefault'; 
c3.SupportedParameterValues = {'None'}; 
c3.ValueOperator = 'eq'; 

addPreRequisiteConstraintID 방법을 사용하여 c2c3 제약 조건을 확인하기 위한 전제 조건으로 c1을 만듭니다.

c2.addPreRequisiteConstraintID('ID_A2'); 
c3.addPreRequisiteConstraintID('ID_A2');

Multiport Switch 블록이 제약 조건 c2c3을 충족하지 않는 경우 해당 블록이 이 검사를 위반한다는 것을 지정하는 복합 제약 조건을 생성합니다.

cc = Advisor.authoring.CompositeConstraint(); 
cc.addConstraintID('ID_A3');
cc.addConstraintID ('ID_A4');
cc.CompositeOperator = 'and'; 

제약 조건이 포함된 데이터 파일을 만듭니다.

dataFile = 'myDataFile.xml';
Advisor.authoring.generateBlockConstraintsDataFile( ...
               dataFile,'constraints',{c1,c2,c3,cc});

데이터 파일 myDataFile.xml에는 사용자 정의 검사에 대한 제약 조건 정보를 지정하는 태그가 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<customcheck>
   <checkdata>
      <PositiveBlockParameterConstraint BlockType="MultiPortSwitch" id="ID_A2">
         <parameter type="string">DataPortOrder</parameter>
         <value>Specify indices</value>
         <operator>eq</operator>
      </PositiveBlockParameterConstraint>
      <PositiveBlockParameterConstraint BlockType="MultiPortSwitch" id="ID_A3">
         <parameter type="string">DataPortForDefault</parameter>
         <value>Additional data port</value>
         <operator>eq</operator>
         <dependson>ID_A2</dependson>
      </PositiveBlockParameterConstraint>
      <PositiveBlockParameterConstraint BlockType="MultiPortSwitch" id="ID_A4">
         <parameter type="string">DiagnosticForDefault</parameter>
         <value>None</value>
         <operator>eq</operator>
         <dependson>ID_A2</dependson>
      </PositiveBlockParameterConstraint>
      <CompositeConstraint>
         <ID>ID_A3</ID>
         <ID>ID_A4</ID>
         <operator>and</operator>
      </CompositeConstraint>
   </checkdata>
</customcheck>

참고

모델 구성 매개변수 제약조건의 경우 모델 구성 매개변수 제약조건을 블록 제약조건의 전제조건으로 지정하거나 블록 및 모델 구성 매개변수 제약조건으로 구성된 복합 제약조건의 일부로 지정할 때만 Advisor.authoring.generateBlockConstraintsDataFile 함수를 사용하십시오. 다른 경우에는 Advisor.authoring.generateConfigurationParameterDataFile 함수를 사용하세요.

검사 정의 기능에 대한 입력으로 데이터 파일 myDataFile.xml을 지정합니다. 이 검사를 지정하고 등록하려면 이 sl_customization.m 파일을 사용하십시오.

function sl_customization(cm)
% SL_CUSTOMIZATION - Model Advisor customization demonstration.

% Copyright 2019 The MathWorks, Inc.

% register custom checks 
cm.addModelAdvisorCheckFcn(@defineBlockConstraintCheck);

end

% -----------------------------
% defines Model Advisor Check
% -----------------------------
function defineBlockConstraintCheck

rec = Advisor.authoring.createBlockConstraintCheck('com.mathworks.sample.blockConstraint');
rec.Title = 'Example of block parameter constraints check';
rec.setCallbackFcn(@(system)(Advisor.authoring.CustomCheck.checkCallback...
    (system)), 'None', 'StyleOne');
rec.TitleTips = 'Example check for block parameter constraints';

% --- data file input parameters
rec.setInputParametersLayoutGrid([1 1]);
inputParam1 = ModelAdvisor.InputParameter;
inputParam1.Name = 'Data File';
inputParam1.Value = 'myDataFile.xml';
inputParam1.Type = 'String';
inputParam1.Description = 'Name or full path of XML data file.';
inputParam1.setRowSpan([1 1]);
inputParam1.setColSpan([1 1]);
rec.setInputParameters({inputParam1});
rec.SupportExclusion = false;
rec.SupportLibrary = true;

% publish check into Demo group.
mdladvRoot = ModelAdvisor.Root;
mdladvRoot.publish(rec, 'Demo'); 

end

입력 인수

모두 축소

생성할 XML 데이터 파일의 이름으로, 문자형 벡터로 지정됩니다.

예: 'myDataFile.xml'

제약 조건 개체를 만들려면 다음 클래스를 사용하세요.

  • Advisor.authoring.PositiveBlockParameterConstraint

  • Advisor.authoring.NegativeBlockParameterConstraint

  • Advisor.authoring.PositiveModelParameterConstraint

  • Advisor.authoring.NegativeModelParameterConstraint

  • Advisor.authoring.PositiveBlockTypeConstraint

  • Advisor.authoring.NegativeBlockTypeConstraint

  • Advisor.authoring.CompositeConstraint

예: {c1,c2,c3}

버전 내역

R2018a에 개발됨

모두 축소

R2021b: Advisor.authoring.generateBlockConstraintsDataFile는 권장되지 않습니다.

이전 릴리스에서는 블록 제약 조건 검사를 작성할 때 블록 제약 조건 데이터가 포함된 별도의 XML 파일을 생성한 다음 검사 정의 기능의 일부로 이 XML 파일의 속성을 지정해야 했습니다. R2021b부터 제약 조건 생성은 블록 제약 조건 확인 정의의 일부입니다. 결과적으로 Advisor.authoring.generateBlockConstraintsDataFile 함수는 필요하지 않으며 Advisor.authoring.createBlockConstraintCheck 함수에는 제약 조건 생성 함수에 대한 콜백을 허용하는 'Constraints' 이름-값 인수가 있습니다.

자세한 내용은 Define Model Advisor Checks for Supported and Unsupported Blocks and Parameters를 참조하세요.

Advisor.authoring.generateBlockConstraintsDataFile을 제거할 계획이 없습니다.