WO2020188956A1 - モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラム - Google Patents

モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラム Download PDF

Info

Publication number
WO2020188956A1
WO2020188956A1 PCT/JP2020/000077 JP2020000077W WO2020188956A1 WO 2020188956 A1 WO2020188956 A1 WO 2020188956A1 JP 2020000077 W JP2020000077 W JP 2020000077W WO 2020188956 A1 WO2020188956 A1 WO 2020188956A1
Authority
WO
WIPO (PCT)
Prior art keywords
motor
nodes
input
model
calculation model
Prior art date
Application number
PCT/JP2020/000077
Other languages
English (en)
French (fr)
Inventor
鈴木 健一
Original Assignee
パナソニックIpマネジメント株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to KR1020217032770A priority Critical patent/KR20210137536A/ko
Priority to CN202080020275.5A priority patent/CN113574795A/zh
Priority to JP2021506184A priority patent/JP7407353B2/ja
Priority to US17/438,126 priority patent/US11682999B2/en
Priority to EP20773637.2A priority patent/EP3944489A4/en
Publication of WO2020188956A1 publication Critical patent/WO2020188956A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P23/00Arrangements or methods for the control of AC motors characterised by a control method other than vector control
    • H02P23/0004Control strategies in general, e.g. linear type, e.g. P, PI, PID, using robust control
    • H02P23/0018Control strategies in general, e.g. linear type, e.g. P, PI, PID, using robust control using neural networks
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D13/00Control of linear speed; Control of angular speed; Control of acceleration or deceleration, e.g. of a prime mover
    • G05D13/62Control of linear speed; Control of angular speed; Control of acceleration or deceleration, e.g. of a prime mover characterised by the use of electric means, e.g. use of a tachometric dynamo, use of a transducer converting an electric value into a displacement
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P21/00Arrangements or methods for the control of electric machines by vector control, e.g. by control of field orientation
    • H02P21/0003Control strategies in general, e.g. linear type, e.g. P, PI, PID, using robust control
    • H02P21/0014Control strategies in general, e.g. linear type, e.g. P, PI, PID, using robust control using neural networks
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P31/00Arrangements for regulating or controlling electric motors not provided for in groups H02P1/00 - H02P5/00, H02P7/00 or H02P21/00 - H02P29/00
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence

Definitions

  • the present disclosure relates to a motor control method, a motor control model conversion method, a motor control system, a motor control model conversion system, and a motor control model conversion program. More specifically, the present disclosure describes a motor control method for controlling a motor based on one or more control amounts or target values of the motor, a method for converting a control model of a motor, a motor control system, a conversion system for a control model of a motor, and the like. And the conversion program of the control model of the motor.
  • Patent Document 1 discloses a control system for a servomotor.
  • the control system of this servomotor includes at least one of a position closed loop control system and a speed closed loop control system.
  • the position closing loop control system sends a drive command to the servomotor so that the error between the rotation position information detected from the servomotor and the rotation position command sent from the controller becomes small.
  • the speed closed loop control system sends a drive command to the servomotor so that the error between the rotation speed information obtained by differentiating the captured rotation position information and the rotation speed command sent from the controller becomes small.
  • the present disclosure discloses a motor control method, a motor control model conversion method, a motor control system, a motor control model conversion system, and a motor control model, which can shorten the response time to a command for controlling the motor.
  • the purpose is to provide a conversion program for.
  • one or more control amounts or target values representing the state of the motor are input to one or more node layers as input values, and calculations are performed on each of the one or more node layers. Therefore, one or more operating amounts used for controlling the motor are output, and the motor is controlled by one or more operating amounts.
  • Each one or more node layers has a plurality of nodes that execute operations in parallel. Each of the plurality of nodes determines the output value by multiplying the input value by the coefficient specified for each node and calculating with the function specified for each node with the multiplied value as the input variable. ..
  • the conversion method of the motor control model is a conversion method for converting the first calculation model into the second calculation model.
  • the first calculation model takes one or more control amounts or target values representing the state of the motor as input, and outputs one or more operation amounts used for controlling the motor by calculation using one or more transfer functions or equations of state.
  • the second calculation model takes one or more control amounts or target values as inputs, performs calculations on each of one or more node layers having a plurality of nodes that execute operations in parallel, and outputs one or more operation amounts. ..
  • this conversion method multiplies each of the plurality of nodes by the input value to the nodes based on one or more transfer functions or state equations. Determine the coefficient and the function that takes the value after multiplication as the input variable.
  • the motor control system includes an input unit and a calculation unit.
  • One or more control amounts or target values representing the state of the motor are input to the input unit as input values.
  • the calculation unit includes one or more node layers each having a plurality of nodes that execute calculations in parallel, and outputs one or more operation amounts used for controlling the motor by performing calculations based on input values.
  • Each of the plurality of nodes multiplies the input value by the coefficient specified for each node, and calculates by the function specified for each node with the multiplied value as the input variable.
  • the motor control model conversion system includes a model input unit and a conversion unit.
  • the first calculation model is input to the model input unit.
  • the conversion unit converts the first calculation model into the second calculation model and outputs it.
  • the first calculation model takes one or more control amounts or target values representing the state of the motor as input, and outputs one or more operation amounts used for controlling the motor by calculation using one or more transfer functions or equations of state.
  • the second calculation model takes one or more control amounts or target values as inputs, performs calculations on each of one or more node layers having a plurality of nodes that execute operations in parallel, and outputs one or more operation amounts. ..
  • the conversion unit is a coefficient that is multiplied by the input value to the node based on one or more transfer functions or state equations for each of the plurality of nodes. And a function that takes the value after multiplication as an input variable.
  • the conversion program of the motor control model is a conversion program for causing one or more processors to execute a conversion process for converting the first calculation model into the second calculation model.
  • the first calculation model takes one or more control amounts or target values representing the state of the motor as input, and outputs one or more operation amounts used for controlling the motor by calculation using one or more transfer functions or equations of state.
  • the second calculation model takes one or more control amounts or target values as inputs, performs calculations on each of one or more node layers having a plurality of nodes that execute operations in parallel, and outputs one or more operation amounts. ..
  • the conversion process is a coefficient that is multiplied by the input value to the node based on one or more transfer functions or state equations for each of the plurality of nodes in the process of converting the first arithmetic model to the second arithmetic model.
  • a function that takes the value after multiplication as an input variable and includes a process of determining.
  • the present disclosure has an advantage that the response time to a command for controlling the motor can be shortened.
  • FIG. 1 is a block diagram showing an outline of a motor control system according to an embodiment of the present disclosure.
  • FIG. 2 is a block diagram showing an outline of a conversion system for a motor control model according to the embodiment of the present disclosure.
  • FIG. 3 is a block diagram showing an example of a first arithmetic model to be converted in the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 4 is a schematic diagram showing an example of a second calculation model obtained by converting the first calculation model in the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 5 is a flowchart showing the operation of the motor control system according to the embodiment of the present disclosure.
  • FIG. 6 is a flowchart showing the operation of the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 7 is a block diagram showing an example of a first conversion model obtained by converting the first calculation model of the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 8 is a block diagram showing an example of a second conversion model obtained by converting the first conversion model of the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 9 is a block diagram showing an example of a first arithmetic model represented by one or more transfer functions.
  • FIG. 10 is a schematic diagram showing an example of a second calculation model obtained by converting the first calculation model of the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 11 is a block diagram showing an example of a first calculation model represented by one or more equations of state.
  • FIG. 12 is a schematic diagram showing an example of a second calculation model obtained by converting the first calculation model in the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 13 is a schematic diagram showing an example of a case where the first arithmetic model including the nonlinear function is converted into the second arithmetic model in the conversion system of the motor control model according to the embodiment of the present disclosure.
  • FIG. 1 is a block diagram showing an outline of a motor control system according to an embodiment of the present disclosure.
  • the motor control method of the present embodiment is a method of servo-controlling the motor 3 by one or more processors having, for example, a microcontroller or the like. More specifically, the motor control method of the present embodiment is a method of servo-controlling the motor 3 by one or more processors using a pseudo neural network simulating a neural network instead of a learned neural network. is there.
  • one or more control amounts V1 or target value V2 representing the state of the motor 3 are input to one or more node layers L1.
  • one or more operation amounts V3 used for controlling the motor 3 are output by calculating each of one or more node layers L1.
  • the above-mentioned calculation in one or more node layers L1 can be realized by executing a program in one or more processors.
  • the "controlled amount” referred to in the present disclosure is an amount that belongs to the controlled object of the motor 3 and is intended to be controlled.
  • the control amount V1 may include, for example, the rotation position (rotation angle) of the motor 3, the rotation speed of the motor 3, and the like.
  • the "target value” referred to in the present disclosure is an amount given as a target so that the control amount takes that value.
  • the “target value” is a value that the control amount V1 of the motor 3 should follow, for example, a command value given from the outside.
  • the target value V2 may include, for example, a command value of the rotation position (rotation speed) of the motor 3, a command value of the rotation speed of the motor 3, and the like.
  • the "operation amount” referred to in the present disclosure is an amount added to a control target in order to control the control amount V1 of the motor 3 in the control system.
  • the operation amount V3 may include, for example, the torque of the motor 3, the current flowing through the coil of the motor 3, the applied voltage for controlling the current, and the like.
  • Each of the one or more node layers L1 has a plurality of nodes N1 that execute operations in parallel.
  • Each of the plurality of nodes N1 determines the output value by executing an operation using the coefficient w0 and the function f1 on the input value.
  • the coefficient w0 is defined for each node N1 and is multiplied by the input value.
  • any node layer L1 a plurality of nodes N1 included in the node layer L1 execute operations in parallel.
  • all the nodes N1 included in the entire plurality of node layers L1 do not execute operations in parallel, but in each of the plurality of node layers L1, the node layer L1 A plurality of included nodes N1 execute operations in parallel.
  • the plurality of nodes N1 included in the second node layer receive the calculation result in the first node layer and execute the calculation in parallel.
  • one or more nodes N1 execute operations in parallel on each of the one or more node layers L1 with respect to one or more control amounts V1 or target value V2.
  • the operation amount V3 is output. Therefore, in the present embodiment, as compared with the case where one or more control amount V1 or target value V2 is sequentially calculated, one or more control amount V1 or target value V2 is input and then one or more. It is possible to shorten the time until the operation amount V3 is output. That is, there is an advantage that the response time to the command for controlling the motor 3 can be shortened.
  • conversion system 2 the conversion system 2 of the control model of the motor 3 of the present embodiment.
  • the motor control system 1 includes an input unit 11 and a calculation unit 12.
  • the arithmetic unit 12 can be realized by one or more processors suitable for parallel processing such as a multi-core CPU (Central Processing Unit), GPU (Graphics Processing Unit), or FPGA (Field-Programmable Gate Array).
  • the input unit 11 can be realized by the input interface of one or more processors described above.
  • a control amount V1 or a target value V2 representing the state of the motor 3 is input to the input unit 11 as an input value.
  • the rotation position ⁇ 2 of the motor 3 (hereinafter, simply referred to as “rotation position ⁇ 2”) is input to the input unit 11 as the control amount V1. That is, in the present embodiment, the control amount V1 includes at least the position information (rotational position ⁇ 2) of the motor 3.
  • the rotation position ⁇ 2 is detected by a resolver or a rotary encoder provided in the motor 3 as an example.
  • the target value ⁇ 1 of the rotation position ⁇ 2 of the motor 3 (hereinafter, simply referred to as “position target value ⁇ 1”) is input as the target value V2.
  • the position target value ⁇ 1 is given to the input unit 11 from the control controller of the motor 3 as an example.
  • the calculation unit 12 includes one or more node layers L1 (plural in FIG. 1). Each of the one or more node layers L1 has a plurality of nodes N1 that execute operations in parallel.
  • the calculation unit 12 outputs one or more operation amounts V3 used for controlling the motor 3 by performing calculations in each of the one or more node layers L1 based on the input value input to the input unit 11.
  • the operation amount V3 is a target value (command value) ⁇ of the torque of the motor 3.
  • the target value ⁇ of the torque of the motor 3 is, in other words, the target value of the current flowing through the exciting coil of the motor 3.
  • the target value ⁇ of the torque of the motor 3 is referred to as “torque target value ⁇ ”.
  • each of the plurality of nodes N1 multiplies the input value by the coefficient w0 specified for each node N1, and the function f1 specified for each node N1 with the multiplied value as the input variable.
  • the output value is determined by calculating with.
  • the calculation model including one or more node layers L1 used in the calculation unit 12 will be referred to as "second calculation model M2". More specifically, the second calculation model M2 is calculated by each of one or more node layers L1 having a plurality of nodes N1 that execute operations in parallel with one or more control amount V1 or target value V2 as inputs. Outputs an operation amount V3 of 1 or more. That is, the calculation unit 12 obtains the operation amount V3 from the control amount V1 and the target value V2 input to the input unit 11 by using the second calculation model M2, and sends the operation amount V3 to the motor 3 (specifically, the driver of the motor 3). Output. Then, the driver of the motor 3 controls the motor 3 according to the operation amount V3. In this way, the motor 3 is controlled so that the control amount V1 follows the target value V2. In the present embodiment, the motor 3 is controlled so that the rotation position ⁇ 2 follows the position target value ⁇ 1.
  • the second calculation model M2 used in the calculation unit 12 of the motor control system 1 of the present embodiment is obtained by converting the first calculation model M1 by the conversion system 2.
  • the first calculation model M1 is an existing control algorithm for the motor 3, and is represented by, for example, a control block using one or more transfer functions TF1. That is, the first calculation model M1 inputs one or more control amounts V1 or target value V2 representing the state of the motor 3 and performs a calculation using one or more transfer functions TF1 or the equation of state to control the motor 3.
  • the operation amount V3 of 1 or more used is output.
  • the conversion system 2 can convert the first calculation model M1, which is a control algorithm for the continuous system of the existing motor 3, into the second calculation model M2 that executes parallel calculation processing.
  • the conversion system 2 includes a model input unit 21 and a conversion unit 22.
  • the conversion unit 22 can be realized by one or more processors.
  • the model input unit 21 can be realized by the input interface of one or more processors described above.
  • the first calculation model M1 is input to the model input unit 21.
  • the first arithmetic model M1 is input to the model input unit 21 as a source code that can be handled by the computer algebra software executed by one or more processors in the conversion unit 22.
  • the conversion unit 22 converts the first calculation model M1 input to the model input unit 21 into the second calculation model M2 and outputs it.
  • the conversion unit 22 uses the first calculation model M1 as the first conversion model M11 (see FIG. 7) and the second conversion model, as described in detail in “(3.2) Operation of conversion system”. After converting in the order of M12 (see FIG. 8), the second conversion model M12 is converted into the second calculation model M2.
  • the conversion unit 22 converts each of the plurality of nodes N1 into an input value to the node N1 based on one or more transfer functions TF1 or a state equation.
  • the coefficient w0 to be multiplied and the function f1 whose input variable is the value after multiplication are determined.
  • the conversion method of the control model of the motor 3 is based on one or more transfer functions TF1 or the state equation for each of the plurality of nodes N1 in the process of converting the first calculation model M1 to the second calculation model M2. ,
  • the coefficient w0 to be multiplied with respect to the input value to the node N1 and the function f1 whose input variable is the value after multiplication are determined.
  • the conversion method of the control model of the motor 3 is simply referred to as a "conversion method".
  • FIG. 3 is a block diagram showing an example of the first arithmetic model M1 to be converted in the conversion system 2 of the motor control model according to the embodiment of the present disclosure.
  • the first calculation model M1 shown in FIG. 3 is a continuous system control block having a cascade configuration including P control of the rotation position ⁇ 2 of the motor 3 and PI control of the rotation speed of the motor 3.
  • the position target value ⁇ 1 as the target value V2 and the rotation position ⁇ 2 as the control amount V1 are input to the first calculation model M1.
  • the first calculation model M1 outputs the torque target value ⁇ as the operation amount V3 and the deviation e which is the difference between the position target value ⁇ 1 and the rotation position ⁇ 2.
  • the deviation e is used to evaluate the followability of the rotation position of the motor 3 by the first calculation model M1.
  • the first calculation model M1 includes the first process P1 to the ninth process P9.
  • the first process P1 is a process of obtaining the first calculated value CV1 (that is, the deviation e) by subtracting the rotation position ⁇ 2 from the position target value ⁇ 1.
  • the second process P2 is a process of obtaining the second calculated value CV2 by multiplying the result of differentiating the position target value ⁇ 1 by the velocity feed forward gain Kvff.
  • "s" represents a derivative element in the Laplace transform.
  • the third processing P3 is a processing for obtaining the third calculated value CV3 by multiplying the first calculated value CV1 (deviation e) by the position loop gain Kp.
  • the fourth process P4 is a process of obtaining the fourth calculated value CV4 corresponding to the rotation speed of the motor 3 by differentiating the rotation position ⁇ 2.
  • the fourth calculated value CV4 corresponding to the rotational speed of the motor 3 is subtracted from the sum of the second calculated value CV2 and the third calculated value CV3 corresponding to the target value of the rotational speed of the motor 3. 5
  • the sixth process P6 is a process of obtaining the sixth calculated value CV6 by multiplying the fifth calculated value CV5 by the velocity loop gain Kv.
  • the seventh processing P7 is a processing for obtaining the seventh calculated value CV7 by integrating the value obtained by dividing the sixth calculated value CV6 by the speed loop integration time constant Ti.
  • "1 / s" represents an integral element in the Laplace transform.
  • the eighth process P8 is a process of obtaining the eighth calculated value CV8 by adding the seventh calculated value CV7 to the sixth calculated value CV6.
  • the ninth processing P9 is a processing for obtaining the ninth calculated value CV9 corresponding to the torque target value ⁇ by smoothing the eighth calculated value CV8 through a first-order lag filter having a torque filter time constant Tf.
  • Tf torque filter time constant
  • the first calculation value CV1 (deviation e) is obtained in advance by executing the first process P1.
  • the second operation value CV2 to the fourth operation value CV4 are obtained in advance by executing the second process P2 to the fourth process P4.
  • the order in which the second process P2, the third process P3, and the fourth process P4 are executed is not limited to this order.
  • the eighth process P8 the sixth operation value CV6 and the seventh operation value CV7 are obtained in advance by executing the sixth process P6 and the seventh process P7.
  • the order of executing the sixth process P6 and the seventh process P7 may be reversed.
  • the eighth calculated value CV8 is obtained in advance by executing the eighth process P8.
  • the first processing P1 to the ninth processing P9 are executed by sequential processing.
  • FIG. 4 is a schematic diagram showing an example of a second calculation model M2 obtained by converting the first calculation model M1 in the conversion system 2 of the motor control model according to the embodiment of the present disclosure.
  • the second calculation model M2 shown in FIG. 4 has a plurality of (here, four) node layers L1.
  • the plurality of node layers L1 include an input layer L11 having two input nodes Ni1 and Ni2, and an output layer L12 having two output nodes No1 and No2.
  • the plurality of node layers L1 include a hidden layer L13 having six hidden nodes Nh1 to Nh6 and a context layer L14 having four context nodes Nc1 to Nc4.
  • the rotation position ⁇ 2 as the control amount V1 and the position target value ⁇ 1 as the target value are input to the input nodes Ni1 and Ni2, respectively.
  • the input nodes Ni1 and Ni2 output the input values (position target value ⁇ 1 and rotation position ⁇ 2) as they are.
  • the output nodes No. 1 and No. 2 output the calculation results of the nodes as operation amounts (torque target value ⁇ and deviation e), respectively.
  • the hidden nodes Nh1 to Nh4 are nodes corresponding to the input nodes Ni1 and Ni2 and the context nodes Nc1 to Nc4, respectively.
  • the hidden nodes Nh1 to Nh4 output by multiplying the input value by "z -1 " as described later in "(3.2) Operation of conversion system”.
  • the hidden nodes Nh5 and Nh6 are nodes corresponding to the input nodes Ni1 and Ni2, respectively.
  • the value obtained by multiplying the position target value ⁇ 1 which is the output value of the input node Ni1 by a coefficient and the value obtained by multiplying the rotation position ⁇ 2 which is the output value of the input node Ni2 by a coefficient are added. , The added value is output as it is.
  • the context nodes Nc1 to Nc4 hold the output values of the hidden nodes Nh1 to Nh4, respectively, until the hidden nodes Nh1 to Nh4 output next, and output the held values. That is, the context nodes Nc1 to Nc4 output the output values of the hidden nodes Nh1 to Nh4 in the past (here, one sampling time ago), respectively. That is, in the present embodiment, the nodes N1 (context nodes Nc1 to Nc4) possessed by at least one node layer L1 (context layer L14) among the one or more node layers L1 are the other nodes (hidden nodes Nh1 to Nh4).
  • the past output value is used as the input value.
  • coefficient w0 For the coefficients w1 to w23 between the input nodes Ni1 and Ni2, the hidden nodes Nh1 to Nh6, the output nodes No1 and No2, and the context nodes Nc1 to Nc4, see "(3.2) Operation of conversion system" described later. Will be explained in detail. In the following description, when the coefficients w1 to w23 are not distinguished, it is simply referred to as "coefficient w0".
  • FIG. 5 is a flowchart showing the operation of the motor control system according to the embodiment of the present disclosure.
  • FIG. 7 is a block diagram showing an example of a first conversion model obtained by converting the first calculation model M1 of the conversion system 2 of the motor control model according to the embodiment of the present disclosure.
  • the control amount V1 and the target value V2 are input (step S11).
  • the hidden nodes Nh1 to Nh6 are input with values obtained by multiplying the output values of the input nodes Ni1 and Ni2 by the coefficient w0 (step S12). Further, in the hidden nodes Nh1 to Nh4, values obtained by multiplying the output values of the context nodes Nc1 to Nc4 by the coefficient w0 are input (step S12).
  • the output values of the hidden nodes Nh1 to Nh4 are input to the context nodes Nc1 to Nc4, respectively (step S13).
  • the context nodes Nc1 to Nc4 hold the output values of the past hidden nodes Nh1 to Nh4, respectively.
  • values obtained by multiplying the output values of the hidden nodes Nh1 to Nh6 by the coefficient w0 are input (step S14).
  • the output nodes No. 1 and No. 2 output the input values as they are, so that the second calculation model M2 outputs the operation amount V3 (here, the torque target value ⁇ ) and the deviation e (step S15).
  • the driver of the motor 3 controls the motor 3 according to the operation amount V3, so that the motor 3 is controlled so that the control amount V1 follows the target value V2.
  • a plurality of nodes N1 are calculated in parallel in each of the one or more node layers L1 for one or more control amounts V1 or target value V2. Is executed to output one or more operation amounts V3. Therefore, in the present embodiment, as compared with the case where one or more control amount V1 or target value V2 is sequentially calculated, one or more control amount V1 or target value V2 is input and then one or more. It is possible to shorten the time until the operation amount V3 is output. That is, there is an advantage that the response time to the command for controlling the motor 3 can be shortened.
  • FIG. 6 is a flowchart showing the operation of the conversion system 2 of the motor control model according to the embodiment of the present disclosure.
  • FIG. 8 is a block diagram showing an example of a second conversion model obtained by converting the first conversion model of the conversion system 2 of the motor control model according to the embodiment of the present disclosure.
  • the conversion unit 22 converts the first arithmetic model M1 which is a continuous system control algorithm into the first conversion model M11 which is a discrete system control algorithm. Specifically, the conversion unit 22 converts the transfer function TF1 represented by the Laplace transform, such as the differential element, the integral element, and the first-order lag element, among the first process P1 to the ninth process P9 of the first arithmetic model M1. , Converts to the transfer function TF1 represented by the z-transform. As a result, the conversion unit 22 converts the first calculation model M1 into the first conversion model M11.
  • the Laplace transform such as the differential element, the integral element, and the first-order lag element
  • the differential elements in the second process P2 and the fourth process P4 of the first calculation model M1 are represented by the following equation (1) by z-transform using the first-order approximation.
  • the integral element in the seventh process P7 of the first calculation model M1 is represented by the following equation (2) by the z-transform using the first-order approximation.
  • the first-order lag element in the ninth process P9 of the first calculation model M1 is represented by the following equation (3) by bilinear transform.
  • Ts represents a sampling period
  • z -1 represents a delay element representing a delay of one sampling time.
  • the first calculation model M1 is converted into the first conversion model M11 shown in FIG. 7.
  • the second processing P2, the fourth processing P4, the seventh processing P7, and the ninth processing P9 in the first conversion model M11 are represented by the following equations (4) to (7), respectively.
  • “ ⁇ 1” and “ ⁇ 2” represent the position target value ⁇ 1 and the rotation position ⁇ 2, respectively.
  • “v2", “v4", and “v6” to “v9” have the second calculated value CV2, the fourth calculated value CV4, and the sixth calculated value CV6 to the ninth calculated value CV9, respectively.
  • "a1", “b0", and “b1” are constants obtained by simplifying the constants represented by the sampling period Ts and the torque filter time constant Tf, respectively.
  • the conversion unit 22 executes a process of converting the first conversion model M11 into the second conversion model M12 shown in FIG. 8 (step S23). Specifically, the conversion unit 22 sets the delay element “z -1 ” in each of the second processing P2, the fourth processing P4, the seventh processing P7, and the ninth processing P9 from the hidden nodes Nh1 to the hidden layer L13. The process of replacing with Nh4 is executed.
  • the conversion unit 22 executes a process of converting the second conversion model M12 into the second calculation model M2 shown in FIG. 4 (step S24). Specifically, the conversion system 2 converts the position target value ⁇ 1 and the rotation position ⁇ 2, which are two input values to the first calculation model M1, into two input nodes Ni1 and Ni2 of the input layer, respectively. Further, the conversion system 2 converts the torque target value ⁇ and the deviation e, which are the two output values from the first calculation model M1, into the two output nodes No1 and No2 of the output layer, respectively.
  • the conversion unit 22 obtains the coefficient w0 between the input nodes Ni1 and Ni2, the hidden nodes Nh1 to Nh6, the output nodes No1 and No2, and the context nodes Nc1 to Nc4, respectively, based on the second conversion model M12.
  • the coefficient w0 can be calculated in the second transformation model M12 by multiplying and adding the weights of the directed sides while following the direction of the arrow shown in the figure between the two nodes N1.
  • the coefficients w1 to w5 are coefficients between the input node Ni1 and the hidden nodes Nh1, Nh3, Nh4, Nh5, Nh6, respectively.
  • the coefficients w1 to w5 are represented by the equations (8) to (12).
  • the coefficients w6 to w10 are coefficients between the input node Ni2 and the hidden nodes Nh2, Nh3, Nh4, Nh5, Nh6, respectively.
  • the coefficients w6 to w10 are represented by the equations (13) to (17).
  • the coefficients w11 and w12 are coefficients between the context node Nc1 and the hidden nodes Nh3 and Nh4, respectively.
  • the coefficients w11 and w12 are represented by the equations (18) and (19).
  • the coefficients w13 and w14 are coefficients between the context node Nc2 and the hidden nodes Nh3 and Nh4, respectively.
  • the coefficients w13 and w14 are represented by the equations (20) and (21).
  • the coefficients w15 and w16 are coefficients between the context node Nc3 and the hidden nodes Nh3 and Nh4, respectively.
  • the coefficients w15 and w16 are represented by the equations (22) and (23).
  • the coefficient w17 is a coefficient between the context node Nc4 and the hidden node Nh4.
  • the coefficient w17 is represented by the equation (24).
  • the coefficients w18 to w22 are coefficients between the hidden nodes Nh1 to Nh4 and the output node No1, respectively.
  • the coefficients w18 to w22 are represented by the equations (25) to (29).
  • the coefficient w23 is a coefficient between the hidden node Nh6 and the output node No2.
  • the coefficient w23 is represented by the equation (30).
  • the conversion unit 22 executes the following processing in the process of converting the first calculation model M1 to the second calculation model M2. That is, the conversion unit 22 determines the number of a plurality of nodes N1 based on the number of past states of one or more transfer functions TF1 or the equation of state in the first arithmetic model M1 and the connection relationship between the input and the output. And each coefficient w0 of the plurality of nodes N1 is determined.
  • the number of past states of the transfer function TF1 referred to in the present disclosure corresponds to the number of delay elements "z -1 ".
  • the number of past states of the equation of state referred to in the present disclosure corresponds to the number of elements of the state variable.
  • the conversion method of the control model of the motor 3 includes the following method in the process of converting the first calculation model M1 to the second calculation model M2. That is, in this method, the number of a plurality of nodes N1 and the number of nodes N1 are determined based on the number of past states of one or more transfer functions TF1 or the equation of state in the first arithmetic model M1 and the connection relationship between the input and the output. Each coefficient w0 of the plurality of nodes N1 is determined.
  • the conversion unit 22 outputs the second calculation model M2 obtained by converting the first calculation model M1 as described above (step S25).
  • the known position control system generally used in the motor control system is used as the first calculation model M1, but a more general combination of transfer functions or equations of state is used. It is also possible to use the first calculation model M1.
  • FIG. 9 is a block diagram showing an example of the first calculation model M1 represented by one or more transfer functions.
  • FIG. 10 is a schematic diagram showing an example of a second calculation model obtained by converting the first calculation model M1 of the conversion system 2 of the motor control model according to the embodiment of the present disclosure.
  • the transfer function TF1 is a first-order transfer function having a numerator and a denominator order of 1
  • the transfer function TF1 is represented by the equation (32).
  • "a1", “b0”, and “b1” are constants
  • "z -1 " is a delay element representing a delay of one sampling time.
  • the first calculation model M1 can be represented by the block diagram shown in FIG.
  • the input “u (z)”, the output “y (z)”, and the delay element “z -1 ” in the first calculation model M1 are the input nodes Ni11 in the second calculation model M2, respectively. It can be replaced with the output node No11 and the hidden node Nh11.
  • the context node Nc11 is a node that holds the output value of the past hidden node Nh11.
  • the coefficients w24 to w27 between the nodes N1 are obtained.
  • the coefficients w24 to w27 can be calculated by multiplying and adding the weights of the directed sides while following the direction of the arrow shown in the figure between the two nodes N1 in the first calculation model M1, respectively. ..
  • the coefficients w24, w25, w26, and w27 are "1", "b0", "b1", and "-a1", respectively.
  • the transfer function TF1 is a quadratic transfer function in which the order of the numerator and denominator is 2, it is possible to define a transformation that replaces the delay element “z -1 ” with a hidden node in the same manner as described above.
  • the quadratic terms of the coefficients "b2" in the molecule "(z -1) 2”
  • the quadratic terms of the coefficients "a2" to the denominator "(z -1) 2” Just add it.
  • "(z -1 ) 2 " represents a delay element representing a delay of 2 sampling times.
  • FIG. 11 is a block diagram showing an example of a first calculation model represented by one or more equations of state.
  • FIG. 12 is a schematic diagram showing an example of a second calculation model obtained by converting the first calculation model in the conversion system 2 of the motor control model according to the embodiment of the present disclosure. Assuming that the first arithmetic model M1 is a discrete equation of state, the input is "u (n)", the output is "y (n)", and the state variable is "x (n)”. ) And equation (35).
  • the first calculation model M1 can be represented by the block diagram shown in FIG. As shown in FIG. 12, the elements of the input “u (n)”, the output “y (n)”, and the state variable “x (n)” in the first calculation model M1 are the inputs in the second calculation model M2, respectively. It is possible to replace the node Ni21, the output node No21, and the hidden nodes Nh21 and Nh22. In FIG. 12, the context nodes Nc21 and Nc22 are nodes that hold the output values of the past hidden nodes Nh21 and Nh22, respectively.
  • the coefficients w28 to w36 between the nodes N1 are obtained.
  • the coefficients w28 to w36 can be calculated by multiplying and adding the weights of the directed sides while following the direction of the arrow shown in the figure between the two nodes N1 in the first calculation model M1, respectively. ..
  • the coefficients w28, w29, w30, w31, and w32 are "b1", “b2", “d”, "c1", and “c2", respectively.
  • the coefficients w33, w34, w35, and w36 are "a11", "a21", “a12", and "a22", respectively.
  • the number of input nodes Ni1 and Ni2 is determined based on the number of parameters (control amount V1 and target value V2) input to the first calculation model M1. Further, the number of output nodes No1 and No2 is determined based on the number of parameters (operation amount V3 and deviation e) output from the first calculation model M1. Further, the number of hidden nodes Nh1 to Nh6 is determined based on the number of past states of one or more transfer functions TF1 or the equation of state in the first calculation model M1. Further, the number of context nodes Nc1 to Nc4 is determined based on the number of transfer functions TF1 including the delay element "z -1 ".
  • the coefficient w0 between the nodes N1 can be calculated by multiplying and adding the weights of the directed sides while following the direction of the arrow shown in the figure between the two nodes N1 in the second transformation model M12. is there.
  • the conversion system 2 and its conversion method are based on the first calculation model M1 and include input nodes Ni1 and Ni2, hidden nodes Nh1 to Nh6, context nodes Nc1 to Nc4, and output nodes of the second calculation model M2.
  • the number of each of No1 and No2 is determined.
  • the conversion system 2 and its conversion method calculate a coefficient w0 between each node N1 of the second calculation model M2 based on the first calculation model M1.
  • the conversion system 2 and the conversion method thereof can convert the first calculation model M1 which is the control algorithm of the existing motor 3 into the second calculation model M2 which executes the parallel calculation processing. Therefore, the conversion system 2 and the conversion method of the present embodiment have the following advantages, for example.
  • the structure of the neural network such as the number of neurons in each of the input layer, hidden layer, and output layer, and the connection relationship between neurons, and the activation function used in each neuron.
  • the weighting coefficient between neurons is generally machine-learned by the backpropagation method (backpropagation).
  • backpropagation backpropagation
  • machine learning is required to build a trained model.
  • Machine learning requires a huge amount of data (big data) and learning time.
  • the control algorithm (first calculation model M1) of the existing motor 3 is converted into the second calculation model M2 that approximates the trained model. Therefore, in the present embodiment, since it is not necessary to perform machine learning, there is an advantage that an arithmetic model similar to the trained model can be constructed without requiring big data and learning time.
  • the weighting coefficient obtained as a result of machine learning can be replaced with the parameter of the existing control algorithm of the motor 3. Therefore, the present embodiment has an advantage that when machine learning is performed, the result of machine learning can be easily interpreted in light of the existing control algorithm of the motor 3.
  • the calculation model corresponding to the new algorithm is added by adding the node N1 to the second calculation model M2. Has the advantage of being easy to build.
  • the above-described embodiment is only one of the various embodiments of the present disclosure.
  • the above-described embodiment can be changed in various ways depending on the design and the like as long as the object of the present disclosure can be achieved.
  • the same function as that of the motor control system 1 may be realized by a computer program, a non-temporary recording medium on which the computer program is recorded, or the like.
  • the same function as the conversion system 2 of the control model of the motor 3 may be realized by a computer program, a non-temporary recording medium on which the computer program is recorded, or the like.
  • the conversion program of the control model of the motor 3 causes one or more processors to execute a conversion process for converting the first arithmetic model M1 into the second arithmetic model M2. It is a conversion program for.
  • the first calculation model M1 is used for controlling the motor 3 by a calculation using one or more transfer functions TF1 or an equation of state with one or more control amounts V1 or a target value V2 representing the state of the motor 3 as inputs.
  • the above operation amount V3 is output.
  • the second calculation model M2 is calculated by each of one or more node layers L1 having a plurality of nodes N1 that execute operations in parallel with one or more control amount V1 or target value V2 as inputs, and one or more.
  • the operation amount V3 is output.
  • the conversion process is performed on each of the plurality of nodes N1 with respect to the input value to the node N1 based on one or more transfer functions TF1 or the state equation. It includes a process of determining the coefficient w1 to be multiplied by and the function f1 having the value after multiplication as an input variable.
  • the conversion process includes the following processing in the process of converting the first calculation model M1 to the second calculation model M2. That is, this process is based on the number of past states of one or more transfer functions TF1 or the equation of state in the first arithmetic model M1 and the connection relationship between the input and the output, and the number of a plurality of nodes N1. Each coefficient w1 of the plurality of nodes N1 is determined.
  • the motor control system 1 (or conversion system 2) in the present disclosure includes a computer system.
  • the main configuration of a computer system is a processor and memory as hardware.
  • the function as the motor control system 1 (or conversion system 2) in the present disclosure is realized by the processor executing the program recorded in the memory of the computer system.
  • the program may be pre-recorded in the memory of the computer system, may be provided through a telecommunications line, and may be recorded on a non-temporary recording medium such as a memory card, optical disk, or hard disk drive that can be read by the computer system. May be provided.
  • a processor of a computer system is composed of one or more electronic circuits including a semiconductor integrated circuit (IC, Integrated Circuit) or a large-scale integrated circuit (LSI, Large Scale Integration).
  • the integrated circuit such as an IC or LSI referred to here has a different name depending on the degree of integration, and includes an integrated circuit called a system LSI, a VLSI (Very Large Scale Integration), or a ULSI (Ultra Large Scale Integration).
  • an FPGA Field Programmable Gate Array
  • a plurality of electronic circuits may be integrated on one chip, or may be distributed on a plurality of chips.
  • the plurality of chips may be integrated in one device, or may be distributed in a plurality of devices.
  • the computer system referred to here includes a microcontroller having one or more processors and one or more memories. Therefore, the microcontroller is also composed of one or more electronic circuits including a semiconductor integrated circuit or a large-scale integrated circuit.
  • the motor control system 1 or conversion system 2
  • a plurality of functions in the motor control system 1 (or conversion system 2) are integrated in one housing. That is, the components of the motor control system 1 (or conversion system 2) may be distributed and provided in a plurality of housings. Further, at least a part of the functions of the motor control system 1 (or the conversion system 2) may be realized by the cloud (cloud computing) or the like.
  • the function f1 may be a non-linear function.
  • FIG. 13 is a schematic diagram showing an example of a case where the first arithmetic model including the nonlinear function is converted into the second arithmetic model in the conversion system of the motor control model according to the embodiment of the present disclosure.
  • the first arithmetic model M1 has a process of obtaining the output data B1 by multiplying the output value of the sign function (sign function) using the input data A1 as an input variable by the friction coefficient K.
  • the input data A1 corresponds to the speed of the motor 3
  • the output data B1 corresponds to the friction torque.
  • the above processing is represented by three nodes N1 (first node N11, second node N12, and third node N13).
  • the first node N11 uses the input data A1 as an input value and outputs the input value as it is.
  • the step function f11 is defined as the function f1.
  • the third node N13 is a node that outputs the input value as it is, and uses the output data B1 as the output value.
  • the coefficient w37 between the first node N11 and the second node N12 is "1"
  • the coefficient w38 between the second node N12 and the third node N13 is "K".
  • the first calculation model M1 may be divided into a plurality of control algorithms.
  • the conversion system 2 and the conversion method may perform conversion to the second calculation model M2 for each of the plurality of control algorithms.
  • the hidden layer L13 is not limited to one layer, and may be a plurality of layers.
  • the context layer L14 is not limited to one layer, and may be a plurality of layers.
  • one or more control amounts V1 or target value V2 representing the state of the motor 3 are input to one or more node layers L1 as input values, and one or more.
  • one or more operation amounts V3 used for controlling the motor 3 are output, and the motor is controlled and output by one or more operation amounts.
  • Each of the one or more node layers L1 has a plurality of nodes N1 that execute operations in parallel.
  • Each of the plurality of nodes N1 is calculated by multiplying the input value by the coefficient w0 specified for each node N1 and using the function f1 specified for each node N1 with the multiplied value as an input variable. Determine the output value.
  • the node N1 included in at least one node layer L1 among the one or more node layers L1 is the other node N1 among the one or more node layers L1.
  • the past output value is used as the input value.
  • the function f1 is a non-linear function.
  • one or more control amounts V1 include at least the position information of the motor 3.
  • the conversion method of the control model of the motor 3 is a conversion method of converting the first calculation model M1 into the second calculation model M2.
  • the first calculation model M1 is one or more used for controlling the motor 3 by a calculation using one or more transfer functions or equations of state with one or more control amounts V1 or target value V2 representing the state of the motor 3 as inputs.
  • the operation amount V3 of is output.
  • the second calculation model M2 is calculated by each of one or more node layers L1 having a plurality of nodes N1 that execute a calculation in parallel with one or more control amount V1 or a target value V2 as inputs, and one or more.
  • the operation amount V3 is output.
  • the conversion method of the control model of the motor 3 according to the sixth aspect includes the following method in the process of converting the first calculation model M1 to the second calculation model M2 in the fifth aspect. That is, in this method, the number of a plurality of nodes N1 and the number of nodes N1 are determined based on the number of past states of one or more transfer functions TF1 or the equation of state in the first arithmetic model M1 and the connection relationship between the input and the output. Each coefficient w0 of the plurality of nodes N1 is determined.
  • the motor control system 1 includes an input unit 11 and a calculation unit 12.
  • One or more control amounts V1 or target value V2 representing the state of the motor 3 are input to the input unit 11 as input values.
  • the calculation unit 12 includes one or more node layers L1 having a plurality of nodes N1 that execute calculations in parallel, and performs calculations based on input values to perform one or more operation amounts V3 used for controlling the motor 3. Is output.
  • Each of the plurality of nodes N1 is calculated by multiplying the input value by the coefficient w0 specified for each node N1 and using the function f1 specified for each node N1 with the multiplied value as an input variable.
  • the conversion system 2 of the control model of the motor 3 includes a model input unit 21 and a conversion unit 22.
  • the first calculation model M1 is input to the model input unit 21.
  • the conversion unit 22 converts the first calculation model M1 into the second calculation model M2 and outputs it.
  • the first calculation model M1 is used for controlling the motor 3 by a calculation using one or more transfer functions TF1 or an equation of state with one or more control amounts V1 or a target value V2 representing the state of the motor 3 as inputs.
  • the above operation amount V3 is output.
  • the second calculation model M2 is calculated by each of one or more node layers L1 having a plurality of nodes N1 that execute a calculation in parallel with one or more control amount V1 or a target value V2 as inputs, and one or more.
  • the operation amount V3 is output.
  • the conversion unit 22 converts each of the plurality of nodes N1 into an input value to the node N1 based on one or more transfer functions TF1 or a state equation.
  • the coefficient w0 to be multiplied and the function f1 whose input variable is the value after multiplication are determined.
  • the conversion unit 22 executes the following processing in the process of converting the first calculation model M1 to the second calculation model M2. To do. That is, the conversion unit 22 determines the number of a plurality of nodes N1 based on the number of past states of one or more transfer functions TF1 or the equation of state in the first arithmetic model M1 and the connection relationship between the input and the output. And each coefficient w0 of the plurality of nodes N1 is determined.
  • the conversion program of the control model of the motor 3 is a conversion program for causing one or more processors to execute a conversion process for converting the first calculation model M1 into the second calculation model M2.
  • the first calculation model M1 is used for controlling the motor 3 by a calculation using one or more transfer functions TF1 or an equation of state with one or more control amounts V1 or a target value V2 representing the state of the motor 3 as inputs.
  • the above operation amount V3 is output.
  • the second calculation model M2 is calculated by each of one or more node layers L1 having a plurality of nodes N1 that execute a calculation in parallel with one or more control amount V1 or a target value V2 as inputs, and one or more.
  • the operation amount V3 is output.
  • the conversion process includes the following processes in the process of converting the first calculation model M1 to the second calculation model M2. That is, in the conversion process, for each of the plurality of nodes N1, the coefficient w0 to be multiplied with respect to the input value to the node N1 and the value after multiplication are input variables based on one or more transfer functions TF1 or the state equation. Includes a process of determining the function f1 and.
  • the conversion process includes the following processing in the process of converting the first calculation model M1 to the second calculation model M2. That is, this process is based on the number of past states of one or more transfer functions TF1 or the equation of state in the first arithmetic model M1 and the connection relationship between the input and the output, and the number of a plurality of nodes N1. Each coefficient w0 of the plurality of nodes N1 is determined.
  • the configurations according to the second to fourth aspects are not essential configurations for the motor control method and can be omitted as appropriate.
  • the configuration according to the sixth aspect is not an essential configuration for the conversion method of the control model of the motor 3, and can be omitted as appropriate.
  • the configuration according to the ninth aspect is not an essential configuration for the conversion system 2 of the control model of the motor 3, and can be omitted as appropriate.
  • the configuration according to the eleventh aspect is not an essential configuration for the conversion program of the control model of the motor 3, and can be omitted as appropriate.

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Control Of Electric Motors In General (AREA)

Abstract

モータ制御方法は、モータの状態を表す1以上の制御量又は目標値を、1以上のノード層に入力値として入力し、1以上のノード層のそれぞれで演算することにより、モータの制御に用いられる1以上の操作量を出力し、1以上の操作量によってモータを制御する。1以上のノード層は、それぞれ並列に演算を実行する複数のノードを有する。複数のノードのそれぞれは、入力値に対してノードごとに規定された係数を乗算し、乗算後の値を入力変数とするノードごとに規定された関数により演算することで、出力値を決定する。

Description

モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラム
 本開示は、モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラムに関する。より詳細には、本開示は、モータの1以上の制御量又は目標値に基づいてモータを制御するモータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラムに関する。
 特許文献1には、サーボモータの制御系が開示されている。このサーボモータの制御系は、位置閉ループ制御系、及び速度閉ループ制御系のうち少なくとも一つを備える。位置閉ループ制御系は、サーボモータから検出される回転位置情報と、コントローラから送られる回転位置指令との誤差が小さくなるように、サーボモータに駆動指令を送る。速度閉ループ制御系は、取り込んだ回転位置情報を微分して求められる回転速度情報と、コントローラから送られる回転速度指令との誤差が小さくなるようにサーボモータに駆動指令を送る。
