JP2022129882A - 半導体装置およびモータ制御装置 - Google Patents

半導体装置およびモータ制御装置 Download PDF

Info

Publication number
JP2022129882A
JP2022129882A JP2021028740A JP2021028740A JP2022129882A JP 2022129882 A JP2022129882 A JP 2022129882A JP 2021028740 A JP2021028740 A JP 2021028740A JP 2021028740 A JP2021028740 A JP 2021028740A JP 2022129882 A JP2022129882 A JP 2022129882A
Authority
JP
Japan
Prior art keywords
data
output data
stage
semiconductor device
control circuit
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2021028740A
Other languages
English (en)
Inventor
毅 新田
Takeshi Nitta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2021028740A priority Critical patent/JP2022129882A/ja
Priority to US17/578,937 priority patent/US11949358B2/en
Priority to EP22156039.4A priority patent/EP4050473A1/en
Priority to CN202210140878.XA priority patent/CN114978106A/zh
Publication of JP2022129882A publication Critical patent/JP2022129882A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0248Filters characterised by a particular frequency response or filtering method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • 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
    • H02P27/00Arrangements or methods for the control of AC motors characterised by the kind of supply voltage
    • H02P27/04Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage
    • H02P27/06Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage using dc to ac converters or inverters
    • H02P27/08Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage using dc to ac converters or inverters with pulse width modulation
    • H02P27/085Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage using dc to ac converters or inverters with pulse width modulation wherein the PWM mode is adapted on the running conditions of the motor, e.g. the switching frequency
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M7/00Conversion of ac power input into dc power output; Conversion of dc power input into ac power output
    • H02M7/42Conversion of dc power input into ac power output without possibility of reversal
    • H02M7/44Conversion of dc power input into ac power output without possibility of reversal by static converters
    • H02M7/48Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode
    • H02M7/53Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal
    • H02M7/537Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only, e.g. single switched pulse inverters
    • H02M7/539Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only, e.g. single switched pulse inverters with automatic control of output wave form or frequency
    • H02M7/5395Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only, e.g. single switched pulse inverters with automatic control of output wave form or frequency by pulse-width modulation
    • 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/0085Arrangements or methods for the control of electric machines by vector control, e.g. by control of field orientation specially adapted for high speeds, e.g. above nominal speed
    • H02P21/0089Arrangements or methods for the control of electric machines by vector control, e.g. by control of field orientation specially adapted for high speeds, e.g. above nominal speed using field weakening
    • 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/05Arrangements or methods for the control of electric machines by vector control, e.g. by control of field orientation specially adapted for damping motor oscillations, e.g. for reducing hunting
    • 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/13Observer control, e.g. using Luenberger observers or Kalman filters
    • 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/14Estimation or adaptation of machine parameters, e.g. flux, current or voltage
    • 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/14Estimation or adaptation of machine parameters, e.g. flux, current or voltage
    • H02P21/18Estimation of position or speed
    • 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/14Estimation or adaptation of machine parameters, e.g. flux, current or voltage
    • H02P21/20Estimation of torque
    • 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/22Current control, e.g. using a current control loop
    • 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
    • H02P27/00Arrangements or methods for the control of AC motors characterised by the kind of supply voltage
    • H02P27/04Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage
    • H02P27/06Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage using dc to ac converters or inverters
    • H02P27/08Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage using dc to ac converters or inverters with pulse width modulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0248Filters characterised by a particular frequency response or filtering method
    • H03H17/0264Filter sets with mutual related characteristics
    • H03H17/0266Filter banks
    • H03H17/0269Filter banks comprising recursive filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Control Of Ac Motors In General (AREA)

Abstract

【課題】IIRフィルタからの出力データが得られるまでの時間を短縮することが可能な半導体装置およびモータ制御装置を提供する。【解決手段】制御回路CTLは、外部からの命令CMDを受け、演算器CALに、外部からの入力データDinとメモリMEMで保持される算出データDとを用いてM(Mは2以上の整数)回の演算を行わせることで、演算器およびメモリをIIRフィルタとして機能させる。IIRフィルタは、M回中のK(K<M)回の演算で出力データDoutを確定させることが可能なフィルタである。制御回路CTLは、外部からの命令CMDを受けたのち、演算器CALに、K回の演算を先行して行わせることで出力データDoutを確定させ、その時点で、出力データDoutを外部へ出力させる。【選択図】図2

Description

