17
17
public class Window extends JFrame
18
18
{
19
19
private static final long serialVersionUID = 1L ;
20
- final XYSeries process_output ;
21
- final XYSeries process_input ;
22
- final XYSeries process_setpoint ;
20
+ final XYSeries output_I ;
21
+ final XYSeries input_I ;
22
+ final XYSeries setpoint_I ;
23
+ final XYSeries output_II ;
24
+ final XYSeries input_II ;
25
+ final XYSeries setpoint_II ;
23
26
final XYSeriesCollection collectionData ;
24
27
final JFreeChart display ;
25
28
public JTextField txt_port ;
26
- public JTextField txt_setpoint ;
27
- public JTextField txt_sample_time ;
28
- public JTextField txt_kp ;
29
- public JTextField txt_ki ;
30
- public JTextField txt_kd ;
29
+ public JTextField txt_setpoint_I ;
30
+ public JTextField txt_sample_time_I ;
31
+ public JTextField txt_setpoint_II ;
32
+ public JTextField txt_sample_time_II ;
33
+ public JTextField txt_kp_T ;
34
+ public JTextField txt_ki_T ;
35
+ public JTextField txt_kd_T ;
36
+ public JTextField txt_kp_F ;
37
+ public JTextField txt_ki_F ;
38
+ public JTextField txt_kd_F ;
31
39
public JButton btn_server_init ;
32
40
public JButton btn_server_stop ;
33
41
@@ -41,57 +49,99 @@ public Window()
41
49
42
50
/*Parameters panel*/
43
51
JPanel parametersPanel = new JPanel ();
44
- JLabel lbl_param_1 = new JLabel ("Port Number" );
45
- JLabel lbl_param_2 = new JLabel ("Setpoint (v)" );
46
- JLabel lbl_param_3 = new JLabel ("Sample Time (s)" );
47
- JLabel lbl_param_4 = new JLabel ("Kp" );
48
- JLabel lbl_param_5 = new JLabel ("Ki" );
49
- JLabel lbl_param_6 = new JLabel ("Kd" );
52
+ JLabel lbl_param_1 = new JLabel ("Port Number" );
53
+ JLabel lbl_param_2 = new JLabel ("Setpoint (v)" );
54
+ JLabel lbl_param_2_2 = new JLabel ("Setpoint (v)" );
55
+ JLabel lbl_param_3 = new JLabel ("Sample Time (s)" );
56
+ JLabel lbl_param_3_2 = new JLabel ("Sample Time (s)" );
57
+ JLabel lbl_param_4 = new JLabel ("<HTML><u>PID Controller I</u></HTML>" );
58
+ JLabel lbl_param_5 = new JLabel ("Kp" );
59
+ JLabel lbl_param_6 = new JLabel ("Ki" );
60
+ JLabel lbl_param_7 = new JLabel ("Kd" );
61
+ JLabel lbl_param_8 = new JLabel ("<HTML><u>PID Controller II</u></HTML>" );
62
+ JLabel lbl_param_9 = new JLabel ("Kp" );
63
+ JLabel lbl_param_10 = new JLabel ("Ki" );
64
+ JLabel lbl_param_11 = new JLabel ("Kd" );
65
+ JLabel lbl_dummi_1 = new JLabel (" " );
66
+ JLabel lbl_dummi_2 = new JLabel (" " );
50
67
txt_port = new JTextField ("16" );
51
- txt_setpoint = new JTextField ("1" );
52
- txt_sample_time = new JTextField ("0.5" );
53
- txt_kp = new JTextField ("0" );
54
- txt_ki = new JTextField ("0" );
55
- txt_kd = new JTextField ("0" );
68
+ txt_setpoint_I = new JTextField ("1" );
69
+ txt_sample_time_I = new JTextField ("0.5" );
70
+ txt_setpoint_II = new JTextField ("1" );
71
+ txt_sample_time_II = new JTextField ("0.5" );
72
+ txt_kp_T = new JTextField ("0" );
73
+ txt_ki_T = new JTextField ("0" );
74
+ txt_kd_T = new JTextField ("0" );
75
+ txt_kp_F = new JTextField ("0" );
76
+ txt_ki_F = new JTextField ("0" );
77
+ txt_kd_F = new JTextField ("0" );
56
78
txt_port .setHorizontalAlignment (JTextField .CENTER );
57
- txt_setpoint .setHorizontalAlignment (JTextField .CENTER );
58
- txt_sample_time .setHorizontalAlignment (JTextField .CENTER );
59
- txt_kp .setHorizontalAlignment (JTextField .CENTER );
60
- txt_ki .setHorizontalAlignment (JTextField .CENTER );
61
- txt_kd .setHorizontalAlignment (JTextField .CENTER );
79
+ txt_setpoint_I .setHorizontalAlignment (JTextField .CENTER );
80
+ txt_sample_time_I .setHorizontalAlignment (JTextField .CENTER );
81
+ txt_setpoint_II .setHorizontalAlignment (JTextField .CENTER );
82
+ txt_sample_time_II .setHorizontalAlignment (JTextField .CENTER );
83
+ txt_kp_T .setHorizontalAlignment (JTextField .CENTER );
84
+ txt_ki_T .setHorizontalAlignment (JTextField .CENTER );
85
+ txt_kd_T .setHorizontalAlignment (JTextField .CENTER );
86
+ txt_kp_F .setHorizontalAlignment (JTextField .CENTER );
87
+ txt_ki_F .setHorizontalAlignment (JTextField .CENTER );
88
+ txt_kd_F .setHorizontalAlignment (JTextField .CENTER );
62
89
btn_server_init = new JButton ("Start Control" );
63
90
btn_server_stop = new JButton ("Stop Control" );
64
91
btn_server_init .setActionCommand ("start" );
65
92
btn_server_stop .setActionCommand ("stop" );
66
- parametersPanel .setLayout (new GridLayout (8 , 2 ,10 ,10 ));
93
+ parametersPanel .setLayout (new GridLayout (14 , 2 ,10 ,10 ));
67
94
parametersPanel .add (lbl_param_1 );
68
95
parametersPanel .add (txt_port );
96
+ parametersPanel .add (lbl_param_4 );
97
+ parametersPanel .add (lbl_dummi_1 );
69
98
parametersPanel .add (lbl_param_2 );
70
- parametersPanel .add (txt_setpoint );
99
+ parametersPanel .add (txt_setpoint_I );
71
100
parametersPanel .add (lbl_param_3 );
72
- parametersPanel .add (txt_sample_time );
73
- parametersPanel .add (lbl_param_4 );
74
- parametersPanel .add (txt_kp );
101
+ parametersPanel .add (txt_sample_time_I );
75
102
parametersPanel .add (lbl_param_5 );
76
- parametersPanel .add (txt_ki );
103
+ parametersPanel .add (txt_kp_T );
77
104
parametersPanel .add (lbl_param_6 );
78
- parametersPanel .add (txt_kd );
105
+ parametersPanel .add (txt_ki_T );
106
+ parametersPanel .add (lbl_param_7 );
107
+ parametersPanel .add (txt_kd_T );
108
+ parametersPanel .add (lbl_param_8 );
109
+ parametersPanel .add (lbl_dummi_2 );
110
+ parametersPanel .add (lbl_param_2_2 );
111
+ parametersPanel .add (txt_setpoint_II );
112
+ parametersPanel .add (lbl_param_3_2 );
113
+ parametersPanel .add (txt_sample_time_II );
114
+ parametersPanel .add (lbl_param_9 );
115
+ parametersPanel .add (txt_kp_F );
116
+ parametersPanel .add (lbl_param_10 );
117
+ parametersPanel .add (txt_ki_F );
118
+ parametersPanel .add (lbl_param_11 );
119
+ parametersPanel .add (txt_kd_F );
79
120
parametersPanel .add (btn_server_init );
80
121
parametersPanel .add (btn_server_stop );
81
122
mainPanel .add (parametersPanel , BorderLayout .EAST );
82
123
this .getContentPane ().add (mainPanel , BorderLayout .EAST );
83
124
84
125
// Setup the Chart panel
85
- process_input = new XYSeries ("Process Input" );
86
- process_output = new XYSeries ("Process Output" );
87
- process_setpoint = new XYSeries ("Setpoint" );
88
- process_input .clear ();
89
- process_output .clear ();
90
- process_setpoint .clear ();
126
+ input_I = new XYSeries ("PID I Signal" );
127
+ output_I = new XYSeries ("Process Output I" );
128
+ setpoint_I = new XYSeries ("Setpoint I" );
129
+ input_II = new XYSeries ("PID II Signal" );
130
+ output_II = new XYSeries ("Process Output II" );
131
+ setpoint_II = new XYSeries ("Setpoint II" );
132
+ input_I .clear ();
133
+ output_I .clear ();
134
+ setpoint_I .clear ();
135
+ input_II .clear ();
136
+ output_II .clear ();
137
+ setpoint_II .clear ();
91
138
collectionData = new XYSeriesCollection ();
92
- collectionData .addSeries (process_input );
93
- collectionData .addSeries (process_output );
94
- collectionData .addSeries (process_setpoint );
139
+ collectionData .addSeries (input_I );
140
+ collectionData .addSeries (output_I );
141
+ collectionData .addSeries (setpoint_I );
142
+ collectionData .addSeries (input_II );
143
+ collectionData .addSeries (output_II );
144
+ collectionData .addSeries (setpoint_II );
95
145
display = ChartFactory .createXYLineChart ("Realtime Process Dynamics" ,
96
146
"Time" ,
97
147
"Amplitude" ,
0 commit comments