Научная статья на тему 'Программное управление сим-моделированием САУ в Матлабе r2009b'

Программное управление сим-моделированием САУ в Матлабе r2009b Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
363
43
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАТЛАБ / MATLAB / СИМУЛИНК-МОДЕЛЬ САУ (С-МС) / ПРОГРАММНОЕ УПРАВЛЕНИЕ С-МС / СЕАНС АВТОМАТИЧЕСКИХ ЗАПУСКОВ МОДЕЛИ / SESSION AUTOMATIC START TO MODELS / НАЧАЛЬНЫЙ ВЫБРОС / INITIAL SURGE / КОЭФФИЦИЕНТ ОТСЕЧКИ НАЧАЛА / ПРЕДОТВРАЩЕНИЕ ГОНОК МЕЖДУ ЗАПИСЬЮ ДАННЫХ И ИХ ОБРАБОТКОЙ / PREVENTION RACING BETWEEN DATA AND THEIR PROCESSING WRITING / ИТОГОВАЯ ТАБЛИЦА ИЗМЕРЕНИЙ НА С-МС / TOTAL TABLE OF THE MEASUREMENTS ON S-MS / SIMULINK-MODEL SAU (S-MS) / PROGRAMME MANAGEMENT С-МС / FACTOR OF THE CUT-OFF BEGINNING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мякишев Андрей Константинович, Рыкин Олег Романович

На примере программы управления многозапусковым сеансом по исследованию точности симулинк-модели САУ в частотном диапазоне задающего воздействия описывается инновационная методика разработки программ автоматического управления исследованием моделей САУ в пакете Симулинк Матлаба, существенно дополняющая Справку Матлаба.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PROGRAMMATIC CONTROL OF THE MODEL SIMULATION IN MATLAB R2009B

On example of the control program of multisimulation session on study accuracy Simulink model in frequency range of the assigning influence is described the method development of the auto control programs for study the models in package Matlab Simulink, greatly complementing Matlab Reference.

Текст научной работы на тему «Программное управление сим-моделированием САУ в Матлабе r2009b»

УДК 62 52

А.К. Мякишев, О.Р Рыкин

ПРОГРАММНОЕ УПРАВЛЕНИЕ СИМ-МОДЕЛИРОВАНИЕМ САУ В МАТЛАБЕ R2009B

A.K. Myakishev, O.R. Rykin

PROGRAMMATIC CONTROL OF THE MODEL SIMULATION

IN MATLAB R2009B

На примере программы управления многозапусковым сеансом по исследованию точности симулинк-модели САУ в частотном диапазоне задающего воздействия описывается инновационная методика разработки программ автоматического управления исследованием моделей САУ в пакете Симулинк Матлаба, существенно дополняющая Справку Матлаба.

МАТЛАБ, СИМУЛИНК-МОДЕЛЬ САУ (С-МС), ПРОГРАММНОЕ УПРАВЛЕНИЕ С-МС, СЕАНС АВТОМАТИЧЕСКИХ ЗАПУСКОВ МОДЕЛИ, НАЧАЛЬНЫЙ ВЫБРОС, КОЭФФИЦИЕНТ ОТСЕЧКИ НАЧАЛА, ПРЕДОТВРАЩЕНИЕ ГОНОК МЕЖДУ ЗАПИСЬЮ ДАННЫХ И ИХ ОБРАБОТКОЙ, ИТОГОВАЯ ТАБЛИЦА ИЗМЕРЕНИЙ НА С-МС.

On example of the control program of multisimulation session on study accuracy Simulink model in frequency range of the assigning influence is described the method development of the auto control programs for study the models in package Matlab Simulink, greatly complementing Matlab Reference.

MATLAB, SIMULINK-MODEL SAU (S-MS), PROGRAMME MANAGEMENT С-МС, SESSION AUTOMATIC START TO MODELS, INITIAL SURGE, FACTOR OF THE CUT-OFF BEGINNING, PREVENTION RACING BETWEEN DATA AND THEIR PROCESSING WRITING, TOTAL TABLE OF THE MEASUREMENTS ON S-MS.

Сокращения в тексте:

ЗВ -задающее воздействие;

ЗО - запретная по условиям точности область для ЛАХ;

ПФ - передаточная функция;

ЛАХ - логарифмическая амплитудно-часто-тная характеристика;

С - регулятор САУ;

