Пакет MatLab. Элементы программирования. Функции пакета. Графические возможности пакета, страница 20

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 для студента.