이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
창고 로봇에 대한 결함 민감도 연구 수행
이 예제에서는 창고 로봇이 결함을 감지한 경우에 작동하는 이 로봇의 비상 브레이크 시스템을 테스트하는 방법을 보여줍니다. 여기서는 휠 브레이크 메커니즘을 포함하는 Execute Tasks for a Warehouse Robot (Robotics System Toolbox)의 모델의 수정된 버전을 사용합니다. 이 예제에서는 로봇이 결함을 감지하여 로봇 바퀴의 회전을 멈추는 시점에 영향을 미치는 조건을 확인하기 위해 제어 시스템에 결함을 주입합니다. 결함 검출 로직에 적용되는 결함 속성을 확인하기 위해 결함 민감도 연구를 실행합니다. 결함 속성을 찾은 후 고장 모드 및 영향 분석(FMEA) 스프레드시트에서 결과를 확인합니다.
브레이크 메커니즘 검사하기
모델 warehouseTasksRobotSimulationModelFaulted
를 엽니다.
mdlName = "warehouseTasksRobotSimulationModelFaulted";
open_system(mdlName)
Emergency Brake
서브시스템을 열어 휠 브레이크 모델을 확인합니다. 이 장치는 결함을 검출하고 로봇이 통제 불능으로 회전하는 것을 방지합니다. MATLAB 함수 블록은 로봇의 각운동량을 기반으로 브레이크가 작동하는 시점을 계산합니다. 모델 로직이 결함을 검출하면, 모델은 Assertion 블록에 신호를 보내 로봇을 멈추고 시뮬레이션을 중단합니다.
결함 검사하기
이 모델에는 컨트롤러의 각속도 출력에 영향을 미치는 두 개의 결함이 포함되어 있습니다. 결함 테이블 창을 열어서 결함을 보고 선택합니다. 앱 탭에서 결함 분석기를 클릭합니다. 그런 다음 결함 분석기 탭의 보기 섹션에서 결함 테이블을 클릭합니다. angularVelocity_TimedSpin
결함은 시간 지정된 트리거를 사용하고, angularVelocity_MaxPose
는 조건 트리거를 사용합니다. angularVelocity_TimedSpin
은 시뮬레이션 시간이 50
일 때 주입됩니다. angularVelocity_MaxPose
는 Differential Drive Kinematic Model 블록의 상태 출력 포트의 신호가 57
보다 클 때 주입되고, 트리거된 후에도 계속 주입됩니다.
조건문을 개발하면서 결함 주입 조건을 더 잘 나타내기 위해 표현식을 업데이트해야 할 수도 있습니다. 조건식을 조정하여 신호 임계값을 조정할 수 있습니다. 자세한 내용은 조건 생성 및 관리 항목을 참조하십시오.
한 가지 결함 동작이 있는 모델 시뮬레이션
현재 결함이 결함 검출에 도움이 되는지 테스트하기 위해 모델을 시뮬레이션합니다. 이 예에서는 angularVelocity_TimedSpin
을 활성화하여 시뮬레이션합니다.
결함 테이블 창에서
Zero-Velocity At Goal/Unit Delay1/Outport/1
모델 요소에 대한 활성화 체크박스를 선택합니다. 그런 다음angularVelocity_TimedSpin
결함에 대한 활성 결함 체크박스를 선택합니다.결함 시뮬레이션을 켭니다. 결함 분석기 탭의 상태 섹션에서 결함 시뮬레이션 버튼이 활성화되어 있는지 확인합니다.
모델을 시뮬레이션합니다.
시뮬레이션 데이터 인스펙터에서 시뮬레이션 결과를 볼 수 있습니다. 결함 분석기 탭의 결과 검토 섹션에서 데이터 인스펙터를 클릭합니다. 이 예제에서, 결함 검출 로직은 결함을 검출하지 못하며 브레이크 시스템을 작동시키지 않습니다. angularVelocity_TimedSpin
이 주입되면 safetyLock
신호는 0
에 유지되고 어설션은 통과됩니다.
angularVelocity_MaxPos
결함을 활성화하고 모델을 시뮬레이션합니다. 이 결함은 검출 로직을 활성화하여 휠 브레이크를 작동시킵니다.
다중 시뮬레이션 패널을 사용하여 결함 민감도 연구 수행
angularVelocity_TimedSpin
결함은 기본 작업 공간 변수 angularVelFaultGain
을 사용하여 결함 동작과 관련된 이득을 조정합니다. angularVelFaultGain
은 초기에 2
로 설정됩니다. angularVelocity_TimedSpin
에 대한 결함 동작을 엽니다.
fmdlName = "warehouseFaultedRobot_FaultModel"; open_system(fmdlName) open_system(fmdlName + "/angularVelocity_TimedSpin")
결함 동작에서 Gain 블록의 Gain 파라미터는 angularVelFaultGain
으로 설정됩니다. 이 변수의 값을 변경하면 결함 검출 로직이 실행될 수 있습니다. 이 값을 찾으려면 다중 시뮬레이션 패널을 사용하여 결함 민감도 연구를 수행하면 됩니다. 결함 민감도 연구에서는 주입할 하나 이상의 결함을 선택하고 결함 동작이나 트리거 조건에 할당된 파라미터를 변경하여 완화 로직이나 안전 메커니즘이 결함 조건에 얼마나 민감한지 확인합니다. 다중 시뮬레이션 패널에서 설계 연구를 구성하는 방법에 대한 자세한 내용은 Configure and Run Simulations with Multiple Simulations Panel 및 다중 시뮬레이션 패널을 사용하여 결함이 있는 모델 시뮬레이션 항목을 참조하십시오.
이 예에서는 angularVelFaultGain
을 스윕하고 각각의 값에서 시뮬레이션하여 여러 시뮬레이션을 실행합니다. 이 예제에는 이 목표에 대한 설계 연구가 포함되어 있습니다. 설계 연구를 열려면:
다중 시뮬레이션 패널을 엽니다. 결함 분석기 탭의 시뮬레이션 섹션에서 다중 시뮬레이션을 클릭합니다.
다중 시뮬레이션 패널에서 설계 연구를 불러옵니다. "설계 연구가 포함된 파일 로드" 버튼
을 클릭하고 설계 연구
faultDesignStudy
를 선택합니다.
설계 연구에서는 활성 결함으로 angularVelocity_TimedSpin
을 선택하고 2
에서 시작하여 0.2
만큼 증가하고 5
에서 끝나는 angularVelFaultGain
의 각 값에 대한 시뮬레이션을 생성합니다. 이 설계 연구에서는 16개의 시뮬레이션을 실행합니다.
시뮬레이션을 실행합니다. Simulink® 툴스트립의 결함 분석기 탭에 있는 시뮬레이션 섹션에서 실행 > 모두 실행을 클릭합니다. Parallel Computing Toolbox™가 있으면 설계 연구의 병렬 시뮬레이션을 활성화하여 시뮬레이션 속도를 향상시킬 수도 있습니다. 다중 시뮬레이션 패널의 실행 옵션 탭에서 병렬 사용을 클릭합니다.
시뮬레이션 관리자에서 결과를 확인합니다. Simulink 편집기 하단에서 완료된 시뮬레이션 16개를 클릭합니다. Assertion 블록은 검출 메커니즘이 결함을 검출하면 시뮬레이션을 중지하므로 어떤 angularVelFaultGain
값이 메커니즘을 작동하는지 확인할 수 있습니다. 검출 로직이 관여하게 되는 첫 번째 시뮬레이션은 네 번째 시뮬레이션입니다.
실행 ID 열 셀을 클릭하여 값 4
를 입력하면 해당 시뮬레이션의 angularVelFaultGain
변수 값을 볼 수 있습니다. 결과는 값이 2.6
임을 나타냅니다.
FMEA에서 결함 검출 로직 확인
실행하려는 시뮬레이션을 구성한 후에는 안전성 분석 관리자에서 만든 안전성 분석 스프레드시트의 요소에 결함을 연결할 수 있습니다. 이 예제에서 결함은 FMEA 스프레드시트의 셀 항목과 연결됩니다. FMEA는 일반적인 안전성 분석으로서, 고장 모드라고 하는 의도치 않은 시스템 또는 컴포넌트의 동작을 시스템에 미치는 잠재적 영향을 고려하여 분석합니다. 이러한 분석에는 비정상적인 동작을 검출하고 방지하는 데 있어 안전 메커니즘과 같은 완화 로직이 얼마나 효과적인지에 대한 정보가 종종 포함됩니다.
안전성 분석 관리자에서 FMEA 스프레드시트 RobotFMEA.mldatx
를 엽니다.
robotFMEADoc = ... safetyAnalysisMgr.openDocument("RobotFMEA.mldatx"); clearFlags(robotFMEADoc) safetyAnalysisMgr.openManager
FMEA는 각 결함을 고장 모드 열의 고장 모드에 연결하고, 검출 방법 열의 브레이크 시스템의 검출 로직을 모델링하는 블록에 연결합니다. 링크를 보려면 마우스로 링크 아이콘 을 가리키십시오. 셀을 선택하여 링크를 볼 수도 있습니다. 속성 창에서 링크 섹션을 확장하십시오.
FMEA 시뮬레이션 및 평가를 위한 콜백 실행
스프레드시트를 분석하기 위해 콜백을 만들고 실행합니다. Write Callbacks to Analyze Safety Analysis Manager Documents 항목을 참조하십시오. 이 예에서 스프레드시트 분석을 클릭하면 스프레드시트가 콜백을 실행합니다. 콜백은 MATLAB® 스크립트인 validateFMEAUsingSimulation
의 코드를 실행합니다. 고장 모드 열에 연결된 결함이 하나 이상 있는 스프레드시트의 각 행에 대해 스크립트는 결함을 활성화하고 시뮬레이션합니다. 그런 다음 스크립트는 시뮬레이션 중 어느 시점에서 Emergency Brake
서브시스템의 MATLAB 함수 블록의 safetyLock
신호가 1
인지 확인합니다. 그렇다면 스크립트는 검출 방법 열에 있는 인접 셀에 대한 체크 플래그를 추가합니다. 그렇지 않으면 오류 플래그가 추가됩니다.
스프레드시트 분석을 클릭합니다. 스프레드시트를 분석할 때 첫 번째 고장 모드는 검출 로직을 실행하지 않습니다. angularVelFaultGain
이 2
이기 때문에 이는 예상했던 결과입니다.
이 고장 모드에 대한 결함 검출 로직을 실행하려면 angularVelFaultGain
을 2.6
으로 변경하고 콜백을 다시 실행합니다.
참고 항목
도움말 항목
- 결함 정의 및 모델링
- 안전성 분석 관리자에서 스프레드시트 만들기
- Simulink Fault Analyzer를 사용한 결함 주입
- Write Callbacks to Analyze Safety Analysis Manager Documents