О - объект САУ.

В Матлабе Я2009Ь есть 2 группы команд для программного управления симулинк-моделью (сим-моделью) САУ для автоматического исследования её характеристик. Это группы команд 8е1_рагаш и SimOut. Команды 8е1_рагаш имеют следующую структуру [1]:

8е1_рагаш('8у8',

'SimulationCommand',

'ешё) (1)

где sys - имя исследуемой сим-модели без расширения «.mdl», 2-й аргумент - ключевое слово, постоянное для всей группы команд; cmd - условное обозначение для команд управления моделью: 'start' (пуск), 'stop' (стоп), 'pause' (пауза), 'continue' (продолжить), 'update' (изменить), или WriteDataLogs' (вставить данные). Структура команд SimOut [2]:

SimOut = sim('model',

'ParameterNamel', Valuel,

'ParameterName2', Value2);

SimOut = sim('model', ParameterStruct);

SimOut = sim('model', ConfigSet). (2)

Команды SimOut - это программный эквивалент настроек модели, выполняемых посредством меню, инструментов и полей в окне модели. Обе группы команд и Справка по рас-

сматриваемому вопросу [3] не дают целостного представления о программном управлении моделированием. В частности, отсутствуют сведения: о программном вводе исходных и изменяемых переменных и параметров в модель в программном сеансе; о возможности табличного вывода наблюдаемых переменных в результате моделирования; о необходимости ввода масштабных коэффициентов между переменными математического описания САУ и её сим-модели; о необходимости учёта различии между модельной уставкой времени запуска модели и фактическим (истинным, компьютерным) временем выполнения (они могут различаться в десятки и более раз в обе стороны); об учёте длительности переходной составляющей процесса запуска, искажающей величины параметров моделируемого процесса в несколько раз и т. п.

В статье перечисленные неопределенности и недомолвки снимаются. На примере программы исследования точности синтезированной САУ показаны приёмы и возможности программного симулинк-моделирования, сокращающего время модельного исследования в десятки раз.

1. Симулинк - модель САУ, полученная при синтезе линейной САУ методом В.А. Бесекерского - ИПОЛС. Метод синтеза САУ В.А. Бесекерского - ИПОЛС (инструменты проектирования одномерных линейных САУ -SISO Design Tool, Single-Input/Single-Output Design Tool [7] ) в сущности представляет собой соединение метода В.А. Бесекерского построения запретной области по условию точности для ЛАХ разомкнутой системы [4 - 6] и набора инструментов синтеза регулятора в Боде-редакторе [8] для линейного объекта путём вставки и размещения нулей и полюсов на ЛАХ объекта с непрерывным контролем параметров синтезной характеристики (например, перерегулирования и времени регулирования переходного процесса - ступотклика САУ, см. рис. 1, б) замкнутой САУ.

Пример синтеза регулятора С для объекта G в окне Боде-редактора представлен на рис. 1, а. Контрольная точка Ак установлена по условию обеспечения ошибки САУ 9 угл. мин в диапазоне 0 - 30 град: L(Ak) = 46 дБ, установлено 46,6 (с запасом). Прямые, исходящие из

Ак с наклоном 20 дБ/дек (слева от Ак) и - 40 (справа), границы запретной области, ниже которых ЛАХ разомкнутой САУ не должна заходить. Передаточные функции (ПФ) регулятора С и объекта G показаны в текстовых блоках на рис. 1, в.

Блоки, вставленные дополнительно: Clock, Display, Formirovatel 2, To Workspace, C=, G=

Проектные показатели синтеза: диапазон задающего воздействия 0 - 30 град, абсолютная ошибка САУ 9 угл. мин, наибольшая скорость задающего воздействия 13 град/с. наибольшее ускорение задающего воздействия 5,6 град/с2 , перерегулирование 20 %, время регулирования 1,5 с, число колебаний - 3, запас по фазе 25 град, относительная ошибка в т. Ак - 0,5 %. В окне Боде-редактора (рис. 1, а) кривая - ЛАХ разомкнутой САУ. Нули и полюса обозначены символами «о» и «х».

Полюса 1 и 3, относящиеся к объекту, неподвижны. Двойной комплексный ноль 2 и полюса 4 и 5 относятся к регулятору С, их можно передвигать по ЛАХ, наблюдая за следящим изменением параметров ступотклика (рис. 1, б см. также о функции step [9] ), добиваясь достижения требуемых значений. Границы запретной области построены в диапазоне частот 0,0043 - 43 рад/с.

Модель синтезированной САУ (рис. 1,в) содержит дополнительно вставленные блоки (Formirovatel 2, To Workspace), которые позволяют измерять ошибки САУ для каждой частоты в ручном режиме на экране осциллографа (Output) или с использованием программных методов обработки данных моделирования, помещаемых в Вычпространство (Workspace) Матлаба по завершению любого запуска модели. Эти же блоки позволяют организовать полностью программный режим измерения ошибок САУ в заданном частотном диапазоне в точках границ запретной области и на их продолжении влево и вправо в виде сеанса программных запусков с выдачей итоговой таблицы измерений. Блоки Clock и Display служат для визуального контроля времени текущего запуска модели. Блоки C= и G= с ПФ регулятора и объекта предназначены для контроля наличия этих объектов в Вы-чпространстве при работе с моделями нескольких САУ.

lires - Figure 1: SISO Design for SISOTaskPrkContingPrimlAsETtL? 301210

File Edit View Insert Tools Debug Desktop Window Help

' I ? x

□ BSD

100E.

Open-Loop Bode Editor for Open Loop 1 (0L1)

: :

■ ■m

"Г M 53 : - ■ --:--:-:■ yi-iii

Fieq 103 iad<sec ........ -i....i.

10 10 10 Frequency (rad/sec)

а)

