주요 콘텐츠

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

창고 로봇에 대한 결함 민감도 연구 수행

이 예제에서는 창고 로봇이 결함을 감지한 경우에 작동하는 이 로봇의 비상 브레이크 시스템을 테스트하는 방법을 보여줍니다. 여기서는 휠 브레이크 메커니즘을 포함하는 Execute Tasks for a Warehouse Robot (Robotics System Toolbox)의 모델의 수정된 버전을 사용합니다. 이 예제에서는 로봇이 결함을 감지하여 로봇 바퀴의 회전을 멈추는 시점에 영향을 미치는 조건을 확인하기 위해 제어 시스템에 결함을 주입합니다. 결함 검출 로직에 적용되는 결함 속성을 확인하기 위해 결함 민감도 연구를 실행합니다. 결함 속성을 찾은 후 고장 모드 및 영향 분석(FMEA) 스프레드시트에서 결과를 확인합니다.

브레이크 메커니즘 검사하기

모델 warehouseTasksRobotSimulationModelFaulted를 엽니다.

mdlName = "warehouseTasksRobotSimulationModelFaulted";
open_system(mdlName)

An overview of the model. The model also includes the Emergency Brake subsystem, which is tested in this example.

Emergency Brake 서브시스템을 열어 휠 브레이크 모델을 확인합니다. 이 장치는 결함을 검출하고 로봇이 통제 불능으로 회전하는 것을 방지합니다. MATLAB 함수 블록은 로봇의 각운동량을 기반으로 브레이크가 작동하는 시점을 계산합니다. 모델 로직이 결함을 검출하면, 모델은 Assertion 블록에 신호를 보내 로봇을 멈추고 시뮬레이션을 중단합니다.

The contents of the emergency brake subsystem. The MATLAB Function block controls when the brake deploys.

결함 검사하기

이 모델에는 컨트롤러의 각속도 출력에 영향을 미치는 두 개의 결함이 포함되어 있습니다. 결함 테이블 창을 열어서 결함을 보고 선택합니다. 탭에서 결함 분석기를 클릭합니다. 그런 다음 결함 분석기 탭의 보기 섹션에서 결함 테이블을 클릭합니다. angularVelocity_TimedSpin 결함은 시간 지정된 트리거를 사용하고, angularVelocity_MaxPose는 조건 트리거를 사용합니다. angularVelocity_TimedSpin은 시뮬레이션 시간이 50일 때 주입됩니다. angularVelocity_MaxPose는 Differential Drive Kinematic Model 블록의 상태 출력 포트의 신호가 57보다 클 때 주입되고, 트리거된 후에도 계속 주입됩니다.

A view of the Fault Table pane in the model. The model has two faults on one model element. The model element is disabled for fault simulation.

조건문을 개발하면서 결함 주입 조건을 더 잘 나타내기 위해 표현식을 업데이트해야 할 수도 있습니다. 조건식을 조정하여 신호 임계값을 조정할 수 있습니다. 자세한 내용은 조건 생성 및 관리 항목을 참조하십시오.

한 가지 결함 동작이 있는 모델 시뮬레이션

현재 결함이 결함 검출에 도움이 되는지 테스트하기 위해 모델을 시뮬레이션합니다. 이 예에서는 angularVelocity_TimedSpin을 활성화하여 시뮬레이션합니다.

  1. 결함 테이블 창에서 Zero-Velocity At Goal/Unit Delay1/Outport/1 모델 요소에 대한 활성화 체크박스를 선택합니다. 그런 다음 angularVelocity_TimedSpin 결함에 대한 활성 결함 체크박스를 선택합니다.

  2. 결함 시뮬레이션을 켭니다. 결함 분석기 탭의 상태 섹션에서 결함 시뮬레이션 버튼이 활성화되어 있는지 확인합니다.

  3. 모델을 시뮬레이션합니다.

시뮬레이션 데이터 인스펙터에서 시뮬레이션 결과를 볼 수 있습니다. 결함 분석기 탭의 결과 검토 섹션에서 데이터 인스펙터를 클릭합니다. 이 예제에서, 결함 검출 로직은 결함을 검출하지 못하며 브레이크 시스템을 작동시키지 않습니다. angularVelocity_TimedSpin이 주입되면 safetyLock 신호는 0에 유지되고 어설션은 통과됩니다.

