주요 콘텐츠

Advisor.Application 클래스

R2026b

네임스페이스: Advisor

모델 참조 계층 구조 및 Variant 전체에 걸쳐 모델 어드바이저 실행

Advisor.Application은 향후 릴리스에서 제거될 예정입니다. ModelAdvisor.run을 대신 사용하십시오.

설명

Advisor.Application의 인스턴스를 사용하여 다음을 수행할 수 있습니다.

  • 부모 모델과 참조된 모델에 대해 검사를 실행합니다.

  • 인수 AnalyzeVariants를 true로 지정하여 활성 Variant에 대해 검사를 실행합니다.

  • 모델 어드바이저 분석에서 특정 모델 컴포넌트를 선택하거나 제거합니다. 모델 컴포넌트는 루트 모델이 참조하고 setAnalysisRoot가 지정하는 모델입니다.

퍼블릭 메서드를 사용하여 다음을 수행할 수 있습니다.

  • Advisor.Application 객체를 사용하여 모델 어드바이저를 실행합니다.

  • Advisor.Application 객체를 삭제합니다.

  • 모델 어드바이저를 실행할 모델 컴포넌트를 지정합니다.

  • 모델 어드바이저가 실행할 검사를 지정합니다.

  • 모델 어드바이저에서 결과를 가져옵니다.

참고

모델 어드바이저 검사를 실행할 때, 모델이 모델 참조나 Variant를 사용하지 않는 경우에는 ModelAdvisor.run 함수를 사용하는 것이 좋습니다. 이 함수는 모델 및 서브시스템에 대해 모델 어드바이저 검사를 실행할 수 있으며, 여러 시스템에서 병렬로 검사를 실행할 수 있는 기능을 제공합니다. 또한, 헤드리스 Linux® 시스템에서 Advisor.Application을 사용하여 특정 모델 어드바이저 검사를 실행하면 오류가 발생할 수 있습니다. 이를 방지하려면 ModelAdvisor.run 함수를 사용하십시오.

생성

Advisor.Application 객체를 만들려면 Advisor.Manager.createApplication을 사용하십시오.

속성

모두 확장

분석할 모델 참조 계층 구조의 루트 모델 이름으로, Advisor.Application.setAnalysisRoot 메서드에 의해 지정됩니다. 이 속성은 읽기 전용입니다.

특성:

GetAccess
퍼블릭
SetAccess
프라이빗

데이터형: char

Advisor.Application 객체의 고유 식별자로, 문자형 벡터로 지정됩니다. 이 속성은 읽기 전용입니다.

특성:

GetAccess
퍼블릭
SetAccess
프라이빗

데이터형: char

임시 작업 폴더에서 분석을 실행할지 여부로, Advisor.Manager.createApplication 메서드에 의해 지정됩니다. 이 속성은 읽기 전용입니다.

특성:

GetAccess
퍼블릭
SetAccess
프라이빗

데이터형: logical

Simulink® Variant Manager™를 사용하여 생성한 Variant 구성을 갖는 모델의 활성 Variant 블록에 대해 분석을 실행할지 여부입니다. 자세한 내용은 Manage Variants with Simulink Variant Manager 항목을 참조하십시오. 리포트를 생성할 경우, 모델 어드바이저는 각 Variant 구성에 대한 개별 리포트를 생성합니다. 이 속성은 읽기/쓰기가 가능합니다.

특성:

GetAccess
퍼블릭
SetAccess
퍼블릭

데이터형: logical

메서드

모두 확장

예제

모두 축소

이 예제에서는 모델 sldemo_mdlref_basic과 참조된 모델 sldemo_mdlref_counter에 대해 검사 루트 모델의 Inport 블록 사양 검사를 실행하는 방법을 보여줍니다.

예제 모델 sldemo_mdlref_basic을 엽니다. MATLAB® 명령 창에 다음을 입력합니다.

openExample("sldemo_mdlref_basic")

모델 sldemo_mdlref_basic은 세 개의 Model 블록, 즉 CounterA, CounterB, CounterC를 포함하는 부모 모델입니다. 이러한 블록은 동일한 모델인 sldemo_mdlref_counter를 참조하며, 이는 sldemo_mdlref_basic의 서브시스템이 아니라 별도의 모델입니다.

