隨著永磁同步電機在許多領域得到廣泛應用,對永磁同步電機的研究成為一種必然的發展趨勢,具有實際的意義和價值。本文采用TI公司專用于電機控制的TMS320F240型數字信號處理器作為核心,開發了全數字化的永磁同步電機矢量控制調速系統的軟件,并在改進的清華電機控制試驗平臺上進行了帶機試驗,結果驗證了系統設計方案的可行性。 本文首先深入的研究了永磁同步電機的矢量控制理論,建立了永磁同步電機數學模型,并在此基礎上討論了永磁同步電機的矢量控制調速方案;然后,以清華電機控制試驗平臺為基礎介紹了控制系統硬件結構,其中主要論述了控制電路各部分及外圍輔助電路的設計和調試。在硬件的基礎上,軟件采用匯編語言編程,實現了轉速和電流雙閉環矢量控制,并給出了系統主程序和PWM下溢中斷處理程序流程圖,永磁同步電機矢量控制的主要控制策略如轉子相位的初始化、電流采樣、速度位置采樣、矢量坐標變換、sinθ、cosθ值生成、PI調節、空間電壓矢量(SVPWM)模塊等都是在PWM下溢中斷服務子程序中完成的。為達到數值的統一,對軟件中所采用的參數進行了定標。最后在基于硬件平臺的基礎上,對軟件進行帶機調試,試驗表明電機能快速響應并跟蹤給定轉速,從而證明整個系統設計的正確性。 另外,本文還在MATLAB/SIMULINK的基礎上,建立采用模糊神經網絡控制器的永磁同步電機的仿真模型,仿真結果表明:該控制系統具有較好的位置響應和抗干擾能力強。 在論文的最后,對全文的工作做了總結。
上傳時間: 2013-07-27
上傳用戶:er1219
全球定位系統(Global Positioning System—GPS)是新一代衛星導航定位系統,具有全球、全天候、連續、高精度導航與定位功能,能夠為廣大用戶提供精確的三維坐標、速度和時間信息。因此,GPS系統被廣泛地應用于生活中的各個領域。GPS系統用戶主要是各種型號的接收機,而捕獲跟蹤技術是接收機的關鍵技術,同時也是一個技術難點。在GPS接收機中,導航電文是用戶定位和導航的數據基礎,為了得到導航電文必須要對GPS信號進行捕獲跟蹤。本文詳細研究了GPS信號捕獲跟蹤技術,并進行了FPGA設計。 @@ 本文首先概述了GPS系統信號結構和GPS接收機工作原理,對GPS信號調制機理進行詳細地闡述,重點分析了C/A碼生成原理和特性。 @@ 其次敘述了GPS信號捕獲的基礎理論,重點研究時域滑動相關捕獲方法,深入分析其算法和性能。用MATLAB中Simulink軟件包搭建了可自由修改參數的GPS中頻發生器,并在此平臺上,對GPS信號時域滑動相關捕獲算法進行仿真與分析。 @@ 接著重點研究了GPS信號跟蹤技術,系統分析碼跟蹤環路和載波跟蹤環路結構框圖以及算法。在碼跟蹤環路方面,選用并分析了能分離載波的非相干超前滯后碼鎖定環的工作機理。在載波跟蹤環路中選用對導航電文數據相位翻轉不敏感的科斯塔斯環,并用數學模型分析GPS信號的解調過程。之后對整個跟蹤環路進行MATLAB仿真,結果表明環路參數設計滿足要求,并能成功解調出GPS導航電文。 @@ 最后本文在QuartusII環境下完成對GPS信號捕獲跟蹤系統的FPGA設計。根據對相關器硬件結構框架,對算法中各個模塊的實現進行詳細的說明,包括頂層設計到CA碼、NCO等重要模塊設計,并給出了仿真結果。 @@關鍵詞:GPS接收機;捕獲;跟蹤;MATLAB仿真:FPGA
上傳時間: 2013-06-16
上傳用戶:jacking
現代噴氣織機以其高速、高性能等優勢,占據了無梭織機的大部分市場,并成為最有發展前景的一種織機。送經、卷取機構是織機控制系統的重要組成部分,其對經紗張力的控制精度已成為評定織機質量的重要技術指標。因此,提高和改善噴氣織機的電子送經和卷取控制系統的性能非常必要,而且,開發具有高速、高精度的獨立電子送經和卷取控制模塊具有廣闊的應用前景。 本課題研究開發了一款獨立的電子送經和卷取控制模塊,通過人機界面或CAN通訊對該控制系統所需參數進行設置,使其可以根據參數設置應用于不同型號的噴氣織機。通過對系統的控制分析,本課題主要從硬件電路設計、軟件控制及張力控制算法三個方面進行研究。 首先,通過對噴氣織機的性能要求及控制器結構與性能的綜合考慮,系統采用以高速ARM7TDMI為內核的低功耗微處理器LPC2294作為系統控制器,該控制器不僅速度快、性能穩定,而且其豐富的外圍模塊大大簡化了硬件電路的設計。硬件電路設計采用模塊化設計方法,主要功能模塊包括嵌入式最小系統模塊、主軸編碼器采集模塊、張力采集模塊、電機控制模塊、通訊模塊、人機界面模塊、輸入輸出信號模塊等。根據系統需要,對各個模塊的控制器件進行選取,并設計出各個模塊的接口電路。最后,為了提高系統的穩定性和可靠性,在硬件電路設計中采取了隔離、去耦等硬件抗干擾措施。 在軟件設計方面,系統采用嵌入式實時操作系統μC/OS-II,便于系統升級和維護。在系統硬件平臺的基礎上,根據設計要求對操作系統內核進行剪裁和移植,并對系統時鐘節拍進行修改。結合硬件電路及系統控制要求,對系統啟動代碼進行修改;并根據系統對各個功能模塊控制的時效性要求,對系統任務進行合理規劃。為了說明系統采用該RTOS的可行性,對實時性要求最高的張力采集任務進行了實時性分析。對CAN通訊協議進行制定和編程實現,并對I2C、CAN和LCD驅動程序進行開發,另外,對每個任務的功能及控制流程和任務間及任務與中斷間的信息通訊進行了說明。系統在軟件方面也采用了一定的抗干擾技術,對硬件抗干擾進行補充。 最后,針對經紗張力的非線性和滯后性等復雜特性,對張力調節采用模糊參數自整定PID控制算法,設計出張力模糊參數自整定PID控制器。并在Matlab及Simulink工具下,對PID控制器下的張力算法及模糊參數自整定PID控制器下的張力算法進行仿真研究。而且對張力模糊PID控制算法在LPC2294中的實現進行了說明。關鍵詞:ARM; μC/OS-II;噴氣織機;送經卷取;模糊PID
上傳時間: 2013-06-11
上傳用戶:ivan-mtk
本文設計和實現了基于FPGA的數字下變頻器DDC,用于寬帶數字中頻軟件無線電接收機中。采用自上向下的模塊化設計方法,將DDC的功能劃分為基本單元,實現這些功能模塊并組成模塊庫。在具體應用時,優化配置各個模塊來滿足具體無線通信系統性能的要求。這樣做比傳統ASIC數字下變頻器具有更好的可編程性和靈活性,從而滿足不同的工程設計需求。 首先闡述了軟件無線電中關鍵的數字信號處理技術,包括中頻處理中的下變頻技術、抽取技術以及帶通采樣技術。利用MATLAB的Simulink完成了對系統的設計與仿真,驗證了設計的正確性。之后用QuartusII進行了基于FPGA抽取濾波器和NCO等關鍵模塊的設計,編譯后進行了時序仿真,最后在PCB板上實現了實際電路并應用于工程項目中。
上傳時間: 2013-08-05
上傳用戶:lishuoshi1996
特點: 精確度0.1%滿刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT類比輸出功能 輸入與輸出絕緣耐壓2仟伏特/1分鐘(input/output/power) 寬范圍交直流兩用電源設計 尺寸小,穩定性高
上傳時間: 2014-12-23
上傳用戶:ydd3625
特點(FEATURES) 精確度0.1%滿刻度 (Accuracy 0.1%F.S.) 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 類比輸出功能(16 bit DAC isolating analog output function) 輸入/輸出1/輸出2絕緣耐壓2仟伏特/1分鐘(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 寬范圍交直流兩用電源設計(Wide input range for auxiliary power) 尺寸小,穩定性高(Dimension small and High stability)
上傳時間: 2013-11-24
上傳用戶:541657925
此提出了一種基于Matlab/Simulink及實時代碼生成工具R哪(Real.Time Workshop)的電力電子與電力傳動控制系統軟件的設計方法。首先在Simulink下搭建控制系統模型,進行相應仿真完善,驗證控制算法,根據目標DSP型號添加相應DSP內核、外設并設置控制參數,然后直接將模型轉化為相應DSP的C源代碼.在相應的硬件平臺支持下即可完成相關實驗。
上傳時間: 2013-11-04
上傳用戶:wincoder
/*--------- 8051內核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序狀態字寄存器 sbit CY = PSW^7; //進位標志位 sbit AC = PSW^6; //輔助進位標志位 sbit F0 = PSW^5; //用戶標志位0 sbit RS1 = PSW^4; //工作寄存器組選擇控制位 sbit RS0 = PSW^3; //工作寄存器組選擇控制位 sbit OV = PSW^2; //溢出標志位 sbit F1 = PSW^1; //用戶標志位1 sbit P = PSW^0; //奇偶標志位 sfr SP = 0x81; //堆棧指針寄存器 sfr DPL = 0x82; //數據指針0低字節 sfr DPH = 0x83; //數據指針0高字節 /*------------ 系統管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //電源控制寄存器 sfr AUXR = 0x8E; //輔助寄存器 sfr AUXR1 = 0xA2; //輔助寄存器1 sfr WAKE_CLKO = 0x8F; //時鐘輸出和喚醒控制寄存器 sfr CLK_DIV = 0x97; //時鐘分頻控制寄存器 sfr BUS_SPEED = 0xA1; //總線速度控制寄存器 /*----------- 中斷控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中斷允許寄存器 sbit EA = IE^7; //總中斷允許位 sbit ELVD = IE^6; //低電壓檢測中斷控制位 8051
上傳時間: 2013-10-30
上傳用戶:yxgi5
TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 TLC2543的特點 (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時間; (3)11個模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上傳時間: 2013-10-21
上傳用戶:13788529953