-
# include<stdio.h>
# include<math.h>
# define N 3
main(){
float NF2(float *x,float *y);
float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}};
float b[N]={7.2,8.3,4.2},sum=0;
float x[N]= {0,0,0},y[N]={0},x0[N]={};
int i,j,n=0;
for(i=0;i<N;i++)
{
x[i]=x0[i];
}
for(n=0;;n++){
//計算下一個值
for(i=0;i<N;i++){
sum=0;
for(j=0;j<N;j++){
if(j!=i){
sum=sum+A[i][j]*x[j];
}
}
y[i]=(1/A[i][i])*(b[i]-sum);
//sum=0;
}
//判斷誤差大小
if(NF2(x,y)>0.01){
for(i=0;i<N;i++){
x[i]=y[i];
}
}
else
break;
}
printf("經過%d次雅可比迭代解出方程組的解:\n",n+1);
for(i=0;i<N;i++){
printf("%f ",y[i]);
}
}
//求兩個向量差的二范數函數
float NF2(float *x,float *y){
int i;
float z,sum1=0;
for(i=0;i<N;i++){
sum1=sum1+pow(y[i]-x[i],2);
}
z=sqrt(sum1);
return z;
}
標簽:
C語言
編寫
迭代
上傳時間:
2019-10-13
上傳用戶:大萌萌撒
-
#include <stdio.h>
#include <stdlib.h>
#define SMAX 100
typedef struct SPNode
{
int i,j,v;
}SPNode;
struct sparmatrix
{
int rows,cols,terms;
SPNode data [SMAX];
};
sparmatrix CreateSparmatrix()
{
sparmatrix A;
printf("\n\t\t請輸入稀疏矩陣的行數,列數和非零元素個數(用逗號隔開):");
scanf("%d,%d,%d",&A.cols,&A.terms);
for(int n=0;n<=A.terms-1;n++)
{
printf("\n\t\t輸入非零元素值(格式:行號,列號,值):");
scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v);
}
return A;
}
void ShowSparmatrix(sparmatrix A)
{
int k;
printf("\n\t\t");
for(int x=0;x<=A.rows-1;x++)
{
for(int y=0;y<=A.cols-1;y++)
{
k=0;
for(int n=0;n<=A.terms-1;n++)
{
if((A.data[n].i-1==x)&&(A.data[n].j-1==y))
{
printf("%8d",A.data[n].v);
k=1;
}
}
if(k==0)
printf("%8d",k);
}
printf("\n\t\t");
}
}
void sumsparmatrix(sparmatrix A)
{
SPNode *p;
p=(SPNode*)malloc(sizeof(SPNode));
p->v=0;
int k;
k=0;
printf("\n\t\t");
for(int x=0;x<=A.rows-1;x++)
{
for(int y=0;y<=A.cols-1;y++)
{
for(int n=0;n<=A.terms;n++)
{
if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y))
{
p->v=p->v+A.data[n].v;
k=1;
}
}
}
printf("\n\t\t");
}
if(k==1)
printf("\n\t\t對角線元素的和::%d\n",p->v);
else
printf("\n\t\t對角線元素的和為::0");
}
int main()
{
int ch=1,choice;
struct sparmatrix A;
A.terms=0;
while(ch)
{
printf("\n");
printf("\n\t\t 稀疏矩陣的三元組系統 ");
printf("\n\t\t*********************************");
printf("\n\t\t 1------------創建 ");
printf("\n\t\t 2------------顯示 ");
printf("\n\t\t 3------------求對角線元素和");
printf("\n\t\t 4------------返回 ");
printf("\n\t\t*********************************");
printf("\n\t\t請選擇菜單號(0-3):");
scanf("%d",&choice);
switch(choice)
{
case 1:
A=CreateSparmatrix();
break;
case 2:
ShowSparmatrix(A);
break;
case 3:
SumSparmatrix(A);
break;
default:
system("cls");
printf("\n\t\t輸入錯誤!請重新輸入!\n");
break;
}
if (choice==1||choice==2||choice==3)
{
printf("\n\t\t");
system("pause");
system("cls");
}
else
system("cls");
}
}
標簽:
數組
子系統
上傳時間:
2020-06-11
上傳用戶:ccccy
-
神經網絡在智能機器人導航系統中的應用研究1神經網絡在環境感知中的應 用
對環境 的感 知 ,環境模型 妁表示 是非常重要 的。未 知
環境中的障礙物的幾何形狀是不確定的,常用的表示方浩是
槽格法。如果用冊格法表示范圍較大的工作環境,在滿足
精度要求 的情況下,必定要占用大量的內存,并且采用柵
格法進行路徑規劃,其計算量是相當大的。Kohon~n自組織
神經瞬絡為機器人對未知環境的蒜知提供了一條途徑。
Kohone~沖經網絡是一十自組織神經網絡,其學習的結
果能體現出輸入樣本的分布情況,從而對輸入樣本實現數
據壓縮 。基于 網絡 的這些特 性,可采 用K0h0n曲 神經元 的
權向量來表示 自由空間,其方法是在 自由空間中隨機地選
取坐標點xltl【可由傳感器獲得】作為網絡輸入,神經嘲絡通
過對大量的輸八樣本的學習,其神經元就會體現出一定的
分布形 式 學習過程如下:開 始時網絡的權值隨機地賦值 ,
其后接下式進行學 習:
, 、 Jm(,)+叫f)f,)一珥ff)) ∈N,(f)
(,) VfeN.(f1
其 中M(f1:神經元 1在t時刻對 應的權值 ;a(∽ 謂整系 數 ;
(『l網絡的輸八矢量;Ⅳ():學習的 I域。每個神經元能最
大限度 地表示一 定 的自由空間 。神經 元權 向量的最 小生成
樹可以表示出自由空問的基本框架。網絡學習的鄰域 (,)
可 以動 態地 定義 成矩形 、多邊 形 。神經 元數量 的選取取 決
于環境 的復雜度 ,如果神 經元 的數量 太少 .它們就 不能 覆
蓋整十空間,結果會導致節點穿過障礙物區域 如果節點
妁數量太大 .節點就會表示更多的區域,也就得不到距障
礙物的最大距離。在這種情況下,節點是對整個 自由空間
的學 習,而不是 學習最 小框架空 間 。節 點的數 量可 以動態
地定義,在每個學習階段的結柬.機器人會檢查所有的路
徑.如檢鍘刊路徑上有障礙物 ,就意味著沒有足夠的節點
來 覆蓋整 十 自由窯 間,需要增加 網絡節點來 重新學 習 所
138一
以為了收斂于最小框架表示 ,應該采用較少的網絡 節點升
始學習,逐步增加其數量。這種方法比較適臺對擁擠的'E{=
境的學習,自由空間教小,就可用線段表示;若自由空問
較大,就需要由二維結構表示 。
采用Kohonen~沖經阿絡表示環境是一個新的方法。由
于網絡的并行結構,可在較短的時間內進行大量的計算。并
且不需要了解障礙物的過細信息.如形狀、位置等 通過
學習可用樹結構表示自由空問的基本框架,起、終點問路
徑 可利用樹的遍 歷技術報容易地被找到
在機器人對環境的感知的過程中,可采用人】:神經嘲
絡技術對 多傳 感器的信息進 行融臺 。由于單個傳感器僅能
提 供部分不 完全 的環境信息 ,因此只有秉 甩 多種傳感器 才
能提高機器凡的感知能力。
2 神經 網絡在局部路徑規射中的應 用
局部路徑 規刪足稱動吝避碰 規劃 ,足以全局規荊為指
導 利用在線得到的局部環境信息,在盡可能短的時問內
標簽:
神經網絡
智能機器人
導航
上傳時間:
2022-02-12
上傳用戶:qingfengchizhu
-
反激式開關電源變壓器設計的詳細步驟85W反激變壓器設計的詳細步驟 1. 確定電源規格. 1).輸入電壓范圍Vin=90—265Vac; 2).輸出電壓/負載電流:Vout1=42V/2A, Pout=84W 3).轉換的效率=0.80 Pin=84/0.8=105W 2. 工作頻率,匝比, 最低輸入電壓和最大占空比確定. Vmos*0.8>Vinmax+n(Vo+Vf)600*0.8>373+n(42+1)得n<2.5Vd*0.8>Vinmax/n+Vo400*0.8>373/n+42得n>1.34 所以n取1.6最低輸入電壓Vinmin=√[(Vacmin√2)* (Vacmin√2)-2Pin(T/2-tc)/Cin=(90√2*90√2-2*105*(20/2-3)/0.00015=80V取:工作頻率fosc=60KHz, 最大占空比Dmax=n(Vo+Vf)/[n(Vo+Vf)+Vinmin]= 1.6(42+1)/[1.6(42+1)+80]=0.45 Ton(max)=1/f*Dmax=0.45/60000=7.5us 3. 變壓器初級峰值電流的計算. Iin-avg=1/3Pin/Vinmin=1/3*105/80=0.4AΔIp1=2Iin-avg/D=2*0.4/0.45=1.78AIpk1=Pout/?/Vinmin*D+ΔIp1=84/0.8/80/0.45=2.79A 4. 變壓器初級電感量的計算. 由式子Vdc=Lp*dip/dt,得: Lp= Vinmin*Ton(max)/ΔIp1 =80*0.0000075/1.78 =337uH 取Lp=337 uH 5.變壓器鐵芯的選擇. 根據式子Aw*Ae=Pt*1000000/[2*ko*kc*fosc*Bm*j*?],其中: Pt(標稱輸出功率)= Pout=84W Ko(窗口的銅填充系數)=0.4 Kc(磁芯填充系數)=1(對于鐵氧體), 變壓器磁通密度Bm=1500Gs j(電流密度): j=4A/mm2;Aw*Ae=84*1000000/[2*0.4*1*60*103*1500Gs*4*0.80]=0.7cm4 考慮到繞線空間,選擇窗口面積大的磁芯,查表: ER40/45鐵氧體磁芯的有效截面積Ae=1.51cm2 ER40/45的功率容量乘積為 Ap = 3.7cm4 >0.7cm4 故選擇ER40/45鐵氧體磁芯. 6.變壓器初級匝數 1).由Np=Vinmin*Ton/[Ae*Bm],得: Np=80*7.5*10n-6/[1.52*10n-4*0.15] =26.31 取 Np =27T 7. 變壓器次級匝數的計算. Ns1(42v)=Np/n=27/1.6=16.875 取Ns1 = 17T Ns2(15v)=(15+1)* Ns1/(42+1)=6.3T 取Ns2 = 7T
標簽:
開關電源
變壓器
上傳時間:
2022-04-15
上傳用戶:
-
將偏差的比例(Proportion)、積分(Integral)和微分(Differential)通過線性組合構成控制量,用這一控制量對被控對象進行控制,這樣的控制器稱PID控制器。1.1模擬PID控制原理在模擬控制系統中,控制器最常用的控制規律是PID控制。為了說明控制器的工作原理,先看一個例子。如圖1-1所示是一個小功率直流電機的調速原理圖。給定速度n(f)與實際轉速進行比較n(),其差值e()=n(0-n(),經過PID控制器調整后輸出電壓控制信號u),u)經過功率放大后,驅動直流電動機改變其轉速。常規的模擬PID控制系統原理框圖如圖1-2所示。該系統由模擬PID控制器和被控對象組成。圖中,r()是給定值,y(f)是系統的實際輸出值,給定值與實際輸出值構成控制偏差e(t)e()作為PID控制的輸入,以)作為PID控制器的輸出和被控對象的輸入。所以模擬PID控制器的控制規律為
標簽:
pid控制
上傳時間:
2022-07-04
上傳用戶:
-
VIP專區-嵌入式/單片機編程源碼精選合集系列(39)資源包含以下內容:1. 這是有關SPI總線的一段讀寫程序.2. 這是一段MAX7219的驅動C51源程序.3. 利用msp430的通用I/O端口模擬I2c協議的源代碼.4. 超級下載軟件(progisp ver1.1)包括并口下載器與usb isp下載器的詳細制作資料.5. MCS51產單片機上實現的tcp/ip,很全的哦,需要的可以參考一下..6. 嵌入式系統圖形用戶界面編程.7. 05嵌入式大會的部分演講稿.8. 51系列對CH375模塊讀寫.9. test for boundary scan and CPLD ics..10. 這是我個人再學習ARM7s3c2410的 時候用到的試驗代碼.11. 本人水品有限.12. 是在不好意思.13. 入門試驗代碼.14. pxros的使用說明.15. 在NIOS中利用C語言模擬I2C總線時序.16. ALTERA NIOS處理器實驗.17. ALTERA NIOS處理器實驗.18. ALTERA NIOS處理器實驗.19. ALTERA NIOS處理器實驗.20. ALTERA NIOS處理器實驗.21. 隨著高性能計算的需求.22. ADS1.2是一個使用方便的集成開發環境.23. AVR單片機嵌入式操作系統原代碼.24. 有關rtos的書.25. 重要的匯編語言編程......和大家一起分享.26. AT91M55800A材料-BasicTimer.27. I2c代碼.28. WINDOWS系統下灰度的BMP圖片轉換成黑白圖片..29. 在WINDOWS CE.NET 系統中讀RDP連接的用戶名的密碼..30. 嵌入式實時操作系統μCOS-在ARM上的移植應用.31. 在s3c44b0x運行的俄羅斯方塊游戲 DOS參考代碼.32. uCOS-II在C51下的一個完整的LCD項目源碼.33. 石子歸并問題:在一個圓形操場的四周擺放著N堆石子(N<= 100),現要將石子有次序地合并成一堆.規定每次只能選取相鄰的兩堆合并成新的一堆,并將新的一堆的石子數,記為該次合并的得分.編一程序,由.34. 單片機及嵌入式系統web實現的文章
很好的:MCU應用系統與Internet連接的一種新技術.35. 單片機發展趨勢的文章:
從Cygnal C8051F看8位單片機發展之路
好.36. usb host在ARM7上的實現.37. 對arm300的一些簡單的試驗做了詳細地說明和講解.38. arm技術手冊.39. arm7上開發usb的文檔,說得非常好.40. 一個關于s1d13806的應用程序.
標簽:
機構
分
機械手
上傳時間:
2013-04-15
上傳用戶:eeworm
-
基于PXA270-S linux的FPGA實現。\r\n向LED_CONTROL寫入n即得到n*0.1S的延時,LED閃爍的快慢程度發生變化。
標簽:
linux
FPGA
PXA
270
上傳時間:
2013-08-22
上傳用戶:tb_6877751
-
對于常規VDMOS器件結構, Rdson與BV存在矛盾關系,要想提高BV,都是從減小EPI參雜濃度著手,但是外延層又是正向電流流通的通道,EPI參雜濃度減小了,電阻必然變大,Rdson增大。所以對于普通VDMOS,兩者矛盾不可調和。
但是對于COOLMOS,這個矛盾就不那么明顯了。通過設置一個深入EPI的的P區,大大提高了BV,同時對Rdson上不產生影響。為什么有了這個深入襯底的P區,就能大大提高耐壓呢?
對于常規VDMOS,反向耐壓,主要靠的是N型EPI與body區界面的PN結,對于一個PN結,耐壓時主要靠的是耗盡區承受,耗盡區內的電場大小、耗盡區擴展的寬度的面積,也就是下圖中的淺綠色部分,就是承受電壓的大小。常規VDMOS,P body濃度要大于N EPI, PN結耗盡區主要向低參雜一側擴散,所以此結構下,P body區域一側,耗盡區擴展很小,基本對承壓沒有多大貢獻,承壓主要是P body--N EPI在N型的一側區域,這個區域的電場強度是逐漸變化的,越是靠近PN結面(a圖的A結),電場強度E越大。所以形成的淺綠色面積有呈現梯形。
標簽:
CoolMos
制造
上傳時間:
2013-11-11
上傳用戶:小眼睛LSL
-
假定從8位AD中讀取數據(如果是更高位的AD可定義數據類型為int),子程序為get_ad();
1、限幅濾波法(又稱程序判斷濾波法)
A、方法:
根據經驗判斷,確定兩次采樣允許的最大偏差值(設為A)
每次檢測到新值時判斷:
如果本次值與上次值之差<=A,則本次值有效
如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值
B、優點:
能有效克服因偶然因素引起的脈沖干擾
C、缺點
無法抑制那種周期性的干擾
平滑度差
/* A值可根據實際情況調整
value為有效值,new_value為當前采樣值
濾波程序返回有效的實際值 */
#define A 10
char value;
char filter()
{
char new_value;
new_value = get_ad();
if ( ( new_value - value > A ) || ( value - new_value > A )
return value;
return new_value;
}
2、中位值濾波法
A、方法:
連續采樣N次(N取奇數)
把N次采樣值按大小排列
取中間值為本次有效值
B、優點:
能有效克服因偶然因素引起的波動干擾
對溫度、液位的變化緩慢的被測參數有良好的濾波效果
C、缺點:
對流量、速度等快速變化的參數不宜
/* N值可根據實際情況調整
排序采用冒泡法*/
標簽:
單片機
軟件濾波
程序
上傳時間:
2014-12-26
上傳用戶:nanshan
-
電梯召喚、指令信號的傳輸大致有以下三種方法。
1 一一對應連線方法,即每只召喚或指令的傳輸單獨占據一路線。2.矩陣掃描傳輸方式,這種方式的傳輸將召喚或指令按鈕分為n行和n列排列,在行列的各個交點處串入一只召喚或指令按鈕。
標簽:
電梯
單片機
串行傳輸
上傳時間:
2014-12-27
上傳用戶:maizezhen