娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

加入交流群  

掃一掃,添加管理員微信
備注:參考設(shè)計,即可被拉入群
和也在搞設(shè)計小伙伴們碰一碰

收藏 

評論 

aerobotics 發(fā)布

2021電賽H-用電器識別分析裝置

 
設(shè)計簡介
# 目錄 * 1.前言 * 2.團隊介紹 * 3.題目要求 * 4.方案介紹 * 5.具體設(shè)計 * 6.測試結(jié)果 * 7.總結(jié) # 1.前言 最近電賽國獎的總名單總算是下來了,本來進復(fù)測只求保底國二的我們在查詢獲獎名單時竟然發(fā)現(xiàn)我們隊伍后面跟著一個醒目的紅色*國一*的時候全組沸騰了,~~我當晚就狠狠造了一頓肉蛋奶(bushi)。~~剛好立創(chuàng)又發(fā)起了這次開源活動,受立創(chuàng)邀請,我們將開源這個項目。 # 2.團隊介紹 我們團隊來自武漢某民族大學的自動化專業(yè),團隊配置為兩個硬件設(shè)計與一個軟件設(shè)計。 # 3.題目要求 ![題目要求.png] ![題目要求2.png] 本題要求設(shè)計并制作一個根據(jù)電源線電流的電參量信息分析在用電器類別的裝置。該裝置具有學習和分析識別兩種工作模式。在學習模式下,測試并存儲用于識別各單件電器的特征參量;在分析識別模式下,實時指示在用電器的類別。 其中重點與難點為: 1. 電網(wǎng)在不同時間與不同地點波動范圍較大,會對大功率用電器測量造成影響,以至于其功率波動可達 ±50W之高,給用電器的準確識別帶來極大困難。 2. 在測量大功率電器與小功率電器組合時,大功率用電器的頻譜特性將會掩蓋小功率頻譜特性,給識別工作帶來極大困難。 3. 如何對電流大小相同而阻抗特性不同的用電器進行鑒別。 4. 用電器的選擇需要再三斟酌,好的用電器組合搭配會讓你的初測效果好很多。 # 4.方案介紹 ## 系統(tǒng)組成 本系統(tǒng)方案主要采用STM32 F407單片機作為系統(tǒng)主控,通過串口同SUI-101A電能計量模塊進行通訊,獲取有功功率、電壓、電流等電參數(shù),并通過這些參數(shù)進行用電器識別功能。其中SUI-101A模塊通過電流互感器接入插座,監(jiān)測用電器參數(shù)。 ![系統(tǒng)框圖.png] ![系統(tǒng)實物圖.jpg] ## 硬件電路 在暑假時,我們就已經(jīng)采用了使用電流互感器互感和使用CS5463模塊兩種方法。電流互感方案多種用電器或者大電流時當時fft沒找出差異,說實話CS5463比自己用電流互感器差分放大要穩(wěn)定很多,但在多種用電器一起識別時也是一般爛,尤其是相同電流與大電流時。在比賽時,聽說了SUI-101A,正好CS5463那個缺德商家不發(fā)貨,于是趕緊買了倆,結(jié)果發(fā)現(xiàn)比CS好用(速度更快,屬實因禍得福了)。 故本系統(tǒng)主要采用了SUI-101A模塊獲取電能參數(shù)。 模塊總體布局如下圖, ![QQ圖片20211214155323.jpg] 模塊通過電流與電壓互感器分別從負載線路上獲取電流與電壓信號,并送入24位高精度ADC中進行處理,再將波形數(shù)據(jù)送入STM8單片機中計算出電流、電壓等參數(shù)值,最后通過串口傳輸至STM32 F407中進行數(shù)據(jù)的分析與用電器的識別。 除此之外,做電路的地方就只做了自制用電器了(在工程里面),沒啥好說的,不過時間緊,直接用洞洞板做的。(所以嚴格上來說比賽并沒有使用立創(chuàng),orz!(不過平時一直在使用)多謝老板的獎金,嘿嘿嘿~ 暑假做的FFT方案的原理圖也一并放工程里了,但pcb在比賽時改了很多,基本刪沒了就不放了。不過需要注意的是,此方案會使220V高壓直接裸露在外,當時暑假我們做了雙層結(jié)構(gòu)、熱溶膠防止觸電等方法。 如果大家想復(fù)刻此題,還是推薦fft方案,能使自己的能力得到鍛煉,可以參考另一個開源工程(熬夜禿頭寫的,真大佬,瑞斯拜) # 5.具體設(shè)計 ## 程序設(shè)計 程序設(shè)計的比較簡單,具體流程如下: ![H題程序流程圖.png] * 識別部分:由于在測量取得的參數(shù)中僅有有功功率可滿足線性疊加,故我只使用了有功功率作為識別判據(jù)。首先將用電器的參數(shù)存進相應(yīng)用電器的結(jié)構(gòu)體中,并且通過循環(huán)取余窮舉七位二進制編碼生成不同用電器組合,隨后將當前負載電路上的有功功率與生成的128種用電器組合功率進行比較,倘若有某組合的誤差小于閾值,則斷定該組合為當前負載電路上的用電器組合,然后對該組合的二進制編碼進行解碼得到用電器組合。 * 學習部分:首先將所有用電器結(jié)構(gòu)體中的參數(shù)進行清零,隨后在紅外遙控器上下按下要學習的用電器編號,即可將用電器參數(shù)記錄到對應(yīng)用電器編號的結(jié)構(gòu)體中,至此完成學習。 其中核心代碼如下: ``` C //學習模式 void learn_mode(void) { char tbuf[32]; float voltage; //測量電壓 float Current; //測量電流 float Pow_fac; //功率因數(shù) float Pactive_pow; //有功功率 float frequency; if(learn_flag_0==1){ learn_flag_0=0; app1.Pactive_pow=0; app2.Pactive_pow=0; app3.Pactive_pow=0; app4.Pactive_pow=0; app5.Pactive_pow=0; app6.Pactive_pow=0; app7.Pactive_pow=0; if(SUI_101A_Get(1,&Current_proper.voltage,&Current_proper.Current,&Current_proper.Pactive_pow,&Current_proper.Pow_fac,&Current_proper.frequency)==0){ //LCD_ShowString(20,60,200,16,16,"Learning...Please wait."); if(app_num==1) { app1.Current =Current_proper.Current; app1.voltage =Current_proper.voltage; app1.Pactive_pow =Current_proper.Pactive_pow; app1.Pow_fac =Current_proper.Pow_fac; } if(app_num==2) { app2.Current =Current_proper.Current; app2.voltage =Current_proper.voltage; app2.Pactive_pow =Current_proper.Pactive_pow; app2.Pow_fac =Current_proper.Pow_fac; } if(app_num==3) { app3.Current =Current_proper.Current; app3.voltage =Current_proper.voltage; app3.Pactive_pow =Current_proper.Pactive_pow; app3.Pow_fac =Current_proper.Pow_fac; } if(app_num==4) { app4.Current =Current_proper.Current; app4.voltage =Current_proper.voltage; app4.Pactive_pow =Current_proper.Pactive_pow; app4.Pow_fac =Current_proper.Pow_fac; } if(app_num==5) { app5.Current =Current_proper.Current; app5.voltage =Current_proper.voltage; app5.Pactive_pow =Current_proper.Pactive_pow; app5.Pow_fac =Current_proper.Pow_fac; } if(app_num==6) { app6.Current =Current_proper.Current; app6.voltage =Current_proper.voltage; app6.Pactive_pow =Current_proper.Pactive_pow; app6.Pow_fac =Current_proper.Pow_fac; } if(app_num==7) { app7.Current =Current_proper.Current; app7.voltage =Current_proper.voltage; app7.Pactive_pow =Current_proper.Pactive_pow; app7.Pow_fac =Current_proper.Pow_fac; } } } } void JudgeSta(void) { int ElectricalSta[7]={0}; int len=7; int i=0,j=0; float p_sta[7]; //用電器工作狀態(tài) float p_sum; //總功率 float current; float power[7]={app1.Pactive_pow,app2.Pactive_pow,app3.Pactive_pow,app4.Pactive_pow,app5.Pactive_pow,app6.Pactive_pow,app7.Pactive_pow}; int times=0,timestmp=0; for( i=0;i<7;i++) { switch(i) { case 0:app1.sta="off"; break; case 1:app2.sta="off"; break; case 2:app3.sta="off"; break; case 3:app4.sta="off"; break; case 4:app5.sta="off"; break; case 5:app6.sta="off"; break; case 6:app7.sta="off"; break; } } for(times=0;times<128;times++) { timestmp=times; for(i=0;i<7;i++) ElectricalSta[i]=0; i=0; while(timestmp) { ElectricalSta[i]=timestmp%2; timestmp=timestmp/2; i++; } for(i = 0; i < len; i ++)//遍歷數(shù)組。 { p_sta[i] = ElectricalSta[i]*power[i]; } for(i=0;i<7;i++) { p_sum+=p_sta[i]; } if(p_sum<1000){ if(fabsf(p_sum-Current_proper.Pactive_pow)<0.2) //進行匹配 假設(shè)匹配PowerSum { for( i=0;i<7;i++) { if(ElectricalSta[i]==1) { switch(i) { case 0:app1.sta="on"; break; case 1:app2.sta="on"; break; case 2:app3.sta="on"; break; case 3:app4.sta="on"; break; case 4:app5.sta="on"; break; case 5:app6.sta="on"; break; case 6:app7.sta="on"; break; } } } p_sum=0; break; } p_sum=0; } else { if(fabsf(p_sum-Current_proper.Pactive_pow)<0.2) //進行匹配 假設(shè)匹配PowerSum { for( i=0;i<7;i++) { if(ElectricalSta[i]==1) { switch(i) { case 0:app1.sta="on"; break; case 1:app2.sta="on"; break; case 2:app3.sta="on"; break; case 3:app4.sta="on"; break; case 4:app5.sta="on"; break; case 5:app6.sta="on"; break; case 6:app7.sta="on"; break; } } } p_sum=0; break; } p_sum=0; } } } u8 SUI_101A_Get(u8 adder,float *vol,float *cur,float *pow,float *pf,float *fre){ u8 t=20; u8 rxlen=0; u8 i=0; u8 sum=0; u8 n=0; u8 CmdTxBuf[]={0x55,0x55,0x01,0x02,0x00,0x00,0xAD}; CmdTxBuf[2]=adder; Uart2_RxCnt=0; char buf[6]; CmdTxBuf[6]=CmdTxBuf[0]+CmdTxBuf[1]+CmdTxBuf[2]+CmdTxBuf[3]+CmdTxBuf[4]+CmdTxBuf[5];//??D?????D£?éoí USART_SendBuf(USART2,CmdTxBuf,7); delay_ms(10); //μè′y10ms,μè′yêy?Y·μ?? while(t){ t--; rxlen=Uart2_RxCnt; delay_ms(30); //μè′y5ms,á?D?3?1y5ms??óD?óê?μ?ò???êy?Y,?òè??a?óê??áê? if((rxlen==Uart2_RxCnt)&&(rxlen!=0)){//?óê?μ?á?êy?Y,?ò?óê?íê3éá? if(rxlen==(Uart2_RxBuf[5]+7)){ //êy?Y3¤?è?yè· } else{ return 3;//òì3£,êy?Y3¤?è′í?ó } sum=0; rxlen-=1;//3yè¥D£?é??μ?3¤?è for(i=0;i ``` **6.測試結(jié)果** [具體測試結(jié)果](https://www.bilibili.com/video/BV15r4y1D7wN?from=search&seid=15783606942855832458&spm_id_from=333.337.0.0)放在了視頻里,感興趣的話可以看看 **7.總結(jié)** 這題說來運氣成分也大,因為暑假訓練時就已經(jīng)做過2017年的K題了,當時也是第一次接觸220V的電壓,出了幾次事故,并且采用FFT方案的成品實際效果實在一般,基波幅度不穩(wěn)定,甚至會有高達±10%的抖動,而且除了基波之外其余諧波的分析價值實在不大,想了半天也沒想到該怎么處理,最后換了電能計量模塊并使用單參數(shù)判據(jù),最后發(fā)現(xiàn)效果不錯。只能說,大道至簡,能完成任務(wù)的方案就是好方案! 嘖,回想了一下今年比賽延期時的狀況,疫情卷土重來,搞得整個實驗室人心惶惶,當時一心只想著跑路,沒想到現(xiàn)在已經(jīng)國一了...另外,賽后復(fù)盤發(fā)現(xiàn),這次國一實在是運氣爆表,大多數(shù)使用FFT方案分析電器諧波的隊伍在測試時都有著不同的問題,把我們這種用現(xiàn)成模塊而且只使用了單個參數(shù)作為判據(jù)的隊伍抬上了國一,而且就連最關(guān)鍵的生成二進制編碼組合的代碼也是從CSDN上找到的,因此這個國一實在是受之有愧。但是不得不說,作為一個從小到大得到的唯一一個獎項,實在是秦始皇摸電線-贏麻了!
參考設(shè)計圖片
×

