亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        離心機(jī)變頻驅(qū)動系統(tǒng)軟件設(shè)計

        2018-10-09 07:41:40張旺王東黃玲玲沈霄
        科技視界 2018年19期
        關(guān)鍵詞:通信系統(tǒng)離心機(jī)軟件

        張旺 王東 黃玲玲 沈霄

        【摘 要】隨著我國工業(yè)化進(jìn)程和電子技術(shù)的快速發(fā)展,離心機(jī)的應(yīng)用越來越廣泛。與此同時,企業(yè)對離心機(jī)各方面的性能有著越來越高的要求。本文詳細(xì)介紹了基于DSPIC30F3011單片機(jī)的驅(qū)動系統(tǒng)的設(shè)計方案、轉(zhuǎn)速檢測和通信系統(tǒng)各個部分,并附上了部分軟件程序。

        【關(guān)鍵詞】離心機(jī);軟件;PWM波形;測速系統(tǒng);通信系統(tǒng)

        中圖分類號: TQ051 文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2018)19-0052-003

        DOI:10.19694/j.cnki.issn2095-2457.2018.19.022

        Software Design of Centrifugal Variable Frequency Drive System

        ZHANG Wang WANG Dong HUANG Ling-ling SHEN Xiao

        (Hunan Normal University, School of Engineering and Design, Changsha Hunan 410000, China)

        【Abstract】With the rapid development of industrialization and electronic technology in China, the application of centrifuges is more and more extensive. At the same time, companies have increasingly higher requirements for all aspects of centrifuge performance. This paper introduces the design scheme, speed detection and communication system parts of the drive system based on DSPIC30F3011 microcontroller, and attaches some software programs.

        【Key words】Centrifuge; Software; PWM waveform; Speed measurement system; Communication system

        1 芯片簡介

        本系統(tǒng)選擇DSPIC30F3011作為主芯片,該芯片是microchip公司生產(chǎn)的高性能數(shù)字信號控制器,其包含5個16位定時器,4路輸入捕捉、4路輸出比較,6路PWM通道,9路10位的A/D轉(zhuǎn)換,2個異步收發(fā)器UART以及大內(nèi)存,完全滿足產(chǎn)生SPWM調(diào)速、建立用戶通信系統(tǒng)、測量轉(zhuǎn)速以及電機(jī)其他功能的需求。

        2 PWM模塊

        產(chǎn)生SPWM的方案:將PWM時基設(shè)置工作在連續(xù)向上/向下計數(shù)模式,產(chǎn)生一個對稱三角波形,通過公式計算出PTPER的值,通過配置特殊事件觸發(fā)寄存器的值,得到一路中心對稱的PWM波形,將PWM配對I/O引腳模式位設(shè)置為1,互補(bǔ)輸出模式,得到一組互補(bǔ)的輸出。由此得到三組PWM波。將SIN函數(shù)值放到各個占空比寄存器當(dāng)中,得到三組隨正弦規(guī)律變化的SPWM波形。

        通過配置DSPICL30F3011芯片的PWM模塊的相關(guān)寄存器,實現(xiàn)一個基本的三組PWM波的輸出。在本設(shè)計中,采用的是一個頻率為6MHz的晶振,產(chǎn)生一個頻率為6.5KHz的PWM波,需要配置PTCON(PWM時基控制寄存器)、PTPER(PWM時基周期寄存器)、SEVTCMP(特殊事件比較寄存器)、PWMCON1(PWM控制寄存器1)、PWMCON2(PWM控制寄存器2)。

        2.1 產(chǎn)生單通道PWM波形輸出

        為了產(chǎn)生三角載波,需要將PWM模塊時基控制寄存器PTCON設(shè)置為0X8002(開啟PWM時基,PWM時基輸出后預(yù)分頻比設(shè)為1:1,輸入時鐘預(yù)分頻比為1:1,工作在連續(xù)向上/向下計數(shù)模式),可以根據(jù)需要設(shè)計不同的分頻系數(shù),此值僅作參考。通過式(1)

        PTPER=■-1式(1)

        計算出PWM時基周期寄存器的值,并將十五位寄存器的值寫入時基寄存器(PTMR),因為工作在連續(xù)向上/向下計數(shù)模式,此值是三角載波的峰值,載波周期需乘以二,完成此步驟之后還需將相應(yīng)的中斷允許寄存器開啟,并且根據(jù)需要設(shè)計相應(yīng)的中斷優(yōu)先級,即可完成載波輸出。

        假設(shè)采用6M晶振,輸出PWM波的頻率為6.5k,PWM時基工作在連續(xù)向上/向下計數(shù)模式,無分頻,則:

        PTPER=■-1=460

        部分初始化例程如下:

        IFS2bits.PWMIF=0;清除PWM中斷標(biāo)志狀態(tài)位

        IEC2bits.PWMIE=1;允許PWM中斷

        IPC9=0X5000;將PWM中斷優(yōu)先級設(shè)為3

        PTCON=0X8002;

        PTMR=0X0000;清除計數(shù)寄存器值

        PTPER=460;輸出頻率為6.5k的PWM波

        2.2 產(chǎn)生三組PWM波形輸出

        為了驅(qū)動三相電動機(jī),在硬件電路設(shè)計了三組逆變橋,每組逆變橋的兩個開關(guān)管不能同時導(dǎo)通,并且三組的電壓相位相差120°,因此在軟件部分,控制開關(guān)管的脈沖序列必須達(dá)到這兩個要求。DSPIC30F3011內(nèi)部的PWM控制寄存器可以控制PWM波的輸出模式,當(dāng)處于互補(bǔ)模式時,就可以得到一組互補(bǔ)的序列(在編寫程序時,需要用到PWMCON1(PWM控制寄存器1)??紤]到開關(guān)器件的開關(guān)時間的存在,除此之外必須要設(shè)置序列間足夠長的死區(qū)時間,保證同一逆變橋的兩個開關(guān)管不會同時閉合。

        假設(shè)采用6M晶振,死區(qū)時間由單元A提供,單元A的預(yù)分頻比為1:2,死區(qū)時間設(shè)為5us 則:

        十六進(jìn)制時間值=3MHz×5μs=15=0X000F

        部分程序如下:

        DTCON1=0X000F;

        DTCON2=0X0000;所有PWM信號的死區(qū)時間都由單元A提供

        PWMCON1=0X0077;模塊為互補(bǔ)模式,允許PWMPIN引腳輸出

        3 測速系統(tǒng)的軟件實現(xiàn)

        本系統(tǒng)中采用霍爾元件測速法,將霍爾元件的輸入端安裝在電機(jī)底部的轉(zhuǎn)軸上,輸出端接CPU的CN端口,根據(jù)其測速原理,在程序設(shè)計部分,需要檢測其輸出端的電平變化,并且進(jìn)行計數(shù),可以用單片機(jī)DSPIC30F3011內(nèi)部的計數(shù)器和輸入捕捉中斷模塊來實現(xiàn)。

        初始化程序如下:

        void initial_CN(void)

        {

        CNPU1=0X00fe; //CN12345,6,7,上拉開啟CN0不上拉,作AD口.

        CNPU2=0X0006; //CN17.18上拉.

        CNEN1=0X0000; //CN5,CN6,CN7電平變化中斷關(guān)閉。

        CNEN2=0X0000; //不要CN中斷.

        IPC3=0X0000;

        IEC0bits.CNIE=0; //關(guān)閉電平變化中斷

        }

        void initial_icp7(void)

        {

        IC7CON=0X0002; //每個下降沿捕捉一次,每次一個中斷,捕捉TMR3的內(nèi)容。

        IC7BUF=0;

        }

        計數(shù)器初始化程序如下

        void initial_timer(void)

        { PR1=24000; // t1計數(shù)周期設(shè)為24000

        TMR1=0;

        TMR2=0;

        TMR3=0;

        T2CON=0X0008; //t2和T3形成32位定時器

        PR2=0XFFFF;

        PR3=0X06FF; //最大的周期設(shè)為19秒,如果19秒后沒有進(jìn)入CN中斷,報錯。

        }

        輸入捕捉模塊中斷程序如下

        void __attribute__((interrupt, no_auto_psv)) _IC7Interrupt(void)

        {

        hall_timer_low=TMR2;

        hall_timer = TMR3HLD;

        hall_timer <<= 16;

        hall_timer += hall_timer_low;

        TMR3HLD=0;

        TMR2=0;

        IFS1bits.IC7IF=0; //清除 輸入捕捉中斷.

        if(hall_timer>30000)

        {

        count_speed = 720000000/hall_timer;

        current_speed = count_speed;

        }

        if(syn_speed_set<(current_speed))

        SpeedCheckCount++;

        else

        SpeedCheckCount=0;

        }

        4 通信系統(tǒng)的軟件實現(xiàn)

        因為異步串行通信接口具有傳輸線少、成本低、可靠性高、實現(xiàn)簡單等優(yōu)點,在本設(shè)計中,對傳輸距離沒有太高的要求,因此選擇RS-232端口進(jìn)行傳輸,而所選用的CPU內(nèi)部集成有UART(通用異步收發(fā)器),只要在程序部分進(jìn)行配置即可。

        DSPIC30F3011芯片的UART是可以直接連接外設(shè)的串行I/O端口之一,在本設(shè)計中,利用這一端口實現(xiàn)軟件通信部分。在通信模塊有一個波特率發(fā)生器UXBRG,通過此寄存器,可設(shè)置波特率,計算方法如式(5-2a)、(5-2b):

        波特率=■式(5-2 a)

        UXBRG=■-1式(5-2 b)

        例如:系統(tǒng)晶振頻率為6MHz,設(shè)置波特率為1200,求波特率發(fā)生器的值。

        UXBRG=■-1■-1=311

        將此值寫入到波特率發(fā)生器,通信系統(tǒng)的波特率為1200

        UART初始化程序如下:

        void initial_uart(void)

        {

        U1BRG=311; //波特率是1200的值。

        U1STA=0X0130; //使能地址檢測//接收到一個緩沖器滿時,中斷標(biāo)志置位

        U1MODE=0X0406; //一個停止位,9位數(shù)據(jù)無奇偶效驗,使用ALIO(輔助IO端口)

        U1MODEbits.UARTEN=1; //啟用UART

        U1STAbits.UTXEN=1; //啟用發(fā)送功能。

        }

        發(fā)送數(shù)據(jù)程序:

        void send_uart_data(void)

        {

        if(U1STAbits.UTXBF==0)//發(fā)送緩沖器未滿

        {

        if(tx_count==0) //重新發(fā)送一個字?jǐn)?shù)據(jù)

        U1TXREG=tx_data[tx_count];//發(fā)送緩沖器加載數(shù)據(jù)

        else

        U1TXREG=tx_data[tx_count]&0x00ff; //如果9位數(shù)據(jù)沒加載完,緩沖寄存器繼續(xù)加載 tx_count++;

        if(tx_count>10)//加載完9位數(shù)據(jù),寫入數(shù)據(jù)

        { tx_count=0;

        write_send_data();

        }

        }

        }

        數(shù)據(jù)接收子程序如下:

        //*****************VOID receive_data數(shù)據(jù)接收子程序**************************************

        void receive_uart_data(void)

        {

        if(U1STAbits.OERR)

        {

        U1STAbits.OERR=0; //如果有數(shù)據(jù)溢出錯誤,清除數(shù)據(jù)溢出錯誤

        IFS0bits.U1RXIF=0;//清除接收中斷標(biāo)志

        if(sys_error==0) //無系統(tǒng)標(biāo)志錯誤數(shù)據(jù)

        sys_error=6; //串口通訊錯誤置位。

        }

        else if(U1STAbits.FERR)//檢測到當(dāng)前字符的幀錯誤

        {

        U1STAbits.FERR=0;//清除幀錯誤標(biāo)志位

        if(sys_error==0)

        sys_error=7; //返回接收錯誤信息

        }

        else if(rx_count==0)//接收寄存器中無數(shù)據(jù)

        {

        if(IFS0bits.U1RXIF)//UART1接收器中斷請求

        {

        IFS0bits.U1RXIF=0;//清除UART1接收器狀態(tài)標(biāo)志位

        while(U1STAbits.URXDA)//接收緩沖器中有數(shù)據(jù)

        rx_data[0]= U1RXREG;//接收數(shù)據(jù)

        if(rx_data[0]==0x0169)

        { rx_count++;

        U1STAbits.ADDEN=0;//地址檢測模式禁止(接收數(shù)據(jù)的第八位=1)

        }

        }

        }

        else

        {

        if(IFS0bits.U1RXIF) //如果接受中斷標(biāo)志位置位

        {

        IFS0bits.U1RXIF=0; //清除接收中斷標(biāo)志

        while(U1STAbits.URXDA) //接收緩沖器中有數(shù)據(jù)

        rx_data[rx_count]= U1RXREG;//接收數(shù)據(jù)

        rx_count++;

        if(rx_count>10) //接收到一個9位數(shù)據(jù)后

        {

        rx_count=0; //地址清零,等待接收下一個

        rx_data[0]=0;

        U1STAbits.ADDEN=1;//地址檢測模式使能

        receive_data_check();//接收數(shù)據(jù)校驗

        read_rx_data();//讀數(shù)據(jù)

        }

        }

        }

        }

        //********************void data check接收數(shù)據(jù)和效驗*********************************************

        void receive_data_check(void)

        {

        unsigned int rx_data_add;rx_data_add=rx_data[1]+rx_data[2]+rx_data[3]+rx_data[4]+rx_data[5]+rx_data[6]+rx_data[7]+rx_data[8]+rx_data[9];

        rx_data_add&=0x00ff;

        if(rx_data_add==rx_data[10])

        rx_ERROR=0;

        else

        rx_ERROR=1;

        }

        5 結(jié)束語

        在離心機(jī)系統(tǒng)中,軟件系統(tǒng)非常重要,軟件系統(tǒng)的優(yōu)劣直接決定了整個系統(tǒng)的安全性和可靠性。在本系統(tǒng)中設(shè)計了一個電機(jī)測速系統(tǒng),檢測當(dāng)前的轉(zhuǎn)速,對速度進(jìn)行實時監(jiān)控,讓操作員能夠清楚的知道當(dāng)前電機(jī)的轉(zhuǎn)速。為了增強(qiáng)系統(tǒng)的可操作性,還增加了微機(jī)間的通信系統(tǒng),讓操作員可以根據(jù)需要對離心機(jī)速度,時間進(jìn)行調(diào)節(jié)與設(shè)定。

        【參考文獻(xiàn)】

        [1]張燕賓.SPWM變頻調(diào)速應(yīng)用技術(shù)第3版[M].北京:機(jī)械工業(yè)出版社,2005:59-84.

        [2]馬小亮.高性能變頻調(diào)速及其典型控制系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2010:44-47.

        [3]石秋潔,張燕賓.變頻器應(yīng)用基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,2002.

        [4]周志敏,周紀(jì)海,紀(jì)愛華.變頻調(diào)速系統(tǒng)設(shè)計與維護(hù)[M].北京:中國電力出版社,2007.

        猜你喜歡
        通信系統(tǒng)離心機(jī)軟件
        禪宗軟件
        英語文摘(2021年10期)2021-11-22 08:02:26
        軟件對對碰
        LP60型雙級活塞推料離心機(jī)的研制與應(yīng)用
        離心機(jī)轉(zhuǎn)速及相對離心力的正確表示
        基于電力線信道分析的調(diào)制解調(diào)方式選擇
        淺析計算機(jī)網(wǎng)絡(luò)與通信系統(tǒng)
        商情(2016年40期)2016-11-28 11:24:37
        基于html5及android平臺的幼兒接送系統(tǒng)
        城市燃?xì)釹CADA系統(tǒng)的分析和設(shè)計
        ZPJ-40型高速轉(zhuǎn)盤離心機(jī)減振技術(shù)
        土工離心機(jī)研制概述
        国产精品 人妻互换| 快射视频网站在线观看| 手机在线观看日韩不卡av| 日韩人妻一区二区三区蜜桃视频| 亚洲va欧美va国产综合| 国产成人综合亚洲av| 国产精品亚洲一二三区| 一区二区三区四区国产亚洲| 国产视频自拍一区在线观看| 亚洲日韩国产精品乱-久| 国产欧美日韩网站| 国产精品国产三级在线专区| 桃红色精品国产亚洲av| 成年免费视频黄网站zxgk| 亚洲精品中国国产嫩草影院美女| 一区二区三区在线观看高清视频| 国产精品亚洲第一区二区三区| 国产午夜精品理论片| 日韩欧美亚洲中字幕在线播放| 国产精品久久国产精麻豆| 亚洲线精品一区二区三区| 最新国产精品久久精品| 岛国av无码免费无禁网站下载| 亚洲av熟女天堂系列| 国产av综合网站不卡| 亚洲人午夜射精精品日韩 | 亚洲中文字幕每日更新| av天堂手机在线免费| 亚洲视频网站大全免费看| 熟妇人妻无乱码中文字幕 | 国产无套一区二区三区久久| 亚洲av综合av一区二区三区| 少妇被粗大的猛烈进出69影院一| 精品乱码一区二区三区四区| 日韩精品极品视频在线免费| 人妻少妇精品视频专区vr| 东京无码熟妇人妻av在线网址| 白白色免费视频一区二区| 日本一区二区不卡二区| 韩国三级中文字幕hd| 熟妇无码AV|