Example: Handling Actions Internally

An option for Action elements is to handle their actions internally.  This means that when a parent Action element’s action is triggered, it causes a series of events in that element’s children to occur, in effect triggering a chain of events inside the component.  The OK and Failed triggers in the parent element monitor the behavior of the child elements and issue an ActionOK or ActionFailed event.

Typically, this type of approach will be used to model mechanical systems where a number of steps have to be successfully completed in sequence before a particular action can be declared successful:

The model file InternallyHandledAction.gsm, found in the Reliability Examples folder in your GoldSim directory directory (accessed by selecting File | Open Example... from the main menu), is of a car starter, with a Timed Event simulating the turning of the ignition key.  The car is started three times per day, and the starter requires an operating battery, as well as an operable solenoid and motor to operate.   

When the key is turned, this triggers the Starter’s action.  Because the Starter is modeled as a system, and the Handle action internally option is selected, child Action elements of the Starter have access to a unique type of Automatic triggering called “Auto Action.”  This triggers the child component’s action whenever the parent component’s action is triggered:

The Starter has two Action component children, Solenoid and Starter_Motor.   Each of these elements has two failure modes: an Unreliable failure mode, and a standard failure mode representing wearout.  It is important to note that the Unreliable failure mode is unique in that it does not cause failure of the element, but rather causes triggered actions to fail a specific portion of the time.  

The Starter’s action triggers the action of the Solenoid element.  If the Solenoid completes its action successfully, its ActionOK event output triggers the Starter_Motor’s Action trigger.   If unsuccessful, it triggers the Car_Fails_to_Start Triggered Event, and the Starter_Motor’s action is not triggered.

If the Starter_Motor is triggered, and its action is successful, the Starter_Motor’s ActionOK event output triggers the Car_Started element.  If it is unsuccessful, the Car_Fails_to_Start element is triggered.  The Car_Started element and the Car_Fails_to_Start element are linked to the OK and Failed triggers of the parent Starter element.

   Note: It is very important that each Auto Action trigger should only lead to a single OK or Failed conclusion.  GoldSim is unable to determine which Action trigger corresponds with which OK or Failed result, so systems where multiple OK and/or Failed results are generated will in most cases lead to undesired behavior. 

When the model is run, the time history of the number of unsuccessful actions shows that the starter first begins to fail after about two years in service:

A screenshot of a social media post

Description automatically generated

Related Topics…

Learn more about: