[COLOR=#333333][FONT=Tahoma]if get(handles.radiobutton1,'Value') == get(handles.radiobutton1,'Max')[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]num=get(handles.edit1,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]num=str2num(num);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]den=get(handles.edit2,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]den=str2num(den);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]s1=size(num);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]s2=size(den);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]delay=get(handles.edit8,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]delay=str2num(delay);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if s1(1,2) > s2(1,2)[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]errordlg('Invalid input value! size(num) <= size(den)','Error','modal');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if get(handles.checkbox1,'Value') == get(handles.checkbox1,'Max')[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if delay < 0[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]errordlg('The value of the "OutputDelay" property must be a vector of nonnegative numbers.','Error','modal');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]elseif mod(delay,1) ~= 0[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]errordlg('The value of the "OutputDelay" property must be integer valued for discrete-time models.','Error','modal');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]else[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]h=tf(num,den,1,'outputdelay',delay);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]g=tf(num,den,'outputdelay',delay);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]else[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]g=tf(num,den);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]else[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]z=get(handles.edit3,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]z=str2num(z);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]p=get(handles.edit4,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]p=str2num(p);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]s1=size(z);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]s2=size(p);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]delay=get(handles.edit8,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]delay=str2num(delay);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if s1(1,2) > s2(1,2)[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]errordlg('Invalid input value! size(z) <= size(p)','Error','modal');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]k=get(handles.edit5,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]k=str2num(k);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if get(handles.checkbox1,'Value') == get(handles.checkbox1,'Max')[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if delay < 0[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]errordlg('The value of the "OutputDelay" property must be a vector of nonnegative numbers.','Error','modal');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]elseif mod(delay,1) ~= 0[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]errordlg('The value of the "OutputDelay" property must be integer valued for discrete-time models.','Error','modal');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]else[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]h=zpk(z,p,k,1,'outputdelay',delay);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]g=zpk(z,p,k,'outputdelay',delay);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]else[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]g=zpk(z,p,k);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if get(handles.radiobutton6,'Value') == get(handles.radiobutton6,'Max')...[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]&& get(handles.checkbox1,'Value') ~= get(handles.checkbox1,'Max')[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]g=feedback(g,1);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]elseif get(handles.radiobutton6,'Value') == get(handles.radiobutton6,'Max')...[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]&& get(handles.checkbox1,'Value') == get(handles.checkbox1,'Max')[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]errordlg('Delay must be turn off in close loop.','Error','modal');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if (delay > 0) && (mod(delay,1) == 0)[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]%------------------------------------Response of LTI System[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]val1 = get(handles.popupmenu1,'Value');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if get(handles.radiobutton3,'Value') == get(handles.radiobutton3,'Max')[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]switch val1[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 1[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]step(handles.axes1,g);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 2[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]impulse(handles.axes1,g);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]else[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]time=get(handles.edit7,'String');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]time=str2num(time);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]t=0:time/1000:time;[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]switch val1[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 1[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]step(handles.axes1,g,t);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 2[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]impulse(handles.axes1,g,t);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]%-------------------------------------------Analysis roots[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]val2 = get(handles.popupmenu2,'Value');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]switch val2[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 1[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]if get(handles.checkbox1,'Value') == get(handles.checkbox1,'Max')[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]rlocus(handles.axes2,h);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]else[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]rlocus(handles.axes2,g);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 2[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]pzmap(handles.axes2,g);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]%---------------------------------------Frequency response[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]val3 = get(handles.popupmenu3,'Value');[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]switch val3[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 1[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]bode(handles.axes3,g);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 2[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]nyquist(handles.axes3,g);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]case 3[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]nichols(handles.axes3,g);[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]end[/FONT][/COLOR]
[COLOR=#333333][FONT=Tahoma]guidata(hObject, handles);[/FONT][/COLOR]