DRONE, DRONE TRAINING METHOD, AND DRONE CONTROL METHOD

20260099150 ยท 2026-04-09

    Inventors

    Cpc classification

    International classification

    Abstract

    A drone training method includes: inputting a plurality of wind speed components into a corresponding plurality of fuzzy functions, to generate a plurality of wind speed membership values respectively; selecting one from the plurality of wind speed membership values corresponding to each of the wind speed components, and generating a rule value based on the wind speed membership values corresponding to each of the wind speed components; inputting the plurality of wind speed components into one of inference functions, where each rule value corresponds to one of the inference functions as a weight respectively, and calculating a function sum of a plurality of inference functions corresponding to each of the wind speed components; generating a regression model after calculating an error function base on each offset component and the function sum corresponding to each of the wind speed components and optimizing the error function.

    Claims

    1. A drone training method, applicable to a drone, wherein the drone comprises a wind speed sensor and a position sensor, and the drone training method comprises: receiving a plurality of wind speed components generated by the wind speed sensor and a plurality of offset components generated by the position sensor, wherein the wind speed components correspond to the offset components one by one; inputting each of the wind speed components into a corresponding plurality of fuzzy functions, to generate a plurality of wind speed membership values respectively; selecting one from the plurality of wind speed membership values corresponding to each of the wind speed components, and generating a rule value based on the wind speed membership values corresponding to each of the wind speed components; inputting the plurality of wind speed components into inference functions, wherein each rule value corresponds to one of the inference functions as a weight respectively, and calculating a function sum of a plurality of inference functions corresponding to each of the wind speed components; and generating a regression model after calculating an error function base on each offset component and the function sum corresponding to each of the wind speed components and optimizing the error function.

    2. The drone training method according to claim 1, wherein in the drone training method, a minimum value among the wind speed membership values corresponding to all the wind speed components is used as the rule value.

    3. The drone training method according to claim 1, wherein in the drone training method, an accumulated product of the wind speed membership values corresponding to all the wind speed components is used as the rule value.

    4. The drone training method according to claim 1, further comprising: dividing the rule values by a sum of all the rule values, to normalize the rule values; and inputting the plurality of wind speed components into the inference functions, wherein each normalized rule value corresponds to one of the inference functions as a weight respectively.

    5. The drone training method according to claim 1, further comprising: generating a plurality of discrete wind speed component values at equal intervals within a range of wind speed components; and generating and storing a lookup table after inputting the plurality of discrete wind speed component values into the regression model.

    6. The drone training method according to claim 5, further comprising: collecting statistics on the range of wind speed components based on the plurality of wind speed components generated by the wind speed sensor.

    7. The drone training method according to claim 1, further comprising: generating the plurality of fuzzy functions at equal core intervals within a range of wind speed component.

    8. The drone training method according to claim 1, wherein the inference function is a multivariate linear regression model function, comprising N regression coefficients and a bias value, wherein a value of N equals a quantity of the plurality of wind speed components.

    9. The drone training method according to claim 1, further comprising: negating each offset component, generating the regression model after calculating the error function between the negated offset component and the function sum corresponding to the wind speed component, and optimizing the error function.

    10. The drone training method according to claim 1, wherein the drone is configured to control the drone according to a plurality of motor control signals, and the drone training method further comprises: re-receiving another plurality of wind speed components generated by the wind speed sensor; generating a plurality of compensation values after inputting the another plurality of wind speed components into the regression model; and correcting the plurality of motor control signals based on the plurality of compensation values respectively, and controlling the drone based on the plurality of corrected motor control signals.

    11. The drone training method according to claim 1, further comprising: calculating the error function between the offset component and the function sum corresponding to the wind speed component according to the following formula: e = 1 2 ( U - C ) 2 wherein e is the error function, U is one of the plurality of offset components, and C is the function sum corresponding to one of the wind speed components.

    12. The drone training method according to claim 11, further comprising: optimizing the error function according to a gradient descent method, to obtain a model parameter of the regression model, wherein the model parameter is selected from a group comprising a regression coefficient of the inference function, a bias value of the inference function, a function type of the fuzzy function, a core position of the fuzzy function, a position of a left endpoint of the fuzzy function, a position of a right endpoint of the fuzzy function, and a combination thereof.

    13. The drone training method according to claim 1, wherein the plurality of wind speed components are orthogonal to each other, and the plurality of offset components are orthogonal to each other.

    14. A drone control method, for correcting a plurality of motor control signals, wherein the drone control method comprises: reading a plurality of wind speed components and a plurality of lookup tables, wherein each of the lookup tables corresponds to one of the motor control signals, and each of the plurality of lookup tables comprises a regression model of a plurality of wind speed approximations and a compensation value; inputting each of the wind speed components into one of corresponding nearest neighbor functions, to generate the plurality of wind speed approximations; matching the plurality of wind speed approximations with the compensation values based on the corresponding lookup tables, to generate the compensation values; and correcting each of the motor control signals based on the compensation values generated by the lookup tables.

    15. The drone control method according to claim 14, wherein the nearest neighbor function comprises a plurality of discrete wind speed component values, and determining, among the plurality of discrete wind speed component values, the discrete wind speed component value closest to each of wind speed component input into the nearest neighbor function, to generate a wind speed approximation.

    16. The drone control method according to claim 14, further comprising: receiving the plurality of wind speed components generated by a wind speed sensor, and respectively correcting each of the motor control signals based on the compensation values generated by the lookup tables, to control a plurality of motors respectively.

    17. The drone control method according to claim 14, wherein the plurality of wind speed components are orthogonal to each other, and the compensation values generated by the lookup tables are orthogonal to each other.

    18. A drone, comprising: a wind speed sensor, configured to measure a wind speed value, comprising a plurality of wind speed components; a memory, configured to store a plurality of lookup tables; and a processor, configured to: read a plurality of wind speed components and a plurality of lookup tables, wherein each of the lookup tables corresponds to one of the motor control signals, and each of the plurality of lookup tables comprises a regression model of a plurality of wind speed approximations and a compensation value; input each of the wind speed components into one of corresponding nearest neighbor functions, to generate the plurality of wind speed approximations; match the plurality of wind speed approximations with the compensation values based on the corresponding lookup tables, to generate the compensation values; and correct each of the motor control signals based on the compensation values generated by the lookup tables.

    19. The drone according to claim 18, further comprising a plurality of motors, wherein the processor is configured to control the plurality of motors based on the motor control signals.

    20. The drone according to claim 18, wherein the wind speed sensor is selected from the group comprising a cup anemometer, a vane anemometer, a pressure tube anemometer, an ultrasonic anemometer, and a combination thereof.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0007] FIG. 1 is a schematic diagram of a drone known to the applicant being affected by an environmental wind.

    [0008] FIG. 2 is a schematic block diagram of a drone according to some embodiments of the present disclosure.

    [0009] FIG. 3 is a schematic diagram of a drone being affected by an environmental wind according to some embodiments of the present disclosure.

    [0010] FIG. 4 is a flowchart of a drone control method according to some embodiments of the present disclosure.

    [0011] FIG. 5 is a schematic diagram of signal transmission of a wind resistance controller according to some embodiments of the present disclosure.

    [0012] FIG. 6 is a schematic diagram of a lookup table according to some embodiments of the present disclosure.

    [0013] FIG. 7 is a schematic control flowchart of a drone control method according to some embodiments of the present disclosure.

    [0014] FIG. 8 is a flowchart of a drone training method according to some embodiments of the present disclosure.

    [0015] FIG. 9 is a schematic diagram of a model architecture of a regression model according to some embodiments of the present disclosure.

    [0016] FIG. 10A is a schematic diagram of fuzzy functions of an X-axis wind speed component according to some embodiments of the present disclosure.

    [0017] FIG. 10B is a schematic diagram of generating wind speed membership values by fuzzy functions of an X-axis wind speed component according to some embodiments of the present disclosure.

    [0018] FIG. 11A is a schematic diagram of fuzzy functions of a Y-axis wind speed component according to some embodiments of the present disclosure.

    [0019] FIG. 11B is a schematic diagram of generating wind speed membership values by fuzzy functions of a Y-axis wind speed component according to some embodiments of the present disclosure.

    [0020] FIG. 12A is a schematic diagram of fuzzy functions of a Z-axis wind speed component according to some embodiments of the present disclosure.

    [0021] FIG. 12B is a schematic diagram of generating wind speed membership values by fuzzy functions of a Z-axis wind speed component according to some embodiments of the present disclosure.

    DETAILED DESCRIPTION

    [0022] FIG. 1 is a schematic diagram of a drone known to the applicant being affected by an environmental wind. Referring to FIG. 1, a remote control 3 can be configured to set a destination position D.sub.X, D.sub.Y, D.sub.Z of a drone 1, and transmit a displacement r.sub.X, r.sub.Y, r.sub.Z to the drone 1 through a wireless signal. A wireless receiver 13 of the drone 1 receives the displacement r.sub.X, r.sub.Y, r.sub.Z and transmits the displacement r.sub.X, r.sub.Y, r.sub.Z to a flight controller 142. The flight controller 142 refers to the displacement r.sub.X, r.sub.Y, r.sub.Z and generates a motor control signal correspondingly. The motor control signal may include a motor control signal component V.sub.X in an X-axis direction, a motor control signal component V.sub.Y in a Y-axis direction, and a motor control signal component V.sub.Z in a Z-axis direction. A motor of the drone 1 drives the drone 1 to move to the destination position D.sub.X, D.sub.Y, D.sub.Z in response to the motor control signal. FIG. 1 shows impact of wind on the drone 1. When an environmental wind with a wind speed value is generated in a flight environment of the drone 1. The wind speed value includes a wind speed component .sub.X in the X-axis direction, a wind speed component .sub.Y in the Y-axis direction, and a wind speed component .sub.Z in the Z-axis direction. The wind speed components .sub.X, .sub.Y, and .sub.Z cause the drone 1 to deviate from the original destination position D.sub.X, D.sub.Y, D.sub.Z within a time difference t, and an offset value equals the wind speed value times the time difference t. An axis direction in the present disclosure may be an axis direction with the drone 1 as a coordinate center, an axis direction with the remote control 3 (or an operator) as a coordinate center, or an axis direction with a specified spatial position as a coordinate center. In this embodiment, the X-axis direction, the Y-axis direction, and the Z-axis direction are orthogonal to each other.

    [0023] FIG. 2 is a schematic block diagram of a drone according to some embodiments of the present disclosure. Referring to FIG. 2, in this embodiment, a drone 2 includes a wind speed sensor 21, a position sensor 22, a wireless receiver 23, a processor 24, a memory unit 25, and a motor 26. The processor 24 is coupled to the wind speed sensor 21, the position sensor 22, the wireless receiver 23, the memory unit 25, and the motor 26 respectively. The wind speed sensor 21 is configured to measure a wind speed value of an environmental wind, and might divide the wind speed value into a plurality of wind speed components .sub.X, .sub.Y, and .sub.Z. The wind speed sensor 21 may be a cup anemometer, a vane anemometer, a pressure tube anemometer, or an ultrasonic anemometer. The position sensor 22 is configured to measure absolute coordinates or relative coordinates of the drone 2, for example, determine the absolute coordinates of the drone 2 through a GPS locator or a barometer, or determine the relative coordinates of the drone 2 by measuring a relative offset value through an inertial measurement unit (IMU) such as a gyroscope or an accelerometer. The wireless receiver 23 is configured to receive a control instruction from the outside of the drone 2, for example, a wireless signal generated by the remote control 3, to learn of a destination position D.sub.X, D.sub.Y, D.sub.Z set by an operator.

    [0024] The processor 24 may be an SoC chip, a central processing unit (CPU), a microcontroller unit (MCU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a neural network processor, a quantum processor, or a logic circuit. Referring to FIG. 2, in this embodiment, the processor 24 is configured to receive a control command or a measurement signal and generate a motor control signal to control the motor 26. Functions correspondingly implemented by the processor 24 may be divided into a wind resistance controller 241, a flight controller 242, and an integrated controller 243. Functions of the one or more controllers may be implemented by a single chip or a plurality of chips. The single chip forms the processor 24, or the plurality of chips jointly form the processor 24. In this embodiment, the drone 2 includes the processor 24, which may be configured to perform a drone control method and/or a drone training method according to any embodiment of the present disclosure.

    [0025] The memory unit 25 may be a flash memory or a read-only memory (ROM), for example, an erasable programmable read-only memory (EPROM), a flash read-only memory (flash ROM), an electrically erasable programmable read-only memory (EEPROM), or a field-replaceable unit (FRU). In this embodiment, the memory unit 25 is configured to store the control command, the measurement signal, or the motor control signal. In some embodiments, the memory unit 25 may be configured to store program code, a lookup table T, or parameters of a drone control method and/or a drone training method according to any embodiment of the present disclosure.

    [0026] The motor 26 adjusts a rotation speed according to the motor control signal. The motor control signal includes motor control signal components. The motor control signal components may correspond to a single motor 26 or a plurality of motors 26. When the motor control signal components correspond to a plurality of motors 26, rotation speeds generated by the different motors 26 in response to a same motor control signal component may be different. For example, for a four-axis drone, a motor control signal component V.sub.X may correspond to all of four motors 26, and the four motors 26 adopt different rotation speeds to jointly move the four-axis drone in the X-axis direction. Alternatively, a motor control signal component V.sub.Z may correspond to all of four motors 26, and the four motors 26 adopt a same rotation speed to jointly move the four-axis drone in the Z-axis direction.

    [0027] FIG. 3 is a schematic diagram of a drone being affected by an environmental wind according to some embodiments of the present disclosure. Referring to FIG. 2 and FIG. 3 together, in this embodiment, the processor 24 includes a wind resistance controller 241, a flight controller 242, and an integrated controller 243. The integrated controller 243 is coupled to the wind resistance controller 241 and the flight controller 242 respectively. The wind resistance controller 241 is coupled to the wind speed sensor 21. The flight controller 242 is coupled to the position sensor 22 and the wireless receiver 23. As shown in FIG. 3, the wireless receiver 23 of the drone 2 receives a displacement r.sub.X, r.sub.Y, r.sub.Z and transmits the displacement r.sub.X, r.sub.Y, r.sub.Z to the flight controller 242. The flight controller 242 refers to the displacement r.sub.X, r.sub.Y, r.sub.Z, and generates a motor control signal component V.sub.X, a motor control signal component V.sub.Y, and a motor control signal component V.sub.Z correspondingly. The motor 26 of the drone 2 drives the drone 2 to move to a destination position D.sub.X, D.sub.Y, D.sub.Z in response to a motor control signal. In this embodiment, a flight environment generates an environmental wind with a wind speed value . The wind speed value is measured by the wind speed sensor 21 to generate a wind speed measurement signal including information about wind speed components .sub.X, .sub.Y, and .sub.Z. The wind resistance controller 241 generates a compensation value, including compensation value components u.sub.X, u.sub.Y, and u.sub.Z, corresponding to the wind speed measurement signal. The compensation value component u.sub.X corresponds to the motor control signal component V.sub.X, the compensation value component u.sub.Y corresponds to the motor control signal component V.sub.Y, and the compensation value component u.sub.Z corresponds to the motor control signal component V.sub.Z. The integrated controller 243 corrects the motor control signal according to the compensation value, so that an offset value caused by the environmental wind is offset. In this embodiment, the position sensor 22 of the drone 2 further transmits a position signal L.sub.X, L.sub.Y, L.sub.Z of the drone 2 back to the flight controller 242, and the flight controller 242 determines a current relative position or absolute position of the drone 2 based on the position signal L.sub.X, L.sub.Y, L.sub.Z, and adjusts the motor control signal based on the displacement r.sub.X, r.sub.Y, r.sub.Z to drive the drone 2 to move to the destination position D.sub.X, D.sub.Y, D.sub.Z.

    [0028] FIG. 4 is a flowchart of a drone control method according to some embodiments of the present disclosure. Referring to FIG. 4, in this embodiment, in the drone control method, a wind speed value w is read (step S101). For example, the processor 24 of the drone 2 performs the drone control method, and receives the wind speed value from the wind speed sensor 21. The wind speed value includes a plurality of wind speed components. In this embodiment, the wind speed value includes three wind speed components, that is, wind speed components .sub.X, .sub.Y, and .sub.Z. FIG. 5 is a schematic diagram of signal transmission of a wind resistance controller according to some embodiments of the present disclosure. Referring to FIG. 5, in this embodiment, there are three wind resistance controllers 241 in total. A wind resistance controller 2411 corresponds to wind compensation in the X-axis direction, a wind resistance controller 2412 corresponds to wind compensation in the Y-axis direction, and a wind resistance controller 2413 corresponds to wind compensation in the Z-axis direction. The wind resistance controllers 2411, 2412, and 2413 respectively receive the wind speed components .sub.X, .sub.Y, and .sub.Z, and generate compensation value components u.sub.X, u.sub.Y, and u.sub.Z in specific axis directions to correct motor control signal components V.sub.X, V.sub.Y, and V.sub.Z in the specific axis directions.

    [0029] FIG. 6 is a schematic diagram of a lookup table according to some embodiments of the present disclosure. Referring to FIG. 4 to FIG. 6 together, specifically, the wind resistance controllers 241 read lookup tables T respectively (step S102). To be specific, the wind resistance controller 2411 reads the lookup table T in the X-axis direction, the wind resistance controller 2412 reads the lookup table T in the Y-axis direction, and the wind resistance controller 2413 reads the lookup table T in the Z-axis direction. In FIG. 6, the wind resistance controller 2411 is used as an example for description. In this embodiment, a lookup table T is a three-dimensional data structure. Columns of the lookup table T represent a total of L columns of data in the X-axis direction, rows thereof represent a total of M rows of data in the Y-axis direction, and layers thereof represent a total of N layers of data in the Z-axis direction. Each element stores a compensation value C.sub.X. Therefore, the lookup table T read by the wind resistance controller 2411 in this embodiment includes a correspondence between three wind speed approximations and one compensation value C.sub.X. In addition, the lookup table T read by the wind resistance controller 2412 and the lookup table T read by the wind resistance controller 2413 also include a correspondence between three wind speed approximations and one compensation value C.sub.Y or compensation value C.sub.Z, and the lookup tables T are different in content. Therefore, the wind resistance controllers 2411, 2412, and 2413 respectively generate the compensation value components u.sub.X, the compensation value component u.sub.Y, or the compensation value component u.sub.Z in response to the same three wind speed components .sub.X, .sub.Y, and .sub.Z.

    [0030] One of the considerations for that the wind resistance controllers 241 respectively receive a plurality of wind speed components .sub.X, .sub.Y, and .sub.Z to perform calculation is that because the drone 2 have different force-bearing areas and different force bearing angles, the three controllers are needed to calculate the compensation value components u.sub.X, u.sub.Y, and u.sub.Z of the drone 2 for different axis directions respectively. Specifically, a housing of the drone 2 usually has slopes at different angles. Even if the environmental wind evenly blows the drone 2 along a specific axis direction, a wind direction of the environmental wind is not orthogonal to all the slopes. Such a phenomenon makes it impossible to calculate compensation of the drone 2 for wind simply from a single direction. Because when a body of the drone 2 is blown, normal forces in different directions generated by wind on the drone 2 partially twist the body of the drone 2, resulting in a control failure. Therefore, in this embodiment, the drone 2 uses the wind resistance controllers 2411, 2412, and 2413 with inputs in three directions to compensate for the three wind speed components .sub.X, .sub.Y, and .sub.Z.

    [0031] FIG. 7 is a schematic control flowchart of a drone control method according to some embodiments of the present disclosure. Referring to FIG. 4 and FIG. 7 together, after the wind speed value is read (step S101), in the drone control method, a wind speed approximation is generated according to a nearest neighbor function (step S103). The nearest neighbor function performs regression according to a value of wind speed component to generate a specific value closest to the value of the wind speed component by using, for example, but not limited to, a rounding function, a bottoming function, a ceiling function, or a shortest distance method. Specifically, in some embodiments, the nearest neighbor function includes a plurality of discrete wind speed component values. In the drone control method, one discrete wind speed component value in the plurality of discrete wind speed component values closest to the wind speed component input into the nearest neighbor function is determined, to generate a wind speed approximation. For example, the nearest neighbor function includes discrete wind speed component values [1.1, 0, 1.1, 2.2, 3.3, 4.4]. When a wind speed component .sub.X with a value of 3 is input into the nearest neighbor function, and a compensation value with a value of 3.3 is generated by using the shortest distance method. In another embodiment, the nearest neighbor function includes discrete wind speed component values [3, 2, 1, 0, 1, 2, 3]. When a wind speed component .sub.X with a value of 1.4 is input into the nearest neighbor function, and a compensation value with a value of 1 is generated by rounding off. The wind speed components each correspond to a nearest neighbor function, and the nearest neighbor functions may be the same or different.

    [0032] The discrete wind speed component values may be defined by taking a wind speed component range to which the drone 2 is subject into consideration. The wind speed component range may be defined manually or measured by using the wind speed sensor 21 during use of the drone 2. In some embodiments, the drone 2 collects statistics on a wind speed component range according to a plurality of wind speed components generated by the wind speed sensor 21. For example, the wind speed component range may be defined by taking maximum and minimum wind speed components to which the drone 2 is subject in different axis directions in a test scenario into consideration. In the embodiment of FIG. 6, a maximum wind speed component value in the Y-axis direction defined in the lookup table T is a value of a row Y.sub.M, a minimum wind speed component value is a value of a row Y.sub.1, and a wind speed component range defined by the two values is evenly divided to generate a total of M discrete wind speed component values. Alternatively, the wind speed component range is defined based on multiples of average wind speed components to which the drone 2 is subject in different axis directions plus or minus their standard deviations.

    [0033] After obtaining wind speed approximations, in the drone control method, compensation values C.sub.X, C.sub.Y, and C.sub.Z are generated according to the lookup table T (step S104), and the motor control signal is corrected using the compensation values C.sub.X, C.sub.Y, and C.sub.Z (step S105). As shown in FIG. 7, the nearest neighbor functions of the three axis directions respectively generate a wind speed approximation X.sub., a wind speed approximation Y.sub., and a wind speed approximation Z.sub.. The processor 24 performs matching based on the same three wind speed approximations in a lookup table T applicable to each axis direction to generate compensation values C.sub.X, C.sub.Y, and C.sub.Z. Therefore, in the drone control method, in a processing mode of the lookup table T, the compensation values C.sub.X, C.sub.Y, and C.sub.Z can be quickly generated corresponding to different wind speed conditions by performing only numerical comparison, and in response to an instantaneous wind change, a position offset caused by the instantaneous wind change to the drone 2 can be offset. In addition, a computing amount of the processor 24 is reduced, power consumption is greatly reduced, and a flight time of the drone 2 is extended.

    [0034] FIG. 8 is a flowchart of a drone training method according to some embodiments of the present disclosure. Referring to FIG. 8, in this embodiment, in the drone training method, a wind speed value is read (step S201). For example, the processor 24 of the drone 2 performs the drone training method, and receives the wind speed value from the wind speed sensor 21 after controlling the drone 2 to take off and setting the drone 2 to a hovering state. In some other embodiments, the processor 24 of the drone 2 controls the drone 2 to take off and sets the drone 2 to fly at a fixed speed or a fixed acceleration, and receives the wind speed value from the wind speed sensor 21. The wind speed value includes a plurality of wind speed components. In this embodiment, the wind speed value includes three wind speed components, that is, wind speed components .sub.X, .sub.Y, and .sub.Z. In addition, in the drone training method, an offset value is read (step S202). As shown in FIG. 1, an environmental wind with the wind speed value causes the drone 1 to deviate from an original destination position D.sub.X, D.sub.Y, D.sub.Z, and an offset value is equivalent to a distance difference between an actual position of the drone 1 and a destination position D.sub.X, D.sub.Y, D.sub.Z. In some embodiments, the drone 2 has a position sensor 22 to measure an offset value. The offset value includes a plurality of offset components. In this embodiment, the offset value includes three offset components, respectively corresponding to offsets caused by the wind speed components .sub.X, .sub.Y, and .sub.Z. For example, after an operator lifts off the drone 2, the wind speed sensor 21 of the drone 2 records the wind speed components .sub.X, .sub.Y, and .sub.Z, and the position sensor 22 records corresponding offset components.

    [0035] FIG. 9 is a schematic diagram of a model architecture of a regression model according to some embodiments of the present disclosure. Referring to FIG. 9, in this embodiment, the regression model is implemented by a neural network. The neural network includes an input layer 41, a rule layer 42, a normalization layer 43, an inference layer 44, and an output layer 45. In this embodiment, the input layer 41, the rule layer 42, the normalization layer 43, and the inference layer 44 each include a plurality of nodes, and the output layer 45 includes a single node. The plurality of nodes of the input layer 41 are respectively coupled to the plurality of nodes of the rule layer 42. The plurality of nodes of the rule layer 42 are respectively coupled to the plurality of nodes of the normalization layer 43. The plurality of nodes of the normalization layer 43 are coupled to the plurality of nodes of the inference layer 44 one-to-one. The plurality of nodes of the inference layer 44 are coupled to the single node of the output layer 45.

    [0036] Referring to FIG. 8 and FIG. 9 together, in this embodiment, in the drone training method, each of the wind speed components is input into a corresponding plurality of fuzzy functions, and wind speed membership values are generated according to fuzzy functions (step S203). As shown in FIG. 9, a wind speed component .sub.X is correspondingly input into a plurality of nodes in the input layer 41, and the nodes are represented by a fuzzy function M.sub.X1 to a fuzzy function M.sub.XP (a total of P nodes). A wind speed component .sub.Y is correspondingly input into another group of a plurality of nodes in the input layer 41, and the nodes are represented by a fuzzy function M.sub.Y1 to a fuzzy function M.sub.YQ (a total of Q nodes). A wind speed component .sub.Z is correspondingly input into a remaining plurality of nodes in the input layer 41, and the nodes are represented by a fuzzy function M.sub.Z1 to a fuzzy function M.sub.ZR (a total of R nodes).

    [0037] FIG. 10A is a schematic diagram of fuzzy functions of an X-axis wind speed component according to some embodiments of the present disclosure. FIG. 11A is a schematic diagram of fuzzy functions of a Y-axis wind speed component according to some embodiments of the present disclosure. FIG. 12A is a schematic diagram of fuzzy functions of a Z-axis wind speed component according to some embodiments of the present disclosure. Referring to FIG. 10A, FIG. 11A, and FIG. 12A together, in the schematic diagrams for reference, a horizontal axis represents a wind speed value , and a vertical axis represents a membership degree. Using FIG. 10A as an example, a total of P fuzzy functions M.sub.X are included (FIG. 10A shows only three of the P fuzzy functions M.sub.X). In this embodiment, each fuzzy function M.sub.X is represented by a triangle, and a membership degree of a vertex thereof (that is, a core of the fuzzy function M.sub.X) is 1. For the fuzzy function M.sub.X1, when the wind speed value ranges from X.sub.n to 0, and a membership degree thereof is greater than 0. In this embodiment, when the wind speed component .sub.X is correspondingly input into a plurality of nodes in the input layer 41, a node corresponding to the fuzzy function M.sub.X1 generates a membership value .sub.X1, a node corresponding to the fuzzy function M.sub.X2 generates a membership value .sub.X2, and a node corresponding to the fuzzy function M.sub.YP generates a membership value .sub.XP. Similarly, when the wind speed component .sub.Y is correspondingly input into another group of a plurality of nodes in the input layer 41, a node corresponding to the fuzzy function M.sub.Y1 generates a membership value .sub.Y1, a node corresponding to the fuzzy function M.sub.Y2 generates a membership value .sub.Y2, and a node corresponding to the fuzzy function M.sub.YQ generates a membership value .sub.YQ. Likewise, when the wind speed component .sub.Z is correspondingly input into a remaining plurality of nodes in the input layer 41, a node corresponding to the fuzzy function M.sub.Z1 generates a membership value .sub.Z1, a node corresponding to the fuzzy function M.sub.Z2 generates a membership value .sub.Z2, and a node corresponding to the fuzzy function M.sub.ZR generates a membership value .sub.ZR.

    [0038] FIG. 10B is a schematic diagram of generating wind speed membership values by fuzzy functions of an X-axis wind speed component according to some embodiments of the present disclosure. FIG. 11B is a schematic diagram of generating wind speed membership values by fuzzy functions of a Y-axis wind speed component according to some embodiments of the present disclosure. FIG. 12B is a schematic diagram of generating wind speed membership values by fuzzy functions of a Z-axis wind speed component according to some embodiments of the present disclosure. Referring to FIG. 10B, FIG. 11B, and FIG. 12B together, for example, when the wind speed component .sub.X is 2, the wind speed component .sub.Y is 4, and the wind speed component .sub.Z is 1, the wind speed components .sub.X, .sub.Y, and .sub.Z are input into the neural network. As shown in FIG. 10B, the wind speed component .sub.X=2 is input into the fuzzy function M.sub.X1, and a generated membership value .sub.X1 is 0.67. Because a range of the wind speed value of the fuzzy function M.sub.X2 does not cover 2, a generated membership value .sub.X2 is 0, and the same applies to the remaining fuzzy functions M.sub.X. As shown in FIG. 11B, the wind speed component .sub.Y=4 is input into the fuzzy function M.sub.Y1. Because a range of the wind speed value of the fuzzy function M.sub.Y1 does not cover 4, a generated membership value .sub.Y1 is 0. A generated membership value .sub.Y2 of the fuzzy function M.sub.Y2 is 0.33, and the same applies to the remaining fuzzy functions M.sub.Y. As shown in FIG. 12B, the wind speed component .sub.Z=1 is input into the fuzzy function M.sub.Z1, a generated membership value .sub.Z1 is 0.33, a generated membership value .sub.Z2 of the fuzzy function M.sub.Z2 is 0.5, and the same applies to the remaining fuzzy functions M.sub.Z. Therefore, when the wind speed components .sub.X, .sub.Y, and .sub.Z are input into the neural network, a plurality of wind speed membership values are generated respectively.

    [0039] In some embodiments, in the drone training method, the plurality of fuzzy functions at equal core intervals are generated within a wind speed component range. For example, referring to FIG. 10A, in the X-axis direction, a wind speed value at a lower limit of the wind speed component range is X.sub.n, and a wind speed value at an upper limit of the wind speed component range is X.sub.p. An interval between a core of the fuzzy function M.sub.X1 and a core of the fuzzy function M.sub.X2 equals an interval between the core of the fuzzy function M.sub.X2 and a core of the fuzzy function M.sub.X3, also equals an interval between the core of the fuzzy function M.sub.X3 and a core of the fuzzy function M.sub.X4, also equals an interval between a core of the fuzzy function M.sub.XP-1 and a core of the fuzzy function M.sub.XP, and so on. Therefore, a distribution of the fuzzy functions is dispersed in each wind speed component range, so that a distribution of the membership values is evenly dispersed. In some embodiments, the wind speed component ranges define a wind range that the drone 2 can withstand, or extreme or average upper and lower limit wind ranges actually measured.

    [0040] Referring to FIG. 8 and FIG. 9, in the drone training method, one of the plurality of wind speed membership values corresponding to each of the wind speed components is selected to obtain the wind speed membership value, and a rule value is generated according to the wind speed membership values corresponding to the each of wind speed components (step S204). As shown in FIG. 9, the rule layer 42 receives the membership values generated by the input layer 41 to generate a rule value. For example, the input layer 41 generates a membership value .sub.X1, a membership value .sub.X2, . . . , and a membership value .sub.XP. The membership values correspond to the wind speed component .sub.X. In the drone training method, a single one, for example, the membership value .sub.X1, is selected from them. The input layer 41 generates a membership value .sub.Y1, a membership value .sub.Y2, . . . , and a membership value .sub.YQ. The membership values correspond to the wind speed component .sub.Y. In the drone training method, a single one, for example, the membership value .sub.Y1, is selected from them. The input layer 41 generates a membership value .sub.Z1, a membership value .sub.Z2, . . . , and a membership value .sub.ZR. The membership values correspond to the wind speed component .sub.Z. In the drone training method, a single one, for example, the membership value .sub.Z1, is selected from them. In the drone training method, a rule value win is generated based on the membership value .sub.X1, the membership value .sub.Y1, and the membership value .sub.Z1. In another example, in the drone training method, a rule value .sub.211 is generated based on the membership value .sub.X2, the membership value .sub.Y1, and the membership value .sub.Z1. Therefore, in the drone training method, a rule value w.sub.PQR is generated based on the membership value .sub.XP, the membership value .sub.YQ, and the membership value .sub.ZR, and PQR rule values are generated in total.

    [0041] In some embodiments, in the drone training method, a minimum value among the wind speed membership values corresponding to all the wind speed components is used as the rule value. For example, referring to FIG. 10B, FIG. 11B, and FIG. 12B, if the membership value .sub.X1 is 0.67, the membership value .sub.Y1 is 0, and the membership value .sub.Z1 is 0.33, in the drone training method, a rule value .sub.111 obtained based on a minimum value among the membership values is 0. If the membership value .sub.X1 is 0.67, the membership value .sub.Y2 is 0.33, and the membership value .sub.Z2 is 0.5, in the drone training method, a rule value .sub.122 obtained based on a minimum value among the membership values is 0.33. In some other embodiments, in the drone training method, an accumulated product of the wind speed membership values corresponding to all the wind speed components is used as the rule value. For example, if the membership value .sub.X1 is 0.67, the membership value .sub.Y1 is 0, and the membership value .sub.Z1 is 0.33, in the drone training method, a rule value w.sub.111 obtained based on an accumulated product of the membership values is 0. If the membership value .sub.X1 is 0.67, the membership value .sub.Y2 is 0.33, and the membership value .sub.Z2 is 0.5, in the drone training method, a rule value .sub.122 obtained based on an accumulated product of the membership values is 0.11055.

    [0042] In some embodiments, in the drone training method, the rule values are divided by a sum of all the rule values, to normalize the rule values. Referring to FIG. 9, in this embodiment, each node of the normalization layer 43 receives rule values output from all the nodes of the rule layer 42. The nodes of the normalization layer 43 calculate normalized rule values according to the following Formula 1:

    [00001] w ijk _ = w ijk .Math. x = 1 P .Math. y = 1 Q .Math. z = 1 R w xyz ( Formula 1 ) [0043] where i, j, and k are numbers of rule values, and P is a total number of rule values corresponding the wind speed component .sub.X, Q is a total number of rule values corresponding the wind speed component .sub.Y, and R is a total number of rule values corresponding the wind speed component .sub.Z. For example, assuming that P, Q, and R are all respectively 2, and rule values are w.sub.111=0, w.sub.112=0, w.sub.121=0.33, w.sub.122=0.33, w.sub.211=0, w.sub.212=0, w.sub.221=0, and w.sub.222=0, normalized rule values obtained based on the formula 1 are w.sub.111=0, w.sub.112=0, w.sub.121=0.5, w.sub.122=0.5, w.sub.211=0, w.sub.212=0, w.sub.221=0, and w.sub.222=0.

    [0044] The nodes in the inference layer 44 receive the rule values or the normalized rule values as weights for the inference functions E. For example, referring to FIG. 9, the inference layer 44 includes nodes whose quantity is the same as that of the nodes of the normalization layer 43. Each node in the inference layer 44 separately receives a normalized weight value output from one node of the normalization layer 43, and uses the normalized weight value as a weight for the inference function E. In addition, the nodes in the inference layer 44 separately receive the wind speed components .sub.X, .sub.Y, and .sub.Z, to input the wind speed value into the inference functions E (step S205). In some embodiments, the inference function E is a multivariate linear regression model function, including N regression coefficients and a bias value, where a value of N equals a quantity of the plurality of wind speed components. For example, the inference function E may be represented by the following Formula 2:

    [00002] E ( X , Y , Z ) = w ijk _ f ijk = w ijk _ ( p ijk X + q ijk Y + r ijk Z + s ijk ) ( Formula 2 ) [0045] where w.sub.ijk is a rule value or a normalized rule value, p.sub.ijk, q.sub.ijk, and r.sub.ijk are regression coefficients, and s.sub.ijk is a bias value. In this embodiment, there are three wind speed components .sub.X, .sub.Y, and .sub.Z, so that the inference function E includes three regression coefficients. For example, when the wind speed component .sub.X is 2, the wind speed component .sub.Y is 4, the wind speed component .sub.Z is 1, and a normalized rule value w.sub.121 is 0.5, the inference function E (2, 4, 1) is represented by 0.5(2p.sub.ijk+4q.sub.ijkr.sub.ijk+s.sub.ijk). In this embodiment, the regression coefficients and the bias value may be learned through an iterative process, which is described below in detail.

    [0046] In the drone training method, a function sum of the inference functions E is calculated (step S206). For example, referring to FIG. 9, a node of the output layer 45 receives the inference functions E output from all the nodes of the inference layer 44. The output layer 45 obtains a function sum of a plurality of inference functions E. The function sum corresponds to the wind speed component .sub.X. The function sum may be represented by the following Formula 3:

    [00003] C = .Math. i = 1 P .Math. j = 1 Q .Math. k = 1 R E ijk ( Formula 3 ) [0047] where E is an inference function, and Cis a function sum corresponding to a wind speed component. Then, in the drone training method, an error function is obtained and optimized (step S207). Specifically, in the drone training method, an error function between each offset component and a function sum corresponding to the wind speed component is calculated. In some embodiments, the error function may be represented by the following Formula 4:

    [00004] e = 1 2 ( U - C ) 2 ( Formula 4 ) [0048] where e is an error function corresponding to one of wind speed components, U is an offset component corresponding to the one of the wind speed components, and Cis a function sum corresponding to the one of the wind speed components. In this way, an input of the regression model is wind speed components .sub.X, .sub.Y, and .sub.Z, and an output thereof is an offset component corresponding to one of the wind speed components .sub.X, .sub.Y, and .sub.Z, that is, the corresponding wind speed component .sub.X in this embodiment. In some embodiments, in the drone training method, an offset component is taken as a negative number, and the offset component that is taken as a negative number is used as an output of the regression model, to correspond to a wind speed component in a same axis direction. Specifically, as shown in FIG. 1 and FIG. 3, an environmental wind causes a position offset of the drone, and the position sensor 22 of the drone 2 may measure an offset value caused by the environmental wind. To compensate for offset value components, the drone 2 needs to generate compensation value components u.sub.X, u.sub.Y, and u.sub.Z to offset impact caused by the environmental wind. Directions of the offset value components are opposite to directions of the compensation value components u.sub.X, u.sub.Y, and u.sub.Z.

    [0049] In the drone training method, an optimization problem of an error function is calculated. For example, a minimum value, that is, min.sub.(1/2(UC).sup.2), of an error function e is calculated, to optimize a model parameter of the regression model, for example, a regression coefficient or a bias value of an inference function E, a function type of fuzzy functions M.sub.X, M.sub.Y, and M.sub.Z, a core position, or positions of left and right endpoints. In the foregoing optimization problem, the model parameter may be obtained through a gradient descent method, which is represented by the following Formula 5:

    [00005] [ k + 1 ] = [ k ] - * e [ k ] ( Formula 5 ) [0050] where k is an iteration order, is a model parameter corresponding to one of the wind speed components, and is a learning rate. Therefore, in this embodiment, in the drone training method, model parameters of the regression model are obtained through an optimization iterative process, to generate the regression model (step S208). FIG. 9 illustrates a regression model corresponding to the wind speed component .sub.X. Similarly, in the drone training method, regression models corresponding to the wind speed components can be respectively trained based on offset values corresponding to the wind speed components as model outputs. As shown in FIG. 2, in some embodiments, model parameters of the regression models are stored in the memory unit 25, the drone 2 may generate compensation values C.sub.X, C.sub.Y, and C.sub.Z through the regression models, to offset impact of wind on the drone 2.

    [0051] In some embodiments, after the regression models are generated in the drone training method, the drone 2 is set to the hovering mode again (which may also be a fixed speed mode or a fixed acceleration mode), and the compensation values C.sub.X, C.sub.Y, and C.sub.Z are generated through the regression models, to offset impact of wind on the drone 2. In this case, the drone 2 may perform step S201 to step S208 again. Specifically, the drone 2 receives wind speed components generated by the wind speed sensor 21 again (step 201), and inputs the wind speed components into regression models to generate a plurality of compensation values C.sub.X, C.sub.Y, and C.sub.Z. After the drone 2 corrects motor control signals respectively based on the plurality of compensation values C.sub.X, C.sub.Y, and C.sub.Z, the drone 2 is controlled to hover (or fly at a fixed speed or a fixed acceleration) using the plurality of corrected motor control signals, and receives an offset value generated by the position sensor 22 again (step 202). Therefore, the drone 2 may retrain the regression models according to the wind speed components and the offset value, to optimize a wind resistance control capability of the drone 2.

    [0052] In some embodiments, in the drone training method, a lookup table T is generated according to the regression models (step S209), and the lookup table T may be stored in the memory unit 25. Specifically, in the drone training method, a plurality of discrete wind speed component values at equal intervals are generated within a specific wind speed component range. For example, assuming that a wind speed range on an X-axis is [X.sub.n, X.sub.p], L discrete wind speed component values X.sub.1, X.sub.2, . . . , X.sub.L are generated. Assuming that a wind speed range on a Y-axis is [Y.sub.n,Y.sub.p], M discrete wind speed component values Y.sub.1, Y.sub.2, . . . , Y.sub.M are generated. Assuming that a wind speed range on a Z-axis is [Z.sub.n,Z.sub.p], N discrete wind speed component values Z.sub.1, Z.sub.2, . . . , Z.sub.N are generated. An interval between the discrete wind speed component value X.sub.1 and the discrete wind speed component value X.sub.2 equals an interval between the discrete wind speed component value X.sub.2 and the discrete wind speed component value X.sub.3, also equals an interval between the discrete wind speed component value X.sub.L-1 and the discrete wind speed component value X.sub.L, and so on. Then, in the drone training method, after the plurality of discrete wind speed component values are input into the regression model, a lookup table Tis generated and stored.

    [0053] As shown in FIG. 9, in this embodiment, in the drone training method, each of the discrete wind speed component values X.sub.1, X.sub.2, . . . , X.sub.L is used to replace the wind speed component value .sub.X and input into the regression model, each of the discrete wind speed component values Y.sub.1, Y.sub.2, . . . , Y.sub.M is used to replace the wind speed component value .sub.Y and input into the regression model, each of the discrete wind speed component values Z.sub.1, Z.sub.2, . . . , Z.sub.N is used to replace the wind speed component value .sub.Z and input into the regression model, so that a compensation value C.sub.X corresponding to the wind speed component .sub.X can be generated. Therefore, a lookup table T including LMN compensation values is generated. Similarly, a compensation value C.sub.Y corresponding to the wind speed component .sub.Y and a compensation value C.sub.Z corresponding to the wind speed component .sub.Z can be generated. In some embodiments, as shown in FIG. 6, the lookup table T is used as a lookup table T in the drone control method. Similarly, in the drone training method, the foregoing steps can also be repeated to input discrete wind speed component values into other regression models to generate compensation values corresponding to other wind speed components, thereby generating lookup tables T corresponding to different wind speed components. As shown in FIG. 5, different lookup tables T are applied to different wind resistance controllers 2411, 2412, and 2413, to generate compensation value components u.sub.X, u.sub.Y, and u.sub.Z to offset impact of wind speed components .sub.X, .sub.Y, and .sub.Z on the drone 2.

    [0054] Although the present invention has been described in considerable detail with reference to certain preferred embodiments thereof, the disclosure is not for limiting the scope of the invention. Persons having ordinary skill in the art may make various modifications and changes without departing from the scope and spirit of the invention. Therefore, the scope of the appended claims should not be limited to the description of the preferred embodiments described above.