mr=max(rp); if(abs(min(rp))>mr) mr=abs(min(rp)); end
mm=mr; if(mi>mr) mm=mi; end
mm=ceil(1.1*mm); if(mm<=0) mm=1; end
set(LAB2_D(28),'string',num2str(p(1)));
set(LAB2_D(29),'string',num2str(p(2)));
x1m=abs(min(x(:,1))); if(max(x(:,1))>x1m) x1m=max(x(:,1)); end
x2m=abs(min(x(:,2))); if(max(x(:,2))>x2m) x2m=max(x(:,2)); end
xm=x1m; if(x2m>xm) xm=x2m; end
xm=ceil(1.1*xm); if(xm<=0) xm=1; end
set(x_pp,'YLim',[-xm xm],'XLim',[0 Tk]); axis([0 Tk -xm xm]);
set(LAB2_D(24),'YData',x(:,1)); set(LAB2_D(25),'YData',x(:,2));
set(xfp,'XLim',[-xm xm],'YLim',[-xm xm]); axis([-xm xm -xm xm]);
set(LAB2_D(26),'YData',x(:,2),'XData',x(:,1));
set(rootp,'XLim',[-mm mm],'YLim',[-mm mm]); axis([-mm mm -mm mm]);
set(LAB2_D(27),'YData', ip,'XData', rp);
drawnow;
elseif strcmp(action,'done'), clf reset; clear global LAB2_D, close
end
ПРИЛОЖЕНИЕ
Приложение 1
function rootshow(A)
% Представление корней системы на комплексной плоскости
% Входной параметр - матрица A
p=eig(A);
% Расчет масштабов для ручного масштабирования
mini=min(imag(p)); maxi=max(imag(p)); minr=min(real(p)); maxr=max(real(p));
mi=maxi+1; if maxi<abs(mini) mi=ceil(abs(mini)+1); end
mr=maxr+1; if maxr<abs(minr) mr=ceil(abs(minr)+1); end
v=[-mr,mr,-mi,mi]; axis(v); axis('square');
% Задание осей
x1=[0; 0]; y1=[-mi; mi]; x2=[-mr; mr]; y2=[0; 0];
% Вывод осей и корней
plot(x2,y2,'-w',x1,y1,'-w',real(p),imag(p),'*c13'); hold on;
% Соединение пунктиром комплексно-сопряженных корней и вывод значений
for i=1:length(p), x=[real(p(i)); real(p(i))];
y=[-imag(p(i)); imag(p(i))]; plot(x,y,'--w'), st0=sprintf('%2g.',i);
st1=sprintf('%7.3g',real(p(i))); st2=sprintf('%7.3g',imag(p(i)));
st=[st0,st1,st2,'j']; text(0.5,mi-i,st); end
title('Расположение корней системы на комплексной плоскости');
hold off
Приложение 2
Программа строит переходной процесс для системы второго порядка. При этом управляющее воздействие задается с помощью программы написанной на языке псевдоассемблер (массив p).
% Параметры регулятора k1, k2 и входное воздействие g1
k1=-50; k2=-5; g1=1;
% Программа на псевдоассемблере для расчета управления u1
p=['mov x1,m1'
'mul k1,m1'
'mov x2,m2'
'mul k2,m2'
'add m1,m2'
'add g1,m2'
'mov m2,u1' ];
k=size(p); r='=';
% Начальные условия x1, x2, массивы для вывода x, t, временные параметры
% tt, Tk, dt
x1=0; x2=0; x=0; t=0; tt=0; Tk=0.5; dt=0.01;
% Цикл расчета
while tt<Tk
% Трансляция строки программы на псевдоассемблере
for i=1:k
% Определение вида операции
if p(i,1:3)=='add' d='+'; o=1; end
if p(i,1:3)=='sub' d='-'; o=1; end
if p(i,1:3)=='mul' d='*'; o=1; end
if p(i,1:3)=='div' d=':'; o=1; end
if p(i,1:3)=='mov' o=2; end
% Определение операндов и вычисление результата строки
if o==1 s=eval('[p(i,8:9),r,p(i,5:6),d,p(i,8:9)]'); eval(s);; end
if o==2 s=eval('[p(i,8:9),r,p(i,5:6)]'); eval(s);; end
end
% Уравнение системы
x1=dt*x2+x1; x2=dt*(-10*x2+20*u1)+x2; tt=tt+dt;
x=[x x1]; t=[t tt];
end
% Вывод графика переходного процесса
plot(t,x)
ЛИТЕРАТУРА
1. MATLAB. User's Guide (August 1992). The Math Work, Inc.
2. MATLAB. Reference Guide (August 1992). The Math Work, Inc.
3. MATLAB. New Features Guide (January 1993). The Math Work, Inc.
4. MATLAB. Building a Graphical User Interface (June 1993). The Math Work, Inc.
5. Дьяконов В.П. Справочник по применению системы РС MatLAB. М: Изд. Фирма "Физико-математическая литература", ВО "Наука", 1993 г.
6. Математические основы теории систем. Учебное пособие. Дроздов В.Н., Никифоров В.О., Бендюговский А.Е., Кайдошко Э.А., М: МГАП "Мир книги", 1993.
7. Основы математического моделирования. Построение и анализ моделей с примерами на языке MATLAB: Учеб. Пособие / Д.Л. Егоренков, А.Л. Фрадков, В.Ю. Харламов, БГТУ, СПб, 1994
8. Основы математического моделирования с примерами на языке MATLAB: Изд. 2е. Учеб. Пособие / Д.Л. Егоренков, А.Л. Фрадков, В.Ю. Харламов, БГТУ, СПб, 1996
9. Потемкин В.Г. Система MATLAB. Справочное пособие. - М.: Диалог-МИФИ, 1997. - 350 с.
10. Потемкин В.Г. MatLab 5 для студента.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.