LTI Viewer for SISOTaskPrkContin2Prim1AsETAL2_3D1210

File Edit Window Help

S 0.6 <

System: Closed Loop r to у Step Response

I/O: г to

Peak amplitude: 1.1 Overshoot (%): 999

At time (sec): 0.0266

System: Closed Loop r to у

JOrtoy

G 0.2 0.4 0.6 0.0 Time (:

б)

1 1.2 1.4 1.6

0 Real-Time Update

in S ISOTaskP rkConti n2Prim1 AsDes 7_2_Prog2711 OS tatM j akRik

File Edit View Simulation Format Toofc Help

D в % e 1t| о Ci I ► 3|вШВ*Н|*>

Clock

T.sec

Display T, sec

{jiM'sin|wiM't|,

InnnnV Vol<

□□CD г

6565.7952 Is"2 *> 1182s 37.28}

C-.................................................

Ready

SlmMoilel dlja |trotktasinte:a SAU "SISOTaikPrtCanlirtfPiiml AeD»s7_2_Pr»g271 lOSIalMjakRik.niat" s jiasrioykanii leyuljatora "DesignflS}"

Foniiiiovatel

oslilbkl 2 xSAU —►

Ьо

F о r mil о Veite I Recjuljator

oshibki 1 xSAU

Objekt: SObAlzp

□ xSAU. Volt __

T7=0

yS AU, Vi It

Output

"Lj^smJ

To Workspace

1 I i . m i| i svjaz: H=1

1500

s (st 12.5) (s«4(

в)

Рис. 1. Результат синтеза структуры регулятора c для объекта G (а и б) и модель САУ (в), построенная Матлабом по командам меню окна Боде-редактора (а) «Tools_Draw Simulink Diagram».

% ПРОГРАММА«ПрогрТочнСАУ» % Программный запуск модели в сеанс пусков в заданных точках % частотного диапазона ivi и вычисление ошибок САУ do результатам моделирования

1) prg1=13; prg2= 5.6; Mm_grd_V=30; Mm_min_mV=1.S; wAk=0.43; % В строки 1 и 2

вставляются данные проекта Исполнителя.

Л

2) prg1¡ =[ ]; prg2i =[ ]; StopT=[ ]; % С орос переменных: ия сеансов с разными wi

3) wi =10.0043 0.01 0.043 0.1 0.43 1 4,3 1 043];

4) for m=1:length(wi)

5) if wi(m) <wAk

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6) prg1i(m]= prg1 ; prg2i(m]= prg1 bwi(m);

7) gi(m)=prg1/(wi(m)*Mm_grd_V);StopT(m)=2*pi/wi(m);

8) elseif wi(m) == wAk \ %Подпр ограда

9) prg1i(m]= prg1 ; prg2i(m]= prg2;gi(m]=1; (т)=2"р1/1лл(т]; ^o вьписления

10) gi(m)=1; % амплитуды gi задающего воздействия, его производнык

11) else % н взсгорэ времёнзэш сков модели Stop!

12) prg1i(m]= prg2/wi(m); prg2i(m)= prg2;

13) gi(m)=prg2/((wi(m)A2)* Mm_grd_V) ; Sto pT( m )=Zpi/wi ( m) ;

14) end

15) end ^ x SAU=[];dSAU=□ ;dLSAU=[];dSAUm=□ ;toutmax =0;tout=0; tozsh=1;Tist=Q;q=0.2;pause

16) on

17)

18)

19)

20) 21) 22)

23)

24)

25)

for k=1:length(wi)

tic; % Запуск таймфа измерения времени к-го никла for (toc - окончание измерения).

StopTM=StopT(k); % Присваивание модельным переменным к-хзначений векторов wiM=wi(k);giM=gi(k); % из Вьнпросгранства/

Stblmen=strvcat('k ','StopT, мод.сек ",4vi, papjc '/gi, Вольт '); % формование StbVeL=[k;StopTïk) ;wi(k);g¡(k)]; % справочных данных к-го запуска

StbVeLstr=num2str( StbVeL); % для Командного окна

Tvid=cat(2,Stblmen, StbVeLstr)

set_param(" SISQTaskPrkCont¡n2Pr¡tn1AsDes7_2_Prog27110StatMjakR¡k,I... "SimulationCommand", "start')

26) while tout max < St op ТТЛ

27) pause(tozsh);

28) toutmax=max(tout);

29) end

30) П=f i X( q*n ume I(tout));xSAU( 1 :n)=Q; % кол. отсчётов, удаляемых нз начала вектора xSAL % по порче переходным процессом в модели (см. рис. 1.21, В1)

31 ) dSAU(k)=max(abs(xSAU)); dLSAÜ(k)=dSAU(k)'100/gi(k); % dSAL" в Вольтах

32) dSAUm(k) =d SAU(k)s 10Л3*Mm_min_mV; % dSAUm - в мнн, 10A3 - оеревод Вольт в милливольты

33) toc; Tist(k) =toc;

34) xSAU=[]; toutmax=0;tout=0; °/o Подготовка к очередном}- (кН)-му циклу.

35) end

36) load gong; % Звуковой сигнал для настройки количества измерительных точек: % посте окончания никла for звучит сигнал "Гонг" (при наличии % аудноусгронства)

37) Wavplay(y,Fs) % gpng signal beginsplavitig.

38) T_mod=cat(1,wi, gi, dSAU, dLSAU, dSAUm, prgli, prg2i, StopT,list);

39) T_modStr=num2str(T_mod,3) ; %Преобразваниетабл. нз числового формата в строчный

40) imenStr=strvcat('wi,pim.c "g i, Вольт', 'dSAU, Вольт 'dLSAU, %',...

41) 'dSAUm, мин ', "prgli, грапд/с ", "prg2i, град(сл2 ", "StopT, мод.сек ",'Tist, сек ');

% Создание столой а имён строк Габл. T_modStr в строк-фор мате.

42) T_modlTI= Cat(2,imenStr,T_modStr) % Итоговая таблипа нзяер еннн

43) TStopTsum=SUm(Stop"n,TistSeanS=SUm("nst) % Суммы времён соответственно установленных в поле StopTM (рис. 1, В) в сеансе зат еков и истинных времет всех запусков

Рис. 2. Программа автоматического измерения ошибок модели САУ

2. Программа сеанса автоматического измерения ошибок модели САУдля набора точек границы запретной по точности области. Программа состоит из двух частей. В первой (установочной, строки 1 - 15) вычисляются: вектор амплитуд задающего воздействия (ЗВ) gi, компоненты вектора времени запуска модели StopT для всех частот сеанса из рис. 1. Состоит из подпрограммы вычисления амплитуды и ряда других величин (строки 1 - 15) и подпрограммы сеанса запусков модели (строки 16 - 43) моделирования, векторы амплитуд первой и второй производных ЗВ prg1i и prg2i для справки.

Частота в измерительных точках Программы (рис. 2) формируется компонентами вектора wi (см. строку 2 Программы). Амплитуды ЗВ рассчитываются как компоненты вектора gi - строки 6 (слева от Ак), 9 и 12 (справа). Сетка частот wi выбирается произвольно в пределах исследуемого частотного диапазона. Амплитуда ЗВ рассчитывается по формулам (3) согласно методу построения границ запретной области [3, с.363]:

gi(m)=prg1/(wi(m) Mm_grd_V);

при wi(m) <wAk = 0,43 рад/с,

gi(m)=1; при wi(m) = wAk ,

gi(m)=prg2/((wi(m)2) • Mm_grd_V)

при wi(m) >wAk, (3)

где gi(m) - амплитуда ЗВ генератора GenSin (Вольт) для частоты wi(m); prg1 и prg2 - проектные значения 1-й и 2-й производных ЗВ, равные 13 град/с и 5,8 град/с2; Mm_grd_V) -масштаб моделирования для перевода амплитуды GenSin в град, принят равным 30 град/В.

Компонент вектора времени запуска модели StopT(m) рассчитывается по (4), исходя из требования, чтобы за время запуска модели генератор GenSin смог выдать один период синусоиды, т.е.

StopT(m) = 2-n/wi(m),

модельные секунды. (4)

Вторая часть программы (строки 16...43) обеспечивает автоматическое управление сеансом n (размерность вектора wi) запусков модели в циклах for с вычислением после каждого

k-го запуска погрешностей САУ dSAU(k) (Вольт), dLSAU(k) (относительная в %;), dSAUm(k) (угловые мин.)) и истинного времени k-го запуска Tist(k). По окончании всех запусков программа выдаёт гонг-сигнал (звуковой файл Матлаба) и таблицу T_modITI с результатами вычислений (рис. 3.).

В 16-й строке выполняется сбрасывание значений всех вычисляемых векторов: в противном случае при переходе к вектору частот меньшей размерности, чем у предыдущего, в итоговых данных появятся лишние величины - остатки предыдущего сеанса. Переменная tout - модельное время текущего запуска. Переменная tozsh^/с - время ожидания в цикле while для предотвращения гонок между процессом записи данных в Вычпростран-ство (Workspace) после окончания запуска и строками обработки этих данных подпрограммы сеанса по окончании цикла while. Величина q - коэффициент отсечения начальных отсчетов у вектора xSAU ошибки САУ, которые искажены переходным процессом в модели в начале запуска. Команда pause on - разрешение ввода паузы (в цикле while). В 25-й строке производится к-й запуск модели. Первый аргумент - имя модели (см. рис. 1, в), остальные - структурные элементы команды.

В цикле while (строки 26 - 29) обеспечивается отслеживание момента окончания запуска модели для обработки результатов моделирования. Пока длится запуск в Вычпро-странстве переменная tout=0 (модельное время текущего запуска), и программа не выходит из цикла, производя опрос переменной tout в 28-й строке с периодом tozsh=1с. По окончании запуска в Вычпространстве вектор tout обновляется на значение в закончившемся запуске, и программа выходит из цикла while, начиная выполнять команды со строки 30. Величину tozsh можно варьировать в широких пределах. Она влияет на истинное время выполнения запуска Tist(k) и всего сеанса TistSeans. Проверка на модели для wi = 0,043 рад/с показала, что для значений tozsh = 0,0001; 1 и 10с. время запуска Tist(0,043) = 9,0245; 5,5640 и 10,5190с.

При этом TistSeans (tozsh = 1) = 96с (см. рис. 3) и TistSeans (tozsh = 10) = 181,2 с.

*) Command Window

ЕЕИ

File Edit Debug Desktop Window Help Tvid =

k 9

StopT, иод.сек 0.146121 wi, рад/с 43

tji , Вольт 0.000100955

tout

I)

Elapsed time is 1.562266 seconds. TmodlTI = wi,рад.с if i, Вольт dSAU, Вольт dLSAU, % dSAUm, 1Я1Н prtfli, гращ/с prg2i, град/сЛ2 StopT, иод.сек Tist, сек TStopTsum =

2.3216e+003 TistSeans = 95.9753

A »

0.0043 0.01 0.043 0.1 0.43 1 4.3 10 43

101 43.3 10.1 4.33 1 0.187 0.0101 0.00187 0.000101

0.00467 0.00467 0.00467 0.00467 0.00468 0.00213 0.00112 0.000326 3.73е-005

0.00463 0.0108 0.0463 0.108 0.468 1.14 11.1 17.5 37

