『壹』 PFC與EDEM軟體各有什麼優缺點哪個軟體比較容易學
DEM和PFC都是基於離散元演算法,所以在原理上其實並無太大不同,主要是在應用上有差別。
1)、EDEM具有非常友好的圖形用戶界面,無論是前處理建模還是後處理獲得各種數據圖表,都非常方便;而PFC主要還是採用命令的操作方式。
2)、EDEM是全三維的離散元求解器,當然,如果想簡化成二維也是可以的;PFC則是分為2D和3D兩個版本。
3)、EDEM能夠方便的進行各種非球形顆粒建模,採用球面填充法組建非球形顆粒。
4)、EDEM的並行計算效率明顯優於PFC。
5)、EDEM能夠支持CAD模型導入,能夠非常快速的進行復雜幾何結構建模。
6)、EDEM可以實現和CFD、FEA及MBD的耦合,處理更加復雜的問題。
7)、EDEM具有基於C++語言的二次開發介面(API介面),支持自定義復雜的動力學模型。
8)、PFC主要應用領域在岩土力學,EDEM目前應用范圍非常廣,重工、農機、制葯、冶金、化工均有比較深入的應用。
當然,軟體都在不斷發展之中,任何優勢和劣勢都不是絕對的。同時,也要看使用者能將軟體的功能發揮到什麼程度。
『貳』 為什麼三相pfc電路會存在三相之間的耦合
如果各路SCR只是當作不控整流的二極體使用,當輸入電壓平衡的時候,電流不會出現不平衡。
但如果輸入SCR是要按照一定控制規律進行控制時,輸入電流是否平衡取決於SCR的控制演算法。
『叄』 ups中pfc是什麼故障
首先需要區分UPS逆變器輸入過壓欠壓與輸出過壓欠壓。逆變器輸入過壓與欠壓指的是BUS電壓過高或者過低,在UPS正常的狀況下不會出現這種狀況,排除PFC硬體故障外,BUS電壓異常最有可能的原因是逆變器輸出帶了特殊性負載,如功率因數很低的感性負載(如大電感,熒光燈,空調,列印機等等)或容性載,這些功率因數偏極端的負載類型會使得設計不完善的UPS(主要是UPS逆變控制演算法)出現BUS電壓忽高忽低,無法校準到位,導致UPS報逆變故障。輸出過壓欠壓通常出現在UPS並機過程中,如果幾台並機的UPS輸出電壓不一致,那麼輸出電壓高的UPS勢必會將能量灌入輸出電壓低的UPS,引起一台UPS輸出過壓,一台UPS輸出欠壓,UPS本身通常報「負功fault」。
『肆』 DCS控制系統能應用先進控制演算法嗎
可以。
部分DCS系統會提供採用「先進控制演算法」(預測、模糊、神經網路)的功能塊。
有些是免費的,有些則需要根據現場的控制需求做定製開發。
可採用OPC介面,讀取DCS的實時和歷史數據,並據此做數學模型識別或給出控制信號
『伍』 操作系統
實驗七 存儲管理---------常用頁面置換演算法模擬實驗
實驗目的
通過模擬實現請求頁式存儲管理的幾種基本頁面置換演算法,了解虛擬存儲技術的特點,掌握虛擬存儲請求頁式存儲管理中幾種基本頁面置換演算法的基本思想和實現過程,並比較它們的效率。
實驗內容
設計一個虛擬存儲區和內存工作區,並使用下述演算法計算訪問命中率。
1、最佳淘汰演算法(OPT)
2、先進先出的演算法(FIFO)
3、最近最久未使用演算法(LRU)
4、最不經常使用演算法(LFU)
5、最近未使用演算法(NUR)
命中率=1-頁面失效次數/頁地址流長度
實驗准備
本實驗的程序設計基本上按照實驗內容進行。即首先用srand( )和rand( )函數定義和產生指令序列,然後將指令序列變換成相應的頁地址流,並針對不同的演算法計算出相應的命中率。
(1)通過隨機數產生一個指令序列,共320條指令。指令的地址按下述原則生成:
A:50%的指令是順序執行的
B:25%的指令是均勻分布在前地址部分
C:25%的指令是均勻分布在後地址部分
具體的實施方法是:
A:在[0,319]的指令地址之間隨機選取一起點m
B:順序執行一條指令,即執行地址為m+1的指令
C:在前地址[0,m+1]中隨機選取一條指令並執行,該指令的地址為m』
D:順序執行一條指令,其地址為m』+1
E:在後地址[m』+2,319]中隨機選取一條指令並執行
F:重復步驟A-E,直到320次指令
(2)將指令序列變換為頁地址流
設:頁面大小為1K;
用戶內存容量4頁到32頁;
用戶虛存容量為32K。
在用戶虛存中,按每K存放10條指令排列虛存地址,即320條指令在虛存中的存放方式為:
第 0 條-第 9 條指令為第0頁(對應虛存地址為[0,9])
第10條-第19條指令為第1頁(對應虛存地址為[10,19])
………………………………
第310條-第319條指令為第31頁(對應虛存地址為[310,319])
按以上方式,用戶指令可組成32頁。
實驗指導
一、虛擬存儲系統
UNIX中,為了提高內存利用率,提供了內外存進程對換機制;內存空間的分配和回收均以頁為單位進行;一個進程只需將其一部分(段或頁)調入內存便可運行;還支持請求調頁的存儲管理方式。
當進程在運行中需要訪問某部分程序和數據時,發現其所在頁面不在內存,就立即提出請求(向CPU發出缺中斷),由系統將其所需頁面調入內存。這種頁面調入方式叫請求調頁。
為實現請求調頁,核心配置了四種數據結構:頁表、頁框號、訪問位、修改位、有效位、保護位等。
二、頁面置換演算法
當 CPU接收到缺頁中斷信號,中斷處理程序先保存現場,分析中斷原因,轉入缺頁中斷處理程序。該程序通過查找頁表,得到該頁所在外存的物理塊號。如果此時內存未滿,能容納新頁,則啟動磁碟I/O將所缺之頁調入內存,然後修改頁表。如果內存已滿,則須按某種置換演算法從內存中選出一頁准備換出,是否重新寫盤由頁表的修改位決定,然後將缺頁調入,修改頁表。利用修改後的頁表,去形成所要訪問數據的物理地址,再去訪問內存數據。整個頁面的調入過程對用戶是透明的。
常用的頁面置換演算法有
1、最佳置換演算法(Optimal)
2、先進先出法(Fisrt In First Out)
3、最近最久未使用(Least Recently Used)
4、最不經常使用法(Least Frequently Used)
5、最近未使用法(No Used Recently)
三、參考程序:
#define TRUE 1
#define FALSE 0
#define INVALID -1
#define NULL 0
#define total_instruction 320 /*指令流長*/
#define total_vp 32 /*虛頁長*/
#define clear_period 50 /*清0周期*/
typedef struct /*頁面結構*/
{
int pn,pfn,counter,time;
}pl_type;
pl_type pl[total_vp]; /*頁面結構數組*/
struct pfc_struct{ /*頁面控制結構*/
int pn,pfn;
struct pfc_struct *next;
};
typedef struct pfc_struct pfc_type;
pfc_type pfc[total_vp],*freepf_head,*busypf_head,*busypf_tail;
int diseffect, a[total_instruction];
int page[total_instruction], offset[total_instruction];
int initialize(int);
int FIFO(int);
int LRU(int);
int LFU(int);
int NUR(int);
int OPT(int);
int main( )
{
int s,i,j;
srand(10*getpid()); /*由於每次運行時進程號不同,故可用來作為初始化隨機數隊列的「種子」*/
s=(float)319*rand( )/32767/32767/2+1; //
for(i=0;i<total_instruction;i+=4) /*產生指令隊列*/
{
if(s<0||s>319)
{
printf("When i==%d,Error,s==%d\n",i,s);
exit(0);
}
a[i]=s; /*任選一指令訪問點m*/
a[i+1]=a[i]+1; /*順序執行一條指令*/
a[i+2]=(float)a[i]*rand( )/32767/32767/2; /*執行前地址指令m' */
a[i+3]=a[i+2]+1; /*順序執行一條指令*/
s=(float)(318-a[i+2])*rand( )/32767/32767/2+a[i+2]+2;
if((a[i+2]>318)||(s>319))
printf("a[%d+2],a number which is :%d and s==%d\n",i,a[i+2],s);
}
for (i=0;i<total_instruction;i++) /*將指令序列變換成頁地址流*/
{
page[i]=a[i]/10;
offset[i]=a[i]%10;
}
for(i=4;i<=32;i++) /*用戶內存工作區從4個頁面到32個頁面*/
{
printf("---%2d page frames---\n",i);
FIFO(i);
LRU(i);
LFU(i);
NUR(i);
OPT(i);
}
return 0;
}
int initialize(total_pf) /*初始化相關數據結構*/
int total_pf; /*用戶進程的內存頁面數*/
{int i;
diseffect=0;
for(i=0;i<total_vp;i++)
{
pl[i].pn=i;
pl[i].pfn=INVALID; /*置頁面控制結構中的頁號,頁面為空*/
pl[i].counter=0;
pl[i].time=-1; /*頁面控制結構中的訪問次數為0,時間為-1*/
}
for(i=0;i<total_pf-1;i++)
{
pfc[i].next=&pfc[i+1];
pfc[i].pfn=i;
} /*建立pfc[i-1]和pfc[i]之間的鏈接*/
pfc[total_pf-1].next=NULL;
pfc[total_pf-1].pfn=total_pf-1;
freepf_head=&pfc[0]; /*空頁面隊列的頭指針為pfc[0]*/
return 0;
}
int FIFO(total_pf) /*先進先出演算法*/
int total_pf; /*用戶進程的內存頁面數*/
{
int i,j;
pfc_type *p;
initialize(total_pf); /*初始化相關頁面控制用數據結構*/
busypf_head=busypf_tail=NULL; /*忙頁面隊列頭,隊列尾鏈接*/
for(i=0;i<total_instruction;i++)
{
if(pl[page[i]].pfn==INVALID) /*頁面失效*/
{
diseffect+=1; /*失效次數*/
if(freepf_head==NULL) /*無空閑頁面*/
{
p=busypf_head->next;
pl[busypf_head->pn].pfn=INVALID;
freepf_head=busypf_head; /*釋放忙頁面隊列的第一個頁面*/
freepf_head->next=NULL;
busypf_head=p;
}
p=freepf_head->next; /*按FIFO方式調新頁面入內存頁面*/
freepf_head->next=NULL;
freepf_head->pn=page[i];
pl[page[i]].pfn=freepf_head->pfn;
if(busypf_tail==NULL)
busypf_head=busypf_tail=freepf_head;
else
{
busypf_tail->next=freepf_head; /*free頁面減少一個*/
busypf_tail=freepf_head;
}
freepf_head=p;
}
}
printf("FIFO:%6.4f\n",1-(float)diseffect/320);
return 0;
}
int LRU (total_pf) /*最近最久未使用演算法*/
int total_pf;
{
int min,minj,i,j,present_time;
initialize(total_pf);
present_time=0;
for(i=0;i<total_instruction;i++)
{
if(pl[page[i]].pfn==INVALID) /*頁面失效*/
{
diseffect++;
if(freepf_head==NULL) /*無空閑頁面*/
{
min=32767;
for(j=0;j<total_vp;j++) /*找出time的最小值*/
if(min>pl[j].time&&pl[j].pfn!=INVALID)
{
min=pl[j].time;
minj=j;
}
freepf_head=&pfc[pl[minj].pfn]; //騰出一個單元
pl[minj].pfn=INVALID;
pl[minj].time=-1;
freepf_head->next=NULL;
}
pl[page[i]].pfn=freepf_head->pfn; //有空閑頁面,改為有效
pl[page[i]].time=present_time;
freepf_head=freepf_head->next; //減少一個free 頁面
}
else
pl[page[i]].time=present_time; //命中則增加該單元的訪問次數
present_time++;
}
printf("LRU:%6.4f\n",1-(float)diseffect/320);
return 0;
}
int NUR(total_pf) /*最近未使用演算法*/
int total_pf;
{ int i,j,dp,cont_flag,old_dp;
pfc_type *t;
initialize(total_pf);
dp=0;
for(i=0;i<total_instruction;i++)
{ if (pl[page[i]].pfn==INVALID) /*頁面失效*/
{diseffect++;
if(freepf_head==NULL) /*無空閑頁面*/
{ cont_flag=TRUE;
old_dp=dp;
while(cont_flag)
if(pl[dp].counter==0&&pl[dp].pfn!=INVALID)
cont_flag=FALSE;
else
{
dp++;
if(dp==total_vp)
dp=0;
if(dp==old_dp)
for(j=0;j<total_vp;j++)
pl[j].counter=0;
}
freepf_head=&pfc[pl[dp].pfn];
pl[dp].pfn=INVALID;
freepf_head->next=NULL;
}
pl[page[i]].pfn=freepf_head->pfn;
freepf_head=freepf_head->next;
}
else
pl[page[i]].counter=1;
if(i%clear_period==0)
for(j=0;j<total_vp;j++)
pl[j].counter=0;
}
printf("NUR:%6.4f\n",1-(float)diseffect/320);
return 0;
}
int OPT(total_pf) /*最佳置換演算法*/
int total_pf;
{int i,j, max,maxpage,d,dist[total_vp];
pfc_type *t;
initialize(total_pf);
for(i=0;i<total_instruction;i++)
{ //printf("In OPT for 1,i=%d\n",i); //i=86;i=176;206;250;220,221;192,193,194;258;274,275,276,277,278;
if(pl[page[i]].pfn==INVALID) /*頁面失效*/
{
diseffect++;
if(freepf_head==NULL) /*無空閑頁面*/
{for(j=0;j<total_vp;j++)
if(pl[j].pfn!=INVALID) dist[j]=32767; /* 最大"距離" */
else dist[j]=0;
d=1;
for(j=i+1;j<total_instruction;j++)
{
if(pl[page[j]].pfn!=INVALID)
dist[page[j]]=d;
d++;
}
max=-1;
for(j=0;j<total_vp;j++)
if(max<dist[j])
{
max=dist[j];
maxpage=j;
}
freepf_head=&pfc[pl[maxpage].pfn];
freepf_head->next=NULL;
pl[maxpage].pfn=INVALID;
}
pl[page[i]].pfn=freepf_head->pfn;
freepf_head=freepf_head->next;
}
}
printf("OPT:%6.4f\n",1-(float)diseffect/320);
return 0;
}
int LFU(total_pf) /*最不經常使用置換法*/
int total_pf;
{
int i,j,min,minpage;
pfc_type *t;
initialize(total_pf);
for(i=0;i<total_instruction;i++)
{ if(pl[page[i]].pfn==INVALID) /*頁面失效*/
{ diseffect++;
if(freepf_head==NULL) /*無空閑頁面*/
{ min=32767;
for(j=0;j<total_vp;j++)
{if(min>pl[j].counter&&pl[j].pfn!=INVALID)
{
min=pl[j].counter;
minpage=j;
}
pl[j].counter=0;
}
freepf_head=&pfc[pl[minpage].pfn];
pl[minpage].pfn=INVALID;
freepf_head->next=NULL;
}
pl[page[i]].pfn=freepf_head->pfn; //有空閑頁面,改為有效
pl[page[i]].counter++;
freepf_head=freepf_head->next; //減少一個free 頁面
}
else
pl[page[i]].counter++;
}
printf("LFU:%6.4f\n",1-(float)diseffect/320);
return 0;
}
四、運行結果
4 page frams
FIFO: 0.7312
LRU: 0.7094
LFU: 0.5531
NUR: 0.7688
OPT: 0.9750
5 page frams
…………
五、分析
1、從幾種演算法的命中率看,OPT最高,其次為NUR相對較高,而FIFO與LRU相差無幾,最低的是LFU。但每個頁面執行結果會有所不同。
2、OPT演算法在執行過程中可能會發生錯誤
五、思考
1、為什麼OPT在執行時會有錯誤產生?
『陸』 abb變頻器pid控制與pfc控制區別
PFC是風機泵控製程序,主要是循環軟起或者多功能泵控制等。
PID是過程式控制制演算法的一種,泵控制可以用到PID,但是PID和泵控制泵沒有必然聯系。
PID和PFC不是一個層面上的概念,PID屬於控制理論的范疇,PFC是具體工藝的范疇。
『柒』 哪些模塊運用pfc技術
功率因數校正電路,即PFC(Power Factor Correction)電路,其作用是對電流波形進行控制,使其同步於輸入電壓的波形。傳統的PFC模塊,其電路如圖1所示,包括電感L1、升壓二極體D5、開關管Q1和驅動晶元等主要組成部分,在使用過程中需要連接在由四個二極體D1-D4組成的整流橋與大容量的儲能電容C1之間。其工作原理是:驅動晶元根據交流輸入電源AC的電壓變化,生成脈沖信號控制開關管Q1導通或關斷。電感L1在開關管Q1導通的期間儲存能量,在開關管Q1關斷的期間將其儲存的能量輸出,通過升壓二極體D5對大容量的充能電容C1充電,實現功率因數的補償。
如圖1可見,傳統的PFC模塊在實際應用過程中是需要外接整流橋的,交流輸入電源AC首先通過整流橋進行交流-直流(AC-DC)的轉換,然後將生成的直流電源傳送至PFC模塊進行功率因數校正過程。這種電路設計的缺點是AC-DC轉換效率較低。
技術實現要素:
本發明的目的在於提供一種無需外接整流橋的PFC模塊,通過控制交直流轉換過程與功率因數校正過程同步進行,可以實現電源轉換效率的明顯提升。
為了解決上述技術問題,本發明採用以下技術方案予以實現:
一種PFC模塊,包括殼體,所述殼體包括呈相對位置關系的第一側和第二側,在所述第一側設置有直流輸出端和交流輸入端,在所述第二側設置有上橋控制信號輸入引腳、下橋控制信號輸入引腳和采樣電流輸出引腳;在所述殼體中封裝橋式整流電路、采樣電阻、上橋驅動電路和下橋驅動電路;其中,所述橋式整流電路的交流側連接所述交流輸入端,直流側連接所述直流輸出端,包括兩個上橋整流二極體和兩個下橋整流二極體;在其中一個上橋整流二極體和與其相連的下橋整流二極體上分別並聯有一個功率開關管,對應為上橋功率開關管和下橋功率開關管;所述采樣電阻連接在兩個下橋整流二極體的陽極之間,在采樣電阻與並聯有功率開關管的下橋整流二極體的連接節點處設置電流信號采樣點,連接所述采樣電流輸出端;所述上橋驅動電路連接所述上橋控制信號輸入引腳,根據接收到的上橋控制信號對所述上橋功率開關管進行通斷控制;所述下橋驅動電路連接所述下橋控制信號輸入引腳,根據接收到的下橋控制信號對所述下橋功率開關管進行通斷控制;其中,所述PFC模塊在使用時,其交流輸入端外接交流電源,並在交流電源的傳輸線路中串聯電感;其上橋控制信號輸入引腳、下橋控制信號輸入引腳和采樣電流輸出引腳外接主控晶元,接收主控晶元輸出的上橋控制信號和下橋控制信號;所述主控晶元在交流電源的電壓正半周期間,控制上橋功率開關管關閉,控制下橋功率開關管通斷,並在下橋功率開關管開通期間通過所述采樣電流輸出引腳採集電流信號;在交流電源的電壓負半周期間,控制下橋功率開關管關閉,控制上橋功率開關管通斷,並在上橋功率開關管關閉期間通過所述采樣電流輸出引腳採集電流信號;所述主控晶元結合採集到的電流信號和交流電源的電壓信號,按照PFC控制演算法對所述PFC模塊進行PFC控制。
與現有技術相比,本發明的優點和積極效果是:
(1)本發明將整流電路與功率因數校正電路合二為一,形成集成化的PFC模塊,由此可以使得PFC模塊的外圍電路更加簡潔、緊湊,便於電控板的小型化設計;
『捌』 簡述同步解調的演算法
解調是調制的逆過程,是從高頻已調波中恢復出原低頻調制信號的過程。從頻譜上看,解調也是一種信號頻譜的線性搬移過程,是將高頻載波端邊帶信號的頻譜線性搬移到低頻端,這種搬移正好與調制過程的搬移過程相反,故所有的具有頻譜線性搬移功能的電路均可用於調幅波的解調。
同步解調,它的基本功能就是完成頻譜的線性搬移,但為了防止失真,同步檢波電路中都必需輸入與載波同步的解調載波。同步,指同頻率同相位。
一體化工作站正變得越來越輕薄,要求更輕和更小的電源轉換器,這通常通過提高開關頻率來實現。傳統Si MOSFET在高頻工作下的開關和驅動損耗是一個關鍵制約因素。GaN HEMT提供較傳統MOSFET更低的門極電荷和導通電阻,從而實現高頻條件下的更高電源轉換能效。
演示板設計為240 W通用板,它輸出20 A的負載電流和12 V輸出電壓,功率因數超過98%,滿載時總諧波失真(THD)低於17%。電源轉換器前端採用功率因數校正(PFC) IC,將AC轉換為調節的385 V DC匯流排電壓。升壓轉換器中的電感電流工作於CCM。升壓PFC段採用安森美半導體的NCP1654控制器。次級是隔離的DC-DC轉換器,將385 V DC匯流排電壓轉換為12 V DC輸出電壓。隔離的DC-DC轉換通過採用LLC諧振拓撲實現。次級端採用同步整流以提供更高能效。LLC電源轉換器採用安森美半導體的NCP1397,提供97%的滿載效率,而同步整流驅動器是NCP4304。
NCP432用於反饋路徑以調節輸出電壓。演示板採用GaN HEMT作為PFC段和LLC段原邊的開關,提供0.29 mΩ的低導通電阻和> 100 V/ns 的高dv/dt,因而導致開關和導通損耗低,其低反向恢復電荷產生最小的反向恢復損耗。
其中,NCP1654提供可編程的過流保護、欠壓檢測、過壓保護、軟啟動、CCM、平均電流模式或峰值電流模式、可編程的過功率限制、浪涌電流檢測。NCP1397提供精確度為3%的可調節的最小開關頻率、欠壓輸入、1 A/0.5 A峰值汲/源電流驅動、基於計時器的過流保護(OCP)輸入具自動恢復、可調節的從100 ns至2 μs的死區時間、可調節的軟啟動。NCP4304的關鍵特性包括具可調節閾值的精密的真正次級零電流檢測、自動寄生電感補償、從電流檢測輸入到驅動器的關斷延遲40 ns、零電流檢測引腳耐受電壓達200 V、可選的超快觸發輸入、禁用引腳、可調的最小導通時間和最小關斷時間、5 A/2.5 A峰值電流汲/源驅動能力、工作電壓達30 V。
『玖』 在交流整流後加入PFC後加入RC並聯有什麼作用
pfc的作用是提高功率因數和濾波,而RC為過電壓吸收裝置,主要針對高頻或快速變化的波形起作用,主要用於限制暫態過電壓。