本発明は、半導体装置およびモータ制御装置に関し、例えば、IIR(Infinite Impulse Response)フィルタを含んだ半導体装置、および当該半導体装置を含んだモータ制御装置に関する。
特許文献1には、IIRフィルタ演算を高速に実行可能なマイクロプロセッサが示される。当該マイクロプロセッサは、複数のレジスタと、複数のレジスタからのデータを用いてIIRフィルタ演算を実行し、1サンプル分の演算済みデータ及び次のフィルタ演算への引継ぎデータを出力するフィルタ演算回路とを有する。複数のレジスタは、過去の引継ぎデータを新たな引継ぎデータによって上書き更新し、被演算データを演算済みデータで上書き更新するように構成される。
特開2009-33371号公報
IIRフィルタの演算は、例えば、特許文献1に示されるように、マイクロプロセッサ内に搭載されたフィルタ演算回路に、ループ処理を行わせることで実現される。一方、IIRフィルタは、一般的に、縦続接続されることが多い。この場合、フィルタ演算回路は、通常、初段のIIRフィルタの演算処理から開始し、当該演算処理が全て完了したのちに次段のIIRフィルタの演算処理に移行するといったシリアル処理を行う。そして、フィルタ演算回路は、最終段のIIRフィルタの演算処理を完了した時点で、複数段のIIRフィルタとしての出力データを出力する。
しかし、このようなシリアル処理を用いると、複数段のIIRフィルタに入力データを与えてから出力データが得られるまでに時間を要する。例えば、IIRフィルタを各種制御システムに適用した場合、制御システムは、通常、制御周期内で、当該複数段のIIRフィルタの演算処理を行うと共に、その出力データを用いた更なる処理を行う必要がある。出力データが得られるまでの時間が長くなると、制御周期内で必要な処理を完了させることが困難となる恐れがあった。
後述する実施の形態は、このようなことに鑑みてなされたものであり、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
一実施の形態による半導体装置は、乗算器および加算器を含む演算器と、算出データを保持するメモリと、演算器およびメモリを制御する制御回路と、を有する。制御回路は、外部からの命令を受け、演算器に、外部からの入力データとメモリで保持される算出データとを用いてM(Mは2以上の整数)回の演算を行わせることで、演算器およびメモリを、乗算ブロック、加算ブロックおよび遅延ブロックを含むIIRフィルタとして機能させる。ここで、IIRフィルタは、M回中のK(K<M)回の演算で出力データを確定させることが可能なフィルタである。制御回路は、外部からの命令を受けたのち、演算器に、K回の演算を先行して行わせることで出力データを確定させ、当該確定させた時点で、出力データを外部へ出力させる。
前記一実施の形態によれば、IIRフィルタからの出力データが得られるまでの時間を短縮することが可能になる。
本発明の実施の形態1による半導体装置の構成例を示す概略図である。 図1におけるハードウェアアクセラレータの構成例を示す概略図である。 図2のハードウェアアクセラレータによって実現されるIIRフィルタの構成例を示すブロック図である。 図3AのIIRフィルタの動作例を説明する図である。 図2のハードウェアアクセラレータによって実現される他のIIRフィルタの構成例を示すブロック図である。 図4AのIIRフィルタの動作例を説明する図である。 図3Aとは異なるIIRフィルタの構成例を示すブロック図である。 図4Aとは異なるIIRフィルタの構成例を示すブロック図である。 図2のハードウェアアクセラレータによって実現されるIIRフィルタの実用上の構成例を示すブロック図である。 図2のハードウェアアクセラレータにおいて、制御回路の処理内容の一例を示すフロー図である。 図8のフローにおいて、演算器による詳細な演算手順の一例を示す図である。 図9とは異なる演算手順の一例を示す図である。 図8における実施の形態のフローを用いた場合と図14における比較例のフローを用いた場合とで、制御システムの処理の流れを比べた概念図である。 本発明の実施の形態2による半導体装置を適用したモータ制御装置周りの構成例を示す概略図である。 各種処理システムにおける演算方式の一例を示す概念図である。 各種処理システムにおける演算方式の一例を示す概念図である。 本発明の比較例となる半導体装置において、ハードウェアアクセラレータ内の制御回路の処理内容の一例を示すフロー図である。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
《半導体装置の概略》
図1は、本発明の実施の形態1による半導体装置の構成例を示す概略図である。図1に示す半導体装置DEVは、代表的には、マイクロコントローラや、SoC(System on a chip)等である。当該半導体装置DEVは、プロセッサPRCと、RAM(Random Access Memory)および不揮発性メモリNVMといったメモリと、各種周辺回路PERIと、ハードウェアアクセラレータHWAとを備える。これらの各部は、互いにバスBSで接続される。
プロセッサPRCは、CPU(Central Processing Unit)を備える。CPUは、メモリに保存されたプログラムを実行することで、所定の機能を実現する。ハードウェアアクセラレータHWAは、CPUの処理を支援する回路である。ハードウェアアクセラレータHWAは、CPUからの命令をバスBSを介して受け、当該CPUからの命令に応じて例えばIIRフィルタの演算等を行う。
各種周辺回路PERIには、例えば、アナログディジタル変換器、ディジタルアナログ変換器、PWM(Pulse Width Modulation)ユニット、外部通信インタフェース等を代表に、様々なものが含まれる。なお、実施の形態1の半導体装置は、マイクロコントローラ等の他に、例えば、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等であってもよい。
図2は、図1におけるハードウェアアクセラレータの構成例を示す概略図である。図2に示すハードウェアアクセラレータHWAは、インタフェースIFと、演算器CALと、メモリMEMと、制御回路CTLとを備える。インタフェースIFは、CPUからの入力データDinを演算器CALへ出力し、演算器CALからの出力データDoutをCPUへ出力する。
メモリMEMは、例えば、複数のレジスタ等を備える。メモリMEMは、複数のレジスタ等を用いて、IIRフィルタで用いられるパラメータデータa,bや、IIRフィルタの演算過程で得られる算出データDを保持する。これに伴い、メモリMEMは、IIRフィルタに含まる遅延ブロック(DB)の機能も担う。
演算器CALは、乗算器MULおよび加算器ADDを含む。乗算器MULは、IIRフィルタに含まる乗算ブロック(MB)の機能を担い、所定のデータにメモリMEMからのパラメータデータa,bを乗算する。加算器ADDは、IIRフィルタに含まる加算ブロック(AB)の機能を担い、所定の複数のデータを加算する。
制御回路CTLは、外部、すなわちCPUからの命令CMDを受けて、インタフェースIF、演算器CALおよびメモリMEMを制御する。概略的には、制御回路CTLは、CPUからの命令CMDを受け、演算器CALに、CPUからの入力データDinとメモリMEMで保持される算出データDおよびパラメータデータa,bとを用いてM(Mは2以上の整数)回の演算を行わせる。これにより、制御回路CTLは、演算器CALおよびメモリMEMを、乗算ブロック、加算ブロックおよび遅延ブロックを含むIIRフィルタとして機能させる。また、制御回路CTLは、演算器CALに、IIRフィルタの出力データDoutを、インタフェースIFを介してCPUへ出力させる。
《ハードウェアアクセラレータによるIIRフィルタの実現方法》
図3Aは、図2のハードウェアアクセラレータによって実現されるIIRフィルタの構成例を示すブロック図であり、図3Bは、図3AのIIRフィルタの動作例を説明する図である。図3Aに示すIIRフィルタは、2次のbiquad IIRフィルタであり、直接型(2)の転置構成である。当該IIRフィルタは、2個の遅延ブロックDB1,DB2と、5個の乗算ブロックMB1~MB5と、3個の加算ブロックAB1~AB3とを有する。図3Aにおいて、左半分の部分はフィードフォワード部となり、右半分の部分はフィードバック部となる。
乗算ブロックMB1,MB2,MB3は、それぞれ、入力データDinにパラメータデータb0,b1,b2を乗算することで算出データD1,D2,D3を生成する。乗算ブロックMB4,MB5は、それぞれ、出力データDoutにパラメータデータa1,a2を乗算することで算出データD4,D5を生成する。加算ブロックAB3は、算出データD3と算出データD5とを加算することで算出データD7を生成する。遅延ブロックDB2は、算出データD7を1サンプリング周期遅延させることで算出データ(言い換えれば遅延データ)D7’を生成する。
加算ブロックAB2は、算出データD2と算出データD4と算出データ(遅延データ)D7’とを加算することで算出データD6を生成する。遅延ブロックDB1は、算出データD6を1サンプリング周期遅延させることで算出データ(遅延データ)D6’を生成する。加算ブロックAB1は、算出データD1と算出データ(遅延データ)D6’を加算することで出力データDoutを生成する。
乗算ブロックMB1~MB5は、図2の演算器CAL内の乗算器MULで実現される。この際のパラメータデータb0,b1,b2,a1,a2は、予めメモリMEMに保持される。加算ブロックAB1~AB3は、演算器CAL内の加算器ADDで実現される。遅延ブロックDB1,DB2は、メモリMEMで実現される。すなわち、メモリMEMは、算出データD6,D7を遅延データD6’,D7’として1サンプリング周期保持する。
図3AのIIRフィルタにおいて、例えば、算出データD4を得るためには、その前提として出力データDoutが必要となり、出力データDoutを得るためには、その前提として算出データD1が必要となる。このように、各データには、依存関係がある。図3Bには、このようなデータの依存関係に基づく処理の順番が示される。図2の制御回路CTLは、このようなデータの依存関係を踏まえた上で、演算器CALにM(この例ではM=8)回の演算を行わせることで、演算器CALおよびメモリMEM等を図3AのIIRフィルタとして機能させる。
ここで、図3Bから分かるように、図3AのIIRフィルタは、K<Mとして、M(M=8)回中のK(この例ではK=2)回の演算で出力データDoutを確定されることが可能な構成となっている。すなわち、制御回路CTLは、演算器CALに、乗算ブロックMB1の演算を実行させ、続いて、加算ブロックAB1の演算を実行させればよい。加算ブロックAB1の演算に際し、演算器CALは、乗算ブロックMB1に伴う算出データD1と、メモリMEMが保持している算出データ(遅延データ)D6’とを加算すればよい。
実施の形態1のハードウェアアクセラレータHWAでは、制御回路CTLは、CPUからの命令CMDを受けたのち、演算器CALに、当該K(K=2)回の演算を先行して行わせることで出力データDoutを確定させる。そして、当該確定させた時点で、制御回路CTLは、演算器CALに、出力データDoutをCPUへ出力させる。
例えば、比較例となるハードウェアアクセラレータは、図3Bに示したM(M=8)回の演算を全て完了した時点で出力データDoutをCPUへ出力する。一方、実施の形態1のハードウェアアクセラレータHWAは、M回中のK(K=2)回の演算を完了した時点で出力データDoutをCPUへ出力することができる。その結果、出力データDoutが得られるまでの時間を短縮することが可能になる。
なお、図3Bに示したM(M=8)回の演算は、出力データ演算と、遅延データ演算とに区別される。出力データ演算は、出力データDoutを確定させるために必要な演算であり、図3Bの例では、算出データD1の演算と出力データDoutの演算とに該当する。一方、遅延データ演算は、遅延ブロックDB1,DB2を担うメモリMEMに保持させるデータ、すなわち、遅延データD6’,D7’に対応する算出データD6,D7を確定させるために必要な演算である。
遅延データ演算は、図3Bの例では、少なくとも、出力データ演算を除く残り6回の演算に該当する。ただし、遅延データに対応する算出データD6,D7を確定させるためには、出力データDoutも必要となる。このため、出力データDoutが不明な前提では、遅延データ演算は、計8回の演算に該当する。実施の形態1のハードウェアアクセラレータHWAでは、制御回路CTLは、演算器CALに、出力データ演算を先行して行わせ、その後に遅延データ演算を行わせる。
図4Aは、図2のハードウェアアクセラレータによって実現される他のIIRフィルタの構成例を示すブロック図であり、図4Bは、図4AのIIRフィルタの動作例を説明する図である。図4Aに示すIIRフィルタも、2次のbiquad IIRフィルタであり、図3Aと異なり直接型(1)の転置構成である。当該IIRフィルタは、4個の遅延ブロックDB1~DB4と、5個の乗算ブロックMB1~MB5と、4個の加算ブロックAB1~AB4とを有する。図4Aにおいて、左半分の部分はフィードバック部となり、右半分の部分はフィードフォワード部となる。
加算ブロックAB1は、入力データDinと算出データ(遅延データ)D7’とを加算することで算出データD1を生成する。乗算ブロックMB1,MB2,MB3は、それぞれ、算出データD1にパラメータデータb0,b1,b2を乗算することで算出データD2,D3,D4を生成する。乗算ブロックMB4,MB5は、それぞれ、算出データD1にパラメータデータa1,a2を乗算することで算出データD5,D6を生成する。
遅延ブロックDB2は、算出データD6を1サンプリング周期遅延させることで算出データ(遅延データ)D6’を生成する。遅延ブロックDB4は、算出データD4を1サンプリング周期遅延させることで算出データ(遅延データ)D4’を生成する。加算ブロックAB2は、算出データD5と算出データ(遅延データ)D6’とを加算することで算出データD7を生成する。加算ブロックAB4は、算出データD3と算出データ(遅延データ)D4’とを加算することで算出データD8を生成する。
遅延ブロックDB1は、算出データD7を1サンプリング周期遅延させることで算出データ(遅延データ)D7’を生成する。遅延ブロックDB3は、算出データD8を1サンプリング周期遅延させることで算出データ(遅延データ)D8’を生成する。加算ブロックAB3は、算出データD2と算出データ(遅延データ)D8’とを加算することで出力データDoutを生成する。
図3Aの場合と同様に、図4Aの乗算ブロックMB1~MB5は、乗算器MULで実現され、加算ブロックAB1~AB4は、加算器ADDで実現され、遅延ブロックDB1~DB4は、メモリMEMで実現される。また、図4Bには、図4AのIIRフィルタを対象に、図3Bの場合と同様の、データの依存関係に基づく処理の順番が示される。図2の制御回路CTLは、このようなデータの依存関係を踏まえた上で、演算器CALにM(この例ではM=9)回の演算を行わせることで、演算器CALおよびメモリMEM等を図4AのIIRフィルタとして機能させる。
ここで、図4Bから分かるように、図4AのIIRフィルタも、図3Aの場合と同様に、M(M=9)回中のK(この例ではK=3)回の演算で出力データDoutを確定されることが可能な構成となっている。すなわち、制御回路CTLは、演算器CALに、加算ブロックAB1の処理を実行させ、続いて、乗算ブロックMB1の処理を実行させ、その後に、加算ブロックAB3の処理を実行させればよい。
図3Aおよび図3Bの場合と同様に、図2の制御回路CTLは、CPUからの命令CMDを受けたのち、演算器CALに、当該K(K=3)回の演算を先行して行わせることで出力データDoutを確定させる。そして、当該させた時点で、制御回路CTLは、演算器CALに、出力データDoutをCPUへ出力させる。
これにより、実施の形態1のハードウェアアクセラレータHWAは、M(M=9)回中のK(K=3)回の演算を完了した時点で出力データDoutをCPUへ出力することができる。その結果、出力データDoutが得られるまでの時間を短縮することが可能になる。この際に、図3Aの構成例では図4Aの構成例よりも時間を演算1回分だけ短縮できる。なお、制御回路CTLは、図3Aおよび図3Bの場合と同様に、演算器CALに、出力データ演算を先行して行わせた後に遅延データ演算を行わせる。
図5は、図3Aとは異なるIIRフィルタの構成例を示すブロック図であり、図6は、図4Aとは異なるIIRフィルタの構成例を示すブロック図である。図5に示すIIRフィルタは、図3Aに示した直接型(2)の転置構成とは異なる直接型(1)の構成である。図6に示すIIRフィルタは、図4Aに示した直接型(1)の転置構成とは異なる直接型(2)の構成である。
図3Aの直接型(2)の転置構成と図5の直接型(1)の構成とでは、遅延ブロックの位置が異なっている。同様に、図4Aの直接型(1)の転置構成と図6の直接型(2)の構成とでも、遅延ブロックの位置が異なっている。すなわち、図3Aおよび図4Aでは、乗算および加算の後に遅延が行われるのに対して、図5および図6では、遅延が行われた後に乗算および加算が行われる。
図5および図6のように、転置構成でない場合、図3Aおよび図4Aに示した転置構成の場合と異なり、出力データDoutを確定させるためには、全ての乗算ブロックおよび加算ブロックを用いたM回の演算が必要となる。すなわち、出力データ演算の回数Kは、全演算回数Mに等しくなり、図5ではK=M=8となり、図6ではK=M=9となる。このため、転置構成でない場合には、出力データ演算を先行させても、出力データDoutが得られるまでの時間を短縮することは困難となり得る。
《ハードウェアアクセラレータの詳細》
図7は、図2のハードウェアアクセラレータによって実現されるIIRフィルタの実用上の構成例を示すブロック図である。図7に示されるように、IIRフィルタは、実用上、縦続接続された複数段(ここでは3段)のIIRフィルタとして用いられることが多い。初段、2段目、最終段のIIRフィルタFLT1,FLT2,FLT3のそれぞれは、この例では、図3Aに示した直接型(2)の転置構成となっている。
初段のIIRフィルタFLT1は、入力データDin[1]を受けて出力データDout[1]を出力する。2段目のIIRフィルタFLT2は、初段の出力データDout[1]を入力データDin[2]として出力データDout[2]を出力する。最終段のIIRフィルタFLT3は、2段目の出力データDout[2]を入力データDin[3]として出力データDout[3]を出力する。これにより、3段のIIRフィルタは、全体として、入力データDin[1]を受けて出力データDout[3]を出力する。
図8は、図2のハードウェアアクセラレータにおいて、制御回路の処理内容の一例を示すフロー図である。ここでは、制御回路CTLが、演算器CALおよびメモリMEMを、図7に示した3段のIIRフィルタとして機能させる場合を想定する。図8において、制御回路CTLは、CPUからの命令CMDを受けて、まず、n=1を設定する(ステップS101)。
続いて、制御回路CTLは、CPUからの入力データ、すなわち、図7における初段の入力データDin[1]を用いて、演算器CALに、n段目の出力データ演算を行わせる(ステップS102)。次いで、制御回路CTLは、nをインクリメントしながら(ステップS103)、nが最大段数N(ここではN=3)よりも大きくなるまでステップS102,S103の処理を繰り返し実行する(ステップS104)。
その結果、演算器CALによって、最終段のIIRフィルタの出力データ、すなわち、図7の出力データDout[3]が得られる。ステップS104で、nがNよりも大きくなると、制御回路CTLは、演算器CALに、当該最終段のIIRフィルタの出力データを、インタフェースIFを介してCPUへ出力させる(ステップS105)。
その後、制御回路CTLは、再び、n=1を設定する(ステップS106)。続いて、制御回路CTLは、演算器CALに、n段目の遅延データ演算を行わせる(ステップS107)。次いで、制御回路CTLは、nをインクリメントしながら(ステップS108)、nが最大段数N(N=3)よりも大きくなるまでステップS107,S108の処理を繰り返し実行する(ステップS109)。これにより、図7の各IIRフィルタFLT1~FLT3内の遅延ブロックDB1,DB2、ひいては図2のメモリMEMに保持させる算出データ(遅延データ)D6’,D7’が定まり、3段のIIRフィルタとしての一連の処理が完了する。
図9は、図8のフローにおいて、演算器による詳細な演算手順の一例を示す図である。ここでは、図2の演算器CALは、2個のデータを加算する1個の加算器ADDと、2個のデータを乗算する1個の乗算器MULとを備え、加算器ADDと乗算器MULは、プロセッサPRCの1クロック周期内で1回の演算を行い、かつ、並列に演算を行える場合を想定する。この場合、例えば、3個のデータの加算(X=A+B+C)は、2クロック周期での加算(tmp=A+B,X=tmp+C)によって実現される。
図9の概略動作として、制御回路CTLは、CPUからの命令CMDを受けたのち、まず、演算器CALに、複数段(ここでは3段)のIIRフィルタにおける出力データ演算を初段から最終段まで順に行わせる。その後、制御回路CTLは、演算器CALに、複数段のIIRフィルタにおける遅延データ演算を初段から最終段まで順に行わせる。そして、制御回路CTLは、最終段のIIRフィルタにおける出力データ演算を終えた時点で、演算器CALに、当該最終段のIIRフィルタの出力データDout[3]をCPUへ出力させる。
図9の詳細動作として、演算器CALは、まず、1段目の出力データ演算を2クロック周期で行い、続けて、2段目および3段目の出力データ演算をそれぞれ2クロック周期で行う。1段目の出力データ演算において、演算器CALは、CPUからの入力データDin[1]を受け、1つ目のクロック周期で算出データD1[1]を生成し、2つ目のクロック周期で出力データDout[1]を生成する。なお、ここでは、[x]内の“x”は、段数を表す。
2段目の出力データ演算において、演算器CALは、1段目の出力データDout[1]を入力データDin[2]として受け、同様にして、算出データD1[2]および出力データDout[2]を生成する。3段目の出力データ演算に関しても同様である。
その後、演算器CALは、1段目の遅延データ演算を5クロック周期で行い、続けて、2段目および3段目の遅延データ演算をそれぞれ5クロック周期で行う。ここで、制御回路CTLは、前述した1段目の出力データ演算に先立って、CPUからの入力データDin[1]をメモリMEMに保持させる。そして、制御回路CTLは、当該保持させた入力データDin[1]を用いて、演算器CALに1段目から3段目までの遅延データ演算を順に行わせる。言い換えれば、演算器CALは、複数段のIIRフィルタの演算を最初からやり直す。
1段目の遅延データ演算において、演算器CALは、5クロック周期中の1クロック周期目および2クロック周期目で順に算出データD1[1],D2[1]を生成すると共に、2クロック周期目で出力データDout[1]も並行して生成する。そして、演算器CALは、3、4、5クロック周期目で順に算出データD3[1],D4[1],D5[1]を生成すると共に、これと並行して、3クロック周期目と5クロック周期目で算出データD6[1]を分割して生成する。算出データD6[1]に関し、具体的には、演算器CALは、3クロック周期目で算出データD2[1]と遅延データD7’[1]とを加算し、5クロック周期目で、この加算結果と算出データD4[1]とを加算する。
2段目の遅延データ演算に関しても、次の2つの相違点を除いて1段目と同様である。1つ目の相違点として、演算器CALは、1段目の出力データDout[1]を2段目の入力データDin[2]として演算処理を行う。2つ目の相違点として、演算器CALは、5クロック周期中の1クロック周期目で、2段目の算出データD1[2]の生成と並行して1段目の算出データD7[1]を生成する。3段目の遅延データ演算に関しては、2段目と同様である。
図10は、図9とは異なる演算手順の一例を示す図である。図10において、1段目、2段目、3段目の出力データ演算に関しては、図9の場合と同じである。ただし、図10では、図9の場合と異なり、制御回路CTLは、1段目から3段目までの出力データ演算によって得られた算出データ、この例では、出力データDout[1],Dout[2],Dout[3]をメモリMEMに保持させる。そして、制御回路CTLは、当該保持させた算出データを用いて、演算器CALに1段目から3段目までの遅延データ演算を順に行わせる。
ここで、1段目のIIRフィルタFLT1の遅延データ演算に際し、演算器CALは、出力データDout[1]が保持されている場合、算出データD1[1]を生成することなく算出データD4[1],D5[1]等を生成することができる。2段目および3段目に関しても同様である。このため、図10における1段目、2段目、3段目の遅延データ演算では、図9の場合と比較して、算出データD1[1],D1[2],D1[3]を生成するクロック周期が削除されている。
その結果、演算器CALは、1段目の遅延データ演算を4クロック周期で行い、続けて、2段目および3段目の遅延データ演算をそれぞれ4クロック周期で行うことができる。また、演算器CALは、図9において、算出データD1[2],D1[3]と並行して生成していた前段の算出データD7[1],D7[2]を、4クロック周期中の1クロック周期目で生成する。すなわち、演算器CALは、2段目の遅延データ演算における1クロック周期目で、算出データD2[2]と並行して1段目の算出データD7[1]を生成し、3段目の遅延データ演算における1クロック周期目で、算出データD2[3]と並行して2段目の算出データD7[2]を生成する。
図9の方式と図10の方式とを比較すると、遅延データ演算に要するクロック周期の数の観点では、図10の方式が有益である。ただし、図10の方式では、メモリMEMに、IIRフィルタの段数分の出力データDout[1],Dout[2],Dout[3]を保持させる必要があるため、回路規模(例えば、レジスタ数等)の観点では、図9の方式が有益となる。なお、ここでは、各段のIIRフィルタに図3Aの構成例を用いたが、図4Aの構成例を用いて図10の方式を用いる場合、制御回路CTLは、出力データ演算で得られた各段の算出データD1をメモリMEMに保持させればよい。
《実施の形態1の主要な効果》
以上、実施の形態1の方式を用いることで、IIRフィルタからの出力データが得られるまでの時間を短縮することが可能になる。その結果、各種制御システムにおいて、例えば、プロセッサのクロック周波数の高速化等を図ることなく、制御周期内で必要な処理を完了させることができる。また、別の観点では、制御周期を短縮することができ、高精度な制御システムを構築することが可能になる。以下、これらの詳細について説明する。
図14は、本発明の比較例となる半導体装置において、ハードウェアアクセラレータ内の制御回路の処理内容の一例を示すフロー図である。図14に示すフローは、図8に示したフローと異なり、各段の処理の中で、n段目の出力データ演算(ステップS102)に続いてn段目の遅延データ演算(ステップS107)が行われる。そして、最終段の出力データ演算および遅延データ演算を終えた時点で(ステップS104)、出力データがCPUへ出力される(ステップS105)。
図11は、図8における実施の形態のフローを用いた場合と図14における比較例のフローを用いた場合とで、制御システムの処理の流れを比べた概念図である。図11に示されるように、IIRフィルタを含んだ一般的な制御システムでは、制御周期Tcの中に、CPU処理期間CPU_P[1],CPU_P[2],CPU_P[3]と、IIRフィルタ演算の待ち期間IIR_W[1],IIR_W[2]とが設けられる。
例えば、CPUは、CPU処理期間CPU_P[1]の中で所定の処理を実行したのち、ハードウェアアクセラレータHWAに、命令CMDおよび入力データDinを出力することでIIRフィルタの演算を行わせる。続いて、CPUは、待ち期間IIR_W[1]で、当該ハードウェアアクセラレータHWAからの出力データDoutが得られるのを待つ。その後、CPUは、出力データDoutが得られると、CPU処理期間CPU_P[2]の中で、当該出力データDoutを用いて次の処理を実行する。
このような制御システムの処理において、比較例の方式では、CPUは、出力データDoutを得るために、最終段(ここでは3段目)の遅延データ演算が完了する、すなわち、複数段のIIRフィルタにおける出力データ演算および遅延データ演算が全て完了するのを待つ必要がある。このため、待ち期間IIR_W[1],IIR_W[2]が増加し、必要な処理時間が制御周期Tcを超える恐れがある。また、必要な処理時間を短縮するためには、プロセッサのクロック周波数の高速化等が必要となり、コストの増大や消費電力の増大等を招き得る。
一方、実施の形態の方式では、CPUは、出力データDoutを得るために、複数段のIIRフィルタにおける出力データ演算のみが完了するのを待てばよい。CPUは、この出力データ演算によって得られた出力データDoutを用いて次の処理を実行することが可能である。さらに、CPUは、当該次の処理と並行して、ハードウェアアクセラレータHWAに複数段のIIRフィルタにおける遅延データ演算を行わせることが可能である。
その結果、実施の形態の方式を用いることで、比較例の方式と比べて、待ち期間IIR_W[1],IIR_W[2]を短縮することができ、制御周期Tc内で必要とされる処理時間をΔTだけ短縮することが可能になる。これに伴い、制御周期Tcを短縮することも可能である。
(実施の形態2)
《モータ制御装置への適用例》
図12は、本発明の実施の形態2による半導体装置を適用したモータ制御装置周りの構成例を示す概略図である。図12には、半導体装置DEV、プリドライバPDV、インバータINV、モータMTおよび位置センサPGを含むモータ制御システムが示される。この内、例えば、半導体装置DEV、プリドライバPDVおよびインバータINVは、配線基板上に実装され、モータ制御装置を構成する。モータMTは、例えば、3相(u相、v相、w相)ブラシレスDCモータ等であり、制御対象物の位置を制御する。位置センサPGは、モータMTに取り付けられ、モータMTの回転位置を検出する。
インバータINVは、高電位側電源とモータMTの3相入力端子との間にそれぞれ接続される3相のハイサイドスイッチング素子と、低電位側電源とモータMTの3相入力端子との間にそれぞれ接続される3相のロウサイドスイッチング素子とを備える。インバータINVは、各スイッチング素子のスイッチングによってモータMTに電力、詳細には3相交流電力を供給する。プリドライバPDVは、半導体装置DEVからの3相のPWM信号を受け、当該PWM信号に基づいてインバータINV内の各スイッチング素子をスイッチング制御する。
半導体装置DEVは、実施の形態1で述べたように、例えば、マイクロコントローラ等で構成され、位置・速度制御器PSCTと、電流制御器ICTと、PWMユニットPWMUとを備える。位置・速度制御器PSCTおよび電流制御器ICTは、例えば、図1のプロセッサPRCによるプログラム処理等で実現され、PWMユニットPWMUは、例えば、図1の各種周辺回路PERI内に含まれるハードウェアユニットで実現される。
半導体装置DEVは、概略的には、所定の制御周期で入力させるモータMTのセンシング結果に基づいてインバータINVを介してモータMTを制御する。モータMTのセンシング結果には、位置センサPGによる検出位置の値と、図示しない電流センサによるモータの3相検出電流値とが含まれる。半導体装置DEVは、センシング結果がアナログ値の場合、各種周辺回路PERI内に含まれるアナログディジタル変換器を用いてディジタル値に変換したのち、位置・速度制御器PSCTおよび電流制御器ICTへ出力する。
位置・速度制御器PSCTは、位置センサPGからの検出位置の値に基づいて、モータMTの位置および速度を制御する。位置・速度制御器PSCTにおいて、位置指令部10は、例えば、予め定めた制御シーケンスに基づいて、制御対象物の位置を決めるための位置指令値を生成する。制振制御部11は、この位置決めの際に生じ得る制御対象物の残留振動を抑制するため、位置指令部10からの位置指令値を補正し、補正後位置指令値を生成する。速度フィードフォワード(FFと略す)演算部12は、制振制御部11からの補正後位置指令値に基づいて、速度FF補償値を算出する。
PI(比例・積分)制御&位相補償部13は、制振制御部11からの補正後位置指令値と位置センサPGからの検出位置の値との誤差に基づいて、誤差をゼロに近づけるための操作値、すなわち、速度指令値を算出する。この際に、PI制御&位相補償部13は、速度FF演算部12からの速度FF補償値を反映させた上で、速度指令値を算出する。また、PI制御&位相補償部13は、速度指令値と瞬時速度オブザーバ17からの検出速度値との誤差に基づいて、誤差をゼロに近づけるための操作値、すなわち、トルク指令値を算出する。
機械共振抑制フィルタ14は、例えば、制御対象物の共振を抑制するためのノッチフィルタであり、PI制御&位相補償部13からの操作値をフィルタリングする。トルク補償部15は、機械共振抑制フィルタ14からのフィルタ後の操作値、すなわちトルク指令値を、例えば、モータMTの負荷の大きさに応じて補償する。
弱め磁束制御部16は、トルク補償部15からのトルク指令値に基づいてd軸電流指令値およびq軸電流指令値を生成する。瞬時速度オブザーバ17は、位置センサPGからの検出位置の値と、トルク補償部15からのトルク指令値とに基づいて、検出速度値を算出する。具体的には、瞬時速度オブザーバ17は、例えば、検出位置の値の微分値と、トルク指令値の積分値とに基づいて検出速度値を算出する。
電流制御器ICTは、位置センサPGからの検出位置の値と、位置・速度制御器PSCTからのd軸電流指令値およびq軸電流指令値と、前述した電流センサ(図示せず)からの3相検出電流値とに基づいて、モータMTの電流、ひいてはトルクを制御する。電流制御器ICTにおいて、dq変換部25は、位置センサPGからの検出位置の値に基づいて、電流センサ(図示せず)からの3相検出電流値を、d軸検出電流値およびq軸電流検出値に変換する。
デッドタイム補償部24は、PWMユニットPWMUによって挿入されるデッドタイムによって生じる、電圧指令と実際に出力される電圧との誤差を補正するものであり、電流センサ(図示せず)からの3相検出電流値に基づいて、電圧指令値を補償する。デッドタイムとは、インバータINVの各相において、ハイサイドスイッチング素子のオン/オフ時点と、ロウサイドスイッチング素子のオフ/オン時点との間に設ける必要があるインターバルである。
電圧FF演算部20は、位置・速度制御器PSCT、詳細には弱め磁束制御部16からのd軸電流指令値およびq軸電流指令値に基づいて、電圧FF補償値を算出する。電圧FF補償値によって、例えば、デッドタイムに伴う電圧誤差等が補償される。PI制御&位相補償部21は、位置・速度制御器PSCTからのd軸電流指令値およびq軸電流指令値と、dq変換部25からのd軸電流検出値およびq軸電流検出値との誤差に基づいて、誤差をゼロに近づけるための操作値、すなわち、d軸電圧指令値およびq軸電圧指令値を算出する。この際に、PI制御&位相補償部21は、電圧FF演算部20からの電圧FF補償値を反映させた上で、d軸電圧指令値およびq軸電圧指令値を算出する。
dq逆変換部22は、PI制御&位相補償部21からのd軸電圧指令値およびq軸電圧指令値を、位置センサPGからの検出位置の値を用いた逆パーク変換によってα軸電圧指令値およびβ軸電圧指令値に変換する。空間ベクトル変調部23は、dq逆変換部22からのα軸電圧指令値およびβ軸電圧指令値を、規定の変調パターンに基づいて、3相電圧指令値、ひいては3相PWMデューティ指令値に変調する。
PWMユニットPWMUは、電流制御器ICT、詳細には空間ベクトル変調部23からの3相PWMデューティ指令値に基づいて、当該デューティ指令値を反映した3相PWM信号を生成する。この際に、PWMユニットPWMUは、ハイサイドスイッチング素子とロウサイドスイッチング素子の同時にオンによる短絡防止の為のデッドタイムを挿入する。そして、PWMユニットPWMUは、当該3相PWM信号を用いて、プリドライバPDVを介してインバータINV内の各スイッチング素子をスイッチング制御する。
このような半導体装置DEVにおいて、例えば、位置・速度制御器PSCT内の制振制御部11、機械共振抑制フィルタ14、トルク補償部15および瞬時速度オブザーバ17に、biquad IIRフィルタが搭載される。例えば、制振制御部11には、縦続接続された6段のIIRフィルタが搭載され、機械共振抑制フィルタ14には、縦続接続された5段のIIRフィルタが搭載される。また、トルク補償部15には、縦続接続された5段のIIRフィルタが搭載され、瞬時速度オブザーバ17には、縦続接続された2段のIIRフィルタが搭載される。
このようなモータ制御装置に用いられる半導体装置DEVでは、モータMTの制御周期内で、位置・速度制御器PSCT、電流制御器ICTおよびPWMユニットPWMUからなる一連の処理を完了させる必要がある。一方、特に、モータMTを高速・高精度に制御することが求められる場合、図12のように、IIRフィルタを搭載した多くの制御ブロックが必要とされ得る。このため、半導体装置DEVの処理時間が増加し、図11で述べたように、制御周期Tcを超過してしまう恐れがある。なお、モータMTの制御周期Tcは、例えば、数10μs等に定められる。
具体例として、図11を参照して、半導体装置DEV内のCPUは、CPU処理期間CPU_P[1]の中で位置指令部10の処理を終えたのち、待ち期間IIR_W[1]の中で、ハードウェアアクセラレータHWAに、制振制御部11内のIIRフィルタの演算を行わせる。続いて、CPUは、ハードウェアアクセラレータHWAからの出力データDoutを受け、CPU処理期間CPU_P[2]の中で速度FF演算部12およびPI制御&位相補償部13の処理を実行する。その後、CPUは、待ち期間IIR_W[2]の中で、ハードウェアアクセラレータHWAに、機械共振抑制フィルタ14内のIIRフィルタの演算を行わせる。以降も同様にして、必要な処理が順次実行される。
そこで、実施の形態1で述べたように、出力データ演算を先行させる方式を用いると、図11で述べたように、このような半導体装置DEVの処理時間を短縮することが可能になる。その結果、モータ制御の高速化や高精度化等が実現可能になる。具体的には、例えば、制御周期を短縮することや、制御周期の中でIIRフィルタの演算処理を多く実現できるようになる。
図13Aおよび図13Bは、各種処理システムにおける演算方式の一例を示す概念図である。図13Aには、一括演算方式の処理の流れが示される。一括演算方式とは、例えば、非リアルタイム処理で用いられ、ある程度纏まった入力データDinに対して一括して演算処理を行ったのち、出力データDoutを生成するような方式である。例えば、音声処理のように、ある程度の入力データDinをバッファリングして、定期的に、複数の入力データDinを一度に処理するような場合が挙げられる。
図13Bには、単発演算方式の処理の流れが示される。単発演算方式とは、例えば、リアルタイム処理で用いられ、1回目の入力データDinに対する演算処理を2回目の入力データが入力される前に完了させればよい場合の方式である。図13Aの方式の場合、1回目の入力データDinに対して出力データ演算および遅延データ演算の両方を完了した後に、2回目の入力データDinに対する演算処理を行う必要がある。このため、出力データ演算を先行させることによる効果は得られ難く、例えば、最後の演算処理に伴う出力データが早めに得られる程度の効果となる。
一方、モータ制御では、図13Bに示したような単発演算方式が用いられる。図13Bの方式の場合、前述したように、出力データ演算を先行させることで大きな効果が得られる。実施の形態の方式は、このようなモータ制御に限らず、特に、単発演算方式を用いた処理システムや制御システムに適用して有益な効果が得られる。
《実施の形態2の主要な効果》
以上、実施の形態2の方式を用いることで、実施の形態1で述べた各種効果と同様の効果が得られる。これに加えて、モータ制御の高速化や高精度化等が実現可能になる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
AB 加算ブロック
ADD 加算器
CAL 演算器
CMD 命令
CTL 制御回路
D 算出データ
DB 遅延ブロック
DEV 半導体装置
Din 入力データ
Dout 出力データ
FLT IIRフィルタ
HWA ハードウェアアクセラレータ
INV インバータ
MB 乗算ブロック
MEM メモリ
MT モータ
MUL 乗算器
PRC プロセッサ