8.4 8.4 8.4 8.4 8.42 3.83 2.02 0.587 0.0672

13 13 13 13 13 5.6 1.3 0.56 0.13

0.0559 0.13 0.559 1.3 5.6 5.6 5.6 5.6 5.6

1.4бе+003 628 146 62.8 14.6 6.28 1.46 0.628 0.146

50.1 25.5 7.34 4.33 2.59 1.62 1.38 1.56 1.56

Рис. 3. Таблица T_modITI с результатами программного моделирования и вычисления погрешностей модели САУ (рис. 1, в). Данные для запусков (показаны при к = 9) формируются в Командном окне перед их началом

Рис. 4. Выбор точки отсечки начала процесса xSAU для определения коэффициента д. Для этого запуска StopTM = 1460 c (см. рис.3) и д = 2/1460 = 0,0014. а - вид xSAU и g; б - вид участка xSAU и g до штриха с белой стрелкой

Величина q коэффициента отсечки начала процесса xSAU выбирается из условия затухания начального выброса: см. например точку n=331(2 сек) на рис. 4. При этом q вычисляется по формуле (5):

q= ^отсч /Stop TM = Иотсч /«xSAU 5

где ^отсч, «отсч - время и количество отсчётов в точке отсечки, StopTM, nxSAU - длительность запуска и количество отсчётов в рассматриваемом запуске модели. Значения потсч и nxSAU определяются по переменным tout и xSAU (до их сбрасывания в строке 34), вызываемым из Вычпространства в окно Редактора переменных. Величину q следует определять в частотных точках справа от Ак, примыкающих к ней. Например, для частот 1 и 2 рад/с величины q равны соответственно 0,085 и 0,13. По мере удаления вправо от т. Ак абсолютная ошибка резко уменьшается (см. рис. 3), и необходимость высокоточного её вычисления отпадает.

3. Настройка модели и программы. В левом оконце линейки инструментов модели устанавливается значение StopTM (см. рис.1,В). В полях Панели параметров блока GenSin (вызывается двойным щелчком ЛКМ на блоке) устанавливаются следующие значения: Amplitude - giM, Frequency - wiM, Units -rad/sec. В поля Variable name и Save format Панели параметров блока xSAU устанавливается значения xSAU и Array. На вкладке Data History Панели параметров блока Output (вызывается нажатием кнопки Parameters на его экране) оба квадрата для вставки галочек должны быть пустыми. В панели «Конфигурационные параметры» (вызывается командами меню Simulation_ Configuration Parameters) для категорий: Data Import/Export - удаляется галочка из квадрата Limit data points to last; Diagnostics - в строке Automatic solver parameter selection вставляется значение none. Следует также проверить наличие в Вычпро-странстве заданных (не других) передаточных функций (ПФ) Объекта G и регулятора C: при их отсутствии файл Вычпространства перевызывается (двойным щелчком ЛКМ на его имени) или указанные объекты экспортируются в Вычпространство (заменяя посторонние ПФ)

из Проектного окна ИПОЛС или из окна Боде-редактора через команды меню File_Export.

Настройка Программы. В 1-ю строку вставляются величины: prgl и prg2 (проектные максимальные значения 1-й и 2-й производных от ЗВ), Mm_grd_V и Mm_min_mV ( коэффициенты перевода ЗВ или выходной величины САУ от В (мВ) в град (угловые мин)), wAk (частота контрольной точки ЗО, точки излома границы ЗО (см. рис. 1,а), рад/с). Коэффициенты перевода рассчитываются по формулам (6):

Mm_grd_V= gmax/n, град/В;

Mm_min_mV= gmax-60/1000-n,

угл.мин/мВ, (6)

где n - подходящее число (в данном примере n = 1).

В 3-й строке вставляется вектор wi с набором исследуемых частот. В 16-й строке вставляются величины: tozsh=1 и q=0.2. В 1-й аргумент команды 25-й строки вставляется в апострофах имя испытуемой модели.

