Программное определение степени затухания переходных процессов в simulink-моделях

УДК 681.5

ПРОГРАММНОЕ ОПРЕДЕЛЕНИЕ СТЕПЕНИ ЗАТУХАНИЯ ПЕРЕХОДНЫХ ПРОЦЕССОВ В SmUЫNK-МОДPЛЯХ

Н.В. Билъфелъд, к.т.н.., доцент

При сравнении и анализе переходных процессов в системах управления используют показатели качества переходных процессов. Наиболее распространенными являются такие показатели, как динамическая ошибка, интегральный критерий качества, степень затухания и другие. Если первые два показателя вычисляются однозначно, как максимальное значение и площадь под графиком, то вычисление степени затухания зависит от формы графика переходного процесса. При анализе и сравнении множества графиков необходимо автоматизировать процесс вычисления показателей качества. В статье рассмотрены методы, позволяющие автоматизировать процесс вычисления степени затухания переходных процессов в simulink-моделях. При этом приведены три способа, каждый из которых имеет свои достоинства и недостатки. Первый способ допустим, когда переходный процесс на самом деле затухающий или апериодический (тогда степень затухания будет равна единице). Второй способ можно использовать в любом случае, в том числе и тогда, когда переходный процесс расходящийся. Третий способ также можно использовать в любом случае. Во всех вариантах показаны методы визуализации рассчитанных значений. Приведены фрагменты М-файлов для построения графиков переходных процессов и вычисления степени затухания.

Ключевые слова: регулирование, динамика, моделирование, программа.

SOFTWARE DETERMINATION OF THE DEGREE OF TRANSIENT PROCESSES ATTENUATION

WITH SIMULINK-MODELS Bilfeld N.V., Ph.D., Associate Professor

Abstract. When comparing and analyzing transients in control systems the quality of transients is mostly used. Main indicators are a dynamic error, an integral quality, a degree of attenuation and other. Only first two of all are calculated exactly, but a degree of attenuation depends of the attenuation process's shape. When we analyze and compare many shapes the automation of quality parameters calculating is needs. Some methods to automate the process of quality parameters calculating with simulink-models are described in the article. The first is useful when the transition process is faded or aperiodic (then the attenuation will be equal to one). Second method is useful in any case including not-faded transition processes. Third method can be used in any case too. Images shows the calculated values illustrates all the methods. Fragments of M-files with graphics of transition process are dumped.

Keywords: control, dynamics, modeling, software.

При моделировании систем управления и построении графиков переходных процессов одним из наиболее важных показателей качества является степень затухания.

Для вычисления степени затухания переходных процессов в simulink-моделях удобно использовать стандартные функции MATLAB. Запуск моделей при этом осуществляется из М-файлов. Алгоритм примерно следующий:

- запуск модели и передача в рабочую среду MATLAB массива выходного сигнала модели;

- обработка данного массива с использованием стандартных функций MATLAB и вычисление необходимых показателей;

- передача вычисленных значений в необходимые блоки модели и ее повторный запуск для визуализации вычисленных значений.

Получение массива в рабочую среду MATLAB и построение переходного процесса

Рассмотрим простейшую модель замкнутой системы (рис. 1).

Передаточная функция объекта (блок Transfer

Fcn) имеет вид: W(s) =-г-^-.

120s + 50s2 + 20s + 1

Для регулятора PID введем следующие настроечные параметры: Proportional=2,1, Integral=2, Derivative=1.

Чтобы получить значения выходного сигнала в рабочую область MATLAB, настроим соответствующим образом блок осциллографа Scope.

Для этого щелкнем по блоку и на вкладке Data history в поле Variable name введем какую-либо переменную, например G. В раскрывающемся списке Format выберем значение Array.

Запустим модель. Теперь, если в командном окне MATLAB ввести переменную G, выведется двумерный массив (первый столбец - время, вто-

рой - значение на выходе). Фрагмент массива приведен в таблице.

Фрагмент выходного массива G

t (c) Y

0 0

1 0,001

2 0,009

3 0,026

4 0,054

5 0,09

6 0,131

7 0,174

8 0,215

9 0,249

10 0,273

11 0,285

12 0,285

13 0,272

Чтобы построить график переходного процесса, необходимо из полученного массива выделить первый и второй столбцы. Для этого напишем небольшой М-файл:

% устанавливаем путь к модели cd 'D:\2012\ASUTP\SZ' % открываем модель open sz;

% запускаем модель sim sz;

% получаем первый столбец массива t=G(:,1);

% получаем второй столбец массива y=G(:,2);

% строим график plot(t,y);

% наносим координатную сетку grid on;

В результате получим график переходного процесса замкнутой системы, приведенный на рисунке 2.

0,35 0,3 0,25 0,2 0,15 0,1 0,05 0

-0,05 -0,1 -0,15 -0,2

Y

A

/ \

1 \

\

]

/

0 / 4

V

Рис. 2

Вычисление степени затухания

Чтобы вычислить степень затухания, необходимо определить первый и второй максимумы пе-

реходного процесса [1]. Готовой функции, определяющей два экстремума, в MATLAB нет, поэтому выполним следующее.

Добавим к нашему М-файлу фрагмент:

% определяем значение первого максимума ma1=max(y);

% определяем значение минимума в переменной mi1 и номер точки, в которой он находится в переменной i [mi1,i]=min(y);

% формируем массив из номеров точек, начиная с точки i и до конца массива x=[i:length(y)];

% формируем массив y1 из значений ординат в полученных точках, в результате получаем хвост кривой от первого минимума и до конца

y1=y(x);

% определяем максимум в получившемся массиве ma2=max(y1);

% вычисляем степень затухания SZ1=(ma1-ma2)/ma1;

Выполнив М-файл и набрав в командном окне SZ1, получим значение степени затухания 0,8152.

Визуализация вычисленного значения степени затухания

Добавим в представленную модель блоки Constant и Display, как показано на рисунке 3.

О

Transfer Fcn

Scope

SZ1

| 0,81521

Display

Рис. 3

В настройках блока Constant введем переменную SZ1 .

Изменим М-файл следующим образом:

cd 'D:\2012\ASUTP\SZ'

open sz;

SZ1=1;

sim sz;

t=G(:,1);

y=G(:,2);

plot(t,y);

grid on;

ma1=max(y);

[mi1,i]=min(y);

x=[i:length(y)];

y1=y(x);

ma2=max(y1); SZ1=(ma1-ma2)/ma1; sim sz;

Как видно из М-файла, до первого запуска модели присваиваем переменной SZ1 значение, равное единице. После вычисления степени затуха-

Y

ния присваиваем переменной SZ1 вычисленное значение и повторно запускаем модель (sim sz).

Вычисление степени затухания

При вычислении степени затухания рассмотренным выше способом следует иметь в виду, что переходный процесс сам по себе должен быть затухающим. Если переходный процесс расходящийся, вычисленное значение будет неверным. Изменим настроечный параметр PID-регулятора Integral=0,5.

Запустим М-файл. В результате получим расходящийся переходный процесс, приведенный на рисунке 4.

Значение степени затухания составляет 1,69, что невозможно, так как второй максимум больше первого и значение должно быть отрицательным. Это происходит потому, что максимальное значение находится в конце переходного процесса

Ф = -

= 1,69.

-0,7872

Второй способ заключается в формировании массива разностей с использованием функции diff(y). Экстремальные значения будут находиться в точках, где полученные разности меняют знак на противоположный. Нам достаточно первых трех экстремумов, которые можно определить в цикле. Добавим к М-файлу следующий фрагмент:

% получаем массив разностей

yl=diff(y);

c=l; j=0;

% определяем длину массива n=length(yl) for i=1 :1:n if c>0 if y1(i)<0

% добавляем в массив d элемент при смене знака c=c*(-1); j=j+1;d(j)=i; end end if c<0

if y 1(i)>0

c=c*(-1); j=j+1;d(j)=i; end end ifj>3

% завершаем цикл, если количество элементов равно трем break end

end

SZ1 =(y(d(1 ))-y(d(3 )))/y(d(1));

sim sz1md;

В результате получим массив d из номеров экстремумов: d=[112 235 358].

Сами экстремумы будут иметь значения: 7(112)=0,2602, 7(235)= -0,3485, 7(358)=0,4429.

В итоге определится степень затухания, равная -0,7022, что соответствует действительности.

Получение массива экстремумов средствами simulink

Блок Triggered To Workspace формирует массив экстремумов и передает их в рабочую область MATCAD. Один из входов блока подключается к выходному сигналу, а управляющий вход подключается через блок Detect Decrease.

Соберем модель, приведенную на рисунке 5.

-о

Transfer Fcn

SZ1

Scope

Triggered To Workspace

Display

Detect Decrease

Рис. 5

Для настройки блока Trigger To Workspace кликнем по блоку.

В раскрывающемся списке Triggered Type выберем тип экстремумов - в нашем случае Rising edge (максимальные значения). В поле Variable name введем имя переменной, значения которой будут передаваться в рабочую область MATLAB. Запустим модель и введем в командной строке

G2.

В результате получим массив экстремумов

"0,2900"

G2=

0,0563 0,0072

и приблизительно такие же, как в

первом примере, значения максимумов: Ma1=0,2901, Ma2=0,0564.

В данном случае значительно сократится код М-файла для вычисления и визуализации степени затухания.

cd 'D:\2012\ASUTP\SZ' open sz;

U < U/z

SZ1=1;

sim sz;

SZ1 =(G2(1 )-G2(2))/G2(1);

sim sz;

Полученная таким образом степень затухания составляет 0,8057, а в первом примере она составляла 0,8058.

Заметим, что в командном окне MATLAB выводится предупреждение, что блок Detect Decrease требует на входе дискретный сигнал.

Чтобы устранить данное предупреждение, подадим на вход блока Detect Decrease сигнал через блок Zero Order Hold, который осуществляет дискретизацию аналогового сигнала. Создадим модель, приведенную на рисунке 6.

Визуализация экстремумов

Для визуализации экстремумов можно использовать блок Maximum.

Создадим модель, приведенную на рисунке 7.

Triggered To Workspace

SZ1 Constant

Zero-Order Hold

U<U/z

Detect Decrease

Рис. 6

Transfer Fcn

и—

St1

PID

S/1 1 0.81521

Zero-Order Hold

rîl-B

Maximum

Scopel

Constant

Display

Рис. 7

Оба входа данного блока подключаются через блок Zero Order Hold. Для настройки блока Maximum кликнем по блоку. В поле Mode введем значение Running, а в поле Reset ports - значение Rising elge.

После запуска модели на осциллографе Scope1 получим значения максимумов, как показано на рисунке 8.

Объединим все рассмотренные способы в одной модели, представленной на рисунке 9.

Напишем М-файл для управления данной моделью:

cd 'D:\2012\ASUTP\SZ'

open sz;

SZ1=1; SZ2=1; SZ3=1; Kp=2; Ti=0.5;

sim sz;

% построение графика

t=G(:,1); y=G(:,2); plot(t,y); grid on; % способ 1

[ma1]=max(y); [mi1,i]=min(y); x=[i:length(y)]; y1=y(x); ma2=max(y1); SZ1=(ma1-ma2)/ma1; % способ 2

y1=diff(y); c=1; j=0; n=length(y1) for i=1 :1:n if c>0

if y1(i)<0 c=c*(-1); j=j+1;d(j)=i; end end if c<0

if y1(i)>0 c=c*(-1); j=j+1;d(j)=i; end end

ifj>3

break end end

SZ2=(y(d(1))-y(d(3)))/y(d(1)); % способ 3

SZ3=(G2(1)-G2(2))/G2(1); sim sz;

0.35 0.3

0.25 0.2 0.15

0.1

0.05 0

/ t

20

40 60

Рис. 8

80

100

S/1 1 0.80581

Constant Display

S/2 1 0.80581

Constant1 Display1

S/3 1 0.80571

Scope

Zero-Order Hold

HD

Scope1

Zero-Order Detect Ho|d1 Decrease

Triggered To

Workspace

Display2

Рис. 9

Как видно из рисунка 9, при настроечном параметре регулятора Integral=0,5 получим одинаковую степень затухания переходного процесса, вычисленную тремя различными способами.

Если изменить настроечный параметр Ше-gral=1, получится расходящийся переходный процесс. В этом случае одинаковые степени затухания будут только при расчете вторым и третьим способами, как показано на рисунке 10.