Claims (13)

  1. 乗算器および加算器を含む演算器と、
    算出データを保持するメモリと、
    前記演算器および前記メモリを制御する制御回路と、
    を有する半導体装置であって、
    前記制御回路は、外部からの命令を受け、前記演算器に、外部からの入力データと前記メモリで保持される前記算出データとを用いてM(Mは2以上の整数)回の演算を行わせることで、前記演算器および前記メモリを、乗算ブロック、加算ブロックおよび遅延ブロックを含むIIR(Infinite Impulse Response)フィルタとして機能させ、
    前記IIRフィルタは、前記M回中のK(K<M)回の演算で出力データを確定させることが可能なフィルタであり、
    前記制御回路は、外部からの前記命令を受けたのち、前記演算器に、前記K回の演算を先行して行わせることで前記出力データを確定させ、当該確定させた時点で、前記出力データを外部へ出力させる、
    半導体装置。
  2. 請求項1記載の半導体装置において、
    前記IIRフィルタにおける前記M回の演算は、前記出力データを確定させるために必要な出力データ演算と、前記遅延ブロックを担う前記メモリに保持させる前記算出データを確定させるために必要な遅延データ演算とに区別され、
    前記制御回路は、前記演算器に、前記出力データ演算を先行して行わせ、その後に前記遅延データ演算を行わせる、
    半導体装置。
  3. 請求項2記載の半導体装置において、
    前記制御回路は、前記演算器および前記メモリを、縦続接続された複数段の前記IIRフィルタとして機能させ、外部からの前記命令を受けたのち、前記演算器に、前記複数段のIIRフィルタにおける前記出力データ演算を初段から最終段まで順に行わせ、その後に前記複数段のIIRフィルタにおける前記遅延データ演算を初段から最終段まで順に行わせ、最終段の前記IIRフィルタにおける前記出力データ演算を終えた時点で前記最終段のIIRフィルタの前記出力データを外部へ出力させる、
    半導体装置。
  4. 請求項3記載の半導体装置において、
    前記制御回路は、初段から最終段までの前記出力データ演算によって得られた前記算出データを前記メモリに保持させ、当該保持させた算出データを用いて前記演算器に初段から最終段までの前記遅延データ演算を順に行わせる、
    半導体装置。
  5. 請求項3記載の半導体装置において、
    前記制御回路は、前記メモリに外部からの前記入力データを保持させ、当該保持させた入力データを用いて前記演算器に初段から最終段までの前記遅延データ演算を順に行わせる、
    半導体装置。
  6. 請求項1~5のいずれか1項に記載の半導体装置において、
    前記IIRフィルタは、転置構成である、
    半導体装置。
  7. 請求項1~5のいずれか1項に記載の半導体装置において、
    さらに、外部からの前記命令および外部からの前記入力データを出力するCPU(Central Processing Unit)を有する、
    半導体装置。
  8. モータに電力を供給するインバータと、
    CPU(Central Processing Unit)および前記CPUの処理を支援するハードウェアアクセラレータを含み、所定の制御周期で入力させる前記モータのセンシング結果に基づいて前記インバータを介して前記モータを制御する半導体装置と、
    を有するモータ制御装置であって、
    前記ハードウェアアクセラレータは、
    乗算器および加算器を含む演算器と、
    算出データを保持するメモリと、
    前記演算器および前記メモリを制御する制御回路と、
    を有し、
    前記制御回路は、前記CPUからの命令を受け、前記演算器に、前記CPUからの入力データと前記メモリで保持される前記算出データとを用いてM(Mは2以上の整数)回の演算を行わせることで、前記演算器および前記メモリを、乗算ブロック、加算ブロックおよび遅延ブロックを含むIIR(Infinite Impulse Response)フィルタとして機能させ、
    前記IIRフィルタは、前記M回中のK(K<M)回の演算で出力データを確定させることが可能なフィルタであり、
    前記制御回路は、前記CPUからの命令を受けたのち、前記演算器に、前記K回の演算を先行して行わせることで前記出力データを確定させ、当該確定させた時点で、前記出力データを前記CPUへ出力させる、
    モータ制御装置。
  9. 請求項8記載のモータ制御装置において、
    前記IIRフィルタにおける前記M回の演算は、前記出力データを確定させるために必要な出力データ演算と、前記遅延ブロックを担う前記メモリに保持させる前記算出データを確定させるために必要な遅延データ演算とに区別され、
    前記制御回路は、前記演算器に、前記出力データ演算を先行して行わせ、その後に前記遅延データ演算を行わせる、
    モータ制御装置。
  10. 請求項9記載のモータ制御装置において、
    前記制御回路は、前記演算器および前記メモリを、縦続接続された複数段の前記IIRフィルタとして機能させ、前記CPUからの前記命令を受けたのち、前記演算器に、前記複数段のIIRフィルタにおける前記出力データ演算を初段から最終段まで順に行わせ、その後に前記複数段のIIRフィルタにおける前記遅延データ演算を初段から最終段まで順に行わせ、最終段の前記IIRフィルタにおける前記出力データ演算を終えた時点で前記最終段のIIRフィルタの前記出力データを前記CPUへ出力させる、
    モータ制御装置。
  11. 請求項10記載のモータ制御装置において、
    前記制御回路は、初段から最終段までの前記出力データ演算によって得られた前記算出データを前記メモリに保持させ、当該保持させた算出データを用いて前記演算器に初段から最終段までの前記遅延データ演算を順に行わせる、
    モータ制御装置。
  12. 請求項10記載のモータ制御装置において、
    前記制御回路は、前記メモリに外部からの前記入力データを保持させ、当該保持させた入力データを用いて前記演算器に初段から最終段までの前記遅延データ演算を順に行わせる、
    モータ制御装置。
  13. 請求項8~12のいずれか1項に記載のモータ制御装置において、
    前記IIRフィルタは、転置構成である、
    モータ制御装置。