Значение q следует уточнить для близких справа к т. Ак частот на основе рис. 4 и формулы (5). Для этого между 33-й и 34-й строками вставляются две команды break и end, обеспечивающие запуск модели и вычисление погрешностей только для 1-й частоты вектора wi. На место 1-й частоты вставляются поочерёдно испытуемые частоты. Строки Программы с 1-й по строку с командой Tist(k) = toc включительно выделяются, и клавишей F9 включается выполнение. На экране осциллографа Output определяется абсцисса Ссч для т. Отс (см. рис. 4, б). Чтобы получить из рис. 4, а рис. 4, б нажимается кнопка х в инструментах осциллографа; указатель подводится к оси ординат на 1,5 - 2 мм справа, нажимается ЛКМ и проводится горизонтальная линия до оси ординат - ЛКМ освобождается (см. рис. 4, a в районе стрелки у оси ординат). Матлаб выдаст увеличенное отображение экрана. Попытку нужно повторить ещё один раз с охватом горизонтальной линией паразитного переходного процесса. Величина StopTM равна значению StopT из 1-й строки табл. Tvid в Командном окне для этого запуска. Используя tотсч и StopT по формуле (5) находится q.

4. Программное исследование модели САУ. При настроенной модели и программе открытие сеанса моделирования выполняется путём выделения программы в сессионном М-файле и нажатия клавиши F9. За работой программы можно наблюдать по Командному окну, в которое выдаются в текущем режиме данные табл. Tvid для каждой k-ой обрабатываемой частоты wi(k). Конец обработки всех точек вектора wi программа извещает звуковым сигналом Гонг (такой файл есть в Матлабе [8] ) и выдаёт итоговую таблицу модельного исследования Tmod_ITI (см. рис. 3). В Ком. окне сообщается также сумма времён, установленных за сеанс в поле StopTM (величина TStopTsum), и сумма истинных времён обработки каждой частотной точки (величина TistSeans). Как следует из рис. 3 истинное время моделирования 96 с (оцениваемое программным таймером tic.. .toc) меньше модельного 2321,6 с в 18 раз.

Если амплитуду и частоту в GenSin и StopTM устанавливать вручную, цикл for исключить, на обработку каждого запуска соответствующие строки программы активизировать вручную и для построения итоговой таблицы Tmod_ITI включать строки программы тоже вручную, то время выполнения всего полуавтоматического сеанса составит 22 мин. Следовательно, программа с автоматическим управлением сеансом даёт выигрыш во времени в 13, 75 раз.

5. Принципы программного управления сим-моделью. Программно изменяемый параметр должен быть представлен в Программе в виде вектора с заданным или вычисляемым числом компонент, а в его блоке модели, в поле панели параметров блока - именем, отличным от имени вектора для реализации команд присвоения (см. строки 19, 20). Для времени запуска модели следует также предусмотреть рассчитываемый вектор (в примере - StopT, формула (4), строки 6, 9 и 13) , а в поле StopTM (рис. 1, в) вставить имя этого параметра, отличное от век-

тора. Для вычисляемых векторов предусматриваются команды сброса их значений в начале Программы, аналогичные строке 2 рис. 2.

Программа формируется в сессионном М-файле из двух частей: установочной и сеансовой (см. разд. 2). Выполнение установочной записывает заданные или вычисляемые вектора в Вы-чпространство.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Сеансовая часть выполняется в виде цикла for по компонентам одного из заданных вектор-параметров (строка 17) с встроенным в него циклом while (строки 26 - 29) для определения момента окончания запуска модели в к-ом цикле for и со строками завершения сеанса.

В цикле for целесообразно предусмотреть перед запуском модели вывод установочной информации к-го цикла в Ком. окно в виде табл. Tvid (строки 21 - 24; см. Tvid для k = 9 на рис. 3).

Запуск модели в к-ом цикле for выполняется командой set_param, первый аргумент которой -имя модели (см. строку 25 и рис. 1, в).

В Программе нужно предусмотреть отсечку начальной части отклика выходной величины САУ для исключения погрешности из-за паразитного переходного процесса в модели (строка 30: первая команда вычисляет число удаляемых отсчётов процесса, вторая их удаляет). Определение коэффициента отсечки q - см. разд. 3 и рис. 4.

В Программу желательно включать таймер «tic... toc» для оценки истинного времени каждого цикла (строки 18 и 33) с сохранением его в векторе Tist. При большом числе точек обработки целесообразно в Программу включать формирование звукового сигнала об окончании сеанса (строки 36 и 37). Сигнал gong входит в состав Матлаба - см. [10].

Результаты сеанса желательно представить в виде таблицы с указанием единиц измерения (строки 38 - 42, см. также рис. 3).