Transfer Fcn

0,8152

Display

0

U<U/Z

В результате можно сделать следующие выводы.

Расчет первым способом возможен только тогда, когда переходный процесс на самом деле является затухающим. Второй способ требует циклических операций и при многократных вычислениях потребует большего времени. Третий способ имеет минимальный программный код, но требует дополнительных блоков simulink.

Литература

1. Мерзлякова О.В., Бильфельд Н.В. Получение массива в рабочую среду MATLAB и построение переходного процесса // Молодежная наука в развитии регионов. 2011. С. 14-20.

2. Ануфриев И. Самоучитель MatLab 5.3/6.Х. СПб: БХВ-Петербург, 2002. 512 с.

3. Черных И.В. Моделирование электротехнических устройств в MATLAB, SymPowerSystem и Simulink. СПб: Питер, 2008. 288 с.

4. Затонский А.В. Программная оптимизация настроек систем автоматического регулирования // Новый университет, 2011. № 1. С. 28-33.

References

1. Merzlyakova O.V., Bilfeld N.V., Youth Science in the development of the regions, 2011, pp. 14-20.

2. Anufriev I.E., Tutorial MatLab 5.3/6.x, St. Petersburg, BHV-Petersburg Publ., 2002, 512 p.

3. Chernykh I.V., Modeling of electrical devices in MATLAB, SymPowerSystem and Simulink, St. Petersburg, Peter Publ., 2008, 288 p.

4. Zatonsky A.V., New University, 2011, no. 1, pp. 28-33.

УДК 658.512.22

ПРЕДСТАВЛЕНИЕ ПРОЦЕССОВ ПРОЕКТИРОВАНИЯ

В ФУНКЦИОНАЛЬНО АДАПТИРУЕМОЙ ФОРМЕ ДЛЯ ХРАНЕНИЯ КЛАССОВ ПРОЕКТНЫХ РЕШЕНИЙ

И.В. Горбачев, к.т.н.; А.Ф. Похилько, к.т.н., доцент

Возможности взаимодействия при распределенном и параллельном проектировании во многом определяются способом представления проектных решений в системах автоматизированного проектирования. В настоящее время обмен решениями осуществляется средствами формата стандарта ISO 10303 STEP, разработанного в рамках CALS-технологии, который не позволяет модифицировать решения. В данной статье рассматриваются возможности выделения из проектной деятельности структур проектных решений, построения моделей классов объектов проектирования, а также хранения, отображения и дальнейшего использования информации в контексте технологии функционально адаптированного представления (ФАП). Развиваемая авторами концепция ФАП позволяет иным, в отличие от известных, способом подойти к обмену проектными решениями, когда главным является фиксация процедуры получения решения (последовательности операций), на основе которой средствами инструментальной среды генерируется по сути мини-САПР с функциональностью, определяемой набором операций, необходимых для создания проектируемого объекта. При этом сохраняются логика проектного процесса и возможность его модификации (модификации проектного решения) в пределах выделенного класса проектных операций.

Ключевые слова: интегрированная среда, проектная деятельность, проектные решения, автоматизация, САПР.

DESIGNING PROCESS REPRESENTATION IN FUNCTIONALLY ADAPTED FORM FOR STORE OF THE PROJECT SOLUTIONS CLASS

Gorbachev I.V., Ph.D., Associate Professor; Pokhilko A.F., Ph.D., Associate Professor (UlyanovskState Technical University, 32, Severny Venets St., Ulyanovsk, 432027, Russia, afp@ulstu.ru) Abstract. The interoperability of distributed and concurrent designing is defined by the representation of CAD systems project solutions. Nowadays solution exchange is performed through standard ISO 10303 STEP format, created in the frames of CALS technology and doesn't allow modifying solutions. This article describes project solutions extraction capability from design activity, designing object class models formation, as well as store, map and further use of information in the context of the functionally adapted representation. The functionally adapted representation concept allows solution exchange by the other method. In this case, the main thing is the fixation of solution construction procedure (consists of operation chain) in the procedure chain. On the base of procedure chain mini CAD is generated by author's instrumental environment. Mini CAD is small software application for designing. Mini CAD functionality is determined by required operation set for