Hướng phát triển của nghiên cứu

Một phần của tài liệu Tối ưu hóa và điều khiển ổn định quá trình sản xuất Cyclopentenol từ Cyclopentadiene (Trang 71)

Bộ điều khiển PID, PI được thiết kế tuy đã ổn định tiệm cận được hệ thống nhưng vẫn còn một số hạn chế như sau: tín hiệu điều khiển - nhiệt độ vỏ áo có tốc độ biến thiên và vọt lố khá lớn. Điều này có thể gây khó khăn trong vận hành thực tế vì quán tính nhiệt của khối lưu chất chiếm chỗ trong thiết bị cũng như điều kiện khuấy trộn không đồng nhất trong thực tế sẽ giới hạn tốc độ biến thiên nhiệt độ của hệ thống. Bên cạnh đó, nhiệt độ vỏ áo tăng lên quá cao có thể gây mất

57

an toàn và hư hỏng thiết bị vì giới hạn chịu đựng nhiệt độ của vật liệu chế tao. Trên cơ sở những hạn chế này, nghiên cứu sẽ phát triển tiếp bộ điều khiển PID, PI ràng buộc (tức giới hạn nhiệt độ vỏ áo và tốc độ biến thiên của nó trong một khoảng phù hợp với thực tế vận hành). Dẫn đến, ta sẽ cần thêm một đầu vào điều khiển khác (có thể chọn tỷ số pha loãng F/V) để điều khiển nhiệt độ hệ thống khi đầu vào Tj và tốc độ biến thiên của nó bị bão hòa. Việc phối hợp các đầu vào điều khiển và ràng buộc tín hiệu điều khiển cũng đã nghiên cứu trong [7,19].

Thêm vào đó, các thông số nhiệt động lực học, động học và truyền nhiệt của hệ thống luôn có một sai số nhất định vì giới hạn của dụng cụ đo và thao tác thí nghiệm trong thực tế. Hệ quả, mô hình toán học của hệ thống dùng để thiết kế trong luận văn sẽ sai lệch ít nhiều so với mô hình thực tế. Điều này đưa tới một nghiên cứu cấp thiết về các luật điều khiển thích nghi và bền vững cho hệ thống.

Bên cạnh đó, ta cũng cần tiến hành thực nghiệm hệ thống phản ứng tổng hợp cyclopentenol từ cyclopentadiene để kiểm chứng mô hình toán học cũng như các luật điều khiển PID và PI đã thiết kế.

58

Tài liệu tham khảo

[1] Nguyễn Minh Tuyển. Các phương pháp triển khai công nghệ hóa học. Nhà xuất bản khoa học kỹ thuật.

[2] Lê Minh Cường. Cơ lý thuyết. Nhà xuất bản đại học quốc gia TP.HCM, tái bản lần 2, năm 2010.

[3] Phạm Thị Cự, Lê Minh Cường, Trương Trọng Tuấn Mỹ. Mạch điện II. Nhà xuất bản đại học quốc gia TP.HCM, 2012.

[4] Luyben William L.. Process modeling process modeling, simulation, and control for chemical engineers. 2nd edition, McGraw-Hill Publisbing Company, 1996.

[5] Serbog Dale E., Edgar Thomas F., Mellichamp Duncan A. Process dynamics and control. 2nd edition, John Wiley & Sons, Inc, 2004.

[6] N.H.Hoang, F.Couenne, C.Jaullut, Y.Le Gorrec. Thermodynamics based stability analysis and its use for nonlinear stabilization of the CSTR. Computers & Chemical Engineering, Volume 58, 11 November 2013, Pages 156-177..

[7] Viel F., Jadot F., Bastion G. Global stabilization of exothermic chemical reactors under input constraints. Automatica, Volume 33, Issue 8, 1997,pp. 1437-1448.

[8] C.Chandra Prasad, P.R. Krishnaswamy. Control of pure time delay process. Chemical Engineering Science, Volume 30, Issue 2, 1975, pp 207-215.

[9] Annette Kuhlmann, David Bogle. Study on non-minimum phase behaviour and optimal operation. Computers & Chemical Engineering, Volume 21, 1997, pp S397-S402.

[10] Niemiec Michael P., Kravis Costas. Nonlinear model-state feedback control for nonminimum- phase processes. Automatica, Volume 39, issue 7, 2003, pp. 1295-1302.

[11] Engell S. and Klatt K.U. Nonlinear control of a non-minimum-phase CSTR. American Control Conference, 1993, pp 2941-2945.

[12] Hoàng Minh Sơn.Cơ sở hệ thống điều khiển quá trình. Nhà xuất bản bách khoa Hà Nội, tái bản lần 2, năm 2009.

[13] Nguyễn Thị Phương Hà, Huỳnh Thái Hoàng. Lý thuyết điều khiển tự động. Nhà xuất bản đại học quốc gia TP.HCM, tái bản lần 4, năm 2011.

[14] Nguyễn Thị Phương Hà. Lý thuyết điều khiển hiện đại. Nhà xuất bản đại học quốc gia TP.HCM, tái bản lần 1, năm 2012.

[15] Chen Chyi-Tsong, Peng Shih-Tien. A sliding mode control scheme for non-minimum phase nonlinear uncertain input-delay chemical process. Journal of Process Control, Volume 16, Issue 1, 2006, pp 37-51.

[16] Wei Wu. Stable inverse control for non-minimum phase nonlinear processes. Journal of Process Control, Volume 9, Issue 2, 1999, pp 171-183.

[17] Nguyễn Doãn Phước. Phân tích và điều khiển hệ phi tuyến. NXB Bách khoa – Hà Nội, 2012. [18] Costas Kravis and Dimitra Mousaverse. ISE – optimal non-minimum phase compensation for

nonlinear process. Journal of process control, Volume 17, Issue 5, 2007, pp 453-461.

[19] R.Antonelli, A.Astolfi. Continous stirred tank reactors: easy to stabilise?. Automatica, Volume 39, Issue 10, October 2003, pp 1817-1827.

59

[20] Nguyễn Đức Thành. MATLAB và ứng dụng trong điều khiển. NXB Đại học Quốc gia TP.HCM, 2004.

[21] Craig S.Lent. Learning to program with Matlab – Building GUI tools. John Wiley & Sons, Inc, 2013.

[22] Burden R., Faires J.D. Numerical analysis. 8th edition, Thomson, 2005.

[23] Edgar T.F., Himmelblau D.M., Lasdon L. Optimization of chemical Processes. Second edition, McGraw-Hill chemical engineering series, 2001.

[24] Isidori Alberto. Nonlinear control systems.3rd edition, Springer, 1989.

[25] Aris R, Amundson Nr. An anlysis of chemical reactor stability and control – I, II, III. Chemical Engineering Sceince, Volume 7, Issue 3, 1958, pp 121 – 155.

[26] Jose Alvares, Ramirez, Hector Puebla. On classical PI control of chemical reactors. Chemical Engineering Science, Volume 56, Issue 6, March 2001, pp 2111-2121.

[27] Jose Alvares, Ramirez, Alexander Shaum. On the global stability of conventional PID control for a class of chemical reactors. International Journal of Robust and Nonlinear Control, Volume 21, Issue 5, March 2012, pp 575-590.

[28] Viel F., Jadot F., Bastion G. Robust feedback stabilization of chemical reactors. IEEE Transactions, Volume 42, Issue 4, April 1997, pp 473-481.

[29] Charles A.Desoer, Ching-An Lin. Tracking and disturbance rejection of MIMO nonlinear systems with PI controller. IEEE Transactions on Automatic Control, December 1985, pp 861- 867.

[30] Frank Hoppensteadt. Asymptotic stability in singular perturbation problems. II: Problems having matched asymptotic expansion solutions. Journal of differential equations, Volume 15, Issue 3, May 1974, pp 510-521.

[31] N. Ha Hoang, F.Couenne, Y.Le Gorrec, C.L. Chen, B.Erik Ydstie. Passivity-based nonlinear control of CSTR vis asymptotic observers. Annual reviews in control, Volume 37, Issue 2, December 2013, pp 278-288.

60

PHỤ LỤC A: ĐOẠN CODE THỰC THI CỦA GIAO DIỆN TÍNH TOÁN

function varargout = main_form(varargin) % MAIN_FORM M-file for main_form.fig

% MAIN_FORM, by itself, creates a new MAIN_FORM or raises the existing % singleton*.

%

% H = MAIN_FORM returns the handle to a new MAIN_FORM or the handle to % the existing singleton*.

%

% MAIN_FORM('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAIN_FORM.M with the given input arguments. %

% MAIN_FORM('Property','Value',...) creates a new MAIN_FORM or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before main_form_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application % stop. All inputs are passed to main_form_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help main_form

% Last Modified by GUIDE v2.5 29-Oct-2014 22:49:38

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @main_form_OpeningFcn, ... 'gui_OutputFcn', @main_form_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

61

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% --- Executes just before main_form is made visible.

function main_form_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to main_form (see VARARGIN)

% Choose default command line output for main_form handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes main_form wait for user response (see UIRESUME) % uiwait(handles.figure);

% --- Outputs from this function are returned to the command line. function varargout = main_form_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in pushbutton_start.

62

% hObject handle to pushbutton_start (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %F = get(handles.edit_Flow,'String');

%V = get(handles.edit_volume,'String'); global CA0 T0 u Tj

global r0 Cp delta_H1 delta_H2 delta_H3 k01 k02 k03 k1 k2 k3 kw Ar cla(handles.figure_3); legend(handles.figure_3,'off'); set(handles.figure_3,'Xgrid','on'); set(handles.figure_3,'Ygrid','on'); cla(handles.figure_2); legend(handles.figure_2,'off'); set(handles.figure_2,'Xgrid','on'); set(handles.figure_2,'Ygrid','on'); Tj1=str2double(get(handles.edit_Tj_1,'String')); Tj2=str2double(get(handles.edit_Tj_2,'String')); Step=str2double(get(handles.edit_Step,'String')); Tj0=Tj1:Step:Tj2; str = get(handles.Option_2,'string'); val = get(handles.Option_2,'value'); switch str{val} case 'T0' u=str2double(get(handles.edit_intial_2,'String')); CA0=str2double(get(handles.edit_intial_1,'String')); T01=str2double(get(handles.edit_intial_3,'String')); T02=str2double(get(handles.edit_intial_4,'String')); step_2=str2double(get(handles.edit_step2,'String')); T=T01:step_2:T02; max=0; k=0; n=length(T)*length(Tj0); nghiem=zeros(n,3); A=zeros(length(Tj0),length(T)); B=zeros(length(Tj0),length(T)); At=T01;

63 Tj=Tj1; for i=1:length(Tj0) for j=1:length(T) k=k+1; T0=T(j); Tj=Tj0(i); nghiem(k,:)=fsolve(@hept_ondinh,[0.5 0.1 320]); A(i,j)=nghiem(k,2); B(i,j)=nghiem(k,3); if (nghiem(k,2)>max)&&(nghiem(k,1)<CA0) max=nghiem(k,2); max_T=nghiem(k,3); At=T0; Tj_max=Tj0(i); h=j; end end end set(handles.Edit_MaxCB,'string',num2str(max)); set(handles.Edit_At,'string','at T0(K) ='); set(handles.Edit_Condition_max,'string',num2str(At)); set(handles.text_Tj_max,'string',num2str(Tj_max)); figure; surfc(T,Tj0,A);

title('Stable Concentration C_B (mol/l) Vs Temperature T_0 (K)'); xlabel('Temperature T_0 (K)');

ylabel('Jacket temperature T_j (K)');

zlabel('Stable concentration C_B^e (mol/l)'); hold on plot3(At,Tj_max,max,'*','LineWidth',3); colorbar; %%%%%%%%%%%%%%%%%%%%% plot(handles.figure_2,Tj0,A(:,h),'red','LineWidth',2.5); if ishold(handles.figure_2) == 0 hold(handles.figure_2); end plot(handles.figure_2,Tj_max,max,'*','LineWidth',3);

64

set(handles.figure_2,'XGrid','on'); set(handles.figure_2,'YGrid','on');

title(handles.figure_2,'Stable concentration C_B^e (mol/l) Vs Jacket temperature T_j (K)');

xlabel(handles.figure_2,'Jacket temperature T_j (K)');

ylabel(handles.figure_2,'Stable concentration C_B^e (mol/l)'); %%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%% set(handles.figure_3,'LineStyleOrder','-') plot(handles.figure_3,Tj0,B(:,h),'red','LineWidth',2.2); if ishold(handles.figure_3) == 0 hold(handles.figure_3); end plot(handles.figure_3,Tj_max,max_T,'*','LineWidth',3);

title(handles.figure_3,'Stable temperature (mol/l) Vs Jacket temperature T_j (K)');

xlabel(handles.figure_3,'Jacket temperature T_j (K)'); ylabel(handles.figure_3,'Stable temperature T^e (K)');

case 'CA0' u=str2double(get(handles.edit_intial_2,'String')); T0=str2double(get(handles.edit_intial_1,'String')); CA01=str2double(get(handles.edit_intial_3,'String')); CA02=str2double(get(handles.edit_intial_4,'String')); step_2=str2double(get(handles.edit_step2,'String')); CA=CA01:step_2:CA02; k=0; n=length(CA)*length(Tj0); nghiem=zeros(n,3); A=zeros(length(Tj0),length(CA)); B=zeros(length(Tj0),length(CA)); max=0; At=CA01; Tj=Tj1; for i=1:length(Tj0) for j=1:length(CA) k=k+1; Tj=Tj0(i); CA0=CA(j);

65 nghiem(k,:)=fsolve(@hept_ondinh,[1 0.5 405]); A(i,j)=nghiem(k,2); B(i,j)=nghiem(k,3); if (nghiem(k,2)>max)&&(nghiem(k,1)<CA0) max=nghiem(k,2); max_T=nghiem(k,3); At=CA0; Tj_max=Tj; h=j; end end end set(handles.Edit_MaxCB,'string',num2str(max)); set(handles.Edit_At,'string','AT C_A_0(mol/L) ='); set(handles.Edit_Condition_max,'string',num2str(At)); set(handles.text_Tj_max,'string',num2str(Tj_max)); figure; surfc(CA,Tj0,A);

title('Stable concentration C_B (mol/l) Vs Concentration C_A_0 (mol/l)'); xlabel('Concentration C_A_0 (mol/l)');

ylabel('Jacket temperature T_j (K)');

zlabel('Stable concentration C_B^e (mol/l)'); hold on plot3(At,Tj_max,max,'*','LineWidth',3); colorbar; %%%%%%%%%%%%%%%%%% plot(handles.figure_2,Tj0,A(:,h),'red','LineWidth',2.2); if ishold(handles.figure_2) == 0 hold(handles.figure_2); end plot(handles.figure_2,Tj_max,max,'*','LineWidth',3);

title(handles.figure_2,'Stable concentration C_B^e (mol/l) Vs Jacket temperature T_j (K)');

xlabel(handles.figure_2,'Jacket temperature T_j (K)');

ylabel(handles.figure_2,'Stable concentration C_B^e (mol/l)'); set(handles.figure_2,'XGrid','on');

66 %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% set(handles.figure_3,'LineStyleOrder','-') plot(handles.figure_3,Tj0,B(:,h),'red','LineWidth',2.2); if ishold(handles.figure_3) == 0 hold(handles.figure_3); end plot(handles.figure_3,Tj_max,max_T,'*','LineWidth',3);

title(handles.figure_3,'Stable temperature T^e (K) Vs Jacket temperature T_j (K)');

xlabel(handles.figure_3,'Jacket temperature T_j (K)');

ylabel(handles.figure_3,'Stable temperature T^e (K)'); set(handles.figure_3,'XGrid','on'); set(handles.figure_3,'YGrid','on'); %%%%%%%%%%%%%%%%%%%% case 'F/V' CA0=str2double(get(handles.edit_intial_2,'String')); T0=str2double(get(handles.edit_intial_1,'String')); u1=str2double(get(handles.edit_intial_3,'String')); u2=str2double(get(handles.edit_intial_4,'String')); step_2=str2double(get(handles.edit_step2,'String')); u0=u1:step_2:u2; k=0; n=length(u0)*length(Tj0); nghiem=zeros(n,3); A=zeros(length(Tj0),length(u0)); B=zeros(length(Tj0),length(u0)); CB_max=0; At=u1; Tj_max=Tj1; for i=1:length(Tj0) for j=1:length(u0) k=k+1; u=u0(j); Tj=Tj0(i); nghiem(k,:)=fsolve(@hept_ondinh,[0.5 0.1 320]);

67 A(i,j)=nghiem(k,2); B(i,j)=nghiem(k,3); if (A(i,j)>CB_max)&&(nghiem(k,1)<CA0) max_T=nghiem(k,3); CB_max=nghiem(k,2); At=u; Tj_max=Tj0(i); h=j; end end end set(handles.Edit_MaxCB,'string',num2str(CB_max)); set(handles.Edit_At,'string','AT F/V (1/h) ='); set(handles.Edit_Condition_max,'string',num2str(At)); set(handles.text_Tj_max,'string',num2str(Tj_max)); figure; surfc(u0,Tj0,A);

title('Stable concentration C_B^e (mol/l) Vs Dilution rate F/V (1/h)'); xlabel('Dilution rate F/V (1/h)');

ylabel('Jacket temperature T_j (K)');

zlabel('Stable concentration C_B^e (mol/l)'); hold on plot3(At,Tj_max,CB_max,'*','LineWidth',3); colorbar; %%%%%%%%%%%%%% plot(handles.figure_2,Tj0,A(:,h),'red','LineWidth',2.5); if ishold(handles.figure_2) == 0 hold(handles.figure_2); end plot(handles.figure_2,Tj_max,CB_max,'*','LineWidth',3);

title(handles.figure_2,'Stable concentration C_B^e (mol/l) Vs Jacket temperature T_j (K)');

xlabel(handles.figure_2,'Jacket temperature T_j (K)');

ylabel(handles.figure_2,'Stable concentration C_B^e (mol/l)'); set(handles.figure_2,'XGrid','on');

set(handles.figure_2,'YGrid','on'); %%%%%%%%%%%%%%%

68 %%%%%%%%%%%%%%% set(handles.figure_3,'LineStyleOrder','-') plot(handles.figure_3,Tj0,B(:,h),'red','LineWidth',2.2); if ishold(handles.figure_3) == 0 hold(handles.figure_3); end plot(handles.figure_3,Tj_max,max_T,'*','LineWidth',3);

title(handles.figure_3,'Stable temperature T^e (K) Vs Jacket temperature T_j (K)');

xlabel(handles.figure_3,'Jacket temperature T_j (K)'); ylabel(handles.figure_3,'Stable temperature T^e (K)'); set(handles.figure_3,'XGrid','on'); set(handles.figure_3,'YGrid','on'); %%%%%%%%%%%%%% case 'Tj' u=str2double(get(handles.edit_intial_2,'String')); T0=str2double(get(handles.edit_intial_1,'String')); CA0=str2double(get(handles.edit_CA0_1,'String')); Tj1=str2double(get(handles.edit_intial_3,'String')); Tj2=str2double(get(handles.edit_intial_4,'String')); step_2=str2double(get(handles.edit_step2,'String')); Tj0=Tj1:step_2:Tj2; nghiem=zeros(length(Tj0),3); CB_max=0; Tj_max=Tj1; for i=1:length(Tj0) Tj=Tj0(i); nghiem(i,:)=fsolve(@hept_ondinh,[0.5 0.1 320]); if (nghiem(i,2)>CB_max)&&(nghiem(i,1)<CA0) CB_max=nghiem(i,2); Tj_max=Tj0(i); T_max=nghiem(i,3); end end C=zeros(2,length(Tj0)); for i=1:length(Tj0) Tj=Tj0(i);

69

C(:,i)=zerotf(CA0,T0,u,Tj); end

zp=zerotf(CA0,T0,u,Tj_max); %zero position in imaginary axis Tjp=Tj_max; %Jacket temperature correspoding Jacket temperature set(handles.Edit_MaxCB,'string',num2str(CB_max)); set(handles.Edit_At,'string','T_j (K) ='); set(handles.Edit_Condition_max,'string',num2str(Tj_max)); plot(handles.figure_2,Tj0,nghiem(:,2),'Red','LineWidth',2.5); if ishold(handles.figure_2) == 0 hold(handles.figure_2); end plot(handles.figure_2,Tj_max,CB_max,'*','LineWidth',3);

title(handles.figure_2,'Stable concentration C_B^e (mol/l) Vs Jacket temperature T_j (K)');

xlabel(handles.figure_2,'Jacket temperature T_j (K)');

ylabel(handles.figure_2,'Stable concentration C_B^e (mol/l)');

set(handles.figure_2,'XGrid','on'); set(handles.figure_2,'YGrid','on'); if ishold(handles.figure_3) == 0 hold(handles.figure_3); end set(handles.figure_3,'LineStyleOrder','-') plot(handles.figure_3,Tj0,nghiem(:,3),'r','Linewidth',2.5,'MarkerSize',10); plot(handles.figure_3,Tj_max,T_max,'*','Linewidth',3,'MarkerSize',10); title(handles.figure_3,'Temperature T^e (K) Vs Jacket temperature Tj (K)') xlabel(handles.figure_3,'Jacket Temperature Tj (K)'); ylabel(handles.figure_3,'Temperature T^e (K)'); figure; plot(Tj0,nghiem(:,2),'Black','Linewidth',3,'MarkerSize',10); hold on plot(Tj_max,CB_max,'*k','Linewidth',3,'MarkerSize',10); xlabel('Jacket Temperature Tj (K)');

70 ylabel('C_B^e (mol/l)'); grid on; figure; plot(Tj0,C,'red','LineWidth',2.5); hold on; plot(Tjp,zp,'*k','LineWidth',2.5); xlabel('Jacket Temperature Tj (K)'); ylabel('Process zero'); grid on end

% --- Executes on button press in pushbutton_save.

function pushbutton_save_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_save (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton_close.

function pushbutton_close_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_close (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) setting;

function edit_Flow_Callback(hObject, eventdata, handles) % hObject handle to edit_Flow (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_Flow as text

% str2double(get(hObject,'String')) returns contents of edit_Flow as a double

% --- Executes during object creation, after setting all properties. function edit_Flow_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit_Flow (see GCBO)

71

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit_volume_Callback(hObject, eventdata, handles) % hObject handle to edit_volume (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_volume as text

% str2double(get(hObject,'String')) returns contents of edit_volume as a double

% --- Executes during object creation, after setting all properties. function edit_volume_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit_volume (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit_CA0_Callback(hObject, eventdata, handles) % hObject handle to edit_CA0 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

72

% str2double(get(hObject,'String')) returns contents of edit_CA0 as a double

% --- Executes during object creation, after setting all properties. function edit_CA0_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit_CA0 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit_jacketT_Callback(hObject, eventdata, handles) % hObject handle to edit_jacketT (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_jacketT as text

% str2double(get(hObject,'String')) returns contents of edit_jacketT as a double

% --- Executes during object creation, after setting all properties. function edit_jacketT_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit_jacketT (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit_CB_int_Callback(hObject, eventdata, handles) % hObject handle to edit_cb_int (see GCBO)

73

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_cb_int as text

% str2double(get(hObject,'String')) returns contents of edit_cb_int as a double

% --- Executes during object creation, after setting all properties. function edit_CB_int_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit_cb_int (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit_T0_Callback(hObject, eventdata, handles) % hObject handle to edit_T0 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_T0 as text

% str2double(get(hObject,'String')) returns contents of edit_T0 as a double

% --- Executes during object creation, after setting all properties. function edit_T0_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit_T0 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called5

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

74

end

% --- Executes during object creation, after setting all properties. function edit_intial_3_Callback(hObject, eventdata, handles)

% hObject handle to edit_intial_3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_intial_3 as text

% str2double(get(hObject,'String')) returns contents of edit_intial_3 as a double

% --- Executes during object creation, after setting all properties. function edit_intial_3_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit_intial_3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function edit_intial_4_Callback(hObject, eventdata, handles) % hObject handle to edit_intial_4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_intial_4 as text

Một phần của tài liệu Tối ưu hóa và điều khiển ổn định quá trình sản xuất Cyclopentenol từ Cyclopentadiene (Trang 71)

Tải bản đầy đủ (PDF)

(107 trang)