{"id":58,"date":"2019-06-18T14:31:46","date_gmt":"2019-06-18T06:31:46","guid":{"rendered":"http:\/\/151.236.221.165\/?p=58"},"modified":"2019-06-18T15:59:10","modified_gmt":"2019-06-18T07:59:10","slug":"generalized-actuator-approach","status":"publish","type":"post","link":"https:\/\/www.sanburs.xyz\/index.php\/2019\/06\/18\/generalized-actuator-approach\/","title":{"rendered":"Generalized Actuator Approach"},"content":{"rendered":"<div class=\"has-toc have-toc\"><\/div>\n<p><span class=\"begin\">T<\/span>he novel approach proposed in this thesis starts from the idea of considering logic control as a recipe mainly composed by two ingredients:<\/p>\n<ol>\n<li>a set of basic actions.<\/li>\n<li>one or more desired sequences to coordinate actions execution. The first ingredient represents mechanisms of functionality implementation, while the second represents the control policy.<\/li>\n<\/ol>\n<hr \/>\n<h2>How to use GA Approach<\/h2>\n<ol>\n<li>Identify basic actions of the process;<\/li>\n<li>Define Do-Done actions;<\/li>\n<li>Define Start-Stop actions;<\/li>\n<li>Identify the GAs by grouping actions with overlapping sets of sensors or actuators;<\/li>\n<li>Design each GA by:\n<ul>\n<li>Defining its interfaces;<\/li>\n<li>Designing the actuation logics according to reference model<\/li>\n<li>Designing the internal diagnostics and quality assessment procedures (not considered in this work);<\/li>\n<\/ul>\n<\/li>\n<li>Design the high\u2013level policies<\/li>\n<\/ol>\n<h2>The First Example<\/h2>\n<p><span class=\"begin\">T<\/span>his example is an adaptation of the drilling machine in processing station of FESTO manufacturing systems. We will deal with the different functionalities desired for the system in different steps; namely these functionalities are:<\/p>\n<ol>\n<li>To drill a workpiece using a presence sensor;<\/li>\n<li>Control duration of drillin according to a suitable policy;<\/li>\n<li>Diagnostic sensors faults;<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/Drilling%20module.PNG\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\" alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/Drilling%20module.PNG\" alt=\"\" \/><\/p><\/noscript>\n<p><span class=\"begin\">It<\/span> is composed by a rotary table that feeds some workpiece to a drilling station that perform the drill operation over the workpiece. The rotary table is actuated through the command signal <code>RotaryTable<\/code>; the system is equipped with a sensor that indicates when a workpiece is in the correct position to be drilled (signal <code>WorkPieceSensor<\/code>). The electric motor that vertically moves the drilling unit has two direction of movement, decidable through command signals <code>DrillingUP<\/code> and <code>DrillingDOWN<\/code>; the combination <code>DrillingUP<\/code>=1 <code>DrillingDown<\/code>=0 causes the upward direction while the combination <code>DrillingUO<\/code>=0 <code>DrillingDOWN<\/code>=0 causes the downward direction. Two sensors indicate the up limit stop (signal <code>LimitUP<\/code>) and the down limit stop (signal <code>LimitDown<\/code>) of the drilling unit. The drilling unit is equipped with a drilling tool mounted into a spindle moved by an electric motor; the spindle has two different direction of movement, decidable through  command signals <code>DrillingRotationON<\/code> and <code>SpindleMotorDirection<\/code>, namely clockwise movement can be issued through the combination of <code>DrillingRotationON<\/code>=1 and <code>SpindleMotorDirection<\/code>=1, while the anticlockwise movement can be issued through the combination of <code>SpindleMotorON<\/code>=1 and <code>SpindleMotorDirection<\/code>=0.<\/p>\n<p><span class=\"begin\">W<\/span>hen a new workpiece arrives under the drilling unit, this must reach its downward position and the spindle must turn clockwise to perform the drilling operation to the workpiece. The drilling operation must continue for five seconds. After this time interval, the drilling unit must reach its upward limit while the load is expelled; during this operation the spindle must turn anticlockwise to allow the correct extraction of the drilling tool from the load. The overall process must start when the command <code>StartProcess<\/code> is active and should stop when <code>StartProcess<\/code> becomes false.<\/p>\n<h3>Common Solution<\/h3>\n<p><img decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/SFC%20For%20DrillingModule.PNG\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\" alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/SFC%20For%20DrillingModule.PNG\" alt=\"\" \/><\/p><\/noscript>\n<p><span class=\"begin\">It<\/span> is not hard to draw this SFC diagram according to the preceding part of the text.<strong>But the designed solution lacks of separation between logic policies and actuation mechanisms, reflecting into a lack of re-usability and modularity;<\/strong> this directly affect the readability of the software but also (and especially) the possibility to make some changes quickly and easily as it can be noted considering the following modifications to the plant and policies.<\/p>\n<p>Now, let's consider the following modifications to the plant and policies.<\/p>\n<ol>\n<li>Suppose that the considered system is equipped with a presence sensor which cannot be considered as ideal: signal <code>WorkPieceSensor<\/code> becomes true as soon as the workpiece reaches the sensor but this position is not correctly centered below the drilling unit; the belt must therefore move for a given time interval that depends on its actual speed and the load dimensions in order to bring the load in the correct position.<\/li>\n<li>Suppose that the system can manage two different types of workpiece and, depending by the kind of workpiece (indicated by signal <code>WorkPieceTypeSensor<\/code>) the drilling operation must be three or five seconds long (i.e. the reference for the temperature control changes according to the actual product).<\/li>\n<\/ol>\n<p>Note that the modification (1) is related to an action sensor (generally to an actuation mechanism) while modification (2) is referred to a policy change but this characteristics are not clearly distinguishable in the SFC diagram.<\/p>\n<p>Detail discuss will not be summarized here. You can go to the original book to read if you are interested in it.<\/p>\n<h3>Use The Generalized Actuator approach<\/h3>\n<h4>(1) Identify basic actions of the process<\/h4>\n<p>For the considered system the basic actions to perform are<\/p>\n<ol>\n<li>move the workpiece in drilling position, indicated as <code>Positioning<\/code>;<\/li>\n<li>expel the drilled workpiece,indicated as <code>Expulsion<\/code>;<\/li>\n<li>move the drill unit upward, indicated as <code>DrillGoUp<\/code>;<\/li>\n<li>move the ram downward, indicated as <code>DrillGoDown<\/code>;<\/li>\n<li>control the spindle rotation, indicated as <code>SpindleControl<\/code>.<\/li>\n<\/ol>\n<h4>(2)Define Do-Done and Start-Stop actions<\/h4>\n<p>\u200b  From the considered example, it is immediate to note that there exist two different kinds of actions and, consequently, of GAs; there are actions which structurally terminate after a finite time (e.g. action <code>Positioning<\/code> implies moving the belt until the workpiece reaches the drilling position), while there are others which, in principle, could continue for an infinite time and whose termination has to be decided \u201cexternally\u201d(e.g. action <code>SpindleControl<\/code>).<br \/>\n    <em>The GAs associated to the first kind of actions are denominated <strong>Do-Done<\/strong><\/em> GA. They are characterized by a input signal <strong>Do<\/strong> used to command the starting of an action, an input signal <strong><em>DoWhat<\/em><\/strong> to specify what kind of action has to be performed (if more than one is available) and an output signal <strong><em>Done<\/em><\/strong> to signal when the action has terminated successfully.<br \/>\n    Differently, the GAs associated to the second kind of actions are  enominated <strong><em>Start-Stop<\/em><\/strong> GA. Their characteristic I\/O signals are the input <strong><em>Start<\/em><\/strong> to command the beginning of an action, defined by the input <strong><em>StartWhat<\/em><\/strong>, and the input command <strong><em>Stop<\/em><\/strong> to stop the action.<\/p>\n<h4>(3)Identify the GAs by grouping actions with overlapping sets of sensors or actuators<\/h4>\n<p>Looking for common equipment used in different actions, leads to group them in three GAs respectively devoted to the drilling workpiece, move the drill unit and control spindle rotation control.<\/p>\n<ol>\n<li><code>WorkPieceMotion<\/code>, a Do-Done GA that is devoted to workpiece positioning;<\/li>\n<li><code>DrillMotion<\/code>, a Do-Done GA that is aimed at moving the drill unit;<\/li>\n<li><code>Spindle<\/code>, a Start-Stop GA that is aimed at controlling the spindle rotation of drilling.<\/li>\n<\/ol>\n<h4>(4)Design  GAs<\/h4>\n<h5>Defining its interfaces<\/h5>\n<ol>\n<li><strong>Interface to policy:<\/strong> this section represents the input\/output section between the GA and the supervision policy. It can be further decomposed in two subsections separating the standard communications between the GA and the policy and all the case dependent communications.\n<ul>\n<li><strong>Standard interface:<\/strong> embeds all command inputs for the GA and the outputs that communicate the actual state of the GA and the task that it is accomplishing. More in details the <u>Do-Done<\/u> GA will receive as command the <u>Do<\/u> signal to start operations and the <u>DoWhat<\/u> signal to specify the desired action, while the <u>Start-Stop<\/u> GA will be commanded through inputs <u>Start<\/u> to start operations and <u>Stop<\/u> to conclude operations, and through signal <u>StartWhat<\/u> to define the required action. In both cases input signals <u>Alarm<\/u>, <u>AlarmType<\/u> can be used to communicate to the GA the occurrence of an external anomalous situation. The outputs of this section are, for the <u>Do-Done<\/u> GA, the Done signal by which the GA communicate that the task has been performed and the <u>DoneWhat<\/u> signal by which the terminated task is specified; the <u>Start-Stop<\/u> GA outputs are the signal <u>DoingWhat<\/u> representing the task that the GA is performing. In both kind of GAs, a <u>State<\/u> signal communicate the actual state in which the GA is evolving.<\/li>\n<li>**Communications: **represents all the non standard communications between the policy and the GA, as the results of sensor readings filtering(e.g. the <code>WorkPieceTypeSensor<\/code>  signals in <code>WorkPieceMotor<\/code> GA that distinguish between two different kind of workpiece filtering the sensor readings <code>WorkPieceTypeSensor<\/code>.)<\/li>\n<\/ul>\n<\/li>\n<li><strong>Low level interface:<\/strong> this section contain all the interfaces with the low level world; even this section can be further decomposed in two sub sections considering the constant parameters used by the GA separated from the physical interconnection with the plant.<\/li>\n<\/ol>\n<ul>\n<li><strong>Constant parameters:<\/strong> contains all the inputs by which it is possible to give a constant value to characteristic parameters of the GA (e.g. in <code>WorkPieceMotion<\/code> GA the in put <code>PositioningDelayTime<\/code> by which define the time interval between the activating instant for sensor <code>WorkPieceSensor<\/code> and the instant in which the workpiece reaches the drilling position.<\/li>\n<li><strong>Plant I\/O link:<\/strong> is the real interface with the plant and contains as inputs all the links to sensors and as outputs the links to actuators. In this way the physical connection between the GA and the plant is completely hidden to the high level control policy.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/GA%20Interface.PNG\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\" alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/GA%20Interface.PNG\" alt=\"\" \/><\/p><\/noscript>\n<h5>Designing the actuation logics according to reference model<\/h5>\n<p><img decoding=\"async\" class=\"lazyload\" data-src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/GA%20evolution%20model.PNG\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\" alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/bllog-1258408989.cos.ap-chengdu.myqcloud.com\/GA%20evolution%20model.PNG\" alt=\"\" \/><\/p><\/noscript>\n<p><code>Init<\/code>: this state is the initial one and becomes active as soon as the GA is activated (usually at the beginning of operations). It represents the state in which initialization actions are performed; the GA moves out from this state when a signal <code>EndInit<\/code> communicates that the initialization operations are concluded forcing the GA to move in <code>Ready<\/code> state.<\/p>\n<p><code>Ready<\/code>: in this state the GA is ready to perform the desired operation and is waiting for the <code>Do<\/code> or <code>Start<\/code> command to move to <code>Busy<\/code> state.<\/p>\n<p><code>Busy<\/code>: after the command issued by the policy the GA starts performing its required task communicating with the high level policy information on the accomplishment of the function(e.g. information on the quality of the operations). The GA remains into this state until the task is finished and the signal <code>Done<\/code> is raised (Do\u2013Done GA) or until the <code>Stop<\/code> signal(Start\u2013Stop GA) is issued by the policy. In these cases the GA moves back to state <code>Ready<\/code>.<\/p>\n<p><code>Fault<\/code>: from any state a signal <code>Fault<\/code> (used to communicate some anomalies) can force the GA to move into a <code>Fault<\/code> state in which some counteractions are taken. Note that the <code>Fault<\/code> signal can be both due to external commands (e.g. an alarm issued by an external operator), to internal diagnostics or to wrong logic operations. When the alarm situation is concluded (signal <code>EndFault<\/code>) the GA returns in the <code>Init<\/code> state to be reinitialized.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The novel approach proposed in this thesis starts from the idea o &#8230;<\/p>","protected":false},"author":1,"featured_media":64,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/posts\/58"}],"collection":[{"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":4,"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":77,"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/posts\/58\/revisions\/77"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/media\/64"}],"wp:attachment":[{"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sanburs.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}