特開平6-319284号公報
 本開示は、モータを制御するための指令に対する応答時間の短縮を図ることのできるモータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラムを提供することを目的とする。
 本開示の一態様に係るモータ制御方法は、モータの状態を表す1以上の制御量又は目標値を、1以上のノード層に入力値として入力し、1以上のノード層のそれぞれで演算することにより、モータの制御に用いられる1以上の操作量を出力し、1以上の操作量によってモータを制御する。1以上のノード層は、それぞれ並列に演算を実行する複数のノードを有する。複数のノードのそれぞれは、入力値に対してノードごとに規定された係数を乗算し、乗算後の値を入力変数とするノードごとに規定された関数により演算することで、出力値を決定する。
 本開示の一態様に係るモータの制御モデルの変換方法は、第1演算モデルを第2演算モデルに変換する変換方法である。第1演算モデルは、モータの状態を表す1以上の制御量又は目標値を入力として、1以上の伝達関数又は状態方程式を用いた演算により、モータの制御に用いられる1以上の操作量を出力する。第2演算モデルは、1以上の制御量又は目標値を入力として、それぞれ並列に演算を実行する複数のノードを有する1以上のノード層のそれぞれで演算して、1以上の操作量を出力する。この変換方法は、第1演算モデルを第2演算モデルへ変換する過程において、複数のノードの各々について、1以上の伝達関数又は状態方程式に基づいて、ノードへの入力値に対して乗算される係数と、乗算後の値を入力変数とする関数と、を決定する。
 本開示の一態様に係るモータ制御システムは、入力部と、演算部と、を備える。入力部には、モータの状態を表す1以上の制御量又は目標値が入力値として入力される。演算部は、それぞれ並列に演算を実行する複数のノードを有する1以上のノード層を含み、入力値に基づいて演算することで、モータの制御に用いられる1以上の操作量を出力する。複数のノードのそれぞれは、入力値に対してノードごとに規定された係数を乗算し、乗算後の値を入力変数とするノードごとに規定された関数により演算する。
 本開示の一態様に係るモータの制御モデルの変換システムは、モデル入力部と、変換部と、を備える。モデル入力部には、第1演算モデルが入力される。変換部は、第1演算モデルを第2演算モデルに変換して出力する。第1演算モデルは、モータの状態を表す1以上の制御量又は目標値を入力として、1以上の伝達関数又は状態方程式を用いた演算により、モータの制御に用いられる1以上の操作量を出力する。第2演算モデルは、1以上の制御量又は目標値を入力として、それぞれ並列に演算を実行する複数のノードを有する1以上のノード層のそれぞれで演算して、1以上の操作量を出力する。変換部は、第1演算モデルを第2演算モデルへ変換する過程において、複数のノードのそれぞれについて、1以上の伝達関数又は状態方程式に基づいて、ノードへの入力値に対して乗算される係数と、乗算後の値を入力変数とする関数と、を決定する。
 本開示の一態様に係るモータの制御モデルの変換プログラムは、1以上のプロセッサに、第1演算モデルを第2演算モデルに変換する変換処理を実行させるための変換プログラムである。第1演算モデルは、モータの状態を表す1以上の制御量又は目標値を入力として、1以上の伝達関数又は状態方程式を用いた演算により、モータの制御に用いられる1以上の操作量を出力する。第2演算モデルは、1以上の制御量又は目標値を入力として、それぞれ並列に演算を実行する複数のノードを有する1以上のノード層のそれぞれで演算して、1以上の操作量を出力する。変換処理は、第1演算モデルを第2演算モデルへ変換する過程において、複数のノードのそれぞれについて、1以上の伝達関数又は状態方程式に基づいて、ノードへの入力値に対して乗算される係数と、乗算後の値を入力変数とする関数と、を決定する処理を含む。
 本開示は、モータを制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
