⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pidloopcontroler.java

📁 这是一个基于java编写的torrent的P2P源码
💻 JAVA
字号:
package com.aelitis.azureus.core.util.loopcontrol.impl;

import com.aelitis.azureus.core.util.loopcontrol.LoopControler;

public class PIDLoopControler implements LoopControler {

	double pGain;
	double iGain;
	double dGain;
	
	double iState;
	double iMin = -5000;
	double iMax =  5000;
	
	double dState;
	
	public PIDLoopControler(double pGain,double iGain, double dGain) {
		this.pGain = pGain;
		this.iGain = iGain;
		this.dGain = dGain;
	}
	
	public double updateControler(double error, double position) {
		
		//Proportional
		double pTerm = pGain * error;
		
		
		iState += error;
		if(iState > iMax) iState = iMax;
		if(iState < iMin) iState = iMin;
		
		double iTerm = iGain * iState;
		
		double d = dState - position;
		
		double dTerm = dGain * d;
		dState = position;

		double result = pTerm + iTerm - dTerm;
		
		System.out.println("PID p,i,d (" + pGain + "," + iGain + "," + dGain +") : is,ds (" + iState + "," + d + ") p,i,d (" + pTerm + "," + iTerm + "," + dTerm + ") => " + result);
		
		return result;
	}
	
	public void reset() {
		dState = 0;
		iState = 0;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -