基于單片機的變頻器設計
摘要
變頻器是從上世紀中葉發展起來的一種交流調速設備。它是為了解決傳統的交流電機調速困難、傳統的交變速設備不但結構復雜且效率和可靠性均不盡人意的缺點而出現的,變頻器的出現使交流電機的調速范圍和調速性能均大為提升。而無刷直流電機因為具有直流有刷電機的特性,同時也是頻率變化的裝置,所以又名直流變頻,國際通用名詞為 BLDC。無刷直流電機具有體積小、重量輕、維護方便、高效節能、易于控制等一系列優點,如今被大量應用。如電動自行車的主驅動電機,變頻家電,如空調、冰箱等主機。控制系統是電動自行車的核心,與其控制對象——無刷直流電動機共同構成電動自行車的動力驅動系統。本文以24V,3相6極無刷直流電動機作為研究對象,建立了基于單片機的全數字化無位置傳感器無刷直流電機控制系統。1概述變頻調速技術是現代電力傳動技術的重要發展方向,而作為變頻調速系統的核心—變頻器的性能也越來越成為調速性能優劣的決定因素,除了變頻器本身制造工藝的“先天”條件外,對變頻器采用什么樣的控制方式也是非常重要的。隨著電力電子技術、微電子技術、計算機網絡等高新技術的發展,變頻器的控制方式今后將向數字控制變頻器等方向發展。現在,變頻器的控制方式用數字處理器可以實現比較復雜的運算,變頻器數字化將是一個重要的發展方向。 電動自行車的驅動電機即為BLDC電機,本文以STM8S903K3單片機為核心,完成了電動自行車控制器的軟硬件設計,尤其對BLDC電機的直流變頻控制部分進行了重點闡述。硬件部分包括電源、MOSFET驅動、電流檢測等電路的設計,畫出了各電路具體工作原理圖,解釋了其工作原理并介紹了硬件設計注意事項。軟件設計采用分模塊結構,詳細介紹了電子換相、欠壓保護和速度控制等編程要點,畫出了各模塊的程序設計流程圖并介紹了軟件設計注意事項。 文中,著重介紹了電動自行車控制系統的基本組成和工作原理。包括無刷直流電動機的基本結構和工作原理并推導了其數學模型、電動自行車控制器的各項功能及工作原理、調速轉把和制動轉把的工作原理以及信號系統和照明系統的工作原理。整體上對電動自行車控制系統進行概括,為以后控制系統的軟硬件設計奠定理論基礎。 最后,詳細闡述了以STM8S903K3單片機為核心的電動自行車控制器的軟硬件設計。硬件部分包括電源、MOSFET驅動、電流檢測等電路的設計,畫出了各電路具體工作原理圖,解釋了其工作原理并介紹了硬件設計注意事項。軟件設計采用分模塊結構,詳細介紹了電子換相、欠壓保護和速度控制等編程要點,畫出了各模塊的程序設計流程圖并介紹了軟件設計注意事項。
1.2電動自行車控制系統的研究現狀電動自行車控制系統可以視為以控制器為核心,包括轉把、剎把、儀表以及相關的傳感器、開關按鈕等器件的集成。其中,控制器決定了電動車的操控性能,因此控制器功能的提高、完善及合理發揮對于電動自行車控制系統來說尤為重要[10]。 電動自行車控制器的主要形式有:分立元件加少量集成電路構成的模擬控制、基于專用集成電路的控制系統、以微型計算機技術為核心的數模混合控制系統和全數字控制系統[11~12]。 模擬控制系統由于模擬電路中不可避免的存在參數漂移和參數不一致等問題,加上線路復雜、調試不便等因素,使電機的可靠性和性能受到影響,在電動自行車控制器中己經不采用了。 基于專用集成電路的控制系統采用無刷直流電動機專用集成電路如MC33033、MC33035、ML4428為控制核心,克服了分立元件帶來的弊端,使控制電路體積小、可靠性高,但功能難以擴展,在早期的電動車控制器中應用較多。 數模混合控制系統和全數字控制系統采用數字電路、單片機以及數字信號處理器(DSP)構成硬件系統,控制規律由硬件實現轉向軟件實現。控制靈活、功能擴展方便且易實現較復雜的控制算法。目前的電動自行車控制器普遍采用這種控制系統[13]。 電動自行車控制器發展趨勢及研究難點1)研究難點 a.電機轉矩脈動優化控制。120°六步換相控制時容易出現轉矩脈動,影響無刷直流電機的平穩運行,增加噪聲并降低效率。通常可通過調整PWM載波方式和重疊換相來抑制電流換相引起的轉矩脈動。目前,為了減少轉矩脈動,BLDC電機的控制方法的研究正在從傳統的120°控制方法到180°的控制方法轉換。 b.增加電機力矩。自行車在起動和爬坡時,要求電機及控制器有充分的過載能力,以提供足夠的起動和爬坡力矩。通常,通過增加電流閉環控制可獲得更大的起動力矩和響應速度。現狀正在研究通過對電機的弱磁控制來增加電機的力矩。 c.能量再生控制及輔助電子剎車。續程性能一直是制約電動車發展的關鍵因素之一,提高續程的方法除了改進蓄電技術以及驅動策略外,還有就是剎車時采用先進的能量回收控制。目前已有的電動自行車能量回收方案基本上是基于電動汽車的能量回收控制理論,但大多數控制器并沒有充分進行能量回收控制,只是作為ABS輔助剎車時的一個附加功能。 d.無位置傳感器的BLDC控制。位置傳感器的存在增加了電機的體積和成本,同時給電動自行車增加了一個故障源。統計表明,多數電動自行車的電機損壞實際上是由于位置傳感器失效造成的。針對位置傳感器的不利因素,人們對無位置傳感器的BLDC控制技術進行了很多的研究,并在空調系統、風機等不同設計中得到廣泛的應用。但在電動自行車中,由于無位置傳感器控制技術無法解決平穩啟動的問題,因此難以得到最終客戶的認可,而一直沒有得到廣泛的使用。所以,該技術目前的瓶頸是如何解決平穩啟動。 2)發展趨勢 廉價化。對于現有的成熟設計,追求更低的成本。通過選用更低價錢的元器件以及MCU,相應地,MCU廠商會配合推出更新工藝的廉價兼容型號來降低控制器的成本。 智能化。智能化越來越成為電動自行車控制器的發展趨勢。MCU必須具有自檢、自維護能力,確保動作的“萬無一失”。另外,防盜報警功能,電源自動識別功能,自動識別電機、智能鎖功能等人性化設計都是技術上的發展方向。 集成化。集成化可以實現體積小、效率高、返修率低,因此是品牌廠家的首選。目前市場上普遍使用的控制器方案設計陳舊,外部分立元件多,任何一個元件失效都會影響到電控器質量。因此高度集中化是未來的發展方向。 定制化。由于電動自行車市場的龐大,為了進一步降低成本,一些公司開始專門為電動自行車業定制芯片。同時對于電動自行車控制器的設計部門來說,根據客戶需求開發相應功能的控制器也是未來的發展方向[14]。
論文研究內容和結構本文在前人研究的基礎上,以24V,3相6極無刷直流電動機作為研究對象,研究的目的是開發出一款可供電動自行車領域的無刷直流電機無位置傳感控制系統參考的控制器。 本論文首先詳細介紹了本課題研究背景及意義、電動自行車的國內外發展現狀和電動自行車控制器的研究難題及未來發展趨勢。接著介紹了無刷直流電動機的基本結構、工作原理以及數學模型。然后介紹了電動自行車控制系統的各個組成部分并對各部分工作原理進行分析。介紹了無刷直流電機的數學模型,使用硬件電路的方法去檢測反電動勢過零點。最后對電動自行車控制系統軟硬件部分進行分模塊研究與分析,給出了系統軟硬件設計框圖及各模塊的具體電路原理圖和軟件控制程序流程圖。
無刷直流電機概述
無刷直流電機是隨著電子技術的迅速發展而發展起來的一種新型直流電機,它是現代工業設備中重要的運動部件。無刷直流電機以法拉第的電磁感應定律為基礎,而又以新興的電力電子技術、數字電子技術和各種物理原理為后盾,具有很強的生命力。 無刷直流電機最大特點是沒有換向器(曾稱整流子)和電刷組成的機械接觸機構。因此,無刷直流電機沒有換向火花,壽命長,運行可靠,維護簡便。此外,其轉速不受機械換向的限制,如采用磁懸浮軸承或空氣軸承等,可實現每分鐘幾萬到幾十萬轉的超高轉速運行。 由于無刷直流電機具有上述一系列有點,因此,它的用途比有刷直流電機更加廣泛,尤其適用于航空航天、電子設備、采礦、化工等特殊工業部門[47]。
無刷直流電機控制系統概況一個多世紀以來,電動機作為機電能量轉換的裝置,其應用范圍已遍及國民經濟的各個領域以及人們的日常生活之中。電動機主要類型有同步電動機、異步電動機(感應電動機)與直流電動機三種,其容量小到幾瓦,大到上萬千瓦。眾所周知,直流電動機具有控制簡便和調速性能好等諸多優點,但傳統的直流電動機均采用電刷,以機械方法進行換向,因而存在機械摩擦,由此帶來了噪聲、火花、無線電干擾以及壽命短等致命弱點,再加上制造成本高及維修困難等缺點,從而大大地限制了它的應用范圍[15]。 隨著社會生產力的發展,人們的生活水平的普遍提高,需要不斷地開發各種新型電動機。科學技術的進步,新技術、新材料的不斷涌現,更促進了電動機產品的不斷推陳出新。針對上述傳統直流電動機的弊病,早在20世紀30年代,就有人開始研制以電子換向來代替電刷機械換向的無刷直流電動機,并取得了一定成果[16]。但由于當時大功率電力電子器件僅處于發展的初級階段,沒能找到理想的電子換向的元器件,這就使得這種電動機只能停留在實驗室研究階段,無法推廣使用。1955年,美國人D·哈利森等人首次申請了應用晶體管換向代替電動機機械換向器換向的專利,這就是現代無刷直流電動機的雛形[16]。但由于該電動機尚無啟動轉矩,因而不能產品化。而后,又經過人們多年努力,借助于霍爾元件來實現幻想的無刷直流電動機終于在1962年問世,從而開創了無刷直流電動機產品化的新紀元[16]。20世紀70年代以來,隨著電力電子工業的飛速發展,許多新型的高性能大功率電力電子器件,如GTR、MOSFET、IGBT等相繼出現,以及高性能永磁材料,如釤鈷、釹鐵硼等的問世,均為無刷直流電動機的廣泛應用奠定了堅實的基礎。 典型的無刷直流電動機控制系統主要由電機本體、轉子位置傳感器、主回路逆變器和控制邏輯單元構成,其中電機本體與轉子位置傳感器往往做成一體,而在本文中主回路逆變器被稱作驅動電路,而控制邏輯單元則稱作控制電路。 當前無刷直流電機調速系統驅動電路采用的功率器件主要是IGBT、MOSFET等全控型器件[15]。 根據獲取轉子位置的不同方式,無刷直流電機調速系統分為兩大類:有位置傳感器的無刷直流電機調速系統和無位置傳感器的無刷直流電機調速系統。前者指電機上安裝特殊的裝置,直接獲取轉子位置信息的調速系統;后者指由系統變量間接確定轉子位置的調速系統。無位置傳感器的無刷直流電機調速系統具有體積小、結構簡單、易于維護等優點,是無刷直流電機控制領域的一大研究方向[15]。 無刷直流電機本體有多種分類方式。根據定子相數的不同,可分為三相或多相無刷直流電機,其中以三相電機應用最為普遍;根據轉子位置的不同,可分為內轉子或外轉子無刷直流電機;根據電機磁場方向的不同,可分為徑向磁場或軸向磁場(盤式)無刷直流電機等[1]。 由于無刷直流電動機既具備交流電動機的結構特點、運行可靠、維護方便等一系列優點,又具備直流電動機調速性能好等諸多優點,故而在當今國民經濟的各個領域,如醫療器械、儀器儀表、化工、輕紡以及家用電器等方面的應用日益普及。如計算機硬盤驅動器和軟盤驅動器里的主軸電動機、DVD機中的伺服電動機,均數以百萬計地運用無刷直流電動機[16]。
無刷直流電機的結構與工作原理無刷直流電機的結構無刷直流電動機的主要組成部分有電動機本體、位置傳感器與電子開關等3部分,如圖2.1所示。電動機本體在結構上與永磁同步電動機相似,但沒有籠形繞組和其他起動裝置。定子繞組一般制成多相(三、四、五相不等),轉子由永久磁鐵按一定的極對數(2p = 2,4,…)組成,電子開關一般是由功率電子器件和它的控制電路以及轉子位置傳感器等組成。圖1所示的電動機本體為2極三相。定子A、B、C相繞組分別與電力開關元件V1、V2、V3相接。位置傳感器的跟蹤轉子與電動機轉軸相鏈接。 圖2.1 無刷直流電動機的組成原理圖 定子繞組的某一相通電時,該電流與轉子永久磁鐵的磁極產生的磁場相互作用,從而產生轉矩,驅動轉子旋轉;再由位置傳感器將轉子磁極位置信號變換成電信號,去控制電子開關線路,從而使定子各相繞組按一定順序導通,定子相電流隨轉子位置的變化而按一定的順序換相。由于電子開關線路的導通次序是與轉子轉角同步的,因而起到了機械換向器的換向作用。 因此,所謂的無刷直流電動機,就其基本結構而言,可以認為是一臺由電子開關線路、永磁同步電動機本體以及轉子磁極位置傳感器三者共同組成的“電子電動機系統”。其原理框圖如圖2.2所示。 圖2.2 無刷直流電動機的原理框圖 無刷直流電動機中的電子開關線路是用來控制電動機定子各相繞組的通電順序和時間的,主要由功率邏輯開關單元和位置傳感器信號處理單元兩部分組成。功率邏輯開關單元是控制電路的核心,其功能是將電源的功率以一定的邏輯關系分配給電動機定子的各相繞組,以使電動機產生持續不斷的轉矩。而各相繞組的導通順序和時間主要取決于來自轉子位置傳感器的信號。但位置傳感器產生的信號要經過一定的邏輯處理后去控制功率開關。綜上所述,組成無刷直流電動機的主要部件如圖2.3所示[17]。 圖2.3 無刷直流電動機的組成框圖 基本工作原理直流電動機的結構歷來都是電樞為轉子,磁鐵為定子,在氣隙中產生勵磁磁場,其電樞通電后產生感應磁場。由于電刷的換向作用,在直流電動機的運行過程中,這兩個磁場的方向始終保持垂直,從而產生最大電磁轉矩,驅動電動機不停運轉。同時,由于這兩個磁場間互為正交,理論上沒有耦合作用,可以獨立對電樞電流進行控制來調節電動機的運動速度,這是十分方便的。 在無刷直流電動機的情況下,為了實現無刷換向,首先要做的是把一般直流電動機的電樞繞組安放在定子上,把永久磁鐵安放在轉子上,這恰好與傳統的直流電動機機構相反。但是僅僅這樣做還是不行的,因為用一般的直流電源給定子上的各相繞組供電,只能產生固定磁場,它不能與運動中的轉子磁鐵產生的永久磁場相互作用,以產生單一方向的轉矩驅動轉子轉動。所以,無刷直流電動機除了由定子和轉子組成的電機本體之外,還要有位置傳感器、控制電路以及功率邏輯開關共同組成的換相裝置,使得無刷直流電動機在運行過程中,定子繞組所產生的磁場和在轉動中轉子磁鐵所產生的永久磁場,在空間始終保持在90°左右的電角度[17]。 一般的永磁式直流電動機的定子由永久磁鋼組成,其主要作用是在電動機氣隙中建立磁場,其電樞繞組通電后產生電樞反應磁場,由于電力電子逆變器供給電樞繞組的電流并不是正弦波,而是120°的方波,因而三相合成磁動勢不是恒速旋轉的,而是跳躍式的步進磁動勢,它和恒速旋轉的轉子磁動勢產生的轉矩除了平均轉矩之外,還有脈動分量[18]。由于電力電子逆變器的換向作用,使得這兩個磁場的方向在電動機運動的過程中始終保持一定的角度,從而產生最大平均轉矩而驅動電動機不停地運轉,與直流有刷電動機不同,無刷直流電動機的電樞轉一圈,定子繞組只換相6次,每個極換相三次,相當于只有三個換向片的直流電動機。 電子換向逆變器主電路如圖2.4所示,從AA’,BB’,CC’代表無刷直流電動機的三相定子繞組,采用Y型連結,逆變器為兩兩通電方式,120°導電型。首先假設轉子處于圖2.5(a)的位置,若此時使V3,V4導通,則電流從B端流入,A端流出,定子磁動勢為Fa,如圖2.5所示,在Fa的作用下,轉子將順時針旋轉,轉到圖2.5(b)的位置時,如果使V4,V5導通,則電流由C端流入,A端流出,定子磁動勢為Fb,在Fb的作用下,轉子將繼續順時針旋轉,依次類推,如果每隔60個電角度順序使V5和V6,V1和V6,V1和V2,V3和V2兩兩導通,即可使定子磁動勢分別如圖2.5(c)、圖2.5(d)、圖2.5(e)圖2.5(f)所示,從而形成旋轉磁動勢,在這個磁動勢的作用下,轉子也會隨之旋轉,如果讓開關管反復按上述規律導通,即可使轉子持續旋轉下去,且定子磁動勢總是超前于轉子磁極軸線角度60°-120°之間。其各相繞組導通示意圖如圖2.6所示。 圖2.4 逆變器主電路 圖2.5 無刷直流電動機的運行原理圖
圖2.6 各相繞組導通示意圖 由上述的分析可見,要使無刷直流電動機正確的換相運行,必須知道圖2.5所示的六個轉子關鍵位置,六個轉子關鍵位置即對應著無刷直流電動機的反電動勢的過零點后的30個電角度處。如果是有位置傳感器無刷直流電動機,則可以通過傳感器來直接獲得轉子的六個轉子關鍵位置的信息。目前在無刷直流電動機中常用的位置傳感器主要有以下幾種:①霍爾效應的磁敏式開關元件;②發光二極管和光敏晶體管的光電變換開關元件;③電磁感應式位置傳感元件。[17]如果是無位置傳感器無刷直流電動機,則需要通過其他方法,例如利用無刷直流電動機的三相定子繞組的反電勢,直接或間接的獲得轉子位置信息[19]。
無刷直流電機的控制原理有位置傳感器BLDCM控制原理有位置傳感器的無刷直流電機的電流換向主要是通過位置傳感器測得轉子位置,確定功率開關器件的導通或關閉,其結構原理圖如圖2.7所示,位置傳感器是由六只光電器件P1,P1’,P2,P2’,P3,P3’組成,位置各相差60°,均勻分布在電機的一端,借助安裝在電機軸上的旋轉遮光板或稱截光器的作用,使得從光源依次照射在各個光電器上,并依照某光電器是否被照射到光線來判斷轉子的位置。當某光電器被光照射到時,它所連接的功率開關器件就導通,當某光電器沒有被光照射到時,它所連接的功率開關器件就關閉。 如圖2.7中旋轉遮光板所在位置,光電器P2,P1被光照射到,它所連接的V3,V4導通,其所對應的轉子位置和繞組產生的磁動勢Fa如圖2.5(a)所示;當電機按順時針方向運轉,光電器依次是P1’,P3,P3,P2’,P2’,P1,P1,P3’,P2被光照射到使得它們所對應連接的功率開關器件V4,V5,V5,V6,V6,V1,V1,V2,V2,V3依次導通,其所對應的轉子位置和繞組產生的磁動勢Fa分別如圖2.5(b),圖2.5(c),圖2.5(d),圖2.5(e),圖2.5(f),所示,從而實現無刷直流電機的換向。 圖2.7 有位置傳感器無刷電機的原理圖 無位置傳感器BLDCM控制原理有位置傳感器的無刷直流電機的換向主要靠位置傳感器檢測轉子的位置,確定功率開關器件的導通順序來實現的,由于安裝位置傳感器增大了電機的體積,同時安裝位置傳感器的位置精度要求比較高,帶來安裝的難度因此人們在研究過程中發現,可利用電子線路替代位置傳感器檢測電機在運行過程中產生的反電勢來確定電機轉子的位置,實現換向。從而出現了無位置傳感器的無刷直流電機,其原理框圖如圖2.8所示。 由圖2.5無刷直流電動機的運行原理圖可知,當電機在運行過程中,總有一相繞組沒有導通,此時可以在該相繞組的端口檢測到該繞組產生的反電勢,該反電勢在60°的電角度是連續的,由于電機的規格、制造工藝的差異,導致相同電角度的反電勢值是不同,若要通過檢測反電勢的數值來確定轉子的位置,難度極大,因此必須找到該反電勢與轉子位置的關系,就能確定轉子的位置。從圖2.9中可以看出,反電勢在的電角度過程中總有一次經過坐標軸(過零點),而此點的電角度和下一次換向點的電角度正好相差30°,故可以通過檢測反電勢過零點,再延時30個電角度換向。 以圖2.5為例,假設轉子在圖2.5(a)所示的位置為0°電角度,V3,V4導通,A-A’相、B-B’相有外加電壓,C-C’相的產生的反電勢如圖2.9所示;轉子旋轉30個電角度后和磁動勢Fa相垂直,C-C’相產生的反電勢正好過零點;當轉子再旋轉30個電角度時(即檢測到反電勢過零點再延時30個電角度),到圖2.5(b)所示的位置,此時使V4,V5導通,V3關閉,讓A-A’相、C-C’相有外加電壓,B-B’相沒有外加電壓,可以檢測B-B’相產生的反電勢過過零點再延時30個電角度,讓V5,V6導通,V4關閉,依此類推,可以實現無位置傳感器無刷直流電機的換向。 圖2.8 無位置傳感器的無刷直流電機原理框圖 圖2.9 電機運行時各相產生的反電勢示意圖 無刷直流電機控制技術研究現狀近年來,國內外學者對無位置傳感器無刷直流電機控制技術的研究主要集中在以下幾個方面: 無位置傳感器無刷直流電機的起動無刷直流電機在靜止或低速時反電動勢為零或很小,很難用來判斷電機轉子磁極的位置,因此必須利用其它方法對電機轉子進行定位和起動控制。 1) 三段式起動方法 最常用的起動方法是“三段式”起動方法 [20~23],它分為“轉子定位”、“他控同步加速運行”、“自控同步運行”三個階段。這種方法的關鍵在于“他控同步”階段到“自控同步”階段的切換,這關系到無刷直流電機起動的成敗。針對這一問題,文獻[24~25]提出了“自尋最佳點切換法”。三段式起動過程的成功實現,受電機負載轉矩、外施電壓、加速曲線及轉動慣量等諸多因素影響,具體表現為:在輕載、小慣量負載條件下,三段式起動過程一般能成功實現,但在切換階段往往運行不平穩;當電機重載運行時,切換階段往往會發生失步而導致起動失敗;當“反電動勢信號”與外同步信號相位差過大時,三段式起動可導致電機失步,即使能避免失步,也必然導致切換時電機轉矩較小,易受干擾;通過優化加速曲線,三段式起動能保證電機順利起動,但是對不同電機、不同負載,所對應的優化加速曲線不一樣,這樣導致通用性不強,控制過程也比較繁瑣,涉及到的數據多,實現起來很不方便。 2) 預定位起動法 預定位起動方法也分為“轉子定位”、“他控同步加速運行”、“自控同步運行”三個階段。在起動階段,按照所需的轉向依次改變逆變器功率器件的觸發組合狀態,同時用“端電壓法”檢測各觸發組合狀態所對應的開路相的反電勢過零點,并通過提高PWM占空比逐漸提高電機的外施電壓。各觸發組合狀態的持續時間最大值保持不變,設為T0,與自控式狀態一樣,用計數器進行計時,換流時刻固定在T0/ 2 處。換流后對開路相的反電動勢過零點進行檢測,只要檢測到開路相的反電動勢過零點,計數器就重新復位,到T0/ 2 后再換流,這樣依次進行,最后,如果連續N次檢測到開路相的反電動勢過零點,就切換到自控式狀態。這種方法的優點是:繞組中具有時序固定不變的反電動勢信號,從而可以保證電機有一個確定的轉向,實現電機的正確起動,并且起動可靠,實現簡單、方便,對于任意轉子初始位置角,電機都能可靠實現預定位,保證電機從零速度起動并快速切換到無傳感器閉環方式運行。缺點是:調試中T0和PWM的占空比的選擇,以及對加速過程中占空比的變化速度的控制比較復雜,另外對切換時間要求較嚴,當電機慣量不同或帶一定負載起動時切換時間需要調整,否則可能造成起動失敗或電機反轉現象,因此一般適用于電機空載起動[23]。 3) 脈沖檢測起動法 這是一種采用檢測脈沖進行轉子定位的起動方法。盡管它也分為轉子定位、加速與切換三個過程,但定位與加速階段與三段式起動的方法是不同。轉子定位時給電機的定子繞組按一定的規則施加6個短時檢測脈沖,然后成對比較相應的脈沖電流峰值,通過檢查預先定義的轉子位置代碼表,得出轉子位置及隨后加速時將要通電的相序。加速過程中,每次當加速脈沖結束后,再一次發出6個檢測脈沖確定轉子的位置,然后再確定將要通電的相序,不斷重復檢測—加速—檢測—加速的過程,直到電機轉速高到可以用反電動勢法確定轉子的位置時為止。這種起動方式的優點是轉子定位時能保證在起動時不會產生振蕩,加速時控制簡單、易于實現。缺點是這種起動方法是建立在鐵心電感磁飽和基礎之上的,如果無刷直流電機的定子繞組不是鐵心線圈,比如是空心線圈或電機轉子本身是一個標準的圓柱狀永磁體,則該方法的可靠性將降低。因為使用這種方法很難準確地區分出6個電流脈沖峰值的大小,從而無法實現轉子的定位,也無從實現電機的可靠起動[23~26]。 4) 外部硬件電路起動方法 文獻[27]提出了一種硬件電路起動的方法,這是一種升頻升壓的起動方式。起動時也能獲得預定的起動效果,但附加的外部起動電路加大了電機的尺寸,對于較多應用于微型電機中的無刷直流電機是個不小的障礙。 無位置傳感器無刷直流電機轉子位置的檢測無位置傳感器的無刷直流電機的位置估計方法可以從5個方面來論述:反電動勢法、電流法、狀態觀測器法、人工智能法和磁鏈法。前3種方法的研究相對比較成熟,且都已得到一定程度的應用,而用人工智能方法和磁鏈函數法獲得轉子位置的研究則剛剛處于起步階段[28]。 1) 反電動勢法 檢測反電動勢過零點或利用反電動勢直接檢測換相點的方法是最常用的位置檢測方法。其實現拓撲電路多采用“端電壓法”和“相電壓法”,即在一定的調制方式下利用無刷直流電機的端電壓或相電壓檢測反電動勢過零點或換相點來實施換相控制。反電動勢過零點方法又分為直接反電動勢法、反電動勢積分法和定子三次諧波法等幾種。直接反電動勢法是通過測量三相繞組的端點電位及與中性點間的電壓來實現的,當某端點電位與中性點電位相等時,則認為此刻該相反電動勢過零,再延時30個電角度去觸發功率開關管進行換向。反電動勢積分法是根據不導通相反電動勢的積分信號來獲取轉子位置信息的。它是從不導通相反電動勢過零時開始積分,對應于換向瞬時設置一個門限,用來截止積分信號。反電動勢和轉速之間存在線性關系,反電動勢沿斜線變化的斜率和轉子速度密切相關,在整個速度運行范圍內,積分器的門限值應保持不變,一旦達到積分門限,復位信號立即將積分器置零,為了避免積分器由電機啟動開始積分,復位信號應保持足夠長的時間來保證在電流降為零之后起動積分器。這種方法對于開關噪聲不敏感,積分門限可以根據轉速信號自動調節。無刷直流電機的反電動勢波形為梯形波,它包含了3次諧波分量。對此分量進行積分便得到轉子磁通的3次諧波信號,而轉子磁鏈的3次諧波分量的過零點就對應著無刷直流電機的換向時刻,因此可以根據這個過零點信號進行換向控制[29~30]。 2) 電流法 由于端電壓檢測受速度變化、電機換向、低通濾波以及定子電阻電感存在的干擾,使得依賴端電壓的測量來估算轉子位置信號的準確性和精確性都受到不同程度的影響。而這些因素對電流的影響相對較小,與之對應出現了根據電機相電流信號來估計轉子位置信息,進而控制無刷直流電機的換向方法,如直接電流檢測法、電流變化率檢測法和續流二級管法等。這種控制方法的精確性受處理器速度和功率管開關頻率的限制,容易造成電流和反電動勢不同相位運行,導致電機故障[31]。 3) 狀態觀測器法 用卡爾曼濾波器估計轉子位置和轉子速度的方法最早是由 M.Schroedl于1988年提出的。根據卡爾曼狀態方程,應用電機測量電壓和測量電流就可得到轉子位置的初步估測。根據這種方法來預測轉子位置和轉子速度時,其運行范圍主要受電壓、電流傳感器的測量精度來確定。 4) 人工智能方法 人工智能技術具備一定的智能行為,能夠產生合適的求解問題的響應。隨著人工智能技術的蓬勃發展和研究的深入,很多學者已經嘗試著將人工智能的方法應用于電機控制中,神經網絡是人工智能控制的一個方向,它具有很強的自適應性和自學習能力,因此將神經網絡技術引入到無刷直流電機控制中進行轉速估算和位置估算是很自然的一步。用這種方法預測轉子位置時,運行范圍主要受電壓和電流的檢測精度影響。 5) 磁鏈法 文獻[32]提出建立不依賴于轉子速度但是和轉子磁鏈直接相關的磁鏈函數來獲得轉子位置的信號。該函數在每個周期內對應6個峰值,通過檢測峰值來獲得轉子的換相信號,可保證電機在 470~35000r/min范圍內有效運行。文獻[33]又介紹了一種新的檢測轉子位置的方法,它是在永磁轉子的表面粘貼一些非磁性材料,利用定子繞組高頻開關工作時非磁性材料的渦流效應,使開路相電壓的大小隨轉子位置角發生變化,從而可通過檢測開路相電壓來判斷轉子位置。這種方法完全排除了使用反電勢,因而能保證起動和低速運行時可靠地工作。 無刷直流電機轉矩脈動抑制對方波型無刷直流電動機換相轉矩脈動的研究,主要集中在控制換相期間三相電流的變化規律。針對無刷直流電機轉矩脈動的問題,國內外學者也都紛紛提出了不同的抑制措施。文獻[34]介紹的重疊換相法和PWM斬波控制法是通過改變換相時刻繞組的導通規律來調整電流的上升和下降斜率,從而達到轉矩脈動抑制的目的。文獻[35~38]研究了4倍的反電動勢電壓和母線電壓的比值與轉矩脈動的規律,研究結果顯示,在換相時采用的占空比為反電動勢電壓和母線電壓比值的4倍時就可以保證非換相的電流保持不變,從而減少轉矩脈動,但是這種方法對占空比的要求比較嚴格,難以保證在整個調速范圍內維持這種關系。為此,文獻[39]提出了一種新的換相電流預測控制方法,該方法是通過使用前一次的電流值和占空比來預測下一時刻的電流值,再采用合適的方法調節電流達到減少轉矩紋波的目的,但是這種方法計算繁瑣,給軟件設計工作帶來不便。對于換相后不導通相的電流波動規律,文獻[40]則做了詳細地分析并給出了仿真波形加以驗證,但并沒有給出實測波形,也提出電流波動抑制的措施。 無刷直流電機的控制策略問題永磁無刷直流電動機是典型的機電一體化產品。傳統的控制策略是采用經典的 PID 控制,而采用先進的控制策略則可以進一步提高系統的整體性能。對此,國內外文獻中也提出了一系列新的控制策略,如模糊 PID 控制策略[41],自適應的模糊神經控制策略[42],模型參考自適應控制策略[43~44],單神經元控制策略[45~46]。總之,先進的控制策略主要集中在非線性建模、自學習方法的選擇及局部控制等方面,其實現必然要通過微機或高性能的浮點處理器,成本比較高。
無刷直流電機的運行特性無刷直流電機的運行特性是指電機在起動、正常工作和調速等情況下,電機外部各可測物理量之間的關系。 電機是一種輸入電功率、輸出機械功率的原動機械。因此,我們最關心的是它的轉矩、轉速,以及轉矩和轉速隨輸入電壓、電流、負載變化而變化的規律。據此,電機的運行特性可分為起動特性、工作特性、機械特性和調速特性。 討論各種電機的運行特性時,一般都從轉速公式、電動勢平衡方程式、轉矩公式和轉矩平衡方程式出發。 對于無刷直流電機,其電動勢平衡方程式為  (2.1) 式中,  是電源電壓(V);  是電樞繞組反電動勢(V);  是平均電樞電流(A);  是電樞繞組的平均電阻(Ω);  是功率晶體管飽和管壓降(V);對于橋式換相線路為  。 對于不同的電樞繞組形式和換相線路形式,電樞繞組反電動勢有不同的等效表達式,但不論哪一種繞組和線路結構,均可表示為  (2.2) 式中,  是電機轉速(r/min);  是反電動勢系數(V/r/min)。 由式(2.1)、式(2.2)可知:  (2.3) 在轉速不變時,轉矩平衡方程式為  (2.4) 式中,  是輸出轉矩(N·m),  是摩擦轉矩(N·m),  是電磁轉矩(N·m)。這里,  (2.5)  為轉矩系數(N·m/A)。 在轉速變化的情況下,則  (2.6) 式中,  是轉動部分(包括電機本體轉子及負載)的轉動慣量(kg·m2);  是轉子的機械角速度(rad/s)。 下面從這些基本公式出發,來討論無刷直流電機的各種運行特性。 起動特性由式(2.1)~式(2.6)可知,電機在起動時,由于反電動勢為零,因此電樞電流(即起動電流)為  (2.7) 其值可為正常工作電樞電流的幾倍到十幾倍,所以起動電磁轉矩很大,電機可以很快起動,并能帶負載直接起動。隨著轉子的加速,反電動勢  增加,電磁轉矩降低,加速轉矩也減小,最后進入正常工作狀態。在空載起動時,電樞電流和轉速的變化如圖2.10所示。
圖2.10 空載起動時電樞電流和轉速的變化 需要指出的是,無刷直流電機的起動轉矩,除了與起動電流有關外,還與轉子相對于電樞繞組的位置有關。轉子位置不同時,起動轉矩是不同的,這是因為上面所討論的關系式都是平均值間的關系。而實際上,由于電樞繞組產生的磁場是跳躍的,當轉子所處位置不同時,轉子磁場與電樞磁場之間的夾角在變化,因此所產生的電磁轉矩也是變化的。這個變化量要比有刷直流電機因電刷接觸壓降和電刷所短路元件數的變化而造成的起動轉矩的變化大得多。 工作特性在無刷直流電機中,工作特性主要包括如下幾方面的關系:電樞電流和電機效率與輸出轉矩之間的關系。 1)電樞電流和輸出轉矩的關系 由式(2.5)可知,電樞電流隨著輸出轉矩的增加而增加,如圖2.11所示。 2)電機效率和輸出轉矩之間的關系 這里只考察電機部分的效率與輸出轉矩的關系。電機效率  (2.8) 式中,  為電機的總損耗;  為電機的輸入功率,  ;  為輸出功率,  。  ,即沒有輸出轉矩時,電機的效率為零。隨著輸出轉矩的增加,電機的效率增加。當電機的可變損耗等于不變損耗時,電機效率達到最大值。隨后,效率又開始下降,如圖2.10所示。
圖2.11 負載和效率特性曲線 機械特性和調速特性機械特性是指外加電源電壓恒定時,電機轉速和電磁轉矩之間的關系。由式(2.1)~式(2.3)可知  (2.9)  (2.10) 當不計  的變化和電樞反應的影響時,式(2.9)等號右邊的第一項是常數,所以電磁轉矩隨轉速的減小而線性增加,如圖2.12所示。 當轉速為零時,即為起動電磁轉矩。當式(2.10)等號右邊兩項相等時,電磁轉矩為零,此時的轉速即為理想空載轉速。實際上,由于電機損耗中可變部分及電樞反應的影響,輸出轉矩會偏離直線變化。 由式(2.10)可知,在同一轉速下改變電源電壓,可以容易地改變輸出轉矩或在同一負載下改變轉速。所以,無刷直流電機的調速性能很好,可以通過改變電源電壓實習平滑調速,但此時電子換相線路及其他控制線路的電源電壓仍應保持不變。總之,無刷直流電機的運行特性與有刷直流電機極為相似,有著良好的伺服控制性能[47]。 圖2.12 機械特性曲線 無刷直流電動機的數學模型永磁無刷直流電動機,定子三相交流繞組,轉子磁鋼布置采用徑向結構,釹鐵硼永磁體安裝在轉子表面,這種稀土永磁材料其相對導磁率近于空氣,在這種表面安裝磁極的轉子結構中,永磁體可以看作氣隙的一部分,無凸極效應的影響。在電機模型的建立時,認為電機的氣隙是均勻的[48]。 假設: 1)磁路不飽和。 2)忽略高次空間磁勢諧波的影響。 3)忽略磁滯、渦流的影響。 記兩種導通模式總的持續時間即 1/6周期為1個導通區間,取轉子磁場在1個導通區間內的中心位置為  的位置。 切換角  定義為:通電線圈的幾何中心線與  坐標軸之間的夾角。 永磁體的磁通鏈在BLDCM的運行中可以當作常數  ,定子磁鏈方程為:  (2.11) 定子電壓方程式為:  (2.12) 據假定有: 式中,  、  、  為定子三相磁通鏈,  、  、  為定子電流,  為定子繞組自感,  為定子繞組互感,  為轉子永磁體磁通鏈,  為轉子位置角,即轉子  軸和A相軸線的夾角。注意到任何時候都有: 把電流對時間的導數轉換為電流對角度的導數,即  可得電壓方程式:  (2.13) 記:  (2.14) 電磁轉矩為:  (2.15) 記  為直流電源電壓,  為電源輸出電流,則電機輸入功率為  ;電磁功率  。 利用電機中電參量的單相半波對稱性和三相的對稱性,可以把無刷直流電動機的穩態運行求解過程歸結到一個導通區間內求解,現只考慮  區間內的情況。假定在  時,電機C,B兩相導通,換相為A,B兩相導通。 在BLDCM的逆變器線路中,每個開關元件實際上都并有續流二極管(如圖2.4所示),在換相時,線圈中的磁場能量通過二極管釋放。由于續流二極管的接入,使得換相并不是在瞬間完成,導致了換流重疊角的存在,這也就是換流重疊角產生的原因。在從C、B兩相通電轉換為A、B兩相通電的瞬間,C相內尚有一點的電流,它必然要經過線圈C、線圈B、T6、VD2釋放,直到流過二極管的電流為零,此時  。 在第一種導通模式,由于二極管的續流作用,此時A、B、C三相繞組都有電流通過(如圖2.13所示),此時電機端部約束條件是: 圖2.13 換流模式 又因為  ,所以有: 求得數學模型一為  :  (2.16) 在第二種導通模式(如圖2.14所示),只是A、B兩相通電時,電機端部約束條件: 圖2.14 單流模式 求得數學模型二為  :  (2.17)
1
西京學院本科畢業論文(設計)
電動自行車控制器方案設計
電動自行車控制系統的核心是電動自行車控制器,它不僅要完成外部信號的處理,無刷直流電動機驅動信號的給定,更重要的是完成整個控制系統的控制策略。 一個完備的電動自行車控制系統,應主要報告電源系統、轉把、剎把、安全系統、照明系統、信號系統、動力系統等。電源系統主要滿足整個系統對能量的需求,轉把、剎把是用戶與控制器交流的橋梁,安全系統實現了電動自行車的防盜功能,照明系統在可見度較低時給整個電動自行車照明,信號系統一方面實現了用戶與控制器的交流,另一方面也給電動自行車的安全提供了保障,動力系統為電動自行車的能量轉換部分,它將電能轉換為機械能,為電動自行車提供了動力。控制系統的原理框圖如圖3.1所示。  圖3.1 控制系統原理框圖
各功能系統工作原理介紹調速轉把和制動剎把工作原理1) 調速轉把工作原理 調速轉把是控制電動自行車車速的基本器件,是控制器的調速指令信號輸入部件。控制器收到來自調速轉把得輸入信號后,根據輸入信號的參數控制電機的輸出功率,從而實現電動自行車的調速功能。調速轉把實物圖如下圖圖3.2所示。 霍爾調速轉把輸出電壓的大小取決于霍爾元件周圍的磁場強度和極性。霍爾元件固定安裝在右把手座中,在可轉動的轉柄中固定安裝永磁鋼,轉動轉把時,手柄上的磁鐵會跟著轉動,這樣霍爾元件周圍的磁場強度和極性就發生了改變,霍爾元件輸出的電壓隨著磁場的改變而發生改變。目前市場上大部分轉把輸出的電壓信號為1.0-4.2V之間。 圖3.2 調速轉把實物圖 2)制動剎把工作原理 制動剎把在實施車輛制動時,首先給控制器一個制動信號,停止向電機提供驅動力。制動信號由機械觸點開關或霍爾開關電路產生。當操作剎車制動手柄時,手柄動作后制動信號送到控制器中,控制器檢測到剎車信號后,無論調速轉把處于什么狀態都會自動斷開電機電源,使電機停止動力輸出。 電子式轉動剎把安裝在把座上的位置傳感器是一個霍爾元件,剎車手柄正對霍爾元件處有一塊小磁鋼。正常騎行時,磁鋼靠近元件,霍爾元件無輸出。當捏剎把手柄時,手柄移位,小磁鋼遠離霍爾元件,霍爾元件將磁鋼位置變化的轉換信號傳給控制器,切斷電機電源供給,達到電機制動目的。 信號系統工作原理電動自行車的信號系統是電動自行車狀態的指示部件,是反應車輛運動狀態、保證車輛安全行駛的主要裝置。它使騎行者能正確、有效地對車輛行駛適時地進行控制,提高了電動自行車的安全使用性能,起到提醒、提示騎行者、行人及其他車輛的作用,保證了騎行者及他人的安全。信號系統主要包括喇叭、閃光器、轉向燈、制動燈和儀表及控制開關等。 喇叭的作用是發出聲音,以引起行人和其他行駛車輛的注意,確保行車安全。它是將電能轉化為聲能的裝置。其工作原理是:打開電源開關,按下喇叭按鈕時,電流經蓄電池正極流向電源開關,先經過喇叭,再經過喇叭按鈕到達蓄電池負極,構成閉合回路,使喇叭發出聲響;松開喇叭按鈕后,按鈕接觸點在回位彈簧的作用下彈回,電路中斷,喇叭停止工作。喇叭電路原理圖如圖3.3所示。 圖3.3 喇叭控制電路 閃光器也叫閃爍器,串聯在轉向燈電路中,當有負載電流通過時,閃光器內部的RC振蕩電路開始控制,使蓄電池供電回路中的電流時大時小,而使轉向燈發出醒目的明暗相間的閃光信號,引起周圍的車輛和行人的注意。 圖3.4為電子式閃光器的電路圖。閃光器標有字母L的接線端子與轉向燈相連、標有字母B的接線端子與電源端相連。在線路連接好的情況下,當轉向開關接通左轉向燈或右轉向燈時,電流經電阻R1向電容C反方向充電,使a、b兩端電壓逐漸上升。當a端具有一定的正向電壓時,三極管VT1導通,VT2也因得到一定的負壓而開始工作。其電流流向為蓄電池正極→電源開關→閃光器B端→VT2發射極→VT1集電極→閃光器L端→轉向開關→轉向燈→蓄電池負極。由于電流較大,所以轉向燈發出較亮的光。此時VT2導通,電容C開始放電,使a端電壓下降,當降低到一定電位時,VT1截止,VT2不導通,這時轉向燈熄滅,又回到起始狀態。如此反復,轉向燈的電流時大時小,就使轉向燈發出一明一暗的閃光。 圖3.4 電子式閃光器電路圖 轉向燈電路由閃光器、轉向開關、轉向燈和儀表的轉向指示燈等組成,其工作原理如圖3.5所示。 圖3.5轉向信號系統工作原理圖 打開電源開關,當轉向開關處于下面位置,閃光器觸點閉合時,電流由蓄電池正極到電源開關,閃光器,再到轉向開關,分流到前左轉向燈、后左轉向燈和儀表左轉指示燈后,再經負極連線流回蓄電池構成閉合回路,使左側轉向燈閃亮。 當轉向開關處于中間位置時,整個轉向燈電路因開關斷路而停止工作。 當轉向燈開關處于上面位置時,工作原理與轉向開關處于下面位置時相同,使右側轉向燈閃亮。 照明系統工作原理照明系統為電動自行車夜間行駛提供路面和儀表照明燈光,保證夜間騎行安全。照明系統主要由前照燈、尾燈和儀表照明燈及控制開關等組成。 明系統由蓄電池供電、通過電源開關、照明開關接通前照燈、后尾燈和儀表燈,有些電動自行車還帶有示廓燈等。其電路原理圖如圖3.6所示。 圖3.6 照明電路原理圖 照明系統的工作原理是:打開電源開關和照明開關,前照燈、儀表燈和后尾燈接通電源被點亮;關閉電源開關或照明開關,前照燈、儀表燈和后尾燈熄滅[49~52]。
電動自行車控制器的功能要求1)調速功能。控制器根據輸入的調速信號,對電機的轉速進行平穩、可靠的調節,使電動自行車實現無極調速。 2)零啟動。啟動時不用腳踩。 3)堵轉保護。當電機出現堵轉超過一定時間之后,控制器會自動停止工作。 4)制動斷電功能。在輸入控制器的剎車信號電位變化時,開關電源能迅速反應,切斷輸入電流,改變電機的通電工作狀態,實現整車的順利制動。 5)過電壓和欠電壓保護功能。當外界輸入電壓高于或低于控制器的工作電壓時,控制器會發出報警,停上進行工作,保護控制器。 6)過電流保護功能。當工作電流達到系統設定的最大值時,控制器將限制系統電流的繼續增大令其維持不變,以保護蓄電池、電機和控制器本身不受到損傷。 7)防飛車保護功能。當調速轉把信號與電源線路出現短路或調速轉把負極線斷路時,就會誤給控制器輸入調速信號,使控制器給電機加電造成飛車,控制器防飛車功能可以避免飛車事故的發生。 8)欠壓回升保護功能。當系統進入欠壓保護、停止工作后,蓄電池的端電壓會迅速回升到高于欠壓點。此時控制器并不立即退出欠壓保護狀態開始工作,而是電源電壓必須高于欠壓點一定幅度后,控制器才能恢復正,退出保護狀態。 9)巡航定速功能。轉動轉把進行調速時,當轉把固定在某個位置超過一定的時間,電動自行車便會以這個速度進行勻速行駛,直到再次轉動轉把,消除此次巡航。 10)腳踏助力功能。通過測量人腳踏信號和電系統信號的變化,來提供相應電助力的一種腳踏助力方案。這樣為用戶提供了一種省電騎行模式。 11)柔性EABS剎車功能。柔性EABS剎車是相對于機械剎車來說的,它是通過給控制器電信號實現剎車功能。 12)反充電與反充電指示功能。這是一種能量回收功能,在剎車制動時將原由通過制定器消耗的功能,以電機發電的形式經過控制器構成回路給蓄電池充電,以電能的形式最大限度地回收,并對工作狀態進行顯示。 13)限速功能。根據國家對電動自行車最高車速不大于20km/h的要求,限速功能是通過限速電位器的調節,使電動自行車不超過此速度。 電動自行車控制器總統方案設計電動自行車控制器是電動自行車四大部件之一的驅動控制部件,它是電動自行車的大腦,是神經中樞,遇到各種情況會“作出反應”,是電動自行車能量管理與各種控制信號處理的核心部件。它控制著電機的轉速、具有欠壓、限流或過流保護和制動斷電等基本功能,對整車的電氣系統進行有效的保護,是電動自行車電氣系統的核心。智能型控制器還具有多種騎行模式和電氣控制部分自檢、故障代碼顯示等功能。 一個完備的電動自行車控制器系統,其硬件主要包括:電源電路,MOSFET驅動電路,電流檢測及保護電路,調速轉把輸入信號電路,轉子位置判斷信號采集電路,低、高電平剎車電路以及單片機和外圍電路等。 電動自行車控制器的工作原理是利用電子設備替代了傳統電刷控制電機線圈的電流方向,同時根據電機內傳感器發出的信號,確定換向的時間和順序,來改變點電機的轉速和方向。圖3.7為電動自行車控制器的原理框圖。 圖3.7電動自行車控制器原理框圖 電動自行車控制器的控制電路主要有:1內部穩壓電路;2位置信號檢測電路電路;3剎車電路;4 A、B、C三相預驅動電路;5三相橋式功率場效應晶體開關電路;6欠壓保護電路;7限流保護電路等。 內部穩壓電源電路提供控制器內部電子元器件的工作電壓。 位置信號檢測放大電路首先對無刷直流電機霍爾位置傳感器產生的位置信號進行放大、整形、形成具有一定時序的三相邏輯信號。當改變三相信號時序時,就可以改變電機轉向。放大、整形后的位置信號分別送到三相上臂驅動信號生成電路和三相下臂驅動信號生成電路中,產生三相橋式上臂驅動信號和三相橋式下臂驅動信號。 微處理器根據位置信號檢測放大電路提供的無刷直流電機霍爾信號,對上3路和下3路的MOS管驅動電路給出有選擇的打開與關閉信號,以完成對電機的換相。同時,根據調速轉把輸入電壓的大小,將相應脈沖寬度的載波信號與下3路MOS管導通信號混合,以達到控制電機速度的目的。 MOS管驅動電路將PWM信號整形放大、電平移動,達到上、下臂MOS管輸出所需的驅動電平,并提供給MOS管,同時也減少MOS管輸出電路對控制電路的影響。另外,對于上3路的3個MOS管來說,它們的驅動要求高于蓄電池供電電壓,因此,MOS管驅動電路還要具有升壓功能,將上3路的MOS管導通信號變成高于蓄電池電壓的超高方波信號。三相MOS管輸出電路由6只MOS管接成三相橋式全控電子開關,構成逆變輸出電路,完成電子換相。 剎車斷電電路是通過將制動剎把產生的剎車信號送到控制器中,加到停止引腳上,通過邏輯電路處理,關斷上、下臂邏輯信號輸出,實現剎車斷電功能。 欠壓保護電路在蓄電池電壓降低到控制設定值后,停止PWM信號輸出,以保護蓄電池不在低電壓的情況下放電損傷。 限流保護電路是對控制器輸出的最大電流進行限制,以保護蓄電池、控制器、電機等不會出現超出允許范圍的大電流。 控制器介紹及選擇2009年3月4日,意法半導體發布了針對工業應用和消費電子開發的微控制器STM8S系列產品。 STM8S平臺打造8位微控制器的全新世代,高達20 MIPS的CPU性能和2.95-5.5V 的電壓范圍,有助于現有的8位系統向電壓更低的電源過渡。新產品嵌入的130nm非易失性存儲器是當前8位微控制器中最先進的存儲技術之一,并提供真正的EEPROM數據寫入操作,可達30萬次擦寫極限。在家用電器、加熱通風空調系統、工業自動化、電動工具、個人護理設備和電源控制管理系統等各種產品設備中,新產品配備的豐富外設可支持精確控制和監視功能。功能包括10位模數轉換器,最多有16條通道,轉換用時小于3微秒;先進的16位控制定時器可用于馬達控制、捕獲/比較和PWM功能。其它外設包括一個CAN2.0B接口、兩個U(S)ART接口、一個I2C端口、一個SPI端口。 STM8S平臺的外設定義與STM32系列32位微控制器相同。外設共用性有助于提高不同產品間的兼容性,讓設計靈活有彈性。應用代碼可移植到STM32平臺上,獲得更高的性能。除設計靈活外,STM8S的組件和封裝在引腳上完全兼容,讓開發人員得到更大的自由空間,以便優化引腳數量和外設性能。引腳兼容還有益于平臺化設計決策,產品平臺化可節省上市時間,簡化產品升級過程。 ①STM8S主要特點 1)速度達20 MIPS的高性能內核 2)抗干擾能力強,品質安全可靠 3)領先的130納米制造工藝,優異的性價比 4)程序空間從4K到128K, 芯片選擇從20腳到80腳,寬范圍產品系列 6)開發容易,擁有本地化工具支持 ②STM8S主要應用 1)汽車電子:傳感器、致動器、安全系統微控制器、DC馬達、車身控制、汽車收音機、LIN節點、加熱/通風空調 2)工業應用:家電、家庭自動化、馬達控制、空調、感應、計量儀表、不間斷電源、安全 3)消費電子:電源、小家電、音響、玩具、銷售點終端機、前面板、電視、監視設備 4)醫療設備:個人護理產品、健身器材、便攜護理設備、醫院護理設備、血壓測量、血糖測量、監控、緊急求助 STM8S903K3作為一款功能齊全、接口豐富,性價比高的處理器,為許多嵌入式控制應用提供了靈活而低成本的方案。而且STM8903K3自動6路互補PWM輸出端口,在電機控制中不需要外接PWM波形發射器,減小了外圍電路的元器件個數,增加了系統的可靠性,降低了控制器的成本,非常適合電動自行車控制器的開發。 逆變電路功率器件介紹及選擇首先系統中逆變電路的開關頻率很高,功率開關元件不宜采用晶閘管,而雙極型大功率晶體管雖然在大電流導通時其導通電阻很小,但卻要求較大的驅動功率,其開關速度也要比MOSFET、IGBT低。MOSFET是一種多數載流子器件,無少數載流子的存儲效應,因此開關速度快,而且MOSFET是一種理想的電壓控制器件,驅動電路較為簡單。MOSFET沒有二次擊穿現象,工作安全區大,因此MOSFET特別適于高頻變流裝置,只是在高壓大電流的情況下導通電阻較大,器件發熱稍大。所以,MOSFET適合在本文涉及的低功率高頻率能量變換裝置中使用。 因為MOSFET特別適于高頻變流裝置,而且對IGBT和IPM而言價格相對較低,所以本系統的逆變電路功率器件選擇MOSFET。 但是MOSFET作為功率器件使用時,它的柵極驅動必須滿足: 1)柵極電壓高于漏極電壓10-15V,作為高壓側開關,柵極電壓高于母線電壓,且為系統最高電壓; 2)柵極電壓具有浮動能力,隨源極電位的變化而變化; 3)驅動電路造成的功率損耗在總的功率中所占比重不大。 所以在硬件設計的時候必須考慮到MOSFET電機轉動引入的MOSFET源極電位浮動的問題,保證MOSFET的準確動作。 無刷直流電機選擇本系統使用的無刷直流電機為深圳深圳市鼎拓達機電有限公司生產的型號為42BL65-240的無刷直流電機,產品參數如下: 表3.1 42BL65-240電機參數
控制器策略選擇系統控制策略的選擇影響著整個系統的運行,選擇一個好的控制策略對系統的穩定性、可靠性等特性至關重要。下面就從無刷直流電機無感起動策略、調壓策略、換相策略及調速算法來介紹本系統的策略選擇。 無感起動策略針對實現無刷直流電機無位置傳感器零初始速度起動的問題,人們提出了各 種方案,主要有:三段式起動法、升頻升壓同步起動法和檢測脈沖轉子定位起動 法等。因“三段式”起動法比較簡單,所以控制器的無感起動策略就選擇“三段式”起動法。下面就對“三段式”起動法進行簡單介紹與分析。 “三段式”起動法按照“他控變頻”式同步電動機從靜止開始加速旋轉,直至轉速足夠大,再切換至無刷電動機“自控變頻”式運行狀態,以實現電機起動。 這個過程包括轉子預定位、加速和運行狀態切換三個階段。在起動初始階段,使電機有一個確定的通電狀態,轉子旋轉到一個確定的初始位置,然后改變電機的通電狀態,在電磁力矩的作用下轉子向下一個確定位置轉動,在轉動加速的過程中把電機切換到無位置傳感器的運行狀態,進而利用反電勢法檢測轉子位置,實現“自控變頻”運行。 該方法簡單可靠,對于任意轉子初始位置角,都能可靠實現預定位,保證電機從“零速度”起動并快速切換到無位置傳感器閉環方式運行。但是此法的成功實現,受電機負載轉矩、外施電壓、加速曲線及轉動慣量等諸多因素影響。在輕載、小慣量條件下,三段式起動過程一般能成功實現;當電機處于重載狀態時,外同步信號與產生的反電勢信號相位差過大,可能導致電機失步,起動失敗。 通過優化加速曲線能保證電機順利起動,但是對不同電機、不同負載,所對應的 優化加速曲線不一樣,這樣導致該方案通用性不強,控制過程比較繁瑣,涉及數據多等缺點。尤其是在調試中 PWM 的占空比的選擇,以及對加速過程中占空比的變化速度的控制比較復雜,很難達到理想效果 [53]。 轉子位置檢測策略本系統所使用無刷直流電機自帶位置傳感器,所以可以通過位置傳感器直接獲得轉子位置信號。但是考慮到位置傳感器的使用壽命問題,本系統還采用了一種無傳感的方式檢測策略。 本系統所采用的無刷直流電機的無傳感轉子位置檢測方法為反電動勢端電壓檢測法。其實質是通過檢測定子開路相的感應電動勢過零點來間接得到轉子位置信號。然而,由于定子繞組的感應電動勢難以直接測量,所以實際上一般使用的是該方法的變通形式“端電壓法”。對于本系統采用的二相導通六狀態控制方式,通過檢測端電壓就能檢測到反電動勢過零點。因為逆變器每一時刻都只有兩相導通,另一相處于斷開狀態,此時該斷開相繞組的相電壓就是反電動勢。在本系統的反電動勢過零點檢測電路中,重構了一個電機星點,其電壓和電機星點電壓近似。通過比較器不停地比較星點電壓和繞組端電壓,就可以得到一個電平的跳變信號,此跳變信號便是繞組反電動勢的過零信號。當檢測到繞組反電動勢的過零信號后,再延遲30個電角度,便可觸發電機換相。 無刷直流電機的換相控制策略由圖2.9可知,無刷直流電機反電勢為正負半波皆有120個電角度平臺的梯形波,三相間相差為120個電角度;3個位置傳感器(電角度間距120個電角度傳感器)相差為120個電角度,其上升或下降沿位置即對應定子電樞繞組導通時刻。如此,通過對傳感器信號檢測,經由功率MOSFET功率開關器件構成的電子換相實現換相,使電樞繞組依次通電,從而在定子上產生跳躍式的旋轉磁場,驅動永磁轉子旋轉。隨著轉子的旋轉,位置傳感器不斷輸出信號,電樞繞組的通電狀態隨之改變,使得在某一磁極下導體的電流方向始終保持不變,這就是無刷直流電機的無接觸換相過程。 如使用二二導通方式是每次使2個開關管同時導通。依據圖2.4所示開關管命名,其導通順序有:T1、T4→T1、T6→T3、T6→T3、T2→T5、T2→T5、T4,共有6種導通狀態,每隔60個電角度改變一次導通狀態,每360個電角度需要換相6次,每次改變僅切換一個開關管,每個開關管連續導通120個電角度。所以,本系統采用6步換相的方式(即兩相六狀態方式)控制電機旋轉。 無刷直流電機的調壓策略對于無刷電機,其電動勢的平衡方程為:  (3.1) 式中,  為逆變電壓(V);E為電樞繞組的反電勢(V);  為繞組電阻(Ω);  流過繞組電流(A);  開關管飽和管壓降。 電樞繞組反電勢和轉速的關系為:  (3.2) 式中,  為電機轉速(rpm);  為反電動勢系數(V/rpm)。 由式(3.1)、(3.2)可知: (3.3)
可見,無刷直流電機與直流電機類似的調速特性,其調速方法有:a調壓調速;b弱磁調速兩種。 由于調壓調速和普通直流電機調速方法相似,而且相對比較容易實現,所以本系統選擇調壓調速的策略控制電機轉速。 無刷直流電機調壓調速方案有: 1)采用晶閘管移相或DC-DC變換電路調節  實現調速; 2)采用PWM技術通過占空比調節三相全控橋輸出電壓實現,PWM方式具有電路簡單、元件數量少等優點,但轉矩脈動較大,見圖3.8。 在無刷直流電機PWM調速中,為形成幅值恒定的旋轉磁場,要求電樞繞組電流恒定,其調制波為一直流電平,出于降低開關損耗的目的,可采取一個開關管工作于PWM狀態進行調壓,而另一個處于常通狀態,如圖3.9所示。 圖3.8 DC-DC和PWM模式對比 圖3.9 BLDCM幾種PWM調壓方法 圖中,a)和b)為上橋臂或下橋臂3個開關管進行PWM調制,另一個配對導通的開關管處于導通狀態。以0~60°區間T1、T4導通為例,在HPWM-LON中,T1進行PWM調制(即調壓),T4為常通,而HON-LPWM中T1、T4的工作模式剛好與此相反,T1常通,T4執行PWM調壓。此模式下逆變器輸出電壓MA波形見圖3.10 a)。 PWM-ON-PWM模式中,0~360°區間,任意時刻僅一個開關管執行PWM調壓;以0~120°區間為例,T1先進入30°的PWM模式,此時T4導通;其后60°T1則處于導通狀態,期間T4、T6先后進入PWM模式;最后30°T1再次進入PWM模式,T6處于導通狀態。PWM-ON-PWM模式6個開關管的工作模式一致,功耗相同,系統可靠性提高,同時轉矩波動較小。此模式下逆變器輸出電壓MA波形見圖3.10 b)。 圖3.10 逆變器輸出電壓 本系統中采用PWM方式控制電機轉速,其PWM控制方法采用HPWM-LON的方式。 無刷直流電機的速度計算策略為了實現無刷直流電機的轉速閉環控制,必須對無刷直流電機的轉速進行實時測量,本系統采樣通過計數20ms內換相步數的方法,來實現轉速的計算。 因為電機每轉過360個電角度控制器需要產生6步換相信號,又因為系統使用電機極對數為4極,所以每360個機械角度為1440個電角度,即需要24步換相。假設20ms內電機換相CNT步,那么,電機轉速為:  ,單位為RPM。 無刷直流電機的速度算法 由電機的運動方程可知,加速度與電機的轉矩成正比,而轉矩又與電機的電流成正比,因而如果要實現高精度和高動態性能控制就需要同時對電機的速度和電流進行控制。根據反饋原理,要維持哪一物理量基本不變,就應該引入那個物理量的負反饋。為了減小或消除靜態轉速降落,就要引入轉速負反饋,組成轉速負反饋閉環系統。為了兼顧調速系統的靜態性能和動態性能,本系統采用速度單閉環控制,如圖3.11所示。 
圖3.11 無刷直流電機單閉環調速結構圖 將偏差的比例(P)、積分(I)和微分(D)通過線形組合構成新的控制量,用這一控制量對被控對象進行控制,這樣的控制器稱為PID控制器。數字PID是將原來由硬件實現的PID算法,現在將其移植到計算機控制系統中形成的用軟件來實現的PID算法。PID控制器是控制系統中技術比較成熟,而且應用最廣泛的一種控制器。它的結構比較簡單,參數容易調整,不一定需要系統的確切數學模型,因此在工業的各個領域中都有應用。所以本系統中轉速的閉環控制采用PID控制算法。
1
重慶科技學院本科生畢業設計
電動自行車控制器硬件設計
以往的無刷直流電機多由單片機附加許多接口設備構成控制系統,導致系統復雜,并且運算速度也受到限制,不容易實現速度環的全數字化控制,也不方便擴展。而應用STM8實現的無刷直流電機控制系統可以只用一片STM8S903K3就可以代替普通單片機和各種接口。再加上STM8芯片具有快速運算能力,可以實現更復雜、更智能化的算法,實現速度環的全數字化控制。 本系統硬件組成如圖4.1所示,控制核心是ST公司的STM8S903K3單片機,主要外圍電路包括位置傳感器信號處理電路、驅動控制信號預處理電路、功率驅動電路、電機電流檢測電路、電源電壓檢測電路以及剎車、起動電路等。  圖4.1 硬件系統框圖 當系統處在運行狀態時,通過轉把和剎把向控制器發送運行指令(如起動、停車、轉速等),并且載入運行參數。根據外部檢測到的電機的位置信號以及電機所處的運行狀態來改變控制器輸出的控制信號從而調整電機的運行狀態。電平轉換電路主要是為逆變電路提供動作信息,逆變電路為電機提供正常運行所需的合適的電源。電源電壓檢測環節主要是實現電機運行時的保護(如過壓、欠壓、以及防止電源過度放電等)。電流檢測環節主要是實現過流保護,從外部檢測到的電流信號經過采樣后,送到單片機控制單元,控制單元根據檢測電流的大小來決定是否采取保護措施。 單片機最小系統圖4.2為本系統中STM8S903K3單片機的最小系統圖。該單片機使用片內自帶的16M晶振提供時鐘基準。PD2、PD3、PD4分別為A、B、C相霍爾信號采集端口,PB7、PB6、PB5分別為A、B、C相過零點信號輸入端口,PC2、PC1、PE5分別為A、B、C相下橋臂驅動信號輸出端口,PC3、PC7、PC6分別為A、B、C相上橋臂驅動信號輸出端口,PD7為LED指示燈控制端口,PD6為比較器保護端口,PA3、PF4為通訊端口,PD1為單線調試端口,PB0為相電流檢測端口,PB1為平均相電流檢測端口,PB2為電源電源檢測端口,PB3為轉把信號輸入端口,PC5為剎車信號輸入端口。由于本系統所使用控制芯片為內部自帶16M晶振的STM8S903K3,所以系統可使用芯片自帶晶振提供時鐘基準,NRST引腳為復位信號的輸入端口。 圖4.2單片機最小系統圖
穩壓電源電路 電源電路主要給板子其他工作電壓元器件提供工作電壓。該部分主要穩出+15V、+5V電壓。其中+15V主要供比較器和放大器使用,并提供MOSFET的開啟電壓;+5V主要供STM8S903K3及霍爾傳感器工作。其原理圖如圖4.3所示。 圖4.3 穩壓電源電路圖 如上圖所示,VK+經一個防反擊二極管D5加在穩壓芯片LM317的輸入端,LM317的輸出端輸出一個+15V的穩定電壓;同時該+15V的電壓加在78L05的輸入端,78L05的輸出端為+5V的穩定電壓。其中,D2的作用是防止+5Vout的電壓反擊,R2、R3的作用為提供一個反饋電壓,電容的作用為減小電源到地的阻抗,抑制電源噪聲的干擾。
電源電壓監測電路 該電路主要是將電源電壓分壓后送到單片機,供單片機AD采集并處理,達到監測電源電壓,對電機進行過壓保護,防止電源過度放電的目的。其原理圖如圖4.4所示。 圖4.4 電源電壓監測電路圖
高、低電平剎車電路 目前市場上的電動自行車有低電平剎車和高電平剎車兩種類型,本課題設計的電路兼具低電平和高電平兩種剎車電路。 如圖4.5所示,當為低電平剎車時,低電平信號通過隔離二極管將R16端電平拉低后直接送入到單片機剎車I/O口,實現剎車;當為高電平剎車時,電阻R17、R18和Q1構成一個電平取反電路,把高電平轉換為低電平。當軟件檢測到I/O口為低電平時,便認為是剎車信號。 圖4.5高、低電平剎車電路圖
霍爾信號檢測電路霍爾式位置傳感器輸出為三路脈寬180°的霍爾信號H_a、H_b、H_c,三路信號互差120°相位差,所以在360°電角度內,H_a、H_b、H_c信號變化規律為100—110—010—011—001—101,這六種狀態分別持續60個電角度。霍爾式位置傳感器信號處理電路如圖4.6所示。 圖4.6 霍爾信號檢測電路圖 霍爾式位置傳感器安裝在電機內部,有5 根信號線(電源線、地線、3根霍爾信號線)。由于采用開路輸出,所以外部必須加上拉電阻,并對H_a、H_b、H_c進行阻容濾波以抗干擾。 霍爾信號H_a、H_b、H_c送到PD2、PD3、PD4 口,采用外部觸發的方式讀取H_a、H_b、H_c 狀態。單片機根據H_a、H_b、H_c 的狀態控制三相星形全橋驅動電路中上下橋功率管的導通和關斷。
反電動勢過零點檢測電路 反電動勢過零點檢測電路主要用于提供電機繞組的反電動勢的過零信號。當電機工作在無傳感模式下,要想正確換相,就必須知道當前轉子的位置。該電路可以準確地給單片機提供電機的反電動勢“過零點”。該設計方法在外部電路中重構了一個電機星點,其電位和電機星點電位相近,然后通過3個比較器,將A、B、C三相的相電壓與星點電壓比較,找到三相反電動勢的過零點。使用過零信號觸發外部中斷,控制換相。當過零點到來時,比較器輸出電平翻轉,觸發單片機的外部中斷。其電路原理圖如圖4.7所示。 圖4.7 反電動勢過零點檢測電路原理圖 如上圖所示,比較器的6、8、10引腳電壓約為電機星點電壓,當繞組端電壓大于星點電壓時,比較器輸出高電平;當繞組端電壓低于星點電壓時,比較器輸出一個低電平。這樣,我們就可以得到一個和霍爾信號相近的方波信號。再通過一定的邏輯,我們可以判斷出當前轉子的位置,從而控制換相。
電機電流檢測電路在電動機轉速控制系統中,為了對主電路電流進行監控,需要對主電路電流信號進行采樣反饋,電流檢測電路就是用來對電動機三相繞組中的電流進行實時檢測以便對電機達到更好地控制。電機電流檢測電路如圖4.8所示,CSEN端信號為采樣電阻上的壓降,通過對這個信號進行處理,就可以知道當前的母線電流。 圖4.8 電機電路檢測電路圖 如上圖所示,電流檢測是通過單片機采樣采樣電阻上的壓降實現的。采樣電阻上的壓降先經過一個低通濾波器,再由放大器輸入單片機的AD采樣接口,其電壓放大倍數由R33和R32決定。
功率驅動電路MOSFET驅動電路是控制器與電機直接相連的部分,具有功率放大、自舉升壓等功能。其根據控制器發出的邏輯信號控制上下橋MOS管的導通與截止實現無刷直流電機的開與關并通過改變PWM占空比大小來調節MOS管的開關頻率進而實現電機的調速。本系統中使用的功率驅動電路原理圖如圖4.9所示。 圖4.9 功率驅動電路 如上圖所示,以A 相上下橋的功率管驅動電路為例。功率管采用N 溝道增強型MOSFET。 由于功率管MOSFET用作高壓側開關時,柵極電壓要比源極電壓高10~15V,才能保證功率管完全導通。這樣在上橋功率管MOSFET導通時,源極電壓為電源電壓VB+,柵極電壓就必須要大于電源電壓VB+10~15V。為了獲得比電源電壓還高的柵極電壓,采用一種被稱為“高壓浮柵型驅動電路”來驅動上橋。電容C1A在功率管導通之前已充電至+12V(相對于源極),導通時,便能保證功率管MOSFET的柵極電壓比源極電壓(電源電壓VB+)高出12V。At為高電平時,Q1A導通,Q0A導通,Q2A截止,功率管MOSFET由截止變為導通;At為低電平時,Q1A截止,Q0A截止,Q2A導通,功率管MOSFET由導通變為截止。 下橋功率管的MOSFET的源極通過康銅絲R0(5毫歐)連接到地,無論MOSFET是否導通,源極電壓基本接近為零,所以柵極電壓維持在12V左右就可以保證MOSFET完全導通了。!Ab為高電平時,Q4A截止,Q3A截止,Q5A導通,功率管MOSFET由導通變為截止,!Ab為低電平時,Q4A導通,Q4A導通,Q5A截止,功率管MOSFET由截止變為導通。
轉把電壓輸入電路手把電壓輸入電路是將手把輸出的模擬信號送到單片機的AD轉換口轉換為數字信號的電路,控制程序根據此數字信號從而來調節電機的轉速。其原理圖如圖4.10所示。 圖4.10 轉把電壓輸入電路原理圖 如上圖所示,3為轉把電源線,與+5V相連,2與轉把信號輸入線相連,其輸入的是0~5V的模擬電壓,1為轉把接地線,當轉把松開或者卸掉時,保證輸入AD口的電壓為0V。C8為濾波電容,濾除轉把信號中的高頻雜波。
硬件的可靠性設計控制系統中,各種干擾是客觀存在的主要有來自系統內部和外部的各種電氣干擾。如果缺乏對這些干擾的認識和重視,就會導致控制系統誤差加大嚴重時會使系統失靈,甚至造成巨大的損失。電機調速系統存在比較大的干擾:一方面,電動機本身會產生電磁千擾;另一方面,逆變器中的電力電子器件是以開關方式工作的,工作中會產生大量高頻諧波。這些干擾信號通過“場”或“路”的方式傳遞到控制電路中,如果不采取有效措施加以避免,就可能使電路或程序工作紊亂。 在本系統的硬件設計過程中,主要考慮采用以下方法來防止干擾: 1)電源噪聲干擾的抑制。一般來說,這種干擾是無法完全克服的,只能盡量降低進入干擾脈沖的幅度。一般做法在VCC與GND之間跨接10~100uf的電解電容,同時并一個濾去高頻的小電容;在低頻信號的傳輸通路中加入RC低通濾波器,可以大大減弱各類高頻干撫信號。 2)由于干擾抑制受到設備的體積、成本等多種因素的影響和限制,是不可能完全抑制的,只能盡量減小。因此,在控制系統電路的內部設計上必須采取相應的措施,保證系統運行的可靠性。通常的做法有: a.盡可能使用單片機的內部程序存儲器和內部數據存儲器而不使用外部總線;由于STM8S903高性能單片機具有豐富的內部資源,這一點可以輕易得到滿足; b.在進行系統擴展時,特別在一些模塊化設計多插板系統中,數據總線、控制總線形成板與板的連接時,應加總線驅動器。如果在總線上加有光電隔離電路時,必須選用高速光耦。 3)控制部分的PCB板整板敷銅,在電路各部分中配置去耦電容。PCB上的器件要合理布局,減輕各級之間的電磁輻合。將強、弱電嚴格分開,引線盡可能短;在有互感的線路中間置一根地線,起隔離作用,并要保證相互之間有一定的距離。電源線的走向盡量與數據傳輸方向一致,接地線盡量加粗。 4)對一些器件,如邏輯CPLD器件,未使用到的端口應該設置成輸出狀態,以防止由于外界干擾而產生錯誤的邏輯輸出。 5)外部噪聲源干擾的抑制。傳感器及其信號連線應盡量遠離高電平大功率的導線和元器件,以減少噪聲和電磁場的干擾。為了實現物理隔離,即使在同一設備內部,也應該把這兩類信號導線分開走線。遠距離走線時,更應該注意把信號電纜和功率電纜分開,并保持一定的距離。 6)空間的場干擾的抑制。系統采取的措施主要有: a.選擇較高等級的電子元器件,提高器件的抗干擾能力; b.正確的接地方法,將數字地,模擬地及功率地分開,最后只在一點相連。 1
重慶科技學院本科生畢業設計
電動自行車控制器軟件設計
一個完備的控制系統,不僅需要有硬件電路作為支撐,還需要有軟件部分的配合與支持才能正常工作。軟件作為系統的“大腦中樞”,實時控制著微處理器執行各項任務,對系統的功能和性能有至關重要的影響。相對于硬件設計來說,軟件設計具有更大的靈活性,這也給系統的設計帶來了很大的便利。
STM8集成開發環境簡介本課題以C語言作為系統軟件設計語言,在STVD中外掛COSMIC C編譯器,進行軟件開發。 ST TOOLSETST TOOLSET是ST提供的微控制器開發套件。ST TOOLSET包括兩部分軟件:ST Visual Develop (STVD)和ST Visual Programmer (STVP)。支持STM8全系列的開發。 ST Visual Develop (STVD)是ST微控制器的集成開發環境。主要是面向ST的8位微控制器產品。STVD可以創建,調試以及燒錄ST微控制器。STVD提供了一個免費的匯編編譯器。用戶可使用匯編語言直接在此環境中(STVD)編寫匯編程序。 ST Visual Programmer (STVP)是ST提供的用于生產或批量的專用燒錄軟件。 ST TOOLSET在下載后,運行其安裝程序,如圖5.1 a)所示; 在軟件安裝完成之后,可從開始菜單來啟動,“開始>ST Visual Develop”,如圖5.1 b)所示; ST TOOLSET 啟動后,其界面如圖5.1 c)所示。 COSMIC介紹Cosmic 公司(Cosmic Software Inc.)的Cosmic C編譯器(Cosmic C compiler)及全套嵌入開發工具支持STM8系列產品的開發。Cosmic產品包括C 交叉編譯器、匯編、連接器、ANSI庫、仿真器、硬件調試器和易于使用的集成開發環境(IDEA)。編譯界面如圖5.1 d)所示。 a) b) c)
d) 圖5.1 軟件安裝及調試界面 系統主程序設計系統主程序主要完成STM8單片機各寄存器以及各變量的初始化和電機各狀態的轉換及其他信息處理等,流程圖如5.2所示。單片機寄存器初始化包括I/O口的輸入輸出初始化,定時器計數器的初始化,ADC寄存器的初始化等。電機具有工作和暫停兩種工作模式。 系統初始化完成后,主函數會不停的判斷下面應該做的事,而這個判斷的依據來自于定時器以及其他程序模塊。當判斷到應該做的事情時,主函數馬上執行該動作,執行完畢后返回,繼續判斷,以此循環往復。當系統判定系統出現故障(比如過壓、過流、欠壓)時,系統會馬上停車,當故障排除后,系統檢測到電機起動信號,系統會重新起動電機。 圖5.2 系統主程序流程圖 系統主函數程序代碼如下所示: void main(void) { PID_SP.p = 20; PID_SP.i = 100; PID_SP.d = 0; CK_Init(); IO_Init(); Tim1_Init(); Tim5_Init(); Tim6_Init(); enableInterrupts(); LED_ON; ADC_Init(); ADC1_StartConversion(); UART_Init(); while(1) { if(Mode_Changed)/******MODE_CHANGE*****/ Mode_Changed(); if(Trs_Flag)/****TRANSLATION*****/ { Trs_Flag = 0; UART1_ITConfig(UART1_IT_TXE,ENABLE); } if(Rec_Com)/***RECEIVE_complete******/ Receive_Com(); if(Contrl_Flag)/****SPEED_CONTROL***/ { Contrl_Flag = 0; Speed_Compute(); if(Mot_St) PWM_Ctl(); } ADC();/****AD轉換及數據處理*******/ Protect();/***系統保護***/ } } 定時器程序設計 TIM6是一個8位的低級定時器,主要用于實現定時功能,給系統其它模塊提供執行命令。每隔20ms,給速度控制函數提供一個啟動命令,并切換AD的采樣通道。每隔1s給通訊函數一個啟動命令。其流程如圖5.3所示。 圖5.3 定時器程序流程圖 定時器程序代碼如下: void TIM6_UPD_OVF_TRG_IRQHandler(void) interrupt 23 { static u8 i=0,com=0; i++; TIM6_ClearITPendingBit(TIM6_IT_UPDATE); if(i==10) // 20ms { i = 0; Contrl_Flag = 1; com++; if(com==50) { com = 0; Trs_Flag = 1; } ADC_Switch = com % 3; ADC_Init(); ADC1_StartConversion(); } }
無傳感換相信號檢測程序設計該函數其實質為一個外部中斷函數,當比較器輸出電平翻轉時,觸發該外部中斷,進而進行轉子位置判斷,匹配換相邏輯,配置TIM5,延時30個電角度時間后由TIM5調用換相函數。其流程如圖5.4所示。 無傳感換相信號檢測程序代碼如下: void EXTI_PORTB_IRQHandler(void) interrupt 4 { u8 State,Trigger; EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB, EXTI_SENSITIVITY_RISE_FALL); State = GPIO_ReadInputData(GPIOB); Trigger = (u8)(State & 0xE0);//PB7|8|9 if(Trigger != 0) { Counter = TIM5_GetCounter(); TIM5_SetCounter(0); TIM5_OC1Init(TIM5_OCMODE_PWM1, TIM5_OUTPUTSTATE_DISABLE,(u16)(Counter/2),TIM5_OCPOLARITY_HIGH); switch(Trigger) { case 0xa0:Motor_Step = 1;break;//next->AC case 0x80:Motor_Step = 2;break;//next->BC case 0xc0:Motor_Step = 3;break;//next->BA case 0x40:Motor_Step = 4;break;//next->CA case 0x60:Motor_Step = 5;break;//next->CB case 0x20:Motor_Step = 0;break;//next->AB } } } 圖5.4 無傳感換相信號檢測程序流程圖
霍爾模式換相信號檢測程序設計該函數和無傳感換相信號檢測子程序一樣,其實質為一個外部中斷函數。但其端口輸入信號為霍爾信號,當霍爾信號發生變化時,觸發該中斷,然后進行轉子位置判斷,匹配換相邏輯,最后調用換相函數。其流程如圖5.5所示。 圖5.5 霍爾模式換相信號檢測程序流程圖 霍爾模式換相信號檢測程序代碼如下: void EXTI_PORTD_IRQHandler(void) interrupt 6 { u8 State,Trigger; State = GPIO_ReadInputData(GPIOD); Trigger = (u8)(State & 0x1c);//PD2|3|4 GPIO_Init(GPIOD,GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4,GPIO_MODE_IN_FL_IT); EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD,EXTI_SENSITIVITY_RISE_FALL);//hall_mode if(Trigger != 0) { Counter = TIM5_GetCounter(); TIM5_SetCounter(0); switch(Trigger) { case 0x04:Motor_Step = 1;break;//next->AC case 0x0c:Motor_Step = 2;break;//next->BC case 0x08:Motor_Step = 3;break;//next->BA case 0x18:Motor_Step = 4;break;//next->CA case 0x10:Motor_Step = 5;break;//next->CB case 0x14:Motor_Step = 0;break;//next->AB case 0x00: case 0x1c:if(Auto_Flag) { Hall_Flag = 0;Sen_Flag = 1;Hall_Fault = 1;Mode_Changed = 1; }break; } if(Mot_St) Commutation(Motor_Step,Duty_Cycle); } }
換相函數設計該函數在轉子轉到固定位置(換相準確位置)時被系統調用,其主要作用是配置TIM1的寄存器,讓TIM1產生預期的PWM波形輸出。其流程如圖5.6所示。 換相程序代碼如下: void Commutation(u8 Step,u16 PWM_Commutation) { Step_Count++; PWM_Commutation*=100; TIM1_CtrlPWMOutputs(DISABLE); OUT_Disable(); CD_OFF; //關閉ABC三相下橋臂 BD_OFF; AD_OFF; switch(Step) { //step 0: AB; case 0: TIM1_OC3Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_DISABLE, PWM_Commutation, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET); BD_ON;//開啟B管下橋臂 break;//step 1:AC; case 1: TIM1_OC3Init(TIM1_OCMODE_PWM2,TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_DISABLE,PWM_Commutation,TIM1_OCPOLARITY_LOW,TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET); CD_ON;break;//step 2:BC; case 2: TIM1_OC2Init(TIM1_OCMODE_PWM2,TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_DISABLE,PWM_Commutation,TIM1_OCPOLARITY_LOW,TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET); CD_ON;break;//step 3:BA; case 3: TIM1_OC2Init(TIM1_OCMODE_PWM2,TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_DISABLE,PWM_Commutation,TIM1_OCPOLARITY_LOW,TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET); AD_ON;break;//step 4:CA; case 4: TIM1_OC1Init(TIM1_OCMODE_PWM2,TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_DISABLE,PWM_Commutation,TIM1_OCPOLARITY_LOW,TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET); AD_ON;break;//step 5:CB; case 5: TIM1_OC1Init(TIM1_OCMODE_PWM2,TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_DISABLE,PWM_Commutation,TIM1_OCPOLARITY_LOW,TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET); BD_ON;break; } TIM1_CtrlPWMOutputs(ENABLE); } 圖5.6 換相程序流程圖
工作模式切換程序設計當系統判定工作模式發生改變時,該函數被調用。該函數主要負責模式切換的具體工作,比如寄存器配置,改寫標志等。其流程如圖5.7所示。 工作模式切換程序代碼如下: void Mode_Changed(void) { Mode_Changed = 0; if(Sen_Flag) //sensorless_mode { GPIO_Init(GPIOD,GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4,GPIO_MODE_IN_FL_NO_IT);  圖5.7 工作模式切換程序流程圖 //close hall_chanel //defineEXTI PORTB_PIN5,6,7.PIN_5->PHASE_C;PIN_6->PHASE_B;PIN_7->PHASE_A GPIO_Init(GPIOB,GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_MODE_IN_FL_IT); EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB,EXTI_SENSITIVITY_RISE_FALL); TIM5_ITConfig(TIM5_IT_CC1, ENABLE); Trs_Data[10] = 0; Hall_Flag = 0; } if(Hall_Flag) //hall_mode { GPIO_Init(GPIOB, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_MODE_IN_FL_NO_IT); GPIO_Init(GPIOD, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4, GPIO_MODE_IN_FL_IT);//PD2->HA,PD3->HB,PD4->HC EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD, EXTI_SENSITIVITY_RISE_FALL);//hall_mode
TIM5_ITConfig(TIM5_IT_CC1, DISABLE); Trs_Data[10] = 1; Hall_Fault = 0; }
if(Hall_Fault) { Trs_Data[10] = 2; } }
速度控制程序設計 每隔20ms,該函數被主函數調用,用于根據電機當前轉速與設定轉速之差,改變PWM輸出,來達到電機速度基本保持恒定的目的。其流程圖如圖5.8所示。 圖5.8 速度控制程序流程圖 速度控制程序代碼如下: if(Contrl_Flag)/****SPEED_CONTROL***/ { Contrl_Flag = 0; Speed_Compute(); if(Mot_St) PWM_Ctl(); }
AD采樣程序設計 AD采樣程序主要負責系統的母線電流、母線電壓以及轉把電壓的采集與初步處理。系統每次進行一路AD轉換,每隔20ms切換一個通道,開始一次AD轉換。其流程如圖5.9所示。 圖5.9 AD采樣程序流程圖 AD采樣程序代碼如下: void ADC(void) { EOC_Flag = ADC1_GetFlagStatus(ADC1_FLAG_EOC); if(EOC_Flag) { ADC1_ClearFlag(ADC1_FLAG_EOC); EOC_Flag = 0; switch(ADC_Switch) { case 0: Conversion_Val = ADC1_GetConversionValue(); bus_cur=((float)Temp-195.05)*(5000/2048);//(Temp-5*1/21*4*1024/5)*5/1024/0.5/4*1000//放大1000倍 Bus_Cur = (u16)bus_cur; break; case 1: Conversion_Val = ADC1_GetConversionValue(); bus_vol = (float)Conversion_Val*5/1024*32.2/2.2*1000; Bus_Vol = (u16)bus_vol; break; case 2: Conversion_Val = ADC1_GetConversionValue(); Speed_Set = (u16)(Conversion_Val*3+1000); if(Speed_Set<1000)Speed_Set = 1000;if(Speed_Set>3800)Speed_Set = 3800;break; default: break; } ADC1_DeInit(); Trs_Data[2] = (u8)(Bus_Vol/256); Trs_Data[3] = (u8)(Bus_Vol%256); Trs_Data[4] = (u8)(Bus_Cur/256); Trs_Data[5] = (u8)(Bus_Cur%256); Trs_Data[6] = (u8)(Speed_Set/256); Trs_Data[7] = (u8)(Speed_Set%256); } }
系統保護程序設計系統保護程序實現了電機的過壓、欠壓、過流保護,保護了電機和電源。當系統檢測到過壓、欠壓、過流信號后,馬上停車,并做一些后續工作后返回。其流程如圖5.10所示。 系統保護程序代碼如下: 圖5.10 系統保護程序流程圖 void Protect(void) { if((Mot_St==1)&&Speed_Measure>=1000) { if(Bus_Cur >= CUR_MAX) { TIM1_Cmd(DISABLE); CD_OFF; BD_OFF; AD_OFF; Mot_St = 0; OUT_Disable(); } if(Bus_Vol >= VOL_MAX) { TIM1_Cmd(DISABLE); CD_OFF; BD_OFF; AD_OFF; Mot_St = 0; OUT_Disable(); } if(Speed_Measure >= 1000) if(Bus_Vol <= VOL_MIN) { TIM1_Cmd(DISABLE); CD_OFF; BD_OFF; AD_OFF; Mot_St = 0; OUT_Disable(); } } } 1
西京學院本科畢業論文(設計)
測試程序設計
電動自行車控制器設計完成后,由于該控制器為一個針對電動自行車具體應用的系控制系統,所以相對于其他控制器來說,人機界面相對較差。為彌補這個不足,給后面的系統調試及最終成果演示提供一個良好的信息交互平臺,在本系統設計中加入了下位機與上位機通訊的功能。
測試系統功能設計 為形成一個良好的人機交互平臺,本系統的上位機使用borland公司的C++ Builder軟件進行開發,Borland C++ Builder 具有強大的界面功能。最終要求上位機能和下位機保持實時通訊,實時更新下位機的母線電流、母線電壓、設定轉速及測得轉速等信息,并有電流及速度趨勢曲線。上位機還應具有PID參數整定模塊,用于電機速度閉環調試時候的參數整定;電機起停控制模塊,用于控制電機的起動、停止;電機工作模式選擇模塊,可以控制電機的工作模式選擇;串口選擇、控制模塊,選擇和下位機通訊的串口號及控制串口的工作狀態;電機運行狀況顯示模塊,用于顯示電機當前的工作狀況。
通訊協議 系統中,上位機和下位機的通訊功能使用實現。使用MSComm控件可以輕松地實現上位機與下位機的數據交換。但是,本系統中上位機與下位機交換的數據較多,而且還涉及許多電機控制命令。所以為了讓上位機和下位機準確地執行數據操作,在系統設計中加入了眾多通訊協議。上位機接收到用戶的請求時,便向下位機傳送數據。當用戶的請求為改變PID參數時,上位機便向下位機傳送4個字節的數據;當用戶的請求為改變電機運行狀態的命令請求時,上位機向下位機傳送3個字節的數據。具體協議信息,請參考表6.1、表6.2。 1)當用戶改變PID參數時,上位機將向下位機連續傳送寬度為4個字節的數據串:數據串的第一個字節標志著PID三個Edit控件中哪個控件的值發生了改變,即用戶修改了PID參數中的哪一個。數據起值為0xe1,表面用戶改變的是P參數;0xe2,表面用戶改變的是I參數;0xe3表面用戶改變的是D參數。數據串的第二個字節為本次傳送數據的數據寬度,方便下位機的數據接收判斷。當然,在用戶改變PID參數時,該字節內裝入的是4。數據串的第三第四個字節裝的是當前的參數(P、I或D),第三個字節為數據的高位,第四個字節為數據的低位。 2)當用戶需要改變電機的運行狀態時,上位機將向下位機連續傳送寬度為3個字節的數據串:數據串的第一個字節用于存儲當前的數據串為命令信號。數據串的第二個字節用于存儲數據串的數據寬度,同樣也是用于下位機判斷數據接收完成與否。數據串的第三個字節存儲信息為當前的用戶命令,下位機需要通過判斷此字節的數據,來完成相應的動作。數值0代表用戶設定電機工作在霍爾模式;數值1表示用戶設定電機工作在無傳感模式;數值2表示用戶設定電機工作在自動切換模式;數值3表示用戶需要起動電機;數值4表示用戶需要讓電機停止工作。 3)當然,下位機向上位機傳送的數據也需要加入通訊協議。下位機每隔1s向上位機發送一次數據,該數據串寬度為11個字節。上位機通過一定的協議去讀取接收到的數據。數據串的第一個字節為數據起始代碼,其數值為0xbb,第二個字節為數據串寬度代碼,其數值為0x0b。數據串的第三、第四個字節分別存放的是母線電壓的高八位和低八位,第五、第六個字節分別存放母線電流的高八位和低八位,第七、第八個字節分別存放設定轉速的高八位和低八位,第九、第十個字節分別存放的是測得轉速的高八位和低八位,第十一字節存放的是當前工作模式的信息,數值0表示電機當前工作在無傳感模式下,數值1表示電機當前工作在霍爾模式下,數值2表示電機霍爾傳感器出現故障,系統需要切換到自動切換模式下工作。 表6.1 上位機向下位機發送數據
表6.2 下位機向上位機發送數據
下位機程序設計 下位機程序設計包含了單字節數據傳送、接收程序設計和數據接收完成后的數據處理部分的程序設計。單字節數據的傳送、接收程序其實質為一個數據傳送、接收中斷函數,無太多的邏輯在里面。 數據傳送中斷程序設計下位機每隔1s向上位機發送實時數據,包括母線電壓、母線電流、設定轉速、測得轉速、霍爾傳感器狀態、當前工作模式。通訊數據傳送中斷程序主要負責下位機向上位機發送固定格式的數據,每當發送完成一個字節,系統產生該中斷,繼續發送需傳送數據的下一字節。其流程如圖6.1所示。 圖6.1 數據傳送中斷程序流程圖 數據傳送中斷程序代碼如下: void UART1_TX_IRQHandler(void) interrupt 17 { static u8 i=0; UART1_SendData8(Trs_Data); UART1_ClearITPendingBit(UART1_IT_TXE); i++; if(i==11) { i=0; UART1_ITConfig(UART1_IT_TXE,DISABLE); } } 數據接收中斷程序設計數據接收中斷程序主要負責下位機接收上位機發送下來的固定格式的數據,每當接收完成一個字節,系統產生該中斷,繼續等待上位機傳送數據的下一字節。其流程如圖6.2所示。 圖6.2 數據接收中斷程序流程圖 數據接收中斷程序代碼如下: void UART1_RX_IRQHandler(void) interrupt 18 { static u8 number=0; number++; Rec_Data[number-1] = UART1_ReceiveData8(); if(number > 2) if(number == Rec_Data[1]) { number = 0; Rec_Com = 1; } } 數據接收完成程序設計數據接收完成程序在主函數中被調用,當主函數判定數據接收完成后,調用該子程序。該子程序主要對接收到的數據進行處理,并進行命令響應。主要響應的命令有電機起動、電機停車、工作模式選擇等。其流程如圖6.3所示。 圖6.3 數據接收完成程序流程圖 數據接收完成程序代碼如下: void Receive_Com(void) { u16 receive_val; Rec_Com = 0; if(((Rec_Data[0]&0xf0)==0xb0)||((Rec_Data[0]&0xf0)==0xe0)) if((Rec_Data[1]==3)||(Rec_Data[1]==4)) { switch(Rec_Data[1]) { case 3: receive_val = Rec_Data[2];break;
case 4: receive_val = Rec_Data[2]<<8;receive_val += Rec_Data[3];break; } switch(Rec_Data[2]) { case 2: Auto_Flag = 1;Hall_Flag = 1;Sen_Flag = 0;Mode_Changed = 1;break;
case 0: Auto_Flag = 0;Hall_Flag = 1;Sen_Flag = 0;Mode_Changed = 1;break;
case 1: Auto_Flag = 0;Hall_Flag = 0;Sen_Flag = 1;Mode_Changed = 1;break;
case 3: TIM1_Cmd(ENABLE);Commutation(Motor_Step,15);Mot_St = 1;break;
case 4: TIM1_Cmd(DISABLE);CD_OFF;BD_OFF;AD_OFF;Mot_St = 0;OUT_Disable();break; } switch(Rec_Data[0]) { case 0xe1: PID_SP.p = receive_val; break; case 0xe2: PID_SP.i = receive_val; break; case 0xe3: PID_SP.d = receive_val; break; } } }
上位機程序設計 上位機主要實現了用戶對電機的啟停控制、速度閉環PID參數整定及電機運行狀態的實時監控。上位機是用戶與單片機交流的窗口,當用戶有請求時,可通過上位機將請求傳送至單片機,單片機會通過上位機,將系統的運行狀況反饋給用戶。上位機接收到下位機傳送的數據后會更新畫面顯示,好讓用戶知道當前電機的工作狀況;上位機在接收到用戶的請求時也會向下位機傳送控制命令及數據更新值,讓下位機按用戶的意圖動作。其流程如圖6.4所示,其詳細代碼見附錄4.4。 圖6.4 上位機程序流程圖
測試結果本研究課題經過理論分析,硬件電路設計、軟件的編寫和調試,最終完成了電動自行車控制器的樣品設計。該控制器以ST系列單片機中性價比較高的STM8S903K3為控制核心,充分利用片內多種資源,設計出的控制器具有體積小的特點和較低的成本優勢,具有一定的市場競爭力。 控制器樣品設計完成后,我們對控制器進行了一系列關鍵點的波形測試,測試結果分別如下圖所示。 圖6.5 A相的端電壓與霍爾信號波形 圖6.6 B相反電動勢過零信號與C相霍爾信號波形 圖6.7 上位機監控畫面 如圖6.5所示,相電壓為一個梯形波。在MOSFET導通時,繞組端電壓在24V左右;而在MOSFET關斷后一段時間內,繞組端電壓迅速降到-1V左右,那是因為續流二極管的鉗位作用,降繞組的感應電壓釋放掉。 如圖6.6所示,霍爾信號的跳變與反電動勢的跳變有一定的延遲,這個延遲大約為30個電角度。因為在硬件電路中加入了低通濾波器,引入了一定的相位延遲,所以B相的過零信號并不是超前B相霍爾信號30個電角度,在換相邏輯匹配之前一定要慎重判斷轉子位置,防止發生換相錯誤。 如圖6.7 a)所示,系統在霍爾模式下啟動,工作,運行狀況良好;圖6.7 b)所示,系統在無傳感模式下啟動,工作,運行狀況良好;圖6.7 c)所示,系統在自動切換模式下出現霍爾故障,系統自動切換到無傳感模式下;圖6.7 d)所示,當霍爾修復后,系統又可切換回霍爾模式下工作。
系統調試
1)在霍爾模式下,轉速計算不準確。用示波器觀察霍爾信號輸入引腳,發現系統在某3個位置可能不停地在進外部中斷,在不停地換相。因為本系統中轉速的計算是通過計數換相步數來實現的,所以轉速會出現很大的偏差。后來發現是ADC采樣的影響,將ADC采樣頻率降低,并且在霍爾模式下換相前加入邏輯判斷后,問題解決。 2)在定時器的調試環節,配置好定時器后,發現怎么都進不了中斷,檢查程序,一切配置合理,后來在老師的指導下,發現是中斷向量表的問題。重新配置中斷向量表,問題解決。 3)在調試霍爾換相的時候,發現很多子程序跳不進去,貌似程序一直在外邊中斷中循環執行。在老師的指導下,進了外邊中斷后重新配置一遍外部中斷,問題解決。原來SMT8S903K3沒有清除外部中斷標志位的函數,重新配置外部中斷,可以清除中斷標志位。 4)ADC不能正常工作,每次都只能轉換一次,轉換完成后進入中斷處理數據,然后再啟動,但后面ADC根本就啟動不了。后來把數據處理放在主函數中,通過在主函數中判斷轉換完成標志位的方式來控制ADC的啟停,問題解決。 5)在ADC能夠準確地工作后,寫了一串讓ADC以單次掃描模式工作的代碼,讓其依次采集母線電壓、母線電流以及轉把電壓,發現ADC并不能很好地工作,使能了緩沖區后,讀出來的值始終只有一個,按理說應該是三個,因為我配置了三個模擬量輸入通道,而且ADC的工作模式已配置為單次掃描模式。讀出的緩沖區的數據始終是在配置通道時的最后一個通道。修改配置方法,改為只配一個通道(三個通道中,通道號最大那個通道),轉換出來的值依然不對。無奈,只好修改代碼,讓ADC工作在單次轉換的模式下,分時段去采樣母線電壓、母線電流及轉把輸入電壓。 6)在無傳感模式的起動代碼的調試過程中,發現電機在加入起動代碼后,在最初的延時換相階段能夠正常轉動,但在從異步模式切換到同步模式后,電機停止轉動。在老師的提示下發現可能是異步起動時轉速不夠,縮短異步起動延時時間,問題解決。但在引入負載后,延時換相起動再次失效。后來索性去掉延時換相起動部分,在無傳感的工作模式下,直接定位轉子位置(和霍爾模式的電機起動差不多),發現電機也能正常起動,但起動成功的概率降低。最終,代碼中雖然做了起動策略,但考慮到其通用性不強,沒有調用延時換相起動函數,而直接采取了霍爾式的“單步起動法”。 7)在無傳感模式下,換相不正確,電流偏大,而且總莫名其妙地大幅度抖動。用示波器觀察反電動勢過零信號和霍爾信號,發現反電動勢信號和霍爾信號與理論上的30個電角度的延遲有較大偏差,在外部中斷觸發后,判斷轉子位置的邏輯和理論上不匹配,使用示波器,逐步定位,判斷轉子位置,重新建立換相邏輯后,問題解決。 8)在與上位機的單字節通訊程序調試過程中,發現下位機可以接收上位機傳下來的數據,但是上位機不能接收下位機傳出的數據。用示波器觀察通訊脈沖,發現可能是硬件故障,排除硬件故障后,問題解決。 9)在單字節通訊調通后,按著單字節傳送的原理,寫多字節的通訊。發現在一定的通訊次數后,下位機傳送到上位機的數據和上位機傳下去的數據一樣,但程序里面并不是實現的這個功能。后來在下位機的通訊代碼中加入判斷條件,當系統判定數據傳送完成是時屏蔽數據傳送中斷,問題解決。 10)編程過程中,出現代碼過長,超出存儲區域的問題。在網上找了很多解決辦法,試過自己配置連接文件,試過修改存儲區域地址,試過使用保留存儲區,試過編譯方式等,都無效。后來刪除了一部分編譯了但沒用到的庫文件,問題解決。 11)在系統保護部分的調試過程中,發現加入保護代碼后電機很難起動成功,即便是在霍爾工作模式下也是如此。后來才發現可能是起動的時候電流過大或者電壓過低,系統直接進入保護狀態,停掉電機。在系統保護代碼之前加入電機起動判斷,讓電機起動再判斷是否需要采取保護措施,問題解決。 12)在寫完轉速閉環控制代碼后調試,發現系統在啟動的時候會有很大一個超調,而且不管怎么調PID參數都解決不了。后來發現是PID控制函數的調用問題,原來在上位機向下位機發送起動信號之前,下位機以及就現有的速度(0 RPM),和設定轉速做了多次PID運算,當下位機接收到上位機的起動命令,此時輸出PWM以及被速度控制算法改為了最大值(默認最大值為80%)。在調用速度閉環控制函數之前,加入了電機起動判斷后,電機起動時超調量大大減小。 總之,在整個畢業設計期間,由于對軟件使用的不熟悉所引起的錯誤操作導致的問題不占少數,在此就不一一列舉。還有其他許多小問題,在此也不詳述。
小結
本文對電動自行車控制系統在設計中遇到的關鍵問題進行了較為全面的研究與分析,介紹了控制系統四大組成部分的工作原理,重點闡述了無刷直流電機的工作原理與控制策略,分析了選用STM8S903K3單片機作為控制核心的優勢,分模塊詳述了系統軟硬件設計原理。 但是本系統的設計還有頗多不足,比如無傳感模式的起動問題,不能保證系統的通用性,而且起動有可能不成功。由于時間的問題,在系統的閉環控制方面,本應該采用速度、電流串級控制,而最終舍棄了電流閉環,只做了一個速度閉環控制,而且速度控制的精度并不算高。在系統保護功能方面,欠壓保護的閥值設定的較低,在電機起動時還是會突然拉低母線電壓,而且會持續一段時間,至今沒找到問題所在。所以為了不影響電機的正常起動,將欠壓保護的閥值改小。在電機的起動中,按理說應該由轉把發出起動命令,但在本系統中,卻采用了上位機發出起動命令的方式。在系統中,剎車功能、上電自檢功能沒有添加。 雖然,本系統存在諸多不足與缺陷,但系統的硬件設計是經過了時間考驗的,是值得借鑒的。軟件方面缺陷雖多,但可由日后升級彌補,升級后將是相當具競爭力的產品,可用于商業,批量生產。最終,本系統作為一個商業用途的電動自行車控制器,還需改進;但作為一個無刷直流電機初學者的入門教程和電動自行車的工作原理教程還是不錯的。
1
西京學院本科畢業論文(設計) 附錄2 上位機界面
附錄2 上位機界面
.系統實物圖
完整的Word格式文檔51黑下載地址(內附源程序):
基于單片機的變頻器設計.doc
(4.69 MB, 下載次數: 234)
2018-5-31 16:57 上傳
點擊文件名下載附件
|