Tracking a position of a motorized window treatment
11703813 · 2023-07-18
Assignee
Inventors
Cpc classification
E06B9/68
FIXED CONSTRUCTIONS
E06B2009/6872
FIXED CONSTRUCTIONS
International classification
Abstract
Motorized window treatment systems are disclosed. A motorized window treatment system may include a covering material, a sensor circuit, and a control circuit. The sensor circuit may be configured to generate sensor signals indicative of a position of the covering material. The control circuit may be configured to determine a present sensor state of the sensor circuit, determine a predicted sensor state for the sensor circuit based at least in part on a power-down position recorded at a first time and a final position recorded at a second time, compare the predicted sensor state with the present sensor state, and determine a present position of the covering material based on the comparison of the predicted sensor state and the present sensor state. Methods of adjusting a position of a covering material of a motorized window treatment also are disclosed.
Claims
1. A motorized window treatment system comprising: a covering material; a sensor circuit configured to generate one or more sensor signals indicative of a position of the covering material; and a control circuit configured to be powered from a supply voltage and to control a motor drive circuit, the control circuit configured to determine a present sensor state of the sensor circuit in response to the sensor signal and update a present position of the covering material in response to changes in the present sensor state of the sensor circuit; wherein, when powering up, the control circuit configured to: determine a power-up sensor state based on the present sensor state of the sensor circuit; determine a predicted sensor state for the sensor circuit based at least in part on a power-down position recorded at a first time and a final position recorded at a second time; compare the predicted sensor state with the power-up sensor state; and update the present position of the covering material based on the comparison of the predicted sensor state and the power-up sensor state.
2. The motorized window treatment system of claim 1, wherein, prior to determining the power-up sensor state, the control circuit is configured to: detect a power-loss event based on a voltage falling below a predetermined low-voltage threshold; store the present position as the power-down position based on detection of the power-loss event; and store the present sensor state as a power-down state based on detection of the power-loss event, wherein the predetermined low-voltage threshold is below at least one of a bus voltage and a supply voltage and is above a voltage at which the control circuit is unpowered.
3. The motorized window treatment system of claim 2, wherein the supply voltage powers the control circuit.
4. The motorized window treatment system of claim 2, further comprising a motor drive circuit configured to generate signals that cause a motor to change the position of the covering material, wherein the motor drive circuit is configured to receive the bus voltage for driving the motor.
5. The motorized window treatment system of claim 2, wherein the control circuit is configured to determine the final position of the covering material prior to an end of the power-loss event.
6. The motorized window treatment system of claim 5, wherein the control circuit is configured to update the present position of the covering material by setting the present position of the covering material equal to the final position and adjusting the present position of the covering material by an adjustment factor if the predicted sensor state is not the same as the power-up sensor state.
7. The motorized window treatment system of claim 6, wherein the control circuit is configured to determine the adjustment factor by calculating the predicted sensor state based on a difference between the final position of the covering material and the power-down position and comparing the predicted sensor state and the power-up sensor state.
8. The motorized window treatment system of claim 6, wherein the control circuit is configured to adjust the present position of the covering material by the adjustment factor by incrementing or decrementing the present position of the covering material depending upon a direction of rotation of a motor prior to the power-loss event.
9. The motorized window treatment system of claim 5, wherein the control circuit is configured to adjust the present position of the covering material by setting the present position of the covering material equal to the final position if the predicted sensor state is the same as the power-up sensor state.
10. The motorized window treatment system of claim 5, wherein the control circuit is configured to determine a predicted sensor state by setting the predicted sensor state equal to the power-down state if the final position of the covering material is equal to the power-down position.
11. The motorized window treatment system of claim 5, wherein the control circuit is configured to determine the predicted sensor state by determining the predicted sensor state based on the power-down state and a difference between the final position of the covering material and the power-down position.
12. The motorized window treatment system of claim 1, wherein the control circuit is configured to store an error condition in memory if the predicted sensor state is not the same as the power-up sensor state for multiple sensor signals generated by the sensor circuit.
13. A method of adjusting a present position of a covering material of a motorized window treatment, the method comprising: determining a power-up sensor state based on a present sensor state of a sensor circuit; determining a predicted sensor state for the sensor circuit based at least in part on a power-down position recorded at a first time and a final position recorded at a second time; comparing the predicted sensor state with the power-up sensor state; and determining a present position of the covering material based on the comparison of the predicted sensor state and the power-up sensor state.
14. The method of claim 13, further comprising, prior to determining the power-up sensor state: detecting a power-loss event based on a voltage falling below a predetermined low-voltage threshold; storing the present position as a power-down position based on detection of the power-loss event; and storing the present sensor state as a power-down state based on detection of the power-loss event, wherein the predetermined low-voltage threshold is below at least one of a bus voltage and a supply voltage and is above a voltage at which a control circuit is unpowered.
15. The method of claim 14, further comprising: determining a final position of the covering material prior to an end of the power-loss event.
16. The method of claim 15, wherein determining the present position of the covering material further comprises: setting the present position of the covering material equal to the final position; and adjusting the present position of the covering material by an adjustment factor if the predicted sensor state is not the same as the power-up sensor state.
17. The method of claim 16, further comprising: determining the adjustment factor by calculating the predicted sensor state based on a difference between the final position of the covering material and the power-down position and comparing the predicted sensor state and the power-up sensor state.
18. The method of claim 17, wherein adjusting the present position of the covering material by the adjustment factor further comprises incrementing or decrementing the present position of the covering material depending upon a direction of rotation of a motor prior to the power-loss event.
19. The method of claim 15, wherein determining the present position of the covering material further comprises setting the present position of the covering material equal to the final position if the predicted sensor state is the same as the power-up sensor state.
20. The method of claim 15, wherein determining the predicted sensor state further comprises setting the predicted sensor state equal to the power-down state if the final position of the covering material is equal to the power-down position.
21. The method of claim 15, wherein determining the predicted sensor state further comprises determining the predicted sensor state based on the power-down state and a difference between the final position of the covering material and the power-down position.
22. The method of claim 13, further comprising: storing an error condition in memory if the predicted sensor state is not the same as the power-up sensor state for multiple sensor signals generated by the sensor circuit.
23. The method of claim 14, wherein the supply voltage powers the control circuit, and wherein a motor drive circuit is configured to receive the bus voltage for driving a motor.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7)
(8) The motor drive units 130 and 140 may be coupled to a communication link 150 and may communicate (e.g., transmit and/or receive) signals across the communication link 150. The communication link 150 may be any type of wired or wireless communication link, such as a radio-frequency communication link or an infrared communication link. For example, the motor drive units 130 and 140 may send signals to and/or receive signals from each other (e.g., and any other motor drive units and control devices that are not shown) via the communication link 150. This way, the various motor drive units of the window treatment system 100 may control the various window shades in a coordinated fashion, such as making sure that the shades all align at the bottom.
(9) In another example, the motor drive units 130 and 140 may send signals to and/or receive signals from one or more user interfaces, such as a user interface device 160, via the communication link 150. For example, the user interface device 160 may be a keypad (as shown), a touch screen, or a voice user interface. A user may enter commands via the user interface device 160, for example, such as “fully open shade,” “fully close shade,” “open shade 40%,” “close shade by 20 cm,” “open both shade 110 and shade 120,” “open shade 110 and close shade 120,” etc. The user interface device 160 may also include one or more displays that provide feedback to the user. For example, the display may be a screen showing a status of the user's command, a status of the window shades 110 and 120, or prompts for further user commands. The user interface device 160 may include one or more visual indicators that may be illuminated by light-emitting diodes (LEDs) to indicate a status of the window shades 110 and 120.
(10) While only two window shades 110, 120 (e.g., with two shade fabrics 112, 122, two roller tubes 114, 124, and two motor drive units 130, 140), and one user interface 160 are shown in the window treatment system 100 of
(11)
(12) The motor drive unit 200 may include a motor drive circuit 220 for driving the motor 210. The motor drive circuit 220 may be any type of drive circuit, such as an H-bridge drive circuit. The motor drive circuit 220 may generate signals for driving the motor 210. For example, the motor drive circuit 220 may generate a pulse-width modulated (PWM) signal V.sub.PWM, which may have a duty cycle and may be provided to the motor 210. Adjustment of the magnitude of the duty cycle of the PWM signal V.sub.PWM applied to the motor 210 may change the rotational speed of the motor 210, and adjustment of a polarity of the PWM signal V.sub.PWM applied to the motor 210 may change the direction of rotation of the motor 210.
(13) The motor drive unit 200 may receive an input voltage VIN from an external power supply (not shown). The external power supply may be any type of power supply, such as an alternating-current (AC) power supply, a direct-current (DC) power supply, a battery, a photovoltaic power source (e.g., such as a solar cell), etc. The motor drive unit may comprise a bus capacitor C.sub.BUS across which a bus voltage V.sub.BUS may be produced. The motor drive unit 200 may further include a rectifier circuit (not shown) and/or a power converter circuit (not shown) for receiving the input voltage VIN and generating the bus voltage V.sub.BUS across the bus capacitor C.sub.BUS. The bus voltage V.sub.BUS may be supplied to the motor drive circuit 220 for generating signals that drive the motor 210. The bus voltage V.sub.BUS may also be supplied to a power supply 230, which may generate a supply voltage V.sub.CC to power the circuitry of the motor drive unit 200.
(14) The motor drive unit 200 may further include a control circuit 240 for controlling the motor drive circuit 220, which in turn drives the motor 210. The control circuit 240 may be configured to generate various control signals for controlling the motor drive circuit 220. For example, the control signals may include a drive signal V.sub.DRV that causes the motor drive circuit 220 to control the rotational speed of the motor 210. For instance, the drive signal V.sub.DRV may be a PWM signal, where rotational speed of the motor 210 is dependent upon a duty cycle of the PWM signal. As another example, the control signals may include a direction signal V.sub.DIR that causes the motor drive circuit 220 to control the direction of rotation of the motor 210. In another example, the control signals may include an enable signal VENABLE for enabling and/or disabling the motor drive circuit 220, which in turn enables and/or disables the motor 210. The control circuit 240 may include one or more processors. The one or more processors may be any conventional processors, such as a commercially available CPU. Alternatively, the one or more processors may be dedicated components such as an application specific integrated circuit (ASIC), a microprocessor, a programmable logic device (PLD), a microcontroller, a field-programmable gate array (FPGA), or any suitable processing device or control circuit.
(15) The motor drive unit 200 may include a sensor circuit 250. The sensor circuit 250 may include one or more sensors that generate sensor signals V.sub.S1, V.sub.S2 in response to the movements (e.g., rotations) of the motor 210. The one or more sensors may be any type of magnetic sensor, such as a Hall effect sensor, MEMS sensors, magneto-diode, etc. For example, the sensor circuit 250 may include one Hall effect sensor that generates a sensor signal, where the sensor signal may include various sensor states. For instance, each change in the sensor state may indicate that a rotational position of the motor 210 has changed by a certain amount. For another example, the sensor circuit 250 may include two or more Hall effect sensors that each generate a sensor signal including various sensor states. For instance, a change in the state of any of the sensor signals V.sub.S1, V.sub.S2 generated by the sensors may indicate that the rotational position of the motor 210 has changed by a certain amount, and the states of the sensors signals V.sub.S1, V.sub.S2 for the various sensors may collectively indicate the direction of rotation of the motor 210. The sensor circuit 250 may use hysteresis when generating the sensor signals V.sub.S1, V.sub.S2 and determining the state of each sensor signal (e.g., a low state or a high state) as will be described in greater detail below with reference to
(16)
(17) The sensor system 300 may include a magnet 310, which may be secured onto the motor, for example onto a shaft 340 of the motor 210, such that the magnet 310 rotates with the shaft 340 as the motor 210 rotates. For example, a counterclockwise rotation (as shown) may correspond to a direction of rotation of the motor 210 that drives the shade fabric 112 in an upwards direction (opening the shade), and a clockwise rotation may correspond to a direction of rotation of the motor 210 that drives the shade fabric 112 in a downwards direction (closing the shade). The magnet 310 may be any type of magnet, such as a circular magnet having alternating north pole (e.g., positive pole) and south pole (e.g., negative pole) regions. The magnet 310 may have any number of positive poles and corresponding negative poles. For example, the magnet 310 may have two positive poles 312, 314 and two negative poles 316, 318 as shown in
(18) The sensor system 300 may include two sensors: a first sensor 320 and a second sensor 330. The first and second sensors 320, 330 may be positioned along a periphery of the magnet 310 and separated from each other by an angle, for example, by 45 degrees as shown. The first and second sensors 320, 330 may be magnetic sensors (e.g., Hall effect sensors) that may detect changes in magnetic flux density of magnetic fields produced by the magnet 310 as the magnet 310 rotates with the shaft 340 of the motor 210. For example, each of the first and second sensors 320, 330 may detect the two positive poles 312, 314 and the two negative poles 316, 318 as the magnet 310 completes a full rotation. Alternatively, the first and second sensor 320, 330 may be located adjacent to each other, but may be oriented to detect magnetic fields that are 45 degrees apart from each other. In addition, the first and second sensor 320, 330 may be positioned and/or oriented to detect magnetic fields that are a difference amount apart from each other, such as, for example, 90 degrees apart from each other.
(19)
(20) The relative spacing between the first and second sensor signals 322, 332 may indicate the direction of rotation of the motor 210. For example, when the motor 210 is rotating in a counterclockwise direction of the shaft 340, the second sensor signal 332 may lag behind the first sensor signal 322 by approximately 45 degrees (e.g., as shown in
(21) Although
(22) Referring back to
(23) The values for the fully-open position P.sub.FULLY-OPEN and the fully-closed position P.sub.FULLY-CLOSED may be set equal to the present position P.sub.PRES when the shade fabric is at the desired fully-open and fully-closed limits, respectively. For instance, the values for the fully-open position P.sub.FULLY-OPEN and the fully-closed position P.sub.FULLY-CLOSED may be set or reset during setup and configuration of the motor drive unit 200 and/or the window treatment system 100. The difference between the values for the fully-open position P.sub.FULLY-OPEN and the fully-closed position P.sub.FULLY-CLOSED may be approximately equal to the number of edges of the sensor signals V.sub.S1, V.sub.S2 between the fully-open position P.sub.FULLY-OPEN and the fully-closed position P.sub.FULLY-CLOSED.
(24) The control circuit 240 may be configured to receive the sensor signals V.sub.S1, V.sub.S2 from the sensor circuit 250 and periodically update the present position P.sub.PRES of the fabric 112. For example, the control circuit 240 may increment or decrement the present position P.sub.PRES each time that the control circuit 240 detects a change in one or more sensor states (e.g., rising or falling sensor edge). For another example, the control circuit 240 may increment or decrement the present position P.sub.PRES each time the motor 210 completes a full rotation.
(25) The control circuit 240 may be configured to save data to a memory 260 of the motor drive unit 200. For example, if the motor drive unit 200 is implemented in the window treatment system 100 in
(26)
(27) Each row of the table 400 in this example may represent a memory location. For example, as shown in
(28) As shown, the position table 400 may be configured such that the position values that are sequential in time are stored in sequential memory locations. For example, position values 8000, 8001, 8002, 8004, 8005, and 8006 are sequential in time (as indicated by the corresponding memory counters) and are stored at sequential memory locations 1-6, respectively. In this regard, a discontinuity in the memory counter may indicate that the position values are not sequential even if the position values are stored in neighboring memory locations. For example, although position value 8006 is stored in memory location 6 and position value 8522 is stored at memory location 7, their respective memory counters, 46 and 27, indicate that the two position values are not sequential.
(29) The memory 260 may store information accessible by the one or more processors or control circuit, including instructions that may be executed by the one or more processors. The memory 260 may also include data that may be retrieved, manipulated or stored by the one or more processors. The memory 260 may be of any non-transitory type capable of storing information accessible by the one or more processors, such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM, flash memory device, write-capable, and read-only memories.
(30) The instructions may be any set of instructions to be executed directly, such as machine code, or indirectly, such as scripts, by the one or more processors. In that regard, the terms “instructions,” “application,” “steps,” and “programs” may be used interchangeably herein. The instructions may be stored in object code format for direct processing by a processor, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods, and routines of the instructions are explained in more detail below. For example, the instructions may include instructions for the motor drive circuit 220, the control circuit 240, and/or the sensor circuit 250, such as those shown in
(31) Data may be retrieved, stored or modified by the one or more processors in accordance with the instructions. For instance, although the subject matter described herein is not limited by any particular data structure, the data may be stored in computer registers, a table having many different fields and records, etc. The data may also be formatted in any computing device-readable format such as, but not limited to, binary values, ASCII or Unicode. Moreover, the data may comprise any information sufficient to identify the relevant information, such as numbers, descriptive text, proprietary codes, pointers, references to data stored in other memories, or information that is used by a function to calculate the relevant data. For example, the data may include signals received from or sent to the motor drive circuit 220, the control circuit 240, and/or the sensor circuit 250, such as those shown in
(32) If the motor drive unit 200 experiences a critical event, such as a loss of power, the present position P.sub.PRES determined by the control circuit 240 may become inaccurate. The inaccuracy in the present position P.sub.PRES may result from the hysteresis operation used by the sensor circuit 250 to generate the states of the sensor signals V.sub.S1, V.sub.S2. For example, a first one of sensors of the sensor circuit 250 (e.g., the first sensor 320) may drive the first sensor signal V.sub.S1 into the high state when the magnetic flux density B.sub.1 of the magnetic field at the first sensor 320 rises above the high threshold TH.sub.HIGH (e.g., as shown at 327 in
(33) When the power is reapplied to the motor drive unit 200 after a power loss, the first sensor 320 may measure the magnetic flux density B.sub.1 of the magnetic field to determine the state of the first sensor signal V.sub.S1. Upon receiving power, the first sensor 320 may be configured to compare the magnetic flux density B.sub.1 of the magnetic field to the high threshold TH.sub.HIGH. If the motor drive unit 200 loses power when the magnitude of the magnetic flux density B.sub.1 of the magnetic field is between the high threshold TH.sub.HIGH and the low threshold TH.sub.LOW, the state determined by the first sensor 320 may be different than the state determined before power was lost. For example, if the magnitude of the magnetic flux density B.sub.1 of the magnetic field is between the high threshold TH.sub.HIGH and the low threshold TH.sub.LOW, the first sensor 320 may determine that the state of the first sensor signal V.sub.S1 should be low even though the magnitude of the magnetic flux density B.sub.1 of the magnetic field never dropped below the low threshold TH.sub.LOW before power was lost (e.g., since the magnetic flux density B.sub.1 is less than the high threshold TH.sub.HIGH when the first sensor 320 is repowered).
(34) In addition, if the motor 110 is rotating when power is lost, the inaccuracy in the present position P.sub.PRES may be worsened due to possible continued rotation of the motor 210 after the present position P.sub.PRES was last stored in the memory 260. The inconsistent generation of the states of the first sensor signals V.sub.S1, V.sub.S2 may cause the present position P.sub.PRES of the shade fabric 112 as determined by the control circuit 240 to drift over time.
(35) Referring back to
(36) The low-voltage threshold may be set as a percentage of the bus voltage V.sub.BUS and/or supply voltage V.sub.CC during normal operation such that the control circuit 240 may be able to make an early detection of the power loss event but is not overly sensitive. Such early detection may be advantageous since allow the control circuit 240 may initiate a power-down sequence to store useful data and/or to prevent damage. For example, the low-voltage threshold may be set at 80% of the bus voltage V.sub.BUS and/or the input voltage V.sub.CC. In addition, since the bus voltage V.sub.BUS may be larger in absolute value and may be noisy, a value of the low-voltage threshold based on the magnitude of the bus voltage V.sub.BUS may be set lower, down to 60% for example, of the bus voltage V.sub.BUS. Since the supply voltage V.sub.CC is generated by the internal power supply 230, a value of the low-voltage threshold based on the magnitude of the supply voltage V.sub.CC may need to be set within a tighter range since that voltage is not expected to vary much from the operational value or not as noisy. The control circuit 240 may use one or both of the bus voltage V.sub.BUS and the supply voltage V.sub.CC for detecting a power down condition. For example, if the magnitudes of both the bus voltage V.sub.BUS and the supply voltage V.sub.CC are at or below their respective thresholds, the control circuit 240 may determine a potential or actual power down event.
(37)
(38) Referring to
(39) For instance, the control circuit 240 may be configured to store additional data to the memory 260 when a power loss event is detected. For instance, the control circuit 240 may be configured to store in the memory 260 the present position of the shade fabric 112 at time t.sub.2 as a power-down position P.sub.d when the power loss event is detected. For example, a present position of 8523 may be stored in the memory 260 as the power-down position P.sub.d. Further, upon detecting the power loss event at t.sub.2, the control circuit 240 may also be configured to store to the memory 260 the sensor states generated by the sensor circuit 250 at time t.sub.2 as power-down sensor states S.sub.s1d, S.sub.s2d. For example as shown in
(40) At time t.sub.4, the motor drive unit 200 may be powered once again after the power loss event. When the motor drive unit 200 is powered up, the sensors 320, 330 of the sensor circuit 250 may begin to generate the sensor signals 322, 332 at time t.sub.5. After time t.sub.5, the control circuit 240 may sample the sensor signals 322, 332, and determine power-up sensor states S.sub.s1u, S.sub.s2u (e.g., present sensor states). However, because the power-up sensor states S.sub.s1u, S.sub.s2u detected at power-up may not match the power-down sensor states S.sub.s1d, S.sub.s2d recorded during the power loss event (e.g., even when there had not been any movement during the power loss event), the control circuit 240 may need to make adjustments for certain inaccuracies. The control circuit 240 may use the power-down sensor states S.sub.s1d, S.sub.s2d detected at power-up previously saved in the memory 260 and the power-up sensor states S.sub.s1u, S.sub.s2u to determine whether there is any inconsistency in sensor states. Based on this determination, the control circuit 240 may then determine a present position P.sub.u at power-up using the power-down position P.sub.d previously saved in the memory 260.
(41) In this regard, the control circuit 240 may be configured to compare the power-up sensor states S.sub.s1u, S.sub.s2u detected at time t.sub.5 with the power-down sensor states S.sub.s1d, S.sub.s2d stored at time t.sub.2. If, at time t.sub.5, the control circuit 240 determines that the power-up sensor states S.sub.s1u, S.sub.s2u are not equal to the power-down sensor states S.sub.s1d, S.sub.s2d stored at time t.sub.2, the control circuit 240 may conclude that the power-up sensor states S.sub.s1u, S.sub.s2u are inaccurate, and therefore the power-down position P.sub.d previously saved in the memory 260 is also inaccurate. The control circuit may then determine the present position P.sub.u by adjusting the power-down position P.sub.d with an adjustment factor.
(42) For instance, if either the first power-down sensor state S.sub.s1d is not equal to the first power-up sensor state S.sub.s1u or the second power-down sensor state S.sub.s2d is not equal to the second power-up sensor state S.sub.s2u, an adjustment factor may be determined based on the difference in the power-down sensor states S.sub.s1d, S.sub.s2d and the power-up sensor states S.sub.s1u, S.sub.s2u. The present position P.sub.u at power-up may then be determined based on the power-down position P.sub.d and the adjustment factor. For example, as shown in
(43) If, however, both the first power-down sensor state S.sub.s1d is not equal to the first power-up sensor state S.sub.s1u and the second power-down sensor state S.sub.s2d is not equal to the second power-up sensor state S.sub.s2u, the control circuit 240 may not be able to reliably determine whether the power-up sensor states S.sub.s1u, S.sub.s2u are behind or ahead of the power-down sensor states S.sub.s1d, S.sub.s2d. In such cases, the control circuit 240 may be configured to set the present position at power-up P.sub.u equal to the power-down position P.sub.d stored in the position table 400 in the memory 260. For example, suppose the power-down sensor states S.sub.s1d, S.sub.s2d are 1 and 0, respectively, but the power-up sensor states S.sub.s1u, S.sub.s2u are 0 and 1, respectively, the control circuit 240 may not be able to determine whether the discrepancy is because the power-up sensor states S.sub.s1u, S.sub.s2u are 2 sensor edges behind power-down sensor states S.sub.s1d, S.sub.s2d, or 2 sensor edges ahead of power-down sensor states S.sub.s1d, S.sub.s2d. In such a case, the control circuit 240 may be further configured to log an error.
(44) Finally, if both of the power-up sensor states S.sub.s1u, S.sub.s2u are equal to the power-down sensor states S.sub.s1d, S.sub.s2d, the control circuit 240 set the present position P.sub.u at power-up equal to the power-down position P.sub.d stored in the position table 400 in the memory 260. If the power-down sensor states S.sub.s1d, S.sub.s2d stored at time t.sub.2 are 0 and 1, respectively, and the power-up sensor states S.sub.s1u, S.sub.s2u are also 0 and 1, respectively, the control circuit 240 may set the present position P.sub.u at power-up equal to the power-down position P.sub.d (e.g., 8523) as stored in the position table 400 in the memory 260.
(45)
(46) After time t.sub.2, the magnitude of the supply voltage V.sub.CC may continue to drop while the motor 210 may continue to rotate and the sensors 320 and 330 may continue to generate sensor signals 322, 332 in response to the movement. The control circuit 240 may continue to update the present position of the shade fabric 112 in the position table 400 until time t.sub.3, when the magnitude of the supply voltage V.sub.CC may drop to a level at which the control circuit 240 and the sensor circuit 250 may become unpowered. Prior to becoming unpowered at time t.sub.3, the control circuit 240 may have stored a final position P.sub.f in the position table 400.
(47) At time t.sub.4, the motor drive unit 200 may be powered once again after the power loss event. When the motor drive unit 200 is powered up, the sensors 320, 330 of the sensor circuit 250 may begin to generate the sensor signals 322, 332 at time t.sub.5. After time t.sub.5, the control circuit 240 may sample the sensor signals 322, 332, and determine the power-up sensor states S.sub.s1u, S.sub.s2u. However, because the power-up sensor states S.sub.s1u, S.sub.s2u detected at power-up may not match the power-down sensor states S.sub.s1d, S.sub.s2d recorded during the power loss event, the control circuit 240 may need to make adjustments for certain inaccuracies. In addition, the continued movement of the motor after time t.sub.2 may introduce additional inaccuracies as to the actual present position of the shade fabric. The control circuit 240 may use the data previously saved in the memory 260 (e.g., the power-down sensor states S.sub.s1d, S.sub.s2d, the power-down position P.sub.d, and final position P.sub.f,) as well as the power-up sensor states S.sub.s1u, S.sub.s2u, to determine whether the motor continued moving after time t.sub.2, and whether there is any inconsistency in the sensor states. Based on these determinations, the control circuit 240 may then determine a present position P.sub.u at power-up.
(48) In this regard, the control circuit 240 may be configured to look up the final position P.sub.f in the position table 400, and compare the final position P.sub.f with the power-down position P.sub.d. If the control circuit 240 determines that the final position P.sub.f is equal to the power-down position P.sub.d, the control circuit 240 may conclude that the motor 210 was stopped at time t.sub.2. For example, referring to
(49) If the control circuit 240 determines that the final position P.sub.f is not equal to the power-down position P.sub.d, the control circuit 240 may conclude that the motor 210 continued to rotate after time t.sub.2. For example, referring to
(50) Thus, regardless of whether the motor 210 had was stopped or rotating at time t.sub.2, the control circuit 240 may predict the final sensor states S.sub.s1f, S.sub.s2f at time t.sub.3. The control circuit 240 may be configured to compare the predicted final sensor states S.sub.s1f, S.sub.s2f at time t.sub.3 with the power-up sensor states measured at time t.sub.5 after power-up. If, as illustrated in
(51) If, however, both the first predicted final sensor state S.sub.s1f is not equal to the first power-up sensor state S.sub.s1u and the second predicted final sensor state S.sub.s2f is not equal to the first power-up sensor state S.sub.s2u, the control circuit 240 may not be able to determine whether the power-sup sensor states S.sub.s1u, S.sub.s2u are behind or ahead of the final sensor states S.sub.s1f, S.sub.s2f. In such cases, the control circuit 240 may be configured to set the present position at power-up as the final position P.sub.f stored in the position table 400 in the memory 260. For example, if the final sensor states S.sub.s1f, S.sub.s2f are equal to 1 and 0, respectively, but the power-up sensor states S.sub.s1u, S.sub.s2u are equal to 0 and 1, respectively, the control circuit 240 may not be able to determine whether the discrepancy is because the power-up sensor states S.sub.s1u, S.sub.s2u are 2 increments behind final sensor states S.sub.s1f, S.sub.s2f, or 2 increments ahead of final sensor states S.sub.s1f, S.sub.s2f. The control circuit 240 may be further configured to log an error.
(52) If the predicted final sensor states S.sub.s1f, S.sub.s2f are equal to the power-up sensor states S.sub.s1u, S.sub.s2u, the control circuit 240 may set the present position P.sub.u at power-up equal to the final position P.sub.f stored in the position 400 in the memory 260. Thus, for the example above where the motor 210 continued to rotate 18 edges between times t.sub.2 and t.sub.3, if the predicted final sensor states S.sub.s1f, S.sub.s2f are 1 and 0, respectively, and the power-up sensor states S.sub.s1u, S.sub.s2u are also 1 and 0, respectively, the control circuit 240 may set the present position P.sub.u at power-up equal to the final position P.sub.f (e.g., 8540) stored in the position table 400 in the memory 260.
(53) Although the foregoing description above with respective to
(54) Referring back to
(55) The motor drive unit 200 may further include a user interface 280 for allowing a user to provide inputs to the control circuit 240. The user may use the user interface 280 during set up and configuration, and/or during normal operation (e.g., while the motor drive unit 200 is running). The user may send a command using the user interface 280 to the control circuit 240 via the communication circuit 270, and the control circuit 240 may control the motor drive circuit 220, which controls the movement of the motor 210. For example, the user interface 280 may be configured as the user interface 160 shown in
(56) While only one motor 210, motor drive circuit 220, power supply 230, control circuit 240, memory 250, sensor circuit 260, communication circuit 270, and user interface 280 are shown in the motor drive unit 200, alternatively any number of motors, motor drive circuits, power supplies, control circuits, memories, sensor circuits, communication circuits, and user interfaces may be included in the motor drive unit 200.
(57) Further to example systems described above, example methods are now described. Such methods may be performed using the systems described above, modifications thereof, or any of a variety of systems having different configurations. It should be understood that the operations involved in the following methods need not be performed in the precise order described. Rather, various operations may be handled in a different order or simultaneously, and operations may be added or omitted.
(58)
(59) At 620, a present position may be stored in a memory as a power-down position upon detection of the low-voltage condition. For instance, referring back to
(60) After detection of the power loss event (e.g., the low-voltage condition), one or more positions may be continued to be stored in the memory at 640. For example, referring back to
(61)
(62) At 720, the power-down position and the one or more power-down sensor states may be recalled from the memory. For example, referring back to
(63) If the power-up sensor state is different from the power-down sensor state for one or more sensors, a determination may be made as to whether the present sensor state is different from the power-down sensor state for all the sensors or not at 750. If that is not the case, an adjustment factor may be determined at 760. For example, the adjustment factor may be determined based on the power-down sensor state and the power-up sensor state for the one or more sensors, as described in detail above with respect to the example systems. For example, referring back to
(64) If it is determined at 750 that the power-down sensor state is different from the present sensor state for all the sensors, an error may be logged at 780 (e.g., since the control circuit may be able to determine whether power-up present sensor states are behind or ahead of the power-down sensor states). Thus, the present position may be set as the power-down position at 790. If it is determined at 740 that the power-down sensor state is not different from the power-up sensor state for any of the sensors, the present position may be set as the power-down position at 790. In such cases, because all the power-down sensor states are equal to the power-up sensor states, it may be concluded that the power-down position was determined based on accurately detected power-down sensor states.
(65)
(66) At 820, the power-down position and the one or more power-down sensor states may be recalled from the memory. For instance, referring back to
(67) At 840, a determination may be made as to whether the motor was stopped or rotating during the power loss event (e.g., after the power-down position was stored). For example, whether the motor was running may be determined based on whether the final position is equal to the power-down position, as described in detail above with respect to the example systems. For example, referring back to
(68) If the control circuit determines that the motor was stopped before the power loss event (e.g., and did not rotate after the power-down position was stored), one or more predicated final sensor states may be set to be the power-down sensor states at 842. For instance, referring back to
(69) If the control circuit determines that the motor was rotating during the power loss event (e.g., after the power-down position was stored), one or more predicted final sensor states may be computed as described in detail above with respect to the example systems at 844. For example, the one or more predicted final sensor states may be computed based on a number of sensor edges between the power-down position P.sub.d and the final position P.sub.f, and a direction of rotation before the power loss event.
(70) With the predicted final sensor states set or computed, one or more present sensor states may be determined at 850. The one or more present sensor states may be compared with the predicted final sensor states to determine whether further adjustments are needed. Thus, a determination is made as to whether the present sensor state is different from the predicted final sensor state for one or more sensors or not at 860.
(71) If the present sensor state is different from the predicted final sensor state for one or more sensors, the control circuit may further determine whether the predicted final sensor state is different from the present sensor state for all the sensors at 862. If that is not the case, an adjustment factor is determined at 870. For example, the adjustment factor may be determined based on the predicted final sensor state and the present sensor state for the one or more sensors, as described in detail above with respect to the example systems. For instance, referring back to
(72) If the control circuit determines that the predicted final sensor state is different from the present sensor state for all the sensors, an error may be logged at 880. This is because in such cases, it may not be possible to determine whether the present sensor states at power-up are behind or ahead of the final sensor states. At 890, a present position may be set as the final position.
(73) On the other hand, if the control circuit determines at 860 that the predicted final sensor state is not different from the present sensor state for any of the sensors, a present position may be set as the final position at 890. In such cases, because the predicted final sensor states are equal to the present sensor states at power-up, it may be concluded that the motor was stopped during the power loss event (e.g., after the final position was recorded) and the final position was determined based on accurately detected sensor states.
(74) Unless otherwise stated, the foregoing alternative examples are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. As these and other variations and combinations of the features discussed above may be utilized without departing from the subject matter defined by the claims, the foregoing description of the embodiments should be taken by way of illustration rather than by way of limitation of the subject matter defined by the claims. In addition, the provision of the examples described herein, as well as clauses phrased as “such as,” “including” and the like, should not be interpreted as limiting the subject matter of the claims to the specific examples; rather, the examples are intended to illustrate only one of many possible embodiments. Further, the same reference numbers in different drawings may identify the same or similar elements.