Оценка суммарного модельного времени TStopTsum и истинного времени сеанса TistSeans представлены в строке 43 Программы, см. также рис. 3.

СПИСОК ЛИТЕРАТУРЫ

1. Справка по Матлабу R2009. Simulink_User Guide_Running a Simulation Programmatically_Using the set_param Command.

2. Справка по Матлабу R2009. Simulink_User Guide_Running a Simulation Programmatically_ Using

the sim Command.

3. Справка по Матлабу R2009. Simulink_User Guide_Running a Simulation Programmatically_About Programmatic Simulation.

4. Бесекерский В.А., Попов Е.П. Теория сис-

тем автоматического регулирования. Изд. 4-е, пере-раб. и доп. - СПб, Изд-во «Профессия», 2003. - 752 с. - (Серия: Специалист).

5. Бесекерский В.А. Динамический синтез систем автоматического регулирования. Изд-во «Наука». 1970.

6. Бесекерский В.А. Теория систем автоматического управления. 2003. Файл: Бесекерский В.А.Теория систем автоматического управления. 2003. 11,6 Мб. Интернет-адрес книги для скачивания:

http://www.studfiles.ru/dir/cat3 8/subj 3 97.html.

7. Справка по Матлабу R2009. Control System Toolbox_ fx Functions_ fx sisotool.

8. Справка по Матлабу R2009. Control System Toolbox_fx Functions_Freqency Domain Analysis_ fx bode.

9. Справка по Матлабу R2009. Control System Toolbox_fx Functions_Time Domain Analysis_fx step.

10. Справка по Матлабу R2009. MATLAB_ fx Functions_ Audio and Video_ Recording and Playback fx wavplay.

REFERENCES

1. The Reference on Matlabu R2009. Sim-ulink_User Guide_Running a Simulation Programmati-cally_Using the set_param Command.

2. The Reference on Matlabu R2009. Sim-ulink_User Guide_Running a Simulation Programmati-cally_ Using the sim Command.

3. The Reference on Matlabu R2009. Sim-ulink_User Guide_Running a Simulation Programmati-cally_About Programmatic Simulation.

4. Besekerskiy V.A., Prist E.P. The Theory of the systems of the automatic regulation. Izd. 4-e, pererab. and dop. - SPB, Izd-in «Profession», 2003. - 752 s. -(the Series: Specialist) .

5. Besekerskiy V.A. The Dynamic syntheses of the systems of the automatic regulation. Izd-in «Science», 1970.

6. Besekerskiy V.A. Teoriya systems of the autocontrol. 2003. The File: Besekerskiy V.A. Teoriya systems of the autocontrol. 2003. djvu, 11,6 Mb. Internet address of the book for скачивания: http://www.studfiles.ru/ dir/ cat38/ subj397.html, .

7. The Reference on Matlabu R2009. Control System Toolbox_ fx Functions_ fx sisotool.

8. The Reference on Matlabu R2009. Control System Toolbox_fx Functions_Freqency Domain Analy-sis_ fx bode.

9. The Reference on Matlabu R2009. Control System Toolbox_fx Functions_Time Domain Analysis_fx step.

10. The Reference on Matlabu R2009. MATLAB_ fx Functions_ Audio and Video_ Recording and Playback fx wavplay.

СВЕДЕНИЯ ОБ АВТОРАХ/AUTHORS

МЯКИШЕВ Андрей Константинович - ведущий программист кафедры теоретические основы инноватики; Санкт-Петербургский государственный политехнический университет, 195251, ул. Политехническая, 29, Санкт-Петербург, Россия; e-mail: myak2010@yandex.ru MYAKISHEV Andrey K. - the Sankt-Petersburg State Pollytechnic University, 195251, str. Pollytechnic, 29, Saint-Petersburg, Russia; e-mail: myak2010@yandex.ru

РЫКИН Олег Романович - доцент, кандидат технических наук, Санкт-Петербургский государственный политехнический университет; 195251, ул. Политехническая, 29, Санкт-Петербург, Россия; e-mail: olegrykin@yandex.ru

RYKIN Oleg R. - the Sankt-Petersburg State Pollytechnic University; 195251, str. Pollytechnic, 29, Saint Petersburg, Russia; e-mail: olegrykin@yandex.ru

© Санкт-Петербургский государственный политехнический университет, 2013

i Надоели баннеры? Вы всегда можете отключить рекламу.