A surgical instrument, comprising: a displacement member configured to translate within the surgical instrument over a plurality of predefined zones; a motor coupled to the displacement member to translate the displacement member; a control circuit coupled to the motor; a position sensor coupled to the control circuit, the position sensor configured to measure the position of the displacement member; and a timer circuit coupled to the control circuit, the timer circuit configured to measure elapsed time; wherein the control circuit is configured to: receive a position of the displacement member from the position sensor; receive elapsed time from the timer circuit; and determine a zone in which the displacement member is located; wherein the control circuit is configured, for each of the plurality of zones, to: set a directed velocity of the displacement member based on the zone in which the displacement member is located; determine an actual velocity of the displacement member based on the position of the displacement member received from the position sensor and the elapsed time received from the timer circuit; determine an error between the directed velocity of the displacement member and the actual velocity of the displacement member; and set a new directed velocity of the displacement member if the magnitude of the error exceeds a predetermined error threshold. a displacement member configured to translate within the surgical instrument over a plurality of predefined zones; a motor coupled to the displacement member to translate the displacement member; a control circuit coupled to the motor; a position sensor coupled to the control circuit, the position sensor configured to measure the position of the displacement member; and a timer circuit coupled to the control circuit, the timer circuit configured to measure elapsed time; wherein the control circuit is configured to: receive a position of the displacement member from the position sensor; receive elapsed time from the timer circuit; and determine a zone in which the displacement member is located; wherein the control circuit is configured, for each of the plurality of zones, to: set a directed velocity of the displacement member based on the zone in which the displacement member is located; determine an actual velocity of the displacement member based on the position of the displacement member received from the position sensor and the elapsed time received from the timer circuit; determine an error between the directed velocity of the displacement member and the actual velocity of the displacement member; and set a new directed velocity of the displacement member if the magnitude of the error exceeds a predetermined error threshold. receive a position of the displacement member from the position sensor; receive elapsed time from the timer circuit; and determine a zone in which the displacement member is located; wherein the control circuit is configured, for each of the plurality of zones, to: set a directed velocity of the displacement member based on the zone in which the displacement member is located; determine an actual velocity of the displacement member based on the position of the displacement member received from the position sensor and the elapsed time received from the timer circuit; determine an error between the directed velocity of the displacement member and the actual velocity of the displacement member; and set a new directed velocity of the displacement member if the magnitude of the error exceeds a predetermined error threshold. set a directed velocity of the displacement member based on the zone in which the displacement member is located; determine an actual velocity of the displacement member based on the position of the displacement member received from the position sensor and the elapsed time received from the timer circuit; determine an error between the directed velocity of the displacement member and the actual velocity of the displacement member; and set a new directed velocity of the displacement member if the magnitude of the error exceeds a predetermined error threshold.