Results from the simulation after injecting one fault. The results are shown in the Simulation Data Inspector. The plot shows the status of the fault, the lock, and the assertion block in the brake subsystem.

angularVelocity_MaxPos 결함을 활성화하고 모델을 시뮬레이션합니다. 이 결함은 검출 로직을 활성화하여 휠 브레이크를 작동시킵니다.

다중 시뮬레이션 패널을 사용하여 결함 민감도 연구 수행

angularVelocity_TimedSpin 결함은 기본 작업 공간 변수 angularVelFaultGain을 사용하여 결함 동작과 관련된 이득을 조정합니다. angularVelFaultGain은 초기에 2로 설정됩니다. angularVelocity_TimedSpin에 대한 결함 동작을 엽니다.

fmdlName = "warehouseFaultedRobot_FaultModel";
open_system(fmdlName)
open_system(fmdlName + "/angularVelocity_TimedSpin")

The fault behavior of the angularVelocity_TimedSpin fault. The behavior is a gain with a parameterized value, set to the workspace variable angularVelFaultGain.

결함 동작에서 Gain 블록의 Gain 파라미터는 angularVelFaultGain으로 설정됩니다. 이 변수의 값을 변경하면 결함 검출 로직이 실행될 수 있습니다. 이 값을 찾으려면 다중 시뮬레이션 패널을 사용하여 결함 민감도 연구를 수행하면 됩니다. 결함 민감도 연구에서는 주입할 하나 이상의 결함을 선택하고 결함 동작이나 트리거 조건에 할당된 파라미터를 변경하여 완화 로직이나 안전 메커니즘이 결함 조건에 얼마나 민감한지 확인합니다. 다중 시뮬레이션 패널에서 설계 연구를 구성하는 방법에 대한 자세한 내용은 Configure and Run Simulations with Multiple Simulations Panel다중 시뮬레이션 패널을 사용하여 결함이 있는 모델 시뮬레이션 항목을 참조하십시오.

이 예에서는 angularVelFaultGain을 스윕하고 각각의 값에서 시뮬레이션하여 여러 시뮬레이션을 실행합니다. 이 예제에는 이 목표에 대한 설계 연구가 포함되어 있습니다. 설계 연구를 열려면:

  1. 다중 시뮬레이션 패널을 엽니다. 결함 분석기 탭의 시뮬레이션 섹션에서 다중 시뮬레이션을 클릭합니다.

  2. 다중 시뮬레이션 패널에서 설계 연구를 불러옵니다. "설계 연구가 포함된 파일 로드" 버튼 Load file containing design studies button.을 클릭하고 설계 연구 faultDesignStudy를 선택합니다.

설계 연구에서는 활성 결함으로 angularVelocity_TimedSpin을 선택하고 2에서 시작하여 0.2만큼 증가하고 5에서 끝나는 angularVelFaultGain의 각 값에 대한 시뮬레이션을 생성합니다. 이 설계 연구에서는 16개의 시뮬레이션을 실행합니다.

View of the fault sensitivity study shown in the Multiple Simulations pane. The design study adjusts the value of the gain in the fault behavior by using a vector.

시뮬레이션을 실행합니다. Simulink® 툴스트립의 결함 분석기 탭에 있는 시뮬레이션 섹션에서 실행 > 모두 실행을 클릭합니다. Parallel Computing Toolbox™가 있으면 설계 연구의 병렬 시뮬레이션을 활성화하여 시뮬레이션 속도를 향상시킬 수도 있습니다. 다중 시뮬레이션 패널의 실행 옵션 탭에서 병렬 사용을 클릭합니다.

시뮬레이션 관리자에서 결과를 확인합니다. Simulink 편집기 하단에서 완료된 시뮬레이션 16개를 클릭합니다. Assertion 블록은 검출 메커니즘이 결함을 검출하면 시뮬레이션을 중지하므로 어떤 angularVelFaultGain 값이 메커니즘을 작동하는지 확인할 수 있습니다. 검출 로직이 관여하게 되는 첫 번째 시뮬레이션은 네 번째 시뮬레이션입니다.

The Simulation Manager shows a table that displays 16 simulations and their statuses. The Status column on the right of the table. shows whether the simulation completed or completed with errors. Three of them completed without errors, and the others completed with errors.

실행 ID 열 셀을 클릭하여 값 4를 입력하면 해당 시뮬레이션의 angularVelFaultGain 변수 값을 볼 수 있습니다. 결과는 값이 2.6임을 나타냅니다.

The Simulation Manager shows additional details for the simulation with run ID 4. The Parameters tab shows the parameters in the model. The angularVelFaultGain parameter is selected, and has a value of 2.6 in the Value column.

FMEA에서 결함 검출 로직 확인

실행하려는 시뮬레이션을 구성한 후에는 안전성 분석 관리자에서 만든 안전성 분석 스프레드시트의 요소에 결함을 연결할 수 있습니다. 이 예제에서 결함은 FMEA 스프레드시트의 셀 항목과 연결됩니다. FMEA는 일반적인 안전성 분석으로서, 고장 모드라고 하는 의도치 않은 시스템 또는 컴포넌트의 동작을 시스템에 미치는 잠재적 영향을 고려하여 분석합니다. 이러한 분석에는 비정상적인 동작을 검출하고 방지하는 데 있어 안전 메커니즘과 같은 완화 로직이 얼마나 효과적인지에 대한 정보가 종종 포함됩니다.

안전성 분석 관리자에서 FMEA 스프레드시트 RobotFMEA.mldatx를 엽니다.

robotFMEADoc = ...
    safetyAnalysisMgr.openDocument("RobotFMEA.mldatx");
clearFlags(robotFMEADoc)
safetyAnalysisMgr.openManager

FMEA는 각 결함을 고장 모드 열의 고장 모드에 연결하고, 검출 방법 열의 브레이크 시스템의 검출 로직을 모델링하는 블록에 연결합니다. 링크를 보려면 마우스로 링크 아이콘 Link icon.을 가리키십시오. 셀을 선택하여 링크를 볼 수도 있습니다. 속성 창에서 링크 섹션을 확장하십시오.

The Failure Mode and Effects Analysis for the model. The model has two failure modes, shown in the Failure Mode column. Each failure mode has a link icon, indicating that it links to a failure mode in the model. The Detection Method column also has links.

FMEA 시뮬레이션 및 평가를 위한 콜백 실행

스프레드시트를 분석하기 위해 콜백을 만들고 실행합니다. Write Callbacks to Analyze Safety Analysis Manager Documents 항목을 참조하십시오. 이 예에서 스프레드시트 분석을 클릭하면 스프레드시트가 콜백을 실행합니다. 콜백은 MATLAB® 스크립트인 validateFMEAUsingSimulation의 코드를 실행합니다. 고장 모드 열에 연결된 결함이 하나 이상 있는 스프레드시트의 각 행에 대해 스크립트는 결함을 활성화하고 시뮬레이션합니다. 그런 다음 스크립트는 시뮬레이션 중 어느 시점에서 Emergency Brake 서브시스템의 MATLAB 함수 블록의 safetyLock 신호가 1인지 확인합니다. 그렇다면 스크립트는 검출 방법 열에 있는 인접 셀에 대한 체크 플래그를 추가합니다. 그렇지 않으면 오류 플래그가 추가됩니다.

스프레드시트 분석을 클릭합니다. 스프레드시트를 분석할 때 첫 번째 고장 모드는 검출 로직을 실행하지 않습니다. angularVelFaultGain2이기 때문에 이는 예상했던 결과입니다.

The FMEA after running the analysis callback. The FMEA shows that the locking mechanism did not engage for the first failure mode by marking the cell in the Detection Method column with an error flag. The other failure mode engaged the safety lock, and has a check flag instead.

이 고장 모드에 대한 결함 검출 로직을 실행하려면 angularVelFaultGain2.6으로 변경하고 콜백을 다시 실행합니다.

참고 항목

도움말 항목

외부 웹사이트