図1は、本開示の実施形態に係るモータ制御システムの概要を示すブロック図である。 図2は、本開示の実施形態に係るモータの制御モデルの変換システムの概要を示すブロック図である。 図3は、本開示の実施形態に係るモータの制御モデルの変換システムにおいて変換対象となる第1演算モデルの一例を示すブロック線図である。 図4は、本開示の実施形態に係るモータの制御モデルの変換システムにおいて第1演算モデルを変換した第2演算モデルの一例を示す概要図である。 図5は、本開示の実施形態に係るモータ制御システムの動作を示すフローチャートである。 図6は、本開示の実施形態に係るモータの制御モデルの変換システムの動作を示すフローチャートである。 図7は、本開示の実施形態に係るモータの制御モデルの変換システムの第1演算モデルを変換した第1変換モデルの一例を示すブロック線図である。 図8は、本開示の実施形態に係るモータの制御モデルの変換システムの第1変換モデルを変換した第2変換モデルの一例を示すブロック線図である。 図9は、1以上の伝達関数で表される第1演算モデルの一例を示すブロック線図である。 図10は、本開示の実施形態に係るモータの制御モデルの変換システムの第1演算モデルを変換した第2演算モデルの一例を示す概要図である。 図11は、1以上の状態方程式で表される第1演算モデルの一例を示すブロック線図である。 図12は、本開示の実施形態に係るモータの制御モデルの変換システムにおいて第1演算モデルを変換した第2演算モデルの一例を示す概要図である。 図13は、本開示の実施形態に係るモータの制御モデルの変換システムにおいて、非線形関数を含む第1演算モデルを第2演算モデルに変換する場合の一例を示す概要図である。
 (実施形態)
 (1)概要
 図1は、本開示の実施形態に係るモータ制御システムの概要を示すブロック図である。本実施形態のモータ制御方法は、図1に示すように、例えばマイクロコントローラ等の有する1以上のプロセッサにより、モータ3をサーボ制御する方法である。より具体的には、本実施形態のモータ制御方法は、学習済みのニューラルネットワークではなく、ニューラルネットワークを模擬した擬似的なニューラルネットワークを用いて、1以上のプロセッサによりモータ3をサーボ制御する方法である。本実施形態のモータ制御方法では、モータ3の状態を表す1以上の制御量V1又は目標値V2を、1以上のノード層L1に入力する。モータ制御方法では、1以上のノード層L1の各々で演算することにより、モータ3の制御に用いられる1以上の操作量V3を出力する。上記の1以上のノード層L1での演算は、1以上のプロセッサでプログラムを実行することにより実現され得る。
 本開示でいう「制御量」は、モータ3の制御対象に属する量のうちで、それを制御することが目的となっている量である。制御量V1は、例えばモータ3の回転位置(回転角度)、又はモータ3の回転速度などを含み得る。本開示でいう「目標値」は、制御量がその値を取るように目標として与えられる量である。「目標値」は、言い換えれば、モータ3の制御量V1が追従すべき値であって、例えば外部から与えられる指令値である。目標値V2は、例えばモータ3の回転位置(回転速度)の指令値、又はモータ3の回転速度の指令値などを含み得る。本開示でいう「操作量」は、制御系において、モータ3の制御量V1を制御するために制御対象に加える量である。操作量V3は、例えばモータ3のトルク、モータ3の有するコイルを流れる電流、又は電流を制御する印加電圧などを含み得る。
 1以上のノード層L1は、それぞれ並列に演算を実行する複数のノードN1を有している。複数のノードN1の各々は、入力値に対して、係数w0及び関数f1を用いた演算を実行することにより、出力値を決定する。係数w0は、ノードN1ごとに規定されており、入力値に対して乗算される。関数f1は、ノードN1ごとに規定されており、入力値に係数w0を乗算した乗算後の値を入力変数とする。例えば、任意のノードN1について、入力値を「x」、係数w0を「a」で表すと、入力変数は「ax」で表される。そして、出力値を「y」で表すと、出力値は、「y=f(ax)」で表される。
 ここで、任意のノード層L1において、このノード層L1に含まれる複数のノードN1は、並列に演算を実行する。言い換えれば、複数のノード層L1が存在する場合、複数のノード層L1全体に含まれる全てのノードN1が並列に演算を実行するのではなく、複数のノード層L1の各々において、ノード層L1に含まれる複数のノードN1が並列に演算を実行する。一例として、第1ノード層と第2ノード層とが存在する場合、第1ノード層に含まれる複数のノードN1が並列に演算を実行する。そして、第2ノード層に含まれる複数のノードN1は、例えば第1ノード層での演算結果を受けて、並列に演算を実行する。
 上述のように、本実施形態では、1以上の制御量V1又は目標値V2に対して、1以上のノード層L1の各々で複数のノードN1が並列に演算を実行することで、1以上の操作量V3を出力する。このため、本実施形態では、1以上の制御量V1又は目標値V2に対して逐次的に演算する場合と比較して、1以上の制御量V1又は目標値V2を入力してから1以上の操作量V3を出力するまでの時間の短縮を図ることができる。つまり、モータ3を制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
 (2)詳細
 以下、本実施形態のモータ制御システム1について詳細に説明する。また、以下、本実施形態のモータ3の制御モデルの変換システム2について詳細に説明する。以下の説明では、特に断りの無い限り、モータ3の制御モデルの変換システム2を単に「変換システム2」という。
 (2.1)モータ制御システム
 モータ制御システム1は、図1に示すように、入力部11と、演算部12と、を備えている。演算部12は、一例として、マルチコアCPU(Central Processing Unit)、GPU(Graphics Processing Unit)又はFPGA(Field-Programmable Gate Array)等の並列処理に適した1以上のプロセッサにより実現され得る。入力部11は、上記の1以上のプロセッサの入力インタフェースにより実現され得る。
 入力部11には、モータ3の状態を表す1以上の制御量V1又は目標値V2が入力値として入力される。本実施形態では、制御量V1として、モータ3の回転位置θ2(以下、単に「回転位置θ2」という)が入力部11に入力される。つまり、本実施形態では、制御量V1は、少なくともモータ3の位置情報(回転位置θ2)を含む。回転位置θ2は、一例として、モータ3に備え付けのレゾルバ又はロータリエンコーダにより検出される。また、本実施形態では、目標値V2として、モータ3の回転位置θ2の目標値θ1(以下、単に「位置目標値θ1」という)が入力される。位置目標値θ1は、一例として、モータ3の制御用コントローラから入力部11へ与えられる。
 演算部12は、1以上(図1では複数)のノード層L1を含んでいる。1以上のノード層L1は、それぞれ並列に演算を実行する複数のノードN1を有している。演算部12は、入力部11に入力された入力値に基づいて、1以上のノード層L1の各々で演算することで、モータ3の制御に用いられる1以上の操作量V3を出力する。本実施形態では、操作量V3は、モータ3のトルクの目標値(指令値)τである。モータ3のトルクの目標値τは、言い換えれば、モータ3の有する励磁コイルを流れる電流の目標値である。以下の説明では、特に断りの無い限り、モータ3のトルクの目標値τを「トルク目標値τ」という。
 各ノード層L1において、複数のノードN1の各々は、入力値に対してノードN1ごとに規定された係数w0を乗算し、乗算後の値を入力変数とするノードN1ごとに規定された関数f1により演算することで、出力値を決定する。
 以下では、演算部12で用いられる、1以上のノード層L1を含む演算モデルを「第2演算モデルM2」という。より詳しくは、第2演算モデルM2は、1以上の制御量V1又は目標値V2を入力として、それぞれ並列に演算を実行する複数のノードN1を有する1以上のノード層L1の各々で演算して、1以上の操作量V3を出力する。つまり、演算部12は、第2演算モデルM2を用いて、入力部11に入力された制御量V1及び目標値V2から操作量V3を求めて、モータ3(詳しくは、モータ3のドライバ)へ出力する。そして、モータ3のドライバが、操作量V3に応じてモータ3を制御する。こうして、制御量V1が目標値V2に追従するようにモータ3が制御される。本実施形態であれば、回転位置θ2が、位置目標値θ1に追従するようにモータ3が制御される。
 (2.2)変換システム
 本実施形態のモータ制御システム1の演算部12で用いられる第2演算モデルM2は、変換システム2にて第1演算モデルM1を変換することで得られる。第1演算モデルM1は、既存のモータ3の制御アルゴリズムであって、例えば1以上の伝達関数TF1を用いた制御ブロックで表される。つまり、第1演算モデルM1は、モータ3の状態を表す1以上の制御量V1又は目標値V2を入力として、1以上の伝達関数TF1又は状態方程式を用いた演算を行い、モータ3の制御に用いられる1以上の操作量V3を出力する。本実施形態では、変換システム2は、既存のモータ3の連続系の制御アルゴリズムである第1演算モデルM1を、並列演算処理を実行する第2演算モデルM2に変換可能である。
 変換システム2は、図2に示すように、モデル入力部21と、変換部22と、を備えている。変換部22は、1以上のプロセッサにより実現され得る。また、モデル入力部21は、上記の1以上のプロセッサの入力インタフェースにより実現され得る。
 モデル入力部21には、第1演算モデルM1が入力される。一例として、モデル入力部21には、変換部22における1以上のプロセッサで実行される数式処理ソフトウェアで取扱い可能なソースコードとして、第1演算モデルM1が入力される。
 変換部22は、モデル入力部21に入力される第1演算モデルM1を第2演算モデルM2に変換して出力する。本実施形態では、変換部22は、「(3.2)変換システムの動作」にて詳述するように、第1演算モデルM1を第1変換モデルM11(図7参照)、第2変換モデルM12(図8参照)の順に変換した後に、第2変換モデルM12を第2演算モデルM2に変換する。
 変換部22は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、複数のノードN1の各々について、1以上の伝達関数TF1又は状態方程式に基づいて、ノードN1への入力値に対して乗算される係数w0と、乗算後の値を入力変数とする関数f1と、を決定する。
 言い換えれば、モータ3の制御モデルの変換方法は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、複数のノードN1の各々について、1以上の伝達関数TF1又は状態方程式に基づいて、ノードN1への入力値に対して乗算される係数w0と、乗算後の値を入力変数とする関数f1と、を決定する。以下の説明では、特に断りの無い限り、モータ3の制御モデルの変換方法を単に「変換方法」という。
 (2.3)第1演算モデル
 以下、第1演算モデルM1の具体例について図3を用いて説明する。図3は、本開示の実施形態に係るモータの制御モデルの変換システム2において変換対象となる第1演算モデルM1の一例を示すブロック線図である。図3に示す第1演算モデルM1は、モータ3の回転位置θ2のP制御と、モータ3の回転速度のPI制御と、を含むカスケード構成の連続系の制御ブロックである。第1演算モデルM1には、目標値V2としての位置目標値θ1と、制御量V1としての回転位置θ2と、が入力される。第1演算モデルM1は、操作量V3としてのトルク目標値τと、位置目標値θ1と回転位置θ2との差である偏差eと、を出力する。偏差eは、第1演算モデルM1によるモータ3の回転位置の追従性を評価するために用いられる。
 具体的には、第1演算モデルM1は、第1処理P1~第9処理P9を含んでいる。第1処理P1は、位置目標値θ1から回転位置θ2を減じることで第1演算値CV1(つまり、偏差e)を求める処理である。第2処理P2は、位置目標値θ1を微分した結果に速度フィードフォワードゲインKvffを乗じることで第2演算値CV2を求める処理である。図3において、「s」はラプラス変換における微分要素を表している。第3処理P3は、第1演算値CV1(偏差e)に位置ループゲインKpを乗じることで第3演算値CV3を求める処理である。第4処理P4は、回転位置θ2を微分することで、モータ3の回転速度に相当する第4演算値CV4を求める処理である。
 第5処理P5は、モータ3の回転速度の目標値に相当する第2演算値CV2及び第3演算値CV3の和から、モータ3の回転速度に相当する第4演算値CV4を減じることで第5演算値CV5を求める処理である。第6処理P6は、第5演算値CV5に速度ループゲインKvを乗じることで第6演算値CV6を求める処理である。第7処理P7は、第6演算値CV6を速度ループ積分時定数Tiで除した値を積分することで第7演算値CV7を求める処理である。図3において、「1/s」はラプラス変換における積分要素を表している。第8処理P8は、第6演算値CV6に第7演算値CV7を加えることで第8演算値CV8を求める処理である。第9処理P9は、第8演算値CV8を、トルクフィルタ時定数Tfを有する一次遅れフィルタを通して平滑化することにより、トルク目標値τに相当する第9演算値CV9を求める処理である。図3において、「1/(1+Tf・s)」はラプラス変換における一次遅れ要素を表している。
 第1演算モデルM1では、第3処理P3を実行するに当たっては、第1処理P1を実行することで、第1演算値CV1(偏差e)を事前に求める。第5処理P5を実行するに当たっては、第2処理P2~第4処理P4を実行することで、第2演算値CV2~第4演算値CV4を事前に求める。なお、第2処理P2、第3処理P3、及び第4処理P4を実行する順番は、この順番に限らない。第8処理P8を実行するに当たっては、第6処理P6及び第7処理P7を実行することで、第6演算値CV6及び第7演算値CV7を事前に求める。なお、第6処理P6及び第7処理P7を実行する順番は、逆であってもよい。第9処理P9を実行するに当たっては、第8処理P8を実行することで、第8演算値CV8を事前に求める。このように、第1演算モデルM1では、第1処理P1~第9処理P9を逐次処理により実行する。
 (2.4)第2演算モデル
 以下、第2演算モデルM2の具体例について図4を用いて説明する。図4は、本開示の実施形態に係るモータの制御モデルの変換システム2において第1演算モデルM1を変換した第2演算モデルM2の一例を示す概要図である。図4に示す第2演算モデルM2は、複数(ここでは、4つ)のノード層L1を有している。複数のノード層L1は、2つの入力ノードNi1,Ni2を有する入力層L11と、2つの出力ノードNo1,No2を有する出力層L12と、を含む。複数のノード層L1は、6つの隠れノードNh1~Nh6を有する隠れ層L13と、4つのコンテキストノードNc1~Nc4を有するコンテキスト層L14と、を含む。
 入力ノードNi1,Ni2には、それぞれ制御量V1としての回転位置θ2と、目標値としての位置目標値θ1と、が入力される。入力ノードNi1,Ni2は、それぞれ入力値(位置目標値θ1及び回転位置θ2)をそのまま出力する。出力ノードNo1,No2は、それぞれノードの計算結果を操作量(トルク目標値τ及び偏差e)として出力する。
 隠れノードNh1~Nh4は、それぞれ入力ノードNi1,Ni2及びコンテキストノードNc1~Nc4に対応するノードである。隠れノードNh1~Nh4は、「(3.2)変換システムの動作」にて後述するように、それぞれ入力値に「z-1」を乗じて出力する。隠れノードNh5,Nh6は、それぞれ入力ノードNi1,Ni2に対応するノードである。隠れノードNh5,Nh6は、いずれも入力ノードNi1の出力値である位置目標値θ1に係数を乗じた値と、入力ノードNi2の出力値である回転位置θ2に係数を乗じた値とを加算し、加算した値をそのまま出力する。
 コンテキストノードNc1~Nc4は、それぞれ隠れノードNh1~Nh4の出力値を、次に隠れノードNh1~Nh4が出力するまで保持し、保持した値を出力する。つまり、コンテキストノードNc1~Nc4は、それぞれ過去(ここでは、1サンプリング時間前)の隠れノードNh1~Nh4の出力値を出力する。つまり、本実施形態では、1以上のノード層L1のうち少なくとも1つのノード層L1(コンテキスト層L14)が有するノードN1(コンテキストノードNc1~Nc4)は、他のノード(隠れノードNh1~Nh4)の過去の出力値を入力値とする。
 入力ノードNi1,Ni2、隠れノードNh1~Nh6、出力ノードNo1,No2、及びコンテキストノードNc1~Nc4それぞれのノード間の係数w1~w23については、後述する「(3.2)変換システムの動作」にて詳細に説明する。なお、以下の説明では、係数w1~w23を区別しない場合、単に「係数w0」という。
 (3)動作
 (3.1)モータ制御システムの動作
 以下、モータ制御システム1の動作、言い換えればモータ制御方法について、主として図5及び図7を用いて説明する。図5は、本開示の実施形態に係るモータ制御システムの動作を示すフローチャートである。図7は、本開示の実施形態に係るモータの制御モデルの変換システム2の第1演算モデルM1を変換した第1変換モデルの一例を示すブロック線図である。まず、入力部11に制御量V1(ここでは、回転位置θ2)及び目標値V2(ここでは、位置目標値θ1)が入力されることで、第2演算モデルM2の入力ノードNi1,Ni2にそれぞれ制御量V1及び目標値V2が入力される(ステップS11)。隠れノードNh1~Nh6には、それぞれ入力ノードNi1,Ni2の出力値に係数w0を乗算した値が入力される(ステップS12)。また、隠れノードNh1~Nh4には、それぞれコンテキストノードNc1~Nc4の出力値に係数w0を乗算した値が入力される(ステップS12)。
 コンテキストノードNc1~Nc4には、それぞれ隠れノードNh1~Nh4の出力値が入力される(ステップS13)。これにより、コンテキストノードNc1~Nc4は、それぞれ過去の隠れノードNh1~Nh4の出力値を保持することになる。また、出力ノードNo1,No2には、それぞれ隠れノードNh1~Nh6の出力値に係数w0を乗算した値が入力される(ステップS14)。
 次に、出力ノードNo1,No2が、それぞれ入力値をそのまま出力することにより、第2演算モデルM2は、操作量V3(ここでは、トルク目標値τ)及び偏差eを出力する(ステップS15)。モータ3のドライバが、操作量V3に応じてモータ3を制御することにより、制御量V1が目標値V2に追従するようにモータ3が制御される。
 上述のように、本実施形態のモータ制御システム1及びモータ制御方法では、1以上の制御量V1又は目標値V2に対して、1以上のノード層L1の各々で複数のノードN1が並列に演算を実行することで、1以上の操作量V3を出力する。このため、本実施形態では、1以上の制御量V1又は目標値V2に対して逐次的に演算する場合と比較して、1以上の制御量V1又は目標値V2を入力してから1以上の操作量V3を出力するまでの時間の短縮を図ることができる。つまり、モータ3を制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
 (3.2)変換システムの動作
 以下、変換システム2の動作、言い換えれば変換方法について、主として図3,4,6~8を用いて説明する。図6は、本開示の実施形態に係るモータの制御モデルの変換システム2の動作を示すフローチャートである。図8は、本開示の実施形態に係るモータの制御モデルの変換システム2の第1変換モデルを変換した第2変換モデルの一例を示すブロック線図である。まず、モデル入力部21に第1演算モデルM1が入力されると(ステップS21)、変換部22は、第1演算モデルM1を第1変換モデルM11に変換する処理を実行する(ステップS22)。つまり、変換部22は、連続系の制御アルゴリズムである第1演算モデルM1を、離散系の制御アルゴリズムである第1変換モデルM11に変換する。具体的には、変換部22は、第1演算モデルM1の第1処理P1~第9処理P9のうち、微分要素、積分要素、及び一次遅れ要素等、ラプラス変換で表される伝達関数TF1を、z変換で表される伝達関数TF1に変換する。これにより、変換部22は、第1演算モデルM1を第1変換モデルM11に変換する。
 本実施形態では、第1演算モデルM1の第2処理P2及び第4処理P4における微分要素は、一次近似を用いたz変換により、下記の式(1)で表される。第1演算モデルM1の第7処理P7における積分要素は、一次近似を用いたz変換により、下記の式(2)で表される。第1演算モデルM1の第9処理P9における一次遅れ要素は、双一次変換により、下記の式(3)で表される。式(1)~(3)において、「Ts」は、サンプリング周期を表しており、「z-1」は、1サンプリング時間の遅延を表す遅延素子を表している。
Figure JPOXMLDOC01-appb-M000001
 上記の変換により、第1演算モデルM1は、図7に示す第1変換モデルM11に変換される。具体的には、第1変換モデルM11における第2処理P2、第4処理P4、第7処理P7、及び第9処理P9は、それぞれ下記の式(4)~(7)で表される。以下に示す式において、「θ1」及び「θ2」は、それぞれ位置目標値θ1及び回転位置θ2を表している。また、以下に示す式において、「v2」、「v4」、「v6」~「v9」は、それぞれ第2演算値CV2、第4演算値CV4、第6演算値CV6~第9演算値CV9を表している。また、以下に示す式において、「a1」、「b0」、及び「b1」は、それぞれサンプリング周期Ts及びトルクフィルタ時定数Tfで表される定数を簡略化した定数である。
Figure JPOXMLDOC01-appb-M000002
 次に、変換部22は、第1変換モデルM11を図8に示す第2変換モデルM12に変換する処理を実行する(ステップS23)。具体的には、変換部22は、第2処理P2、第4処理P4、第7処理P7、及び第9処理P9の各々において、遅延素子「z-1」を隠れ層L13の隠れノードNh1~Nh4に置き換える処理を実行する。
 変換部22は、第2変換モデルM12を図4に示す第2演算モデルM2に変換する処理を実行する(ステップS24)。具体的には、変換システム2は、第1演算モデルM1への2つの入力値である位置目標値θ1及び回転位置θ2を、それぞれ入力層の2つの入力ノードNi1,Ni2に変換する。また、変換システム2は、第1演算モデルM1からの2つの出力値であるトルク目標値τ及び偏差eを、それぞれ出力層の2つの出力ノードNo1,No2に変換する。
 変換部22は、第2変換モデルM12に基づいて、入力ノードNi1,Ni2、隠れノードNh1~Nh6、出力ノードNo1,No2、及びコンテキストノードNc1~Nc4それぞれのノードN1間の係数w0を求める。係数w0は、第2変換モデルM12において、2つのノードN1間を図中に示す矢印の向きに辿りながら有向辺の重みを乗算及び加算することにより、算出することが可能である。
 第2演算モデルM2における各ノードN1間の係数w0を、式(8)~(30)に列挙する。以下に示す式において、「h1」~「h6」は、それぞれ隠れノードNh1~Nh6の出力値を表している。以下に示す式において、「c1」~「c4」は、それぞれコンテキストノードNc1~Nc4の出力値を表している。以下に示す式において、「τ」及び「e」は、それぞれトルク目標値τ及び偏差eを表している。
 係数w1~w5は、それぞれ入力ノードNi1と隠れノードNh1,Nh3,Nh4,Nh5,Nh6との間の係数である。係数w1~w5は、式(8)~(12)で表される。
Figure JPOXMLDOC01-appb-M000003
 係数w6~w10は、それぞれ入力ノードNi2と隠れノードNh2,Nh3,Nh4,Nh5,Nh6との間の係数である。係数w6~w10は、式(13)~(17)で表される。
Figure JPOXMLDOC01-appb-M000004
 係数w11,w12は、それぞれコンテキストノードNc1と隠れノードNh3,Nh4との間の係数である。係数w11,w12は、式(18)、(19)で表される。
Figure JPOXMLDOC01-appb-M000005
 係数w13,w14は、それぞれコンテキストノードNc2と隠れノードNh3,Nh4との間の係数である。係数w13,w14は、式(20)、(21)で表される。
Figure JPOXMLDOC01-appb-M000006
 係数w15,w16は、それぞれコンテキストノードNc3と隠れノードNh3,Nh4との間の係数である。係数w15,w16は、式(22)、(23)で表される。
Figure JPOXMLDOC01-appb-M000007
 係数w17は、コンテキストノードNc4と隠れノードNh4との間の係数である。係数w17は、式(24)で表される。
Figure JPOXMLDOC01-appb-M000008
 係数w18~w22は、それぞれ隠れノードNh1~Nh4と出力ノードNo1との間の係数である。係数w18~w22は、式(25)~(29)で表される。
Figure JPOXMLDOC01-appb-M000009
 そして、係数w23は、隠れノードNh6と出力ノードNo2との間の係数である。係数w23は、式(30)で表される。
Figure JPOXMLDOC01-appb-M000010
 このように、変換部22は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、以下の処理を実行する。すなわち、変換部22は、第1演算モデルM1での1以上の伝達関数TF1又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、複数のノードN1の個数、及び複数のノードN1の各々の係数w0を決定する。本開示でいう伝達関数TF1の過去の状態の個数は、遅延素子「z-1」の個数に相当する。本開示でいう状態方程式の過去の状態の個数は、状態変数の要素の数に相当する。言い換えれば、モータ3の制御モデルの変換方法は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、以下の方法を含む。すなわち、この方法は、第1演算モデルM1での1以上の伝達関数TF1又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、複数のノードN1の個数、及び複数のノードN1の各々の係数w0を決定する。
 変換部22は、上記のようにして第1演算モデルM1を変換することで得られる第2演算モデルM2を出力する(ステップS25)。
 ここまでの変換システム2の動作説明では、第1演算モデルM1としてモータ制御システムで一般的に用いられている既知の位置制御系を用いたが、より一般的な伝達関数又は状態方程式の組み合わせを第1演算モデルM1とすることも可能である。
 以下、変換部22の一般化の例として、1以上の伝達関数TF1で表される第1演算モデルM1を第2演算モデルM2に変換する方法の一例について図9及び図10を用いて説明する。図9は、1以上の伝達関数で表される第1演算モデルM1の一例を示すブロック線図である。図10は、本開示の実施形態に係るモータの制御モデルの変換システム2の第1演算モデルM1を変換した第2演算モデルの一例を示す概要図である。
 第1演算モデルM1を離散型の伝達関数とすると、入力を「u(z)」、出力を「y(z)」、伝達関数TF1を「G(z)」として、これらの関係は式(31)で表される。
 簡単な例として、伝達関数TF1を分子及び分母の次数が1である一次の伝達関数とした場合、伝達関数TF1は、式(32)で表される。以下に示す式において、「a1」、「b0」、及び「b1」はそれぞれ定数、「z-1」は、1サンプリング時間の遅延を表す遅延素子を表している。
Figure JPOXMLDOC01-appb-M000011
 式(31)及び式(32)に基づいて、出力「y(z)」と入力「u(z)」との関係は、式(33)により表される。
Figure JPOXMLDOC01-appb-M000012
 式(33)に基づいて、第1演算モデルM1は、図9に示すブロック線図で表すことが可能である。図10に示すように、第1演算モデルM1における入力「u(z)」、出力「y(z)」、及び遅延素子「z-1」は、それぞれ第2演算モデルM2における入力ノードNi11、出力ノードNo11、及び隠れノードNh11に置き換えることが可能である。図10において、コンテキストノードNc11は、過去の隠れノードNh11の出力値を保持するノードである。
 図9に示す第1演算モデルM1に基づいて、各ノードN1間の係数w24~w27が求められる。係数w24~w27は、それぞれ第1演算モデルM1において、2つのノードN1間を図中に示す矢印の向きに辿りながら有向辺の重みを乗算及び加算することにより、算出することが可能である。本例では、係数w24,w25,w26,w27は、それぞれ「1」、「b0」、「b1」、「-a1」である。以上のようにして、1以上の伝達関数TF1で表される第1演算モデルM1を第2演算モデルM2に変換することが可能である。
 伝達関数TF1が分子及び分母の次数が2である二次の伝達関数である場合も、上記と同様に、遅延素子「z-1」を隠れノードに置き換える変換を定義することが可能である。この場合、式(32)において、分子に係数「b2」の二次の項「(z-1」と、分母に係数「a2」の二次の項「(z-1」を追加すればよい。ここで、「(z-1」は、2サンプリング時間の遅延を表す遅延素子を表している。伝達関数TF1が三次以上の高次の伝達関数である場合も、式(32)に上記と同様に多次の項を追加することで、遅延素子「z-1」を隠れノードに置き換える変換を定義することが可能である。
 以下に、変換部22の一般化のもう一つの例として、1以上の状態方程式で表される第1演算モデルM1を第2演算モデルM2に変換する方法について図11及び図12を用いて説明する。図11は、1以上の状態方程式で表される第1演算モデルの一例を示すブロック線図である。図12は、本開示の実施形態に係るモータの制御モデルの変換システム2において第1演算モデルを変換した第2演算モデルの一例を示す概要図である。第1演算モデルM1を離散型の状態方程式とすると、入力を「u(n)」、出力を「y(n)」、状態変数を「x(n)」として、これらの関係は式(34)及び式(35)で表される。
 簡単な例として、状態方程式を入力数及び出力数が1つ、状態変数が2つの状態方程式とした場合、式(34)において、「A」が2×2行列(式(36)参照)、「B」が2×1行列(式(37)参照)となる。式(35)において、「C」は1×2行列(式(38)参照)、「D」は1×1行列(式(39)参照)となる。状態変数「x(n)」は、2×1行列で表される(式(40)参照)。つまり、本例では、状態変数「x(n)」は、2つの要素を含んでいる。
Figure JPOXMLDOC01-appb-M000013
 式(34)及び式(35)に基づいて、第1演算モデルM1は、図11に示すブロック線図で表すことが可能である。図12に示すように、第1演算モデルM1における入力「u(n)」、出力「y(n)」、及び状態変数「x(n)」の要素は、それぞれ第2演算モデルM2における入力ノードNi21、出力ノードNo21、及び隠れノードNh21,Nh22に置き換えることが可能である。図12において、コンテキストノードNc21,Nc22は、それぞれ過去の隠れノードNh21,Nh22の出力値を保持するノードである。
 図11に示す第1演算モデルM1に基づいて、各ノードN1間の係数w28~w36が求められる。係数w28~w36は、それぞれ第1演算モデルM1において、2つのノードN1間を図中に示す矢印の向きに辿りながら有向辺の重みを乗算及び加算することにより、算出することが可能である。本例では、係数w28,w29,w30,w31,w32は、それぞれ「b1」、「b2」、「d」、「c1」、「c2」である。また、係数w33,w34,w35,w36は、それぞれ「a11」、「a21」、「a12」、「a22」である。以上のようにして、1以上の状態方程式で表される第1演算モデルM1を第2演算モデルM2に変換することが可能である。
 なお、状態方程式が入力数若しくは出力数が2つ以上、又は状態変数が2つ以外である場合でも、上記と同様に、状態変数「x(n)」の要素を隠れノードに置き換える変換を定義することが可能である。この場合、式(34)~(40)において、入力「u(n)」、出力「y(n)」、及び状態変数「x(n)」の次数を合わせ、これらに合わせて行列「A」、「B」、「C」、「D」の各々の次数を変更すればよい。
 本実施形態では、入力ノードNi1,Ni2の数は、第1演算モデルM1に入力されるパラメータ(制御量V1及び目標値V2)の数に基づいて決定される。また、出力ノードNo1,No2の数は、第1演算モデルM1から出力されるパラメータ(操作量V3及び偏差e)の数に基づいて決定される。また、隠れノードNh1~Nh6の数は、第1演算モデルM1での1以上の伝達関数TF1又は状態方程式の過去の状態の個数に基づいて決定される。また、コンテキストノードNc1~Nc4の数は、遅延素子「z-1」を含む伝達関数TF1の数に基づいて決定される。ノードN1間の係数w0は、第2変換モデルM12において、2つのノードN1間を図中に示す矢印の向きに辿りながら有向辺の重みを乗算及び加算することにより、算出することが可能である。
 上述のように、変換システム2及びその変換方法は、第1演算モデルM1に基づいて、第2演算モデルM2の入力ノードNi1,Ni2、隠れノードNh1~Nh6、コンテキストノードNc1~Nc4、及び出力ノードNo1,No2の各々の数を決定する。変換システム2及びその変換方法は、第1演算モデルM1に基づいて、第2演算モデルM2の各ノードN1間の係数w0を算出する。これにより、変換システム2及びその変換方法は、既存のモータ3の制御アルゴリズムである第1演算モデルM1を、並列演算処理を実行する第2演算モデルM2に変換することが可能である。このため、本実施形態の変換システム2及び変換方法には、例えば以下のような利点がある。
 一般的に、学習済みモデルを構築する場合、入力層、隠れ層、及び出力層の各々のニューロンの数、並びにニューロン間の接続関係などのニューラルネットワークの構造と、各ニューロンで用いられる活性化関数との組み合わせを試行錯誤で決定する。ニューロン間の重み付け係数については、誤差逆伝播法(バックプロパゲーション)により機械学習するのが一般的である。つまり、学習済みモデルを構築するためには、機械学習が必要である。機械学習には膨大な量のデータ(ビッグデータ)と学習時間とが必要になる。
 これに対して、本実施形態の変換システム2及び変換方法では、既存のモータ3の制御アルゴリズム(第1演算モデルM1)を、学習済みモデルに近似した第2演算モデルM2に変換している。このため、本実施形態では、機械学習を行う必要がないので、ビッグデータ及び学習時間を要することなく、学習済みモデルに近似した演算モデルを構築できる、という利点がある。
 また、本実施形態では、第2演算モデルM2を基礎として、モータ3の制御のさらなる精度の向上を求めて機械学習を行うことも可能である。この場合、白紙の状態から機械学習を行う必要がないので、機械学習による結果を早く得やすい、という利点がある。
 また、本実施形態では、機械学習の結果として得られる重み付け係数を、既存のモータ3の制御アルゴリズムのパラメータに置き換えることができる。このため、本実施形態では、機械学習を行った場合に、機械学習の結果を既存のモータ3の制御アルゴリズムに照らして解釈しやすい、という利点がある。
 また、本実施形態では、既存のモータ3の制御アルゴリズムを基礎とした新規の制御アルゴリズムを開発した場合でも、第2演算モデルM2にノードN1を付加することで、新規のアルゴリズムに対応した演算モデルを構築しやすい、という利点がある。
 (4)変形例
 上述の実施形態は、本開示の様々な実施形態の一つに過ぎない。上述の実施形態は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。モータ制御システム1と同様の機能は、コンピュータプログラム、又はコンピュータプログラムを記録した非一時的記録媒体等で具現化されてもよい。モータ3の制御モデルの変換システム2と同様の機能は、コンピュータプログラム、又はコンピュータプログラムを記録した非一時的記録媒体等で具現化されてもよい。
 一態様に係るモータ3の制御モデルの変換プログラム(以下、単に「変換プログラム」ともいう)は、1以上のプロセッサに、第1演算モデルM1を第2演算モデルM2に変換する変換処理を実行させるための変換プログラムである。第1演算モデルM1は、モータ3の状態を表す1以上の制御量V1又は目標値V2を入力として、1以上の伝達関数TF1又は状態方程式を用いた演算により、モータ3の制御に用いられる1以上の操作量V3を出力する。第2演算モデルM2は、1以上の制御量V1又は目標値V2を入力として、それぞれ並列に演算を実行する複数のノードN1を有する1以上のノード層L1の各々で演算して、1以上の操作量V3を出力する。変換処理は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、複数のノードN1の各々について、1以上の伝達関数TF1又は状態方程式に基づいて、ノードN1への入力値に対して乗算される係数w1と、乗算後の値を入力変数とする関数f1と、を決定する処理を含む。
 変換プログラムでは、変換処理は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、以下の処理を含む。すなわち、この処理は、第1演算モデルM1での1以上の伝達関数TF1又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、複数のノードN1の個数、及び複数のノードN1の各々の係数w1を決定する。
 以下、上述の実施形態の変形例を列挙する。以下に説明する変形例は、適宜組み合わせて適用可能である。
 本開示におけるモータ制御システム1(又は変換システム2)は、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示におけるモータ制御システム1(又は変換システム2)としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路(IC、Integrated Circuit)又は大規模集積回路(LSI、Large Scale Integration)を含む1ないし複数の電子回路で構成される。ここでいうIC又はLSI等の集積回路は、集積の度合いによって呼び方が異なっており、システムLSI、VLSI(Very Large Scale Integration)、又はULSI(Ultra Large Scale Integration)と呼ばれる集積回路を含む。更に、LSIの製造後にプログラムされる、FPGA(Field Programmable Gate Array)、又はLSI内部の接合関係の再構成若しくはLSI内部の回路区画の再構成が可能な論理デバイスについても、プロセッサとして採用することができる。複数の電子回路は、1つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、1つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。ここでいうコンピュータシステムは、1以上のプロセッサ及び1以上のメモリを有するマイクロコントローラを含む。したがって、マイクロコントローラについても、半導体集積回路又は大規模集積回路を含む1ないし複数の電子回路で構成される。
 また、モータ制御システム1(又は変換システム2)における複数の機能が、1つの筐体内に集約されていることはモータ制御システム1(又は変換システム2)に必須の構成ではない。つまり、モータ制御システム1(又は変換システム2)の構成要素は、複数の筐体に分散して設けられていてもよい。更に、モータ制御システム1(又は変換システム2)の少なくとも一部の機能がクラウド(クラウドコンピューティング)等によって実現されてもよい。
 また、第2演算モデルM2に含まれる複数のノードN1のうち1以上のノードN1において、関数f1は、非線形関数であってもよい。図13は、本開示の実施形態に係るモータの制御モデルの変換システムにおいて、非線形関数を含む第1演算モデルを第2演算モデルに変換する場合の一例を示す概要図である。例えば図13に示すように、第1演算モデルM1が、入力データA1を入力変数とするsign関数(符号関数)の出力値に、摩擦係数Kを乗じることで出力データB1を得る処理を有すると仮定する。ここで、入力データA1はモータ3の速度に相当し、出力データB1は摩擦トルクに相当する。
 この場合、第2演算モデルM2において、上記の処理は、3つのノードN1(第1ノードN11、第2ノードN12、及び第3ノードN13)により表される。第1ノードN11は、入力データA1を入力値とし、入力値をそのまま出力する。第2ノードN12では、関数f1としてステップ関数f11が規定されている。第3ノードN13は、入力値をそのまま出力するノードであり、出力データB1を出力値とする。第1ノードN11と第2ノードN12との間の係数w37は「1」であり、第2ノードN12と第3ノードN13との間の係数w38は「K」である。このように、第1演算モデルM1における非線形関数(ここでは、sign関数)を含む処理は、関数f1として非線形関数(ここでは、ステップ関数)が規定されたノードN1を用いた第2演算モデルM2に変換することが可能である。
 また、第1演算モデルM1は、複数の制御アルゴリズムに区分されていてもよい。この場合、変換システム2及び変換方法は、複数の制御アルゴリズムの各々に対して、第2演算モデルM2への変換を行えばよい。
 また、第2演算モデルM2において、隠れ層L13は1層に限らず、複数の層であってもよい。第2演算モデルM2において、コンテキスト層L14は1層に限らず、複数の層であってもよい。
 (まとめ)
 以上述べたように、第1の態様に係るモータ制御方法は、モータ3の状態を表す1以上の制御量V1又は目標値V2を、1以上のノード層L1に入力値として入力し、1以上のノード層L1のそれぞれで演算することにより、モータ3の制御に用いられる1以上の操作量V3を出力し、1以上の操作量によってモータを制御出力する。1以上のノード層L1は、それぞれ並列に演算を実行する複数のノードN1を有する。複数のノードN1のそれぞれは、入力値に対してノードN1ごとに規定された係数w0を乗算し、乗算後の値を入力変数とするノードN1ごとに規定された関数f1により演算することで、出力値を決定する。
 この態様によれば、モータ3を制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
 第2の態様に係るモータ制御方法では、第1の態様において、1以上のノード層L1のうち少なくとも1つのノード層L1が有するノードN1は、1以上のノード層L1のうち他のノードN1の過去の出力値を入力値とする。
 この態様によれば、フィードバック制御の精度を向上させやすい、という利点がある。
 第3の態様に係るモータ制御方法では、第1又は第2の態様において、関数f1は、非線形関数である。
 この態様によれば、関数f1が線形関数である場合と比較して、モータ3の制御の自由度を向上させやすい、という利点がある。
 第4の態様に係るモータ制御方法では、第1~第3のいずれかの態様において、1以上の制御量V1は、少なくともモータ3の位置情報を含む。
 この態様によれば、モータ3の位置を所望の位置に制御するために要する時間の短縮を図ることができる、という利点がある。
 第5の態様に係るモータ3の制御モデルの変換方法は、第1演算モデルM1を第2演算モデルM2に変換する変換方法である。第1演算モデルM1は、モータ3の状態を表す1以上の制御量V1又は目標値V2を入力として、1以上の伝達関数又は状態方程式を用いた演算により、モータ3の制御に用いられる1以上の操作量V3を出力する。第2演算モデルM2は、1以上の制御量V1又は目標値V2を入力として、それぞれ並列に演算を実行する複数のノードN1を有する1以上のノード層L1のそれぞれで演算して、1以上の操作量V3を出力する。この変換方法は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、複数のノードN1の各々について、1以上の伝達関数又は状態方程式に基づいて、ノードN1への入力値に対して乗算される係数w0と、乗算後の値を入力変数とする関数f1と、を決定する。
 この態様によれば、変換後の第2演算モデルM2を用いることで、モータ3を制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
 第6の態様に係るモータ3の制御モデルの変換方法では、第5の態様において、第1演算モデルM1を第2演算モデルM2へ変換する過程において、以下の方法を含む。すなわち、この方法は、第1演算モデルM1での1以上の伝達関数TF1又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、複数のノードN1の個数、及び複数のノードN1のそれぞれの係数w0を決定する。
 この態様によれば、第1演算モデルM1を第2演算モデルM2へ変換する過程の簡略化を図りやすい、という利点がある。
 第7の態様に係るモータ制御システム1は、入力部11と、演算部12と、を備える。入力部11には、モータ3の状態を表す1以上の制御量V1又は目標値V2が入力値として入力される。演算部12は、それぞれ並列に演算を実行する複数のノードN1を有する1以上のノード層L1を含み、入力値に基づいて演算することで、モータ3の制御に用いられる1以上の操作量V3を出力する。複数のノードN1のそれぞれは、入力値に対してノードN1ごとに規定された係数w0を乗算し、乗算後の値を入力変数とするノードN1ごとに規定された関数f1により演算する。
 この態様によれば、モータ3を制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
 第8の態様に係るモータ3の制御モデルの変換システム2は、モデル入力部21と、変換部22と、を備える。モデル入力部21には、第1演算モデルM1が入力される。変換部22は、第1演算モデルM1を第2演算モデルM2に変換して出力する。第1演算モデルM1は、モータ3の状態を表す1以上の制御量V1又は目標値V2を入力として、1以上の伝達関数TF1又は状態方程式を用いた演算により、モータ3の制御に用いられる1以上の操作量V3を出力する。第2演算モデルM2は、1以上の制御量V1又は目標値V2を入力として、それぞれ並列に演算を実行する複数のノードN1を有する1以上のノード層L1のそれぞれで演算して、1以上の操作量V3を出力する。変換部22は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、複数のノードN1のそれぞれについて、1以上の伝達関数TF1又は状態方程式に基づいて、ノードN1への入力値に対して乗算される係数w0と、乗算後の値を入力変数とする関数f1と、を決定する。
 この態様によれば、変換後の第2演算モデルM2を用いることで、モータ3を制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
 第9の態様に係るモータ3の制御モデルの変換システム2では、第8の態様において、変換部22は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、以下の処理を実行する。すなわち、変換部22は、第1演算モデルM1での1以上の伝達関数TF1又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、複数のノードN1の個数、及び複数のノードN1の各々の係数w0を決定する。
 この態様によれば、第1演算モデルM1を第2演算モデルM2へ変換する過程の簡略化を図りやすい、という利点がある。
 第10の態様に係るモータ3の制御モデルの変換プログラムは、1以上のプロセッサに、第1演算モデルM1を第2演算モデルM2に変換する変換処理を実行させるための変換プログラムである。第1演算モデルM1は、モータ3の状態を表す1以上の制御量V1又は目標値V2を入力として、1以上の伝達関数TF1又は状態方程式を用いた演算により、モータ3の制御に用いられる1以上の操作量V3を出力する。第2演算モデルM2は、1以上の制御量V1又は目標値V2を入力として、それぞれ並列に演算を実行する複数のノードN1を有する1以上のノード層L1のそれぞれで演算して、1以上の操作量V3を出力する。変換処理は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、以下の処理を含む。すなわち、変換処理は、複数のノードN1のそれぞれについて、1以上の伝達関数TF1又は状態方程式に基づいて、ノードN1への入力値に対して乗算される係数w0と、乗算後の値を入力変数とする関数f1と、を決定する処理を含む。
 この態様によれば、変換後の第2演算モデルM2を用いることで、モータ3を制御するための指令に対する応答時間の短縮を図ることができる、という利点がある。
 第11の態様に係るモータ3の制御モデルの変換プログラムでは、第10の態様において、変換処理は、第1演算モデルM1を第2演算モデルM2へ変換する過程において、以下の処理を含む。すなわち、この処理は、第1演算モデルM1での1以上の伝達関数TF1又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、複数のノードN1の個数、及び複数のノードN1の各々の係数w0を決定する。
 この態様によれば、第1演算モデルM1を第2演算モデルM2へ変換する過程の簡略化を図りやすい、という利点がある。
 第2~第4の態様に係る構成については、モータ制御方法に必須の構成ではなく、適宜省略可能である。また、第6の態様に係る構成については、モータ3の制御モデルの変換方法に必須の構成ではなく、適宜省略可能である。また、第9の態様に係る構成については、モータ3の制御モデルの変換システム2に必須の構成ではなく、適宜省略可能である。また、第11の態様に係る構成については、モータ3の制御モデルの変換プログラムに必須の構成ではなく、適宜省略可能である。
 1 モータ制御システム
 11 入力部
 12 演算部
 2 変換システム
 21 モデル入力部
 22 変換部
 3 モータ
 f1 関数
 L1 ノード層
 M1 第1演算モデル
 M2 第2演算モデル
 N1 ノード
 TF1 伝達関数
 V1 制御量
 V2 目標値
 V3 操作量
 w0 係数

Claims (11)

  1. モータの状態を表す1以上の制御量又は目標値を、1以上のノード層に入力値として入力し、
    前記1以上のノード層のそれぞれで演算することにより、前記モータの制御に用いられる1以上の操作量を出力し、前記1以上の操作量によって前記モータを制御するモータ制御方法であって、
    前記1以上のノード層は、それぞれ並列に演算を実行する複数のノードを有し、
    前記複数のノードのそれぞれは、前記入力値に対してノードごとに規定された係数を乗算し、乗算後の値を入力変数とするノードごとに規定された関数により演算することで、出力値を決定する、
    モータ制御方法。
  2. 前記1以上のノード層のうち少なくとも1つのノード層が有するノードは、前記1以上のノード層のうち他のノードの過去の出力値を入力値とする、
    請求項1記載のモータ制御方法。
  3. 前記関数は、非線形関数である、
    請求項1又は2に記載のモータ制御方法。
  4. 前記1以上の制御量は、少なくとも前記モータの位置情報を含む、
    請求項1~3のいずれか1項に記載のモータ制御方法。
  5. 第1演算モデルを第2演算モデルに変換する、モータの制御モデルの変換方法であって、
    前記第1演算モデルは、前記モータの状態を表す1以上の制御量又は目標値を入力として、1以上の伝達関数又は状態方程式を用いた演算により、前記モータの制御に用いられる1以上の操作量を出力し、
    前記第2演算モデルは、前記1以上の制御量又は目標値を入力として、それぞれ並列に演算を実行する複数のノードを有する1以上のノード層のそれぞれで演算して、前記1以上の操作量を出力し、
    前記第1演算モデルを前記第2演算モデルへ変換する過程において、前記複数のノードの各々について、前記1以上の伝達関数又は状態方程式に基づいて、前記ノードへの入力値に対して乗算される係数と、乗算後の値を入力変数とする関数と、を決定する、
    モータの制御モデルの変換方法。
  6. 前記第1演算モデルを前記第2演算モデルへ変換する過程において、前記第1演算モデルでの前記1以上の伝達関数又は状態方程式の過去の状態の個数と、前記入力と前記出力との接続関係とに基づいて、前記複数のノードの個数、及び前記複数のノードのそれぞれの前記係数を決定する、
    請求項5記載のモータの制御モデルの変換方法。
  7. モータの状態を表す1以上の制御量又は目標値が入力値として入力される入力部と、
    それぞれ並列に演算を実行する複数のノードを有する1以上のノード層を含み、前記入力値に基づいて演算することで、前記モータの制御に用いられる1以上の操作量を出力する演算部と、を備え、
    前記複数のノードのそれぞれは、前記入力値に対してノードごとに規定された係数を乗算し、乗算後の値を入力変数とするノードごとに規定された関数により演算する、
    モータ制御システム。
  8. 第1演算モデルが入力されるモデル入力部と、
    前記第1演算モデルを第2演算モデルに変換して出力する変換部と、を備え、
    前記第1演算モデルは、モータの状態を表す1以上の制御量又は目標値を入力として、1以上の伝達関数又は状態方程式を用いた演算により、前記モータの制御に用いられる1以上の操作量を出力し、
    前記第2演算モデルは、前記1以上の制御量又は目標値を入力として、それぞれ並列に演算を実行する複数のノードを有する1以上のノード層のそれぞれで演算して、前記1以上の操作量を出力し、
    前記変換部は、前記第1演算モデルを前記第2演算モデルへ変換する過程において、前記複数のノードのそれぞれについて、前記1以上の伝達関数又は状態方程式に基づいて、ノードへの入力値に対して乗算される係数と、乗算後の値を入力変数とする関数と、を決定する、
    モータの制御モデルの変換システム。
  9. 前記変換部は、前記第1演算モデルを前記第2演算モデルへ変換する過程において、前記第1演算モデルでの前記1以上の伝達関数又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、前記複数のノードの個数、及び前記複数のノードの各々の前記係数を決定する、
    請求項8記載のモータの制御モデルの変換システム。
  10. 1以上のプロセッサに、
    第1演算モデルを第2演算モデルに変換する変換処理を実行させるための変換プログラムであって、
    前記第1演算モデルは、モータの状態を表す1以上の制御量又は目標値を入力として、1以上の伝達関数又は状態方程式を用いた演算により、前記モータの制御に用いられる1以上の操作量を出力し、
    前記第2演算モデルは、前記1以上の制御量又は目標値を入力として、それぞれ並列に演算を実行する複数のノードを有する1以上のノード層のそれぞれで演算して、前記1以上の操作量を出力し、
    前記変換処理は、前記第1演算モデルを前記第2演算モデルへ変換する過程において、前記複数のノードのそれぞれについて、前記1以上の伝達関数又は状態方程式に基づいて、ノードへの入力値に対して乗算される係数と、乗算後の値を入力変数とする関数と、を決定する処理を含む、
    モータの制御モデルの変換プログラム。
  11. 前記変換処理は、前記第1演算モデルを前記第2演算モデルへ変換する過程において、前記第1演算モデルでの前記1以上の伝達関数又は状態方程式の過去の状態の個数と、入力と出力との接続関係とに基づいて、前記複数のノードの個数、及び前記複数のノードの各々の前記係数を決定する処理を含む、
    請求項10記載のモータの制御モデルの変換プログラム。
PCT/JP2020/000077 2019-03-19 2020-01-06 モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラム WO2020188956A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020217032770A KR20210137536A (ko) 2019-03-19 2020-01-06 모터 제어 방법, 모터의 제어 모델의 변환 방법, 모터 제어 시스템, 모터의 제어 모델의 변환 시스템 및 모터의 제어 모델의 변환 프로그램
CN202080020275.5A CN113574795A (zh) 2019-03-19 2020-01-06 马达控制方法、马达的控制模型的变换方法、马达控制系统、马达的控制模型的变换系统以及马达的控制模型的变换程序
JP2021506184A JP7407353B2 (ja) 2019-03-19 2020-01-06 モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラム
US17/438,126 US11682999B2 (en) 2019-03-19 2020-01-06 Motor control method, motor control model conversion method, motor control system, motor control model conversion system, and motor control model conversion program
EP20773637.2A EP3944489A4 (en) 2019-03-19 2020-01-06 ENGINE CONTROL METHOD, ENGINE CONTROL MODEL CONVERSION METHOD, ENGINE CONTROL SYSTEM, ENGINE CONTROL MODEL CONVERSION SYSTEM AND ENGINE CONTROL MODEL CONVERSION PROGRAM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019051810 2019-03-19
JP2019-051810 2019-03-19

Publications (1)

Publication Number Publication Date
WO2020188956A1 true WO2020188956A1 (ja) 2020-09-24

Family

ID=72519776

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/000077 WO2020188956A1 (ja) 2019-03-19 2020-01-06 モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラム

Country Status (6)

Country Link
US (1) US11682999B2 (ja)
EP (1) EP3944489A4 (ja)
JP (1) JP7407353B2 (ja)
KR (1) KR20210137536A (ja)
CN (1) CN113574795A (ja)
WO (1) WO2020188956A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06319284A (ja) 1992-12-10 1994-11-15 Matsushita Electric Ind Co Ltd サーボモータの制御パラメータ調整装置及び調整方法
JPH103301A (ja) * 1996-06-18 1998-01-06 Power Reactor & Nuclear Fuel Dev Corp 複数の制御原理を用いる制御システム
JP2005267039A (ja) * 2004-03-17 2005-09-29 Fuji Heavy Ind Ltd 制御システム、生成モジュール、および制御方法
JP2013069094A (ja) * 2011-09-22 2013-04-18 Azbil Corp 制御方法および制御装置
JP2018186610A (ja) * 2017-04-25 2018-11-22 株式会社安川電機 システムおよび評価装置ならびに評価方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475291A (en) 1992-12-10 1995-12-12 Matsushita Electric Industrial Co., Ltd. Adjustment device for adjusting control parameters of a servo motor and an adjustment method therefor
JPH06266404A (ja) 1993-03-12 1994-09-22 Toshiba Corp 非線形対象制御システム及び同システム構築用ニューラルネットワークの学習システム
DE102004011015A1 (de) * 2004-03-02 2005-09-15 Brose Fahrzeugteile Gmbh & Co. Kg, Coburg Verfahren zum Überwachen der Verstellbewegung eines von einer Antriebseinrichtung angetriebenen Bauteils
CN101917150B (zh) * 2010-06-24 2012-06-20 江苏大学 永磁同步电机模糊神经网络广义逆鲁棒控制器及构造方法
CN201928221U (zh) * 2011-01-20 2011-08-10 江苏大学 一种无轴承同步磁阻电机神经网络广义逆解耦控制器
WO2015021016A1 (en) * 2013-08-05 2015-02-12 Board Of Trustees Of The University Of Alabama Systems, methods and devices for vector control of permanent magnet synchronous machines using artificial neural networks
US20150278641A1 (en) * 2014-03-27 2015-10-01 Qualcomm Incorporated Invariant object representation of images using spiking neural networks
JP6672896B2 (ja) * 2016-03-04 2020-03-25 セイコーエプソン株式会社 モーター駆動回路、印刷装置及び半導体装置
CN108777556B (zh) * 2018-06-29 2022-03-18 江苏大学 两电机调速系统的无模型自适应鲁棒解耦控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06319284A (ja) 1992-12-10 1994-11-15 Matsushita Electric Ind Co Ltd サーボモータの制御パラメータ調整装置及び調整方法
JPH103301A (ja) * 1996-06-18 1998-01-06 Power Reactor & Nuclear Fuel Dev Corp 複数の制御原理を用いる制御システム
JP2005267039A (ja) * 2004-03-17 2005-09-29 Fuji Heavy Ind Ltd 制御システム、生成モジュール、および制御方法
JP2013069094A (ja) * 2011-09-22 2013-04-18 Azbil Corp 制御方法および制御装置
JP2018186610A (ja) * 2017-04-25 2018-11-22 株式会社安川電機 システムおよび評価装置ならびに評価方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3944489A4

Also Published As

Publication number Publication date
CN113574795A (zh) 2021-10-29
JP7407353B2 (ja) 2024-01-04
EP3944489A1 (en) 2022-01-26
US11682999B2 (en) 2023-06-20
US20220166364A1 (en) 2022-05-26
JPWO2020188956A1 (ja) 2020-09-24
KR20210137536A (ko) 2021-11-17
EP3944489A4 (en) 2022-05-04

Similar Documents

Publication Publication Date Title
Zhang et al. Repetitive motion planning and control of redundant robot manipulators
Guo et al. Li-function activated ZNN with finite-time convergence applied to redundant-manipulator kinematic control via time-varying Jacobian matrix pseudoinversion
Martinov et al. From classic CNC systems to cloud-based technology and back
Pei et al. Analysis and modification of Volterra/Wiener neural networks for the adaptive identification of non-linear hysteretic dynamic systems
de la Sen Quadratic stability and stabilization of switched dynamic systems with uncommensurate internal point delays
CN105103059A (zh) 用于在plc中实现模型预测性控制的系统和方法
WO2020188956A1 (ja) モータ制御方法、モータの制御モデルの変換方法、モータ制御システム、モータの制御モデルの変換システム、及びモータの制御モデルの変換プログラム
Hu et al. Desired compensation adaptive robust repetitive control of a multi-DoFs industrial robot
Nadir et al. Optimal trajectory generation method to find a smooth robot joint trajectory based on multiquadric radial basis functions
Belda et al. State-space generalized predictive control for redundant parallel robots
Saif et al. Fractional synergetic tracking control for robot manipulator
Manh et al. An adaptive neural network-based controller for car driving simulators
Zafar RETRACTED ARTICLE: Fractional order Lengyel–Epstein chemical reaction model
Sun et al. A nonconvex function activated noise-tolerant neurodynamic model aided with Fischer-Burmeister function for time-varying quadratic programming in the presence of noises
Kong et al. A generalized varying-parameter recurrent neural network for super solution of quadratic programming problem
Lochan et al. Adaptive global super-twisting sliding mode control-based filter for trajectory synchronisation of two-link flexible manipulators
da Silva et al. Mechatronic design concept and its application to pick-and-place robotic systems
Dash et al. Inverse kinematics solution of a 6-DOF industrial robot
Nawrocka et al. Neural network control for robot manipulator
Mattera et al. Optimal data-driven control of manufacturing processes using reinforcement learning: an application to wire arc additive manufacturing
Boncalo et al. Configurable hardware accelerator architecture for a takagi-sugeno fuzzy controller
Kara et al. Control of a robotic manipulator using neural network based predictive control
Chaber Fast nonlinear model predictive control algorithm with neural approximation for embedded systems: Preliminary results
Goran et al. Robust nonlinear control of two links robot manipulator and computing maximum load
Przybył et al. A new approach to designing of intelligent emulators working in a distributed environment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20773637

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021506184

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20217032770

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020773637

Country of ref document: EP

Effective date: 20211019