下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、直流電機(jī)轉(zhuǎn)速測(cè)量與控制系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告評(píng)語(yǔ):成績(jī)教師:年月日班級(jí):學(xué)號(hào):姓名:地點(diǎn):時(shí)間:直流電機(jī)轉(zhuǎn)速測(cè)量與控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)一、課程設(shè)計(jì)題目:直流電機(jī)轉(zhuǎn)速測(cè)量與控制系統(tǒng)實(shí)驗(yàn)。二、課程設(shè)計(jì)目的:1. 了解以微機(jī)為核心的閉環(huán)控制系統(tǒng)的組成原理。掌握電機(jī)轉(zhuǎn)速閉環(huán)控制系統(tǒng)的構(gòu)成方法。2. 了解霍爾器件的工作原理:電機(jī)轉(zhuǎn)速的測(cè)量與控制的基本原理。掌握PW碉速原理和應(yīng)用方法。3. 掌握控制系統(tǒng)的設(shè)計(jì)與調(diào)試方法,提高分析問(wèn)題和解決問(wèn)題能力。三、課程設(shè)計(jì)的內(nèi)容:設(shè)計(jì)一個(gè)對(duì)直流電機(jī)轉(zhuǎn)速測(cè)量與轉(zhuǎn)速控制的閉環(huán)控制系統(tǒng)。微機(jī)控制中心在監(jiān)控界面上設(shè)置電機(jī)轉(zhuǎn)速。電機(jī)轉(zhuǎn)速測(cè)量利用霍爾傳感器電路產(chǎn)生轉(zhuǎn)速脈沖,定時(shí)/計(jì)數(shù)電路
2、通過(guò)脈沖計(jì)數(shù)獲得轉(zhuǎn)速參量。電機(jī)轉(zhuǎn)速調(diào)整采用PWM脈寬調(diào)節(jié))方法,控制中心采樣到電機(jī)轉(zhuǎn)速參量,算得轉(zhuǎn)速值同預(yù)定轉(zhuǎn)速設(shè)置值進(jìn)行比較,若不相同,則調(diào)整控制轉(zhuǎn)速脈沖的占空比,來(lái)達(dá)到調(diào)速的目的。(占空比=脈沖寬度/脈沖周期)四、系統(tǒng)功能要求與設(shè)計(jì)要求:1. 系統(tǒng)監(jiān)控界面設(shè)計(jì):監(jiān)控系統(tǒng)具有轉(zhuǎn)速參數(shù)設(shè)置窗口、采樣的電機(jī)轉(zhuǎn)速數(shù)據(jù)顯示窗口、轉(zhuǎn)速動(dòng)態(tài)曲線顯示窗口相應(yīng)功能選擇菜單。2. 監(jiān)控程序設(shè)計(jì)要求:a)監(jiān)控程序用查詢方式獲取轉(zhuǎn)速數(shù)據(jù)。b)監(jiān)控程序用中斷方式獲取轉(zhuǎn)速數(shù)據(jù)。3. 硬件設(shè)計(jì)要求:充分利用現(xiàn)有實(shí)驗(yàn)系統(tǒng)資源設(shè)計(jì)一個(gè)性能較好的直流電機(jī)轉(zhuǎn)速閉環(huán)控制系統(tǒng)。利用帶鎖存的I/O接口電路(如8255,74LS273
3、,D/A-DA0832)輸出控制電機(jī)轉(zhuǎn)速的脈沖。采樣轉(zhuǎn)速用 霍爾傳感器件提供電機(jī)轉(zhuǎn)速脈沖。利用定時(shí)/計(jì)數(shù)電路對(duì)電機(jī)轉(zhuǎn)速脈沖計(jì)數(shù)。微機(jī)可從定時(shí)/計(jì)數(shù)電路中獲得電機(jī)轉(zhuǎn)速數(shù)值,并產(chǎn)生控制電機(jī)轉(zhuǎn)速的PW脈沖。五、設(shè)計(jì)詳情:1)閉環(huán)控制系統(tǒng)原理圖電機(jī)轉(zhuǎn)速測(cè)量與控制閉環(huán)系統(tǒng)基本功能圖2)電機(jī)控制及轉(zhuǎn)速測(cè)量原理圖3)操作步驟直流電機(jī)在控制脈沖作用下轉(zhuǎn)動(dòng),電機(jī)轉(zhuǎn)盤(pán)上的永久磁鐵隨之旋轉(zhuǎn),霍爾傳感器件 3101T受磁場(chǎng)的影響,從端口 OUT俞出脈沖信號(hào),電機(jī)旋轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)脈沖, 脈沖頻率于電機(jī)轉(zhuǎn)速成正比。通過(guò)測(cè)出脈沖信號(hào)的頻率(單位時(shí)間脈沖個(gè)數(shù))就可以計(jì)算出 電機(jī)的轉(zhuǎn)速。測(cè)量轉(zhuǎn)速時(shí),需要一個(gè)定時(shí)器,
4、設(shè)定時(shí)間為T(mén),還需要一個(gè)計(jì)數(shù)器,將霍爾傳感器的(OUT 端)輸出脈沖引導(dǎo)計(jì)數(shù)器的輸入端。電機(jī)轉(zhuǎn)動(dòng)時(shí),同時(shí)啟動(dòng)定時(shí)器和計(jì)數(shù)器,當(dāng)定時(shí)器定時(shí)時(shí)間T到時(shí),停止計(jì)數(shù)器的脈沖計(jì)數(shù),并讀出計(jì)數(shù)器的計(jì)數(shù)值S(即:時(shí)間T內(nèi)的轉(zhuǎn)數(shù)),可以計(jì)算出主流電機(jī)的轉(zhuǎn)速 R=S/T。直流電機(jī)轉(zhuǎn)速調(diào)整:首先確定控制脈沖占空比的調(diào)整方式,一種是設(shè)定正(或負(fù))脈沖寬度,不斷調(diào)整負(fù)脈(或正)沖寬度實(shí)現(xiàn)轉(zhuǎn)速,當(dāng)轉(zhuǎn)速高于設(shè)定轉(zhuǎn)速時(shí),加大負(fù)脈沖(或減小正脈沖)的寬度。另一種是同時(shí)調(diào)整正負(fù)脈沖的寬度實(shí)現(xiàn)直流電機(jī)轉(zhuǎn)速調(diào)整。在調(diào)整了脈沖占空比后, 同時(shí)啟動(dòng)定時(shí)器和計(jì)數(shù)器,進(jìn)行轉(zhuǎn)速測(cè)量,直流電機(jī)轉(zhuǎn)速調(diào)整 與測(cè)量交叉進(jìn)行。PWMA. 編制利用帶鎖
5、存功能I/O端口(如8255,74LS273 , D/A-DA0832)輸出控制電機(jī)轉(zhuǎn)速的脈沖程序B. 編制利用定時(shí)器/計(jì)數(shù)器測(cè)量電機(jī)轉(zhuǎn)速程序C. A)程序和B)程序合并,實(shí)現(xiàn)電機(jī)轉(zhuǎn)速測(cè)量與控制D. 編制系統(tǒng)監(jiān)控界面的程序E. 電機(jī)轉(zhuǎn)速測(cè)量與閉環(huán)控制系統(tǒng)的連調(diào)。4) 課程設(shè)計(jì)試驗(yàn)環(huán)境:1. 微機(jī)一臺(tái)(Pentium 4 )微機(jī)接口技術(shù)實(shí)驗(yàn)箱一個(gè)ISA - PCI轉(zhuǎn)接卡一塊連接電纜一條萬(wàn)用表一塊微機(jī)接口技術(shù)實(shí)驗(yàn)講義一本導(dǎo)線、剝線鉗等2. 軟件環(huán)境:Windows XP 平臺(tái)Visual C+ 6.0 編譯器六、實(shí)驗(yàn)結(jié)果:我們?cè)谕瓿闪藢?shí)驗(yàn)的基本要求基礎(chǔ)上,還完成了實(shí)驗(yàn)的全部三個(gè)附加要求。詳情如下:
6、1)界面截圖a直流電機(jī)饕速狽喔與控制題統(tǒng)控制與監(jiān)控設(shè)定鑄速開(kāi)始 實(shí)測(cè)轉(zhuǎn)謹(jǐn)運(yùn)行時(shí)間實(shí)測(cè)占空比運(yùn)行狀態(tài)停止I fr?湎2)測(cè)試數(shù)據(jù)設(shè)定轉(zhuǎn)速2600r/m2100r/m1800r/s1200r/m600r/m300r/m實(shí)測(cè)轉(zhuǎn)速40r/s37r/s30r/s19r/s11r/s0調(diào)整時(shí)間oo015s8s20soo誤差oo5.71%0. 0%5%10%oo實(shí)際觀察設(shè)定速度最接近設(shè)電機(jī)剛啟電機(jī)剛啟電機(jī)剛啟由于速度情況如:調(diào)超過(guò)了額定速度,并動(dòng)后,立即動(dòng)后,立即動(dòng)后,立即太小,電機(jī)節(jié)快慢,波定最大速且剛啟動(dòng)達(dá)到最大達(dá)到最大達(dá)到最大收到阻尼,動(dòng)大小等度,無(wú)法平就穩(wěn)定。速度,等待速度,等待速度,等待產(chǎn)生震蕩,
7、衡,因此該一段時(shí)間一段時(shí)間一段時(shí)間無(wú)法測(cè)出數(shù)據(jù)為壞后,下降到后,下降到后,下降到實(shí)際速度。值。設(shè)定速度。設(shè)定速度。設(shè)定速度。七、實(shí)驗(yàn)心得:這次實(shí)驗(yàn)的題目確實(shí)比較難,因?yàn)槭?個(gè)人一組,設(shè)為組長(zhǎng),我們首先討論 了要完成這個(gè)題目需要做的工作,于是我們首先對(duì)任務(wù)進(jìn)行了分工,兩個(gè)人負(fù)責(zé) 頂層軟件的設(shè)計(jì)以及具體的程序控制, 兩個(gè)人對(duì)硬件進(jìn)行設(shè)計(jì),兩個(gè)人進(jìn)行中間 接口的設(shè)計(jì)和分析8255, 8253等一起的代碼,在做完之后大家再一起討論,爭(zhēng) 取使每個(gè)人都能明白整個(gè)實(shí)驗(yàn)的原理和具體的實(shí)現(xiàn)過(guò)程。經(jīng)過(guò)這次試驗(yàn),我明白了 8255, 8253等器件的用處以及對(duì)這兩種器件的編 程,對(duì)硬件的編程有了更深的理解,由于在實(shí)
8、驗(yàn)過(guò)程中,我負(fù)責(zé)的是頂層的軟件 設(shè)計(jì)與控制,所以對(duì)MFC進(jìn)行了學(xué)習(xí),對(duì)MFC也有了進(jìn)一步的認(rèn)識(shí)與了解。實(shí)驗(yàn)過(guò)程中,大家在一起交流學(xué)習(xí),共同為一個(gè)課題而努力,這是平時(shí)很難 得的機(jī)會(huì)。增進(jìn)了友誼,促進(jìn)了學(xué)習(xí)。很希望大學(xué)期間可以多有一些這樣的課程 設(shè)計(jì)!八、實(shí)驗(yàn)附錄:實(shí)驗(yàn)代碼:#in elude "stdafx.h"#i nclude "kkk.h"#i nclude "kkkDIg.h"#i nclude "PCI9052Dll.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def
9、THIS_FILEstatic char THIS_FILE = _FILE_;#en dif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog DataAFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;AFX_DATA/ ClassWizard gen erated virtual fun ctio n overridesAFX_VIRTUAL(CAboutDlg)protected:/ DDX/DDV suppo
10、rtvirtual void DoDataExcha nge(CDataExcha nge* pDX);/AFX_VIRTUAL/ Impleme ntati onprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExcha nge(CDataExcha nge* pDX) CDialog:DoDataExcha ng
11、e(pDX);AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)AFX_MSG_MAP(CAboutDlg)/ No message han dlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CKkkDIg dialogCKkkDlg:CKkkDlg(CWnd* pPare nt /*=NULL*/):CDialog(CKkkDlg:IDD, pPare nt)AFX_DATA_INIT(CKkkDlg)m_str = _T(”);m_set_speed = 30;AFX_DA
12、TA_INIT/ Note that LoadIc on does n ot require a subseque nt DestroyIc on in Win32 m_hlco n = AfxGetApp()->Loadlco n(IDR_MAINFRAME);void CKkkDlg:DoDataExcha nge(CDataExcha nge* pDX)CDialog:DoDataExcha nge(pDX);AFX_DATA_MAP(CKkkDlg)DDX_Text(pDX, IDC_EDIT_SPEED, m_str);DDX_Text(pDX, IDC_EDIT_SET_SP
13、EED, m_set_speed);DDV_Mi nM axI nt(pDX, m_set_speed, 0, 2400);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CKkkDlg, CDialog)AFX_MSG_MAP(CKkkDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, On Speed_Add)ON_BN_CLICKED(IDC_BUTTON2, On Speed_ Min)ON_WM_TIMER()ON_BN_CLICKED(IDC_BUTTON
14、_ADD, On Butt on Add)ON_BN_CLICKED(IDC_BUTTON4, On Stop)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CKkkDlg message han dlersBOOL CKkkDlg:O nlni tDialog()CDialog:O nlni tDialog();/ Add "About." menu item to system menu./ IDM_ABOUTBOX must be in the system comma nd ran ge.ASSERT(IDM_ABOUTBOX & OxFFF
15、O) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < OxFOOO);CMe nu* pSysMe nu = GetSystemMe nu(FALSE);if (pSysMe nu != NULL)CStri ng strAboutMe nu;strAboutMe nu.LoadStri ng(IDS_ABOUTBOX);if (!strAboutMe nu.lsEmpty()pSysMe nu->Appe ndMe nu(MF_SEPARATOR);pSysMe nu->Appe ndMe nu(MF_STRING, IDM_ABOUTBOX,
16、strAboutMe nu); / Set the icon for this dialog. The framework does this automatically/ whe n the applicati on's mai n wi ndow is n ot a dialogSetIco n(m_hlco n, TRUE);/ Set big iconSetIco n(m_hlco n, FALSE);/ Set small icon/ TODO: Add extra in itializatio n herethis->SetTimer(1235,1000,0);Ope
17、n Device();GetIoBase(&usloAddr1);data 仁 0x50;OutByte(usloAddr1+0x08+3,data1);data1=0xff;OutByte(usIoAddr1+0x08+1,data1);return TRUE; / return TRUE uni ess you set the focus to a con trolvoid CKkkDlg:O nSysComma nd(UINT nID, LPARAM lParam)if (n ID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;d
18、lgAbout.DoModal();elseCDialog:O nSysComma nd( nID, lParam);/ If you add a mini mize butt on to your dialog, you will n eed the code below/ to draw the icon. For MFC applicati ons using the docume nt/view model,/ this is automatically done for you by the framework.extern int data100;extern in t i nde
19、x_data;exter n int in dex_x;void CKkkDlg:O nPai nt()if (Islc oni c()CPaintDC dc(this); / device con text for paintingSen dMessage(WMCONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); / Cen ter icon in clie nt recta ngleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect
20、 rect;GetClie ntRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIco n + 1) / 2;/ Draw the icondc.DrawIc on(x, y, m_hIc on); elseCDialog:O nPai nt();CClie ntDC dc(this);/xdc.MoveTo(0,300);dc.L in eTo(700,300); dc.MoveTo(685,295);dc.L in eTo(700,300);dc.MoveTo(685,30
21、5);dc.L in eTo(700,300); /y dc.MoveTo(20,0);dc.L in eTo(20,300);dc.MoveTo(15,20);dc.Li neTo(20,0);dc.MoveTo(25,20);dc.Li neTo(20,0); /xxxxxCPen pen;pe n.CreatePe n(PS_SOLID,2,RGB(O,O,255); CPe n *oldpe n=dc.SelectObject(&pe n);dc.MoveTo(0,300-m_set_speed*5);dc.L in eTo(700,300-m_set_speed*5); dc
22、.SelectObject(oldpe n);/draw dataCPen penl;pen I.CreatePe n(PS_SOLID,2,RGB(255,O,O);oldpe n=dc.SelectObject(&pe n1);in dex_data=0;for(i nt i=0;i< in dex_x-1;i+)dc.MoveTo(i ndex_data+20,300-datai*5);dc.L in eTo(i ndex_data+10+20,300-datai+1*5);in dex_data+=10;dc.SelectObject(oldpe n);/fon t.De
23、leteObject();/ The system calls this to obtai n the cursor to display while the user drags/ the mi ni mized win dow.HCURSOR CKkkDlg:O nQueryDraglco n()return (HCURSOR) m_hIco n;#defi ne Num 1024int data100;int in dex_x=0;int in dex_data=0;int coun t=0;int flag=Num/2;in t last=0;bool IsStop=0;int tim
24、eLast=0;void CKkkDlg:O nSpeed_Add()/ TODO: Add your con trol no tificati on han dler code here if(flag<Num-10)flag+=10;CStri ng str;str.Format("%f',flag*1.0/Num); SetDlgltemText(IDC_EDIT_PWM,str);void CKkkDlg:O nSpeed_Mi n()/ TODO: Add your con trol no tificati on han dler code here if(f
25、lag>=10)flag-=10;CStri ng str;str.Format("%f',flag*1.0/Num);SetDlgltemText(IDC_EDIT_PWM,str);void CKkkDlg:O nTimer(UINT nIDEve nt)/ TODO: Add your message han dler code here an d/or call default/read 8253In Byte(usloAddr1+0x09,&ldata1);int temp=255-Idata1;data1=0xff;OutByte(usloAddr1
26、+0x08+1,data1);UpdateData();while (temp=m_set_speed)goto loop;if(temp>m_set_speed+1)if(flag>=20)flag-=20;else if(temp<m_set_speed-1)if(flag<Num-20)flag+=20;loop:CStri ng str;str.Format("%d",temp);SetDlgltemText(IDC_EDIT_SPEED,str);/CStri ng str;str.Format("%f',flag*1.0
27、/Num);SetDlgltemText(IDC_EDIT_PWM,str);if(IsStop) this->KillTimer(1235);/draw ing/CClie ntDC dc(this);datai ndex_x=temp;in dex_x+;if(in dex_x>70) in dex_x=0;/ timeLast+;/ str.Format("%d:%d", timeLast/60,timeLast%60);/ SetDlgItemText(IDC_EDIT_TIME,str);double t=(temp-m_set_speed)*1.0/m_set_speed;if(t>0.1)SetDlgltemText(IDC_EDIT_ERROR,"ERROR"); timeLast+;str.Format("%d:%d", timeLast/6
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《子網(wǎng)掩碼的計(jì)算》課件
- 第6單元 科技文化與社會(huì)生活(B卷·能力提升練)(解析版)
- 百貨商店電器城保安工作總結(jié)
- 集裝箱散貨轉(zhuǎn)化公路運(yùn)輸代理協(xié)議三篇
- 2023-2024年員工三級(jí)安全培訓(xùn)考試題附參考答案【典型題】
- 乘除法應(yīng)用題課件
- 2023年-2024年企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題附解析答案
- 教育資源整合研究報(bào)告
- 《督脈與腧穴》課件
- 云平臺(tái)下的供應(yīng)鏈協(xié)同-洞察分析
- 阿里菜鳥(niǎo)裹裹云客服在線客服認(rèn)證考試及答案
- 水庫(kù)防恐反恐應(yīng)急預(yù)案
- 危險(xiǎn)化學(xué)品銷售管理臺(tái)帳
- 五輸穴及臨床應(yīng)用1
- 綠植租擺服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 童話知識(shí)競(jìng)賽課件
- 一氧化氮讓你遠(yuǎn)離心腦血管病第(全書(shū)回顧綜合版)
- GB/T 12574-2023噴氣燃料總酸值測(cè)定法
- 2022年天津三源電力集團(tuán)限公司社會(huì)招聘33人上岸筆試歷年難、易錯(cuò)點(diǎn)考題附帶參考答案與詳解
- 2023-2024學(xué)年廣東廣州番禺區(qū)四年級(jí)數(shù)學(xué)第一學(xué)期期末綜合測(cè)試試題含答案
- 抑郁病診斷證明書(shū)
評(píng)論
0/150
提交評(píng)論