1. 用PID控制演算法控制離散變化的對象時,如何確定采樣頻率,采樣率是越高越好,還是怎樣
采樣頻率理論上是越高越好,但實際應用中要能夠實現才行。
采樣頻率確定首先考慮離散系統的穩定性。
2. 闡述ID3演算法處理連續型變數必須離散化的原因
使用所有沒有使用的屬性並計算與之相關的樣本熵值
選取其中熵值最小的屬性,生成包含該屬性的節點
D3演算法對數據的要求:
1) 所有屬性必須為離散量;
2) 所有的訓練例的所有屬性必須有一個明確的值;
3) 相同的因素必須得到相同的結論且訓練例必須唯一。
3. 離散的pid是什麼的兩種演算法基本形式
一般的方法(第一圖)和增量法(第二圖) ,網上很多介紹這個的文章,隨便搜一下就很多
4. mpc演算法為什麼用增量
因為在預測時域內的狀態量和輸出量都可以通過系統當前的狀態量和控制時域內的控制增量計算得到
5. FLUENT中的求解器、演算法和離散方法
求解器:
FLUENT中求解器的選擇在如下圖所示界面中設置:
6. pid演算法公式的增量形式是什麼
PID的增量型公式:
PID=Uk+KP*【E(k)-E(k-1)】+KI*E(k)+KD*【E(k)-2E(k-1)+E(k-2)】
PID演算法具體分兩種:一種是位置式的 ,一種是增量式的。
位置式PID的輸出與過去的所有狀態有關,計算時要對e(每一次的控制誤差)進行累加,這個計算量非常大,而明顯沒有必要。而且小車的PID控制器的輸出並不是絕對數值,而是一個△,代表增多少,減多少。換句話說,通過增量PID演算法,每次輸出是PWM要增加多少或者減小多少,而不是PWM的實際值。所以明白增量式PID就行了。
PID控制原理:
本系統通過擺桿(輥)反饋的位置信號實現同步控制。收線控制採用實時計算的實際卷徑值,通過卷徑的變化修正PID前饋量,可以使整個系統准確、穩定運行。
PID系統特點:
1、主驅動電機速度可以通過電位器來控制,把S350設置為SVC開環矢量控制,將模擬輸出端子FM設定為運行頻率,從而給定收卷用變頻器的主速度。
2、收卷用S350變頻器的主速度來自放卷(主驅動)的模擬輸出埠。擺桿電位器模擬量
信號通過CI通道作為PID的反饋量。S350的頻率源採用主頻率Ⅵ和輔助頻率源PID疊加的方式。通過調整運行過程PID參數,可以獲得穩定的收放卷效果。
3、本系統啟用邏輯控制和卷徑計算功能,能使系統在任意卷徑下平穩啟動,同時兩組PID參數可確保生產全程擺桿控制效果穩定。
7. 遺傳演算法怎麼處理離散變數
網路求解01背包問題就可以了。直接進行二進制編碼,然後解碼也是二進制。如果其他的離散問題,可以網路遺傳演算法求解TSP問題。程序網上很多
8. 關於循環和循環嵌套的問題
第一個問題:if在循環體內,則每次循環都會執行,但只有符合if條件的,才會執行if語句中包含的內容。
第二個問題:外循環執行a次,內循環每當外循環執行1次就執行b次,所以一共執行a*b次,你說的沒有錯。
第三個問題:這里你問了很多,我一個一個回答吧。
1、用i=N-1;i>0;i--是可以的,但你要改裡面所有的循環,因為這個排序演算法邏輯是先找出最大的一個數和第一個數交換,再從第二個數開始找出最大的一個數和它交換,如果用i=N-1;i>0;i--,你就要改變演算法,找出最小的一個數和最後一個交換,再找出最小的數和倒數第二個交換……
2、if(i!=k)是每次循環都執行的,只有發現更大的數(k值發生變化)後才會執行交換語句。
3、並不是每次都執行交換位置的,你對這個演算法理解不太清楚,可能你的編程老師沒有講解清楚吧,另外這個程序也有個問題,k其實是沒有用的,你把程序改成下面的就好理解多了:
int i,j,temp;
int a[N]; //一開始所有要排序的數存儲在數組a里
for(i=0;i<N-1;i++) //從第一個數開始循環到最後一個數
{
for(j=i+1;j<N;j++) //對每一個數,和其後的所有數進行比較(因為前面的數通過排序已經是最大的數了,不用比較)
{
if(a[i]>a[j]) //如果發現一個數a[j]比當前數a[i]更大
{
temp=a[i];
a[i]=a[j];
a[j]=temp; //通過臨時變數temp實現a[i]和a[j]的交換
}
}
}
這樣你應該對這個演算法更理解了吧?它是依次找出數組中第一大、第二大、……、第N大的數,來和數組的第一個、第二個、……、第N個數交換,最終完成排序。這個演算法可以實現排序功能,但性能不如冒泡排序法。
嵌套的流程圖?我畫個給你。這里沒辦法帖圖,你看鏈接吧。
http://211.157.108.18/t.gif
9. 增量演算法與分治演算法各是什麼含義
演算法步驟:
1 :從左上角起,給棋盤編號(1,1),(1,2)(8,8),計為集合qp。tracks記錄走過的每個點. (可以想像為坐標(x,y))
2:設起點為(1,1),記為 當前位置 cp,
3:搜索所有可走的下一步,根據「馬行日」的走步規則,可行的點的坐標是x坐標加減1,y坐標加減2,
或是x加減2,y加減1; (例如起點(1,1),可計算出(1+1,1+2),(1+1,1-2),(1-1,1+2),(1-1,1-2),(1+2,1+1),(1+2,1-1),(1-2,1+1),(1-2,1-1) 共8個點), 如果沒有搜到可行點,程序結束。
4:判斷計算出的點是否在棋盤內,即是否在集合qp中;判斷點是否已經走過,即是否在集合tracts中,不在才是合法的點。(在上面的舉例起點(1,1),則合法的下一步是(2,3)和 (3,2))
5:將前一步的位置記錄到集合tracts中,即tracts.add(cp);選擇一個可行點,cp=所選擇點的坐標。
6:如果tracts里的點個數等於63,退出程序,否則回到步驟3繼續執行。