diff --git a/UserClass/PID.cs b/UserClass/PID.cs
index 73a0457..e01e57a 100644
--- a/UserClass/PID.cs
+++ b/UserClass/PID.cs
@@ -19,6 +19,7 @@ namespace DyeingComputer.UserClass
private static double e1 = 0; // Error one iteration old
private static double e2 = 0; // Error two iterations old
+ #region 构造函数
///
/// PID构造器
///
@@ -38,6 +39,16 @@ namespace DyeingComputer.UserClass
this.OutputLowerLimit = OutputLowerLimit;
}
+ public PID()
+ {
+ this.Kp = 0.5;
+ this.Ki = 0.1;
+ this.Kd = 0.2;
+ this.N = 1;
+ this.OutputUpperLimit = 65530;
+ this.OutputLowerLimit = 0;
+ }
+ #endregion
///
/// PID迭代器,在每个采样周期调用此函数以获取当前控制器输出。
/// 设定点和过程值应使用相同的单位。
diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs
index 06ee2ff..53852bd 100644
--- a/ViewModel/MainWindowViewModel.cs
+++ b/ViewModel/MainWindowViewModel.cs
@@ -52,23 +52,21 @@ namespace DyeingComputer.ViewModel
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径
private PID PID = null;
private IniFile.IniFiles Configini = new IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "DyeingComputer.ini");
-
+ PID pid = new PID();
public MainWindowViewModel()
{
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
- double ST01 = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST01'", null)); //读取
- double ST02 = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST02'", null));
- double ST03 = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST03'", null));
- double ST04 = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST04'", null));
- double ST05 = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST05'", null));
- double ST06 = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST06'", null));
+ pid.Kp = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST01'", null)); //读取
+ pid.Ki = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST02'", null));
+ pid.Kd = Convert.ToDouble( SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST03'", null));
+ pid.N = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST04'", null));
+ pid.OutputUpperLimit = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST05'", null));
+ pid.OutputLowerLimit = Convert.ToDouble(SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'ST06'", null));
SQLiteHelpers.Close();
WorkNumder = "----------";
- PID pid=new PID(ST01,ST02,ST03,ST04,ST05,ST06);
-
CountDown(); //启动循环任务
SQL_data(); //读数据库
UPort(); //启动串口