sldemo_mdlref_basic의 모델 참조 계층 구조에서 모델 어드바이저 검사를 실행하는 데 사용할 수 있는 Advisor.Application 객체를 생성합니다.

app = Advisor.Manager.createApplication();

분석할 모델 또는 서브시스템을 지정합니다. 이 예제에서는 모델 sldemo_mdlref_basic을 모델 어드바이저 분석의 루트로 지정합니다.

setAnalysisRoot(app,Root = "sldemo_mdlref_basic");

모델을 Advisor.Application 객체의 분석 루트로 지정할 경우 모델 어드바이저는 해당 모델과 참조된 모든 모델을 분석합니다. 자세한 내용은 setAnalysisRoot 항목을 참조하십시오.

검사 루트 모델의 Inport 블록 사양 검사만 실행하기를 원한다고 가정해 보겠습니다.

기본적으로 Advisor.Application 객체는 현재 모델 어드바이저 구성의 각 검사 인스턴스를 실행하도록 설정되어 있으며, 모든 검사 인스턴스가 선택되어 있습니다. 모델 어드바이저 분석에서 모든 검사 인스턴스를 제거하려면 검사 인스턴스를 선택 해제합니다.

deselectCheckInstances(app);

검사 인스턴스 ID를 찾아서 사용하여 모델 어드바이저가 검사 루트 모델의 Inport 블록 사양 검사만 실행하도록 지정합니다.

checkID = "mathworks.design.RootInportSpec";
instanceIDs = getCheckInstanceIDs(app,checkID);
instanceID = instanceIDs(1);
selectCheckInstances(app,ID = instanceID);

이제 모델 어드바이저 분석에 대해 검사 루트 모델의 Inport 블록 사양 검사가 선택되었습니다.

검사 루트 모델의 Inport 블록 사양 검사가 모델 어드바이저 트리에서 여러 폴더에 나타나므로, 메서드 getCheckInstanceIDs는 여러 개의 검사 인스턴스 ID를 반환합니다. 이 예제에서 instanceID는 getCheckInstanceIDs에서 반환된 첫 번째 검사 인스턴스 ID로 지정되었지만, getCheckInstanceIDs에서 반환된 검사 인스턴스 ID 중 어느 것이든 선택할 수 있습니다.

참고

또는, 개별 검사를 선택하는 대신 모델 어드바이저 구성 파일을 불러오려면 메서드 loadConfiguration을 사용하십시오.

모델 어드바이저 분석을 실행합니다.

run(app);

모델 어드바이저는 sldemo_mdlref_basic과 sldemo_mdlref_counter 모두에 대해 검사 루트 모델의 Inport 블록 사양 검사를 실행합니다.

모델 어드바이저 분석에서 결과를 가져옵니다.

res = getResults(app);

모델 어드바이저 리포트를 생성하고 표시합니다.

report = generateReport(app);
web(report);

모델 어드바이저 리포트는 sldemo_mdlref_basic 및 sldemo_mdlref_counter에 대한 결과 요약과 각 모델의 개별 리포트에 대한 하이퍼링크를 제공합니다.

이 예제에서는 모델 slexVariantManagement의 여러 Variant 선택지에 대해 검사 연결되지 않은 선, 입력 포트 및 출력 포트 식별을 실행하는 방법을 보여줍니다.

예제 모델 slexVariantManagement를 엽니다. MATLAB 명령 창에 다음을 입력합니다.

openExample("slexVariantManagement")

모델 slexVariantManagement에는 Controller와 Plant를 비롯한 여러 Variant Subsystem 블록이 포함되어 있습니다. Variant Subsystem 블록 내부에는 이러한 컴포넌트의 서로 다른 구현이 있습니다.

slexVariantManagement에는 모델과 연결된 Variant 구성 데이터 객체 vcd에 여러 Variant 구성이 저장되어 있습니다. Advisor.Application 객체는 Simulink Variant Manager를 사용하여 생성한 Variant 구성으로 만들어진 모델의 활성 Variant 블록에 대해서만 모델 어드바이저 분석을 실행할 수 있습니다. 자세한 내용은 Manage Variants with Simulink Variant Manager 항목을 참조하십시오.

모델 어드바이저 검사를 실행하는 데 사용할 수 있는 Advisor.Application 객체를 생성합니다.

app = Advisor.Manager.createApplication();

Advisor.Application 객체가 slexVariantManagement의 각 Variant 선택지에 대해 모델 어드바이저를 실행할 수 있도록, AnalyzeVariants를 true로 지정합니다.

app.AnalyzeVariants = true;

분석할 모델을 지정합니다. 이 예제에서는 모델 slexVariantManagement를 모델 어드바이저 분석의 루트로 지정합니다.

setAnalysisRoot(app,Root = "slexVariantManagement");

검사 연결되지 않은 선, 입력 포트 및 출력 포트 식별만 실행하기를 원한다고 가정해 보겠습니다.

기본적으로 Advisor.Application 객체는 현재 모델 어드바이저 구성의 각 검사 인스턴스를 실행하도록 설정되어 있으며, 모든 검사 인스턴스가 선택되어 있습니다. 모델 어드바이저 분석에서 모든 검사 인스턴스를 제거하려면 검사 인스턴스를 선택 해제합니다.

deselectCheckInstances(app);

검사 인스턴스 ID를 찾아서 사용하여 모델 어드바이저가 검사 연결되지 않은 선, 입력 포트 및 출력 포트 식별을 실행하도록 지정합니다.

checkID = "mathworks.design.UnconnectedLinesPorts";
instanceIDs = getCheckInstanceIDs(app,checkID);
instanceID = instanceIDs(1);
selectCheckInstances(app,ID = instanceID);

이제 모델 어드바이저 분석에 대해 검사 연결되지 않은 선, 입력 포트 및 출력 포트 식별이 선택되었습니다.

검사 연결되지 않은 선, 입력 포트 및 출력 포트 식별이 모델 어드바이저 트리에서 여러 폴더에 나타나므로, 메서드 getCheckInstanceIDs는 여러 개의 검사 인스턴스 ID를 반환합니다. 이 예제에서 instanceID는 getCheckInstanceIDs에서 반환된 첫 번째 검사 인스턴스 ID로 지정되었지만, getCheckInstanceIDs에서 반환된 검사 인스턴스 ID 중 어느 것이든 선택할 수 있습니다.

참고

또는, 개별 검사를 선택하는 대신 모델 어드바이저 구성 파일을 불러오려면 메서드 loadConfiguration을 사용하십시오.

모델 어드바이저 분석을 실행합니다.

run(app);

모델 어드바이저는 모델과 참조된 모델 모두의 활성 Variant에 대해 검사를 실행합니다.

모델 어드바이저 분석에서 결과를 가져옵니다.

res = getResults(app);

모델 어드바이저 리포트를 생성하고 표시합니다.

report = generateReport(app);
web(report);

모델 어드바이저 리포트는 slexVariantManagement에 대한 결과 요약과 각 Variant의 개별 리포트에 대한 하이퍼링크를 제공합니다.

제한 사항

  • 참조된 모델은 최신 상태가 아닐 때만 컴파일되며, 다음과 같은 경우에는 참조된 모델에 대해 컴파일타임 검사가 실행되지 않습니다.

    • 모델 참조가 계층 구조에서 사용됨.

    • 시뮬레이션 모드가 accelerator로 설정됨.

    • UpdateModelReferenceTargets가 IfOutOfDate로 설정됨.

  • Advisor.Application은 여러 시스템에서 병렬로 실행할 수 없습니다. 모델이 모델 참조나 Variant를 사용하지 않는 경우에는 함수 ModelAdvisor.run을 대신 사용하십시오. ModelAdvisor.run은 모델 및 서브시스템에 대해 모델 어드바이저 검사를 실행할 수 있으며, 여러 시스템에서 병렬로 실행하는 옵션을 제공합니다.

버전 내역

R2015b에 개발됨