!注意:請使用瀏覽器自帶下載,迅雷等下載軟件可能無法下載到有效資源。

 
群聊設(shè)計,與管理員及時溝通

歡迎加入EEWorld參考設(shè)計群,也許能碰到搞同一個設(shè)計的小伙伴,群聊設(shè)計經(jīng)驗和難點。 入群方式:微信搜索“helloeeworld”或者掃描二維碼,備注:參考設(shè)計,即可被拉入群。 另外,如您在下載此設(shè)計遇到問題,也可以微信添加“helloeeworld”及時溝通。

 
網(wǎng)友評論
查找數(shù)據(jù)手冊?

EEWorld Datasheet 技術(shù)支持

論壇推薦 更多
更新時間2025-04-04 13:51:18

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

About Us 關(guān)于我們 客戶服務(wù) 聯(lián)系方式 器件索引 網(wǎng)站地圖 最新更新 手機版 版權(quán)聲明

EEWORLD參考設(shè)計中心

站點相關(guān): TI培訓 德州儀器(TI)官方視頻課程培訓

北京市海淀區(qū)中關(guān)村大街18號B座15層1530室 電話:(010)82350740 郵編:100190

電子工程世界版權(quán)所有 京B2-20211791 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 得荣县| 会宁县| 萨迦县| 育儿| 永年县| 志丹县| 诏安县| 六安市| 方山县| 棋牌| 平原县| 阿拉善盟| 永善县| 乌兰察布市| 吴堡县| 北安市| 壤塘县| 独山县| 阳曲县| 万安县| 江达县| 承德县| 金寨县| 鄂尔多斯市| 和平县| 绥德县| 遵义市| 久治县| 固安县| 高台县| 酒泉市| 弥勒县| 昌平区| 绍兴县| 株洲市| 绵竹市| 大理市| 夏邑县| 濮阳市| 重庆市| 西安市|