DesignSpark PCB 第3版現(xiàn)已推出! 包括3種全新功能: 1. 模擬介面 Simulation Interface 2. 設(shè)計(jì)計(jì)算機(jī) Design Calculator 3. 零件群組 Component Grouping 第3版新功能介紹 (含資料下載) 另外, 中文版的教學(xué)已經(jīng)準(zhǔn)備好了, 備有簡體和繁體版, 趕快下載來看看! 設(shè)計(jì)PCB產(chǎn)品激活:激活入品 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum。
標(biāo)簽: DesignSpark PCB 設(shè)計(jì)工具 免費(fèi)下載
上傳時(shí)間: 2013-10-07
上傳用戶:a67818601
算法介紹 矩陣求逆在程序中很常見,主要應(yīng)用于求Billboard矩陣。按照定義的計(jì)算方法乘法運(yùn)算,嚴(yán)重影響了性能。在需要大量Billboard矩陣運(yùn)算時(shí),矩陣求逆的優(yōu)化能極大提高性能。這里要介紹的矩陣求逆算法稱為全選主元高斯-約旦法。 高斯-約旦法(全選主元)求逆的步驟如下: 首先,對(duì)于 k 從 0 到 n - 1 作如下幾步: 從第 k 行、第 k 列開始的右下角子陣中選取絕對(duì)值最大的元素,并記住次元素所在的行號(hào)和列號(hào),在通過行交換和列交換將它交換到主元素位置上。這一步稱為全選主元。 m(k, k) = 1 / m(k, k) m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k 最后,根據(jù)在全選主元過程中所記錄的行、列交換的信息進(jìn)行恢復(fù),恢復(fù)的原則如下:在全選主元過程中,先交換的行(列)后進(jìn)行恢復(fù);原來的行(列)交換用列(行)交換來恢復(fù)。
上傳時(shí)間: 2015-04-09
上傳用戶:wang5829
/**************************************************************** 外部晶振8M PA0~3:四位數(shù)碼管的位選 PB0~7:數(shù)碼管的8位段選 外部中斷0用于計(jì)數(shù) 定時(shí)器0溢出中斷的定時(shí)為1ms 說明 :檢測到水流較小時(shí),繼電器延時(shí)1秒關(guān)閉 ******************************************************************/ #include<iom16v.h> #include<macros.h> #define uchar unsigned char #define uint unsigned int char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //數(shù)碼管段選 char position[4]={0xfe,0xfd,0xfb,0xf7};//數(shù)碼管位選 uint sumnum=0; //用于記錄1000ms內(nèi)進(jìn)入中斷的次數(shù) uint time=0; //記錄進(jìn)入比較定時(shí)器0的次數(shù) uint num=0; //記錄1ms內(nèi)進(jìn)入中斷的次數(shù) uint count=0; //進(jìn)入外部中斷0的次數(shù) uchar flag; uint sumnum1; //記錄100ms內(nèi)的數(shù)目 /***************************函數(shù)聲明***************************/ void delay(); void display(uint m ); void init(); void init_0(); void init_2(); void _delay_us(uint l) { unsigned int i; for(i=0;i<l;i++) { asm("nop"); } } /**************************主函數(shù)***********************************/ void main() { init(); init_0(); init_2(); while(sumnum<5) { PORTD=0XBF; segdisplay(sumnum1); } while(1) { segdisplay(sumnum1); } } /*************************掃描數(shù)碼管時(shí)的延時(shí)函數(shù)*********************/ void delay() { uchar i,j; for(i=6;i>0;i--) for(j=225;j>0;j--); } /************************數(shù)碼管顯示函數(shù)*****************************/ void segdisplay( int temp) { int seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int temp1,temp2,temp3,temp4; temp1=temp/1000; temp2=(temp/100)%10; temp3=(temp/10)%10; temp4=temp%10; DDRB=0xff; DDRA|=0x0f; PORTA=~BIT(3); PORTB=seg[temp1]; _delay_us(100); PORTA=~BIT(2); PORTB=seg[temp2]; _delay_us(100); PORTA=~BIT(1); PORTB=seg[temp3]; _delay_us(100); PORTA=~BIT(0); PORTB=seg[temp4]; _delay_us(100); } /***********************管腳初始化函數(shù)*********************/ void init() { DDRD|=0X40; //PD4 設(shè)置為輸出 PORTD=0XBF; DDRA=0XFF; DDRB=0XFF; PORTA=0XFF; PORTB=0XFF; } /***********************外部中斷0初始化*********************/ void init_0() { MCUCR=0X02; //INT0為下降沿觸發(fā) GICR=0X40; //使能INT0中斷 SREG=0X80; //使能總中斷 } /**********************定時(shí)器2初始化***********************/ void init_2() { TCCR0=0x03; // 內(nèi)部時(shí)鐘,64 分頻(8M/64=125KHz) TCNT0=0x83; //裝初值 TIMSK=0x01; // 允許 T/C0溢出中斷中斷 } /***********************外部中斷0子函數(shù)********************/ #pragma interrupt_handler int0_isr:2 void int0_isr(void) { count++; } /*********************定時(shí)計(jì)數(shù)器0溢出中斷子函數(shù)*****************/ #pragma interrupt_handler int0_over:10 void int0_over(void) { TCNT0=0x83; //重裝初值 if((time%100) == 0) sumnum1 = num; if(time == 1000) { sumnum=num; if(sumnum<10) { if((flag==1)&&(sumnum<10)) { PORTD=0XFF; flag=0; } flag++; } else PORTD=0XBF; num=0; time=0; } num+=count; count=0; ++time; }
標(biāo)簽: C語言
上傳時(shí)間: 2016-03-09
上傳用戶:彥 yan
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定義 sfr WDT_CONTR = 0xe1;//stc2051的看門狗?????? /**********全局常量************/ //寫卡的命令 #define write_command0 0//寫密碼 #define write_command1 1//寫配置字 #define write_command2 2//密碼寫數(shù)據(jù) #define write_command3 3//喚醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //讀卡的時(shí)間參數(shù)us #define ts_min 250//270*11.0592/12=249//取近似的整數(shù) #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10調(diào)整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中斷處理:采用查詢的方法讀卡時(shí)關(guān)所有中斷****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI總線 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//測試綠燈 sbit led_light1 = P1^5;//測試紅燈 sbit led_light_ok = P1^1;//讀卡成功標(biāo)志 sbit fengmingqi = P1^5; /***********全局變量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存儲(chǔ)卡上用戶數(shù)據(jù)(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數(shù)組ram uchar command; //第一個(gè)命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //緩存定時(shí)值,因用同一個(gè)定時(shí)器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //緩存定時(shí)值,因用同一個(gè)定時(shí)器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函數(shù)原型*****************/ //讀寫操作 void f_readcard(void);//全部讀出1~7 AOR喚醒 void f_writecard(uchar x);//根據(jù)命令寫不同的內(nèi)容和操作 void f_clearpassword(void);//清除密碼 void f_changepassword(void);//修改密碼 //功能子函數(shù) void write_password(uchar data *data p);//寫初始密碼或數(shù)據(jù) void write_block(uchar x,uchar data *data p);//不能用通用指針 void write_bit(bit x);//寫位 /*子函數(shù)區(qū)*****************************************************/ void delay_2(uint x) //延時(shí),時(shí)間x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能頻繁的復(fù)位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允許接收 //SCON =0x50; //01010000B:10位異步收發(fā),波特率可變,SM2=0不用接收到有效停止位才RI=1, //REN=1允許接收 TMOD = 0x21; //定時(shí)器1 定時(shí)方式2(8位),定時(shí)器0 定時(shí)方式1(16位) TCON = 0x40; //設(shè)定時(shí)器1 允許開始計(jì)時(shí)(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //啟動(dòng)定時(shí)器 WDT_CONTR = 0x3c;//使能看門狗 p_U2270B_Standby = 0;//單電源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//讀卡 { EA = 0;//全關(guān),防止影響跳變的定時(shí)器計(jì)時(shí) WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用喚醒功能來防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作碼讀0頁 write_bit(0); write_password(&bankdata[24]);//密碼block7 p_U2270B_CFE =1 ;// delay_2(516);//編程及確認(rèn)時(shí)間5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一個(gè)穩(wěn)定的低電平?超時(shí)判斷? while(!p_U2270B_OutPut);//等待上升沿的到來同步信號(hào)檢測1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定時(shí)器晚啟動(dòng)10個(gè)周期 //同步頭 if((324 < a.W) && (a.W < 353)) ;//檢測同步信號(hào)1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //讀0~7塊的數(shù)據(jù) for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8個(gè)位 { //等待下降沿的到來 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再賦值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//讀卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//寫卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//寫密碼:初始化密碼 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 for(i = 0;i < 35;i++) { write_bit(1);//寫數(shù)據(jù)位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//測試使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密碼存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡參數(shù):初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密碼寫數(shù)據(jù) { uchar data*data p; p = &bankdata[24]; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_password(p);//發(fā)口令 write_bit(0);//寫鎖定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//寫數(shù)據(jù) } else if(x == write_command3)//aor //喚醒 { //cominceptbuff[1]操作碼10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密碼 p_U2270B_CFE = 1;//此時(shí)數(shù)據(jù)不停的循環(huán)傳出 } else //停止操作碼 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密碼 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密碼 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作碼10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//寫新配置參數(shù):pwd=0 //密碼無效:即清除密碼 DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密碼 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密碼 DATA = 0x80;//操作碼10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//寫新密碼 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密碼存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函數(shù)***********************************/ void write_bit(bit x)//寫一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延時(shí)448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫0 } } /*******************寫一個(gè)block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0數(shù)據(jù) { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //讀卡 f_writecard(command1); //寫卡 f_clearpassword(); //清除密碼 f_changepassword(); //修改密碼 } }
標(biāo)簽: 12345
上傳時(shí)間: 2017-10-20
上傳用戶:my_lcs
開發(fā)和研制無鐵心永磁電機(jī)是當(dāng)前電機(jī)領(lǐng)域的一項(xiàng)重要課題,無鐵心永磁電機(jī)可以解決傳統(tǒng)有鐵心電機(jī)存在的重量重、損耗高、振動(dòng)噪聲大等問題。開發(fā)無鐵心永磁電機(jī)需要準(zhǔn)確計(jì)算電機(jī)的參數(shù)和性能,而實(shí)現(xiàn)這一任務(wù)的重要前提是獲得正確的磁場分布。無鐵心永磁電機(jī)氣隙外沒有鐵磁材料,其自身的結(jié)構(gòu)特點(diǎn)決定了無鐵心永磁電機(jī)的氣隙磁場屬于三維開域磁場,開域磁場工程問題的計(jì)算是近年來計(jì)算電磁學(xué)的研究熱點(diǎn)之一。 本文的研究內(nèi)容是國家高技術(shù)研究發(fā)展(863)計(jì)劃項(xiàng)目“新型稀土永磁電機(jī)設(shè)計(jì)與集成技術(shù)”的關(guān)鍵技術(shù)之一。針對(duì)無鐵心永磁電機(jī)的實(shí)際工程問題,計(jì)算方法的選擇力求既能保證一定的計(jì)算精度,又能節(jié)約計(jì)算機(jī)內(nèi)存和CPU時(shí)間。根據(jù)對(duì)各種開域電磁場計(jì)算方法的分析比較,本文將漸近邊界條件法和有限元法結(jié)合解決無鐵心永磁電機(jī)三維開域磁場計(jì)算問題。 本文主要由以下幾部分組成: 第一部分為無鐵心永磁電機(jī)三維開域磁場計(jì)算方法的研究。首先提出了基于標(biāo)量磁位的漸近邊界條件,建立了球形邊界的標(biāo)量磁位漸近邊界條件數(shù)學(xué)模型。為了盡可能減少節(jié)點(diǎn)的數(shù)量,結(jié)合無鐵心永磁電機(jī)的具體結(jié)構(gòu),推導(dǎo)了適合于盒形截?cái)噙吔绾蛨A柱形截?cái)噙吔缟虾啽阋仔械囊浑A和二階標(biāo)量漸近邊界條件算子,該算子具有簡單、有限元實(shí)施容易的特點(diǎn)。其次研究并建立了標(biāo)量漸近邊界條件與有限元法結(jié)合的三維開域靜磁場的數(shù)學(xué)模型,并提出具體的實(shí)施方法,推導(dǎo)出相應(yīng)的離散方程。通過對(duì)具有解析解的長方永磁體三維開域磁場的實(shí)例計(jì)算,驗(yàn)證了方法和所編程序的正確性,并將漸近邊界條件法與截?cái)喾ㄔ谟?jì)算精度和人工外邊界距離方面做了比較。結(jié)果表明:在相同人工外邊界情況下,漸近邊界條件與截?cái)噙吔鐥l件相比,計(jì)算精度明顯提高,二階漸近邊界條件明顯優(yōu)于一階漸近邊界條件。與截?cái)喾ㄏ啾龋瑵u近邊界條件法更節(jié)約計(jì)算機(jī)內(nèi)存和CPU時(shí)間,比較好地處理了計(jì)算量與計(jì)算精度之間的矛盾。 第二部分針對(duì)Halbach陣列內(nèi)轉(zhuǎn)子無鐵心永磁電機(jī)三維開域磁場問題進(jìn)行深入研究。利用漸近邊界條件法,定量地計(jì)算了在定轉(zhuǎn)子均無鐵心的情況下電機(jī)內(nèi)部及周圍磁場的大小,總結(jié)出了Halbach陣列無鐵心永磁電機(jī)磁場的空間分布規(guī)律。 第三部分針對(duì)不同拓?fù)浣Y(jié)構(gòu)的Halbach磁體陣列電機(jī)磁場問題進(jìn)行對(duì)比研究。通過大量的計(jì)算,探討了Halbach陣列永磁電機(jī)在轉(zhuǎn)子無鐵心情況下影響氣隙磁密的各種因素,分析了不同Halbach磁體軸向長度對(duì)端部漏磁的影響規(guī)律,給出了無鐵心永磁電機(jī)漏磁系數(shù)、電樞計(jì)算長度等主要設(shè)計(jì)參數(shù)隨電機(jī)結(jié)構(gòu)尺寸的變化規(guī)律。 第四部分針對(duì)具有試驗(yàn)數(shù)據(jù)的三種結(jié)構(gòu)的無鐵心永磁電機(jī)樣機(jī)進(jìn)行了計(jì)算和分析,計(jì)算結(jié)果與試驗(yàn)數(shù)據(jù)吻合,從而驗(yàn)證了漸近邊界條件法處理三維開域磁場問題的有效性和實(shí)用性。
上傳時(shí)間: 2013-06-22
上傳用戶:ivan-mtk
·摘 要:介紹了數(shù)字圖像處理主要研究領(lǐng)域中邊緣檢測的方法,即拉普拉斯高斯算子和Canny算子.利用MatLab圖像處理工具箱提供的圖像處理函數(shù),對(duì)圖像進(jìn)行邊緣檢測,給出了相應(yīng)程序及處理結(jié)果.結(jié)果表明:拉普拉斯高斯算子和Canny算子檢測邊緣清晰且噪聲小.[著者文摘]
標(biāo)簽: MATLAB 數(shù)字圖像 邊緣檢測
上傳時(shí)間: 2013-05-27
上傳用戶:標(biāo)點(diǎn)符號(hào)
目前,被廣泛使用的經(jīng)典邊緣檢測算子有Sobel算子,Prewitt算子,Roberts算子,Log算子,Canny算子等等。這些算子的核心思想是圖像的邊緣點(diǎn)是相對(duì)應(yīng)于圖像灰度值梯度的局部極大值點(diǎn)。然而,當(dāng)圖像中含有噪聲時(shí)這些算子對(duì)噪聲都比較敏感,使得將噪聲作為邊緣點(diǎn)。由于噪聲的干擾,不能檢測出真正的邊緣。一個(gè)擁有良好屬性的的邊緣檢測算法是每個(gè)研究者的追求。利用小波交換的特點(diǎn),設(shè)計(jì)了三次B樣條平滑濾波算子。通過利用這個(gè)算子,對(duì)利用小波變換來檢測圖像的邊緣進(jìn)行了一定的研究和理解。
標(biāo)簽: 小波變換 圖像邊緣檢測 中的應(yīng)用
上傳時(shí)間: 2013-10-13
上傳用戶:kqc13037348641
一直以來, 電子電路斷路器( E C B ) 都是由一個(gè)MOSFET、一個(gè) MOSFET 控制器和一個(gè)電流檢測電阻器所組成的。
上傳時(shí)間: 2013-10-18
上傳用戶:qwerasdf
對(duì)於許多電子子繫統(tǒng)而言,比如:VFD (真空熒光顯示屏)、TFT-LCD、GPS 或 DSL 應(yīng)用,僅采用一個(gè)簡單的降壓或升壓型 DC/DC 轉(zhuǎn)換器並不能滿足其要求
上傳時(shí)間: 2014-12-24
上傳用戶:nostopper
TLC2543是TI公司的12位串行模數(shù)轉(zhuǎn)換器,使用開關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。 TLC2543的特點(diǎn) (1)12位分辯率A/D轉(zhuǎn)換器; (2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間; (3)11個(gè)模擬輸入通道; (4)3路內(nèi)置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉(zhuǎn)換結(jié)束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導(dǎo); (10)可編程輸出數(shù)據(jù)長度。 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); } }
上傳時(shí)間: 2013-11-19
上傳用戶:shen1230
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1