JP2021028740A 2021-02-25 2021-02-25 半導体装置およびモータ制御装置 Pending JP2022129882A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021028740A JP2022129882A (ja) 2021-02-25 2021-02-25 半導体装置およびモータ制御装置
US17/578,937 US11949358B2 (en) 2021-02-25 2022-01-19 Semiconductor device and motor control device
EP22156039.4A EP4050473A1 (en) 2021-02-25 2022-02-10 Semiconductor device and motor control device
CN202210140878.XA CN114978106A (zh) 2021-02-25 2022-02-16 半导体设备和电机控制设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021028740A JP2022129882A (ja) 2021-02-25 2021-02-25 半導体装置およびモータ制御装置

Publications (1)

Publication Number Publication Date
JP2022129882A true JP2022129882A (ja) 2022-09-06

Family

ID=80446931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021028740A Pending JP2022129882A (ja) 2021-02-25 2021-02-25 半導体装置およびモータ制御装置

Country Status (4)

Country Link
US (1) US11949358B2 (ja)
EP (1) EP4050473A1 (ja)
JP (1) JP2022129882A (ja)
CN (1) CN114978106A (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949831A (en) * 1997-05-21 1999-09-07 International Business Machines Corporation Method and apparatus for data detection for PRML data channels
EP0935342A3 (en) 1998-01-15 2001-05-16 Texas Instruments Incorporated Improvements in or relating to filters
US6438570B1 (en) * 1999-07-21 2002-08-20 Xilinx, Inc. FPGA implemented bit-serial multiplier and infinite impulse response
JP5059508B2 (ja) 2007-07-26 2012-10-24 ルネサスエレクトロニクス株式会社 マイクロプロセッサ
TWI540825B (zh) * 2010-03-25 2016-07-01 Rohm Co Ltd Motor drive circuit, cooling device, electronic machine
US8798129B2 (en) 2012-01-04 2014-08-05 Lsi Corporation Biquad infinite impulse response system transformation
JP2013222364A (ja) * 2012-04-18 2013-10-28 Renesas Electronics Corp 信号処理回路
WO2013180165A1 (ja) * 2012-05-30 2013-12-05 株式会社ニコン エンコーダ、及び駆動装置
JP7370158B2 (ja) * 2019-04-03 2023-10-27 株式会社Preferred Networks 情報処理装置および情報処理方法

Also Published As

Publication number Publication date
US20220271698A1 (en) 2022-08-25
CN114978106A (zh) 2022-08-30
US11949358B2 (en) 2024-04-02
EP4050473A1 (en) 2022-08-31

Similar Documents

Publication Publication Date Title
CN110868111B (zh) 基于离散空间矢量调制的永磁同步电机模型预测控制方法
JP2975041B2 (ja) ディジタル信号処理プロセッサ
US20170322895A1 (en) Dma controller with arithmetic unit
JP2022129882A (ja) 半導体装置およびモータ制御装置
Jackiewicz et al. Comparative study of two repetitive process control techniques for a grid-tie converter under distorted grid voltage conditions
JP4763329B2 (ja) 電力変換器の制御装置
Maciążek Power theories applications to control active compensators
Van Chung et al. Hardware in the loop co-simulation of finite set-model predictive control using fpga for a three level CHB inverter
Stolze Advanced finite-set model predictive control for power electronics and electrical drives
Amornwongpeeti et al. A single chip FPGA-based solution for controlling of multi-unit PMSM motor with time-division multiplexing scheme
Krim et al. Hardware Implementation of a Predictive DTC-SVM with a Sliding Mode Observer of an Induction Motor on the FPGA
WO2010013343A1 (ja) 交流電気車の制御装置
JPH04230868A (ja) 交流データ検出装置
Kökenyesi et al. FPGA-based real-time simulation of renewable energy source power converters
US9035587B2 (en) Motor control loop with fast response
CN115498939A (zh) 电机三相电流的不平衡补偿方法、装置及电子设备
JP2004248477A (ja) ディジタル保護リレー
JP4142589B2 (ja) フィールド指向制御システムのためのモジュラー機能ブロック
JPS63305715A (ja) デイジタル演算処理装置
Esparza et al. Real-time emulator of an induction motor: FPGA-based implementation
JPH03175502A (ja) 間引き学習制御方式
JPH10178741A (ja) パワーラインコンディショナ
Xiao et al. Coefficient sensitivity and structure optimization of multidimensional state-space digital filters
JP2011041374A (ja) モータ制御装置
JP2000010779A (ja) デジタル信号処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240528