Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Элементы математического моделирования в программных средах MATLAB 5 и Scilab (Андриевский Фрадков)

.pdf
Скачиваний:
895
Добавлен:
22.03.2015
Размер:
4.51 Mб
Скачать

Выведем результат, обнулив элементы с малыми значениями: hl=clean(ans)

Получим:

hi = 1

1

Пример. Исследование динамической системы второго порядка

Рассмотрим линейную непрерывную систему, заданную передаточной функцией

s l = s y s l i n ( ' c ' , l / ( s * s + 0 . 2 * s + l ) )

Зададим массив моментов времени, для которых требуется получить процессы в системе:

instants=0:0.05:20; Вычислим переходную функцию:

y = c s i m ( ' s t e p ' , i n s t a n t s , s i ) ; Выведем график переходной функции:

xbascO;

p l o t 2 d ( i n s t a n t s ' , у ' )

 

Определим ступенчатый сигнал с задержкой:

d e f f ( ' [ i n ] = u ( t ) ' , ' i f t<3

then

in=0; else in=l; e n d ' ) ;

Найдем переходную функцию для этого сигнала:

yl=csim(u, i n s t a n t s , s i ) ;

 

 

Выведем ее график:

 

 

 

p l o t 2 d ( i n s t a n t s ' , y l ' ) ;

 

 

Вычислим функцию веса:

 

 

yi=csim('imp', i n s t a n t s ,

s i ) ;

 

xbascO;

p l o t 2 d ( i n s t a n t s ' , y i ' ) ;

y i l = c s i m ( ' s t e p ' ,

i n s t a n t s , s * s l ) ;

p l o t 2 d ( i n s t a n t s ' ,

y i l ' ) ;

 

 

Выполним дискретизацию системы:

 

dt=0.05;

s l d = d s c r ( t f 2 s s ( s l ) ,

0 . 05);

Вычислим переходную функцию дискретной модели и построим ее график:

u=ones(instants); y y y = f l t s ( u , s l d ) ;

xbas с ( ) ; p l o t ( i n s t a n t s , y y y )

211

Получим функцию веса дискретной модели как реакцию на импульс малой длительности:

u=0*ones(instants); u ( l ) = l / d t ; y y = f l t s ( u , s l d ) ;

xbascO ; p l o t ( i n s t a n t s ,yy) Выполним объединение систем:

wl=[w, w] ;

c l e a n ( s s 2 t f ( w l ) ) w2=[w; w] ; clean(ss2tf(w2))

Произведем замену переменной по формуле дробно-линейного ("билинейного") преобразования:

z = p o l y ( 0 , ' z ' ) ; h o r n e r ( h , ( l - z ) / ( l + z ) ) Получим:

ans =

 

14-2z + z2

1 -f 2z -f z\

2 -2z

9 + 6z + z

А.З. Примеры программ решения задач математического моделирования. Scilab и MATLAB

Моделирование движения тележки

Рассмотрим в качестве первого примера интегрирование уравнений, описывающих движение автомобиля из примера на стр. 20 (п. 1.3). Программа моделирования на языке Scilab, аналогичная MATLAB-программе, приведенной в п. 2.2.2 на стр. 42, выглядит следующим образом.

а=2еЗ;

Ь=5еЗ;

т=1еЗ;

У-Т=Ю;

и= 1;

tl=l/(b+a)#2~(l/2)*(m*(b+a)*y_T*a*b)~(l/2)/b T=y_T*m*(b+a)*2~(1/2)/(m*(b+a)*y_T*a*b)~(1/2) x0=zeros(2,1);

t0=0;

t=[tO:0.001:T] ;

d e f f ( ' [ d x ] = f p l _ 2 ( t , x ) ' , . .

212

' i f t < t l

then

u=b; . .

e l s e

us -a;

end ..

dx(l)=u/m;..

d x ( 2 ) = x ( l ) ; ' ) ; x=ode(xO,tO,t,fpl_2); p l o t ( t , x ( l , : ) ) xgridO xset("window",1)

p l o t ( t , x ( 2 , : ) ) xgridO

Во многом эта программа повторяет MATLAB-программу. По-видимому, это связано с тем, что разработчики языка системы Scilab взяли за основу соответствующие конструкции языка MATLAB.

В качестве отличий отметим использование оператора deff, который позволяет определять функцию (в рассматриваемом примере - fpl-2) в тексте головной программы. Заметим, что условный оператор if-then-else на языке Scilab имеет вид, обычный для большинства языков программирования.

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

Расчет спектра сигнала

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

у(0

S(a>)

t

5

:

!

со

Рис. А.2. Квазипериодический сигнал и его спектр.

213

Вернемся к рассмотренному в 3.2.2 квазипериодическому процессу, представляющему собой сумму гармоник с несоизмеримыми частотами:

y{t) = sin (t) + 0.75sin(5Trlf).

Зададимся интервалом дискретности Т0 = 0.05 и числом точек отсчетов N = 210 = 1024. Это соответствует длине реализации Т = 51.2. Программа вычисления энергетического спектра сигнала, аналогичная MATLAB-программе (стр. 70) на языке Scilab, представлена ниже:

dt=0.05; Nt=2~10;

t = 0 : d t : ( N - l ) * d t ;

y=sin(t)+0.75*sin(5/y,pi*t) ; Y = f f t ( y , - 1 ) ;

p l o t 2 d ( t , y )

x t i t l e O y ( t ) ' ) PY=abs(Y).~2/N; wn2=2*'/,pi/dt; dw=wn2/N; w=0:dw:5; lw=length(w); xset('window',1) plot2d(w,PY(l:lw)) x t i t l e C ' S ( w ) ' )

На рис. A.2 отражены результаты вычислений (как и на аналогичном рис. 3.21 на стр. 120, здесь показана только часть реализации исследуемого процесса).

Приложение В. Система визуального моделирования SIMULINK

В.1.

Общая характеристика системы

Разработка моделей средствами SIMULINK* (S-моделей) осно-

вана на использовании технологии Drag-and-Drop ("Перетащи

и оставь"). В качестве "кирпичиков" для построения 5-моде-

ли используются блоки, хранящиеся в библиотеке SIMULINK

[35,

29].

SIMULINK хорош тем, что, обеспечивая пользователю до-

ступ ко всем основным возможностям пакета MATLAB, является самостоятельным его компонентом, для работы с которой нет необходимости иметь навыки в использовании других инструментов, входящих в состав пакета.

Блоки могут быть связаны друг с другом как по информации, так и по управлению (входам-выходам). Тип связи зависит от типа блока и логики работы модели. Любая 5- модель может иметь иерархическую структуру, т.е. состоять из моделей более низкого уровня. Число уровней иерархии практически не ограничено.

Пользователь может задавать параметры блоков, а также устанавливать параметры процесса моделирования (метод интегрирования уравнений, величину и способ изменения шага интегрирования, условия окончания моделирования). Результаты моделирования могут быть отображены в специальных "смотровых окнах", представлены в числовой и в графической формах, сохранены для использования другими программами. Имеется возможность включения средств анимации. SIMULINK является открытой системой: состав библиотеки может пополняться созданными пользователем блоками.

В.2. Библиотека блоков системы SIMULINK

Библиотека блоков SIMULINK представляет собой набор визуальных объектов, используя которые можно создавать систему произвольной структуры.

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

215

существует возможность индивидуальной настройки: пользователь может изменить параметры блоков и их внешнее оформление. На порядок соединений блоков ограничений не накладывается. Библиотека блоков имеет семь разделов, из

них шесть -

базовые:

 

 

-

Sources

 

("Источники")]

 

-

Sinks

("Получатели");

 

-

Discrete

("Дискретные

 

элементы")]

-

Linear

("Линейные

элементы")]

-

Nonlinear

("Нелинейные

элементы")]

-

Connections

("Соединения3').

Седьмой раздел

- Blocksets

& Toolboxes ("Источники бло-

ков и инструменты")

содержит относящиеся к компонентам

MATLAB блоки, включенные пользователем в рабочую конфигурацию пакета.

В.З. Маскирование подсистем

Маскированной подсистемой (Masked Subsystem) называется система, структуру которой непосредственно нельзя увидеть из блок-диаграммы. Она имеет собственное диалоговое окно настройки параметров и собственную иконку, т.е. является аналогом библиотечного модуля SIMULINK. Механизм использования маскированных систем обладает следующими достоинствами:

- значительно расширяет интерактивные возможности пользователя по управлению параметрами 5-модели;

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

-обеспечивает повышение наглядности блок-диаграммы;

-повышает защищенность 5-модели от неумышленной модификации.

При создании маскированной подсистемы требуется:

-описать параметры подсистемы;

-определить способ изменения параметров;

-создать необходимые комментарии;

-создать собственную иконку подсистемы.

Иконки подсистем могут содержать как текстовую, так и графическую информацию. Для вывода текста используются команды disp, text или fprint. При выводе графиков также

216

могут использоваться стандартные средства языка MATLAB, например библиотечная функция plot. Иконки с изображениями можно создавать и с помощью специального графического редактора, который запускается командой iconedit.

Наличие в составе SIMULINK механизма маскирования делает его "открытой системой", которая доступна для доработки и расширения самими пользователями в соответствии с их потребностями.

Приложение С. Дополнительные возможности системы MATLAB - 5

СЛ. Программирование и разработка приложений

Среда программирования

1.Профилировщик М-файлов.

2.Редактор интегрированных М-файлов.

3.Отладчик М-файлов, содержащих функции графического интерфейса пользователя GUI.

4.Объектно-ориентированное программирование, включал переназначение функций и операторов.

5.Средства просмотра рабочей области данных и путей доступа.

6.Конвертирование М-файла в Р-файл при использовании модели памяти для разреженных матриц, скрытого кода и при загрузке ускоренного GUI.

7.Просмотр справочной документации.

Разработка на основе GUI

1.Интерактивное окно построения GUI-Guide.

2.Редактор свойств графического объекта - Handle Graphics Property Editor.

3.Панели списков, включал множественный выбор.

4.Форма диалоговых панелей и панелей сообщения.

5.Многострочный режим редактирования текста.

6.Запоминание последовательности графических элементов управления.

7. Опция - "недоступный снаружи" элемент

управления.

8.Свойство переносимости между платформами.

9.Курсор, определяемый пользователем.

С.2. Новые конструкции языка и типов данных

1.Многомерные массивы.

2.Определяемые пользователем массивы данных и массивы структур.

3.Массивы данных разного типа (массивы ячеек cell arrays).

218

4.Списки аргументов переменной длины.

5.Переназначение функций и операторов.

6.Исходная функция и все вызываемые функции - в одном

М-файле.

7.Оператор switch ... case ... end.

8.Короткая форма if .

9.Оператор waitfor.

10.Массивы строк с упаковкой два байта на символ.

11.Массивы с упаковкой один байт на элемент.

12.Функция упаковки битов.

С.З. Математические вычисления и анализ данных

1.Пять новых процедур решения обыкновенных дифференциальных уравнений (ОДУ).

2.Более точное и быстрое вычисление функции Бесселя.

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

4.Двумерные квадратурные формулы.

5.Многомерная интерполяция.

6.Триангуляция и вывод на терминал данных, определяемых на неравномерной сетке.

7.Анализ и обработка многомерных массивов.

8.16-битовый стереозвук.

9.Поддержка времени и даты.

С.4. Графика Визуализация

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

2.24-битовая RGB-поддержка.

3.Множественная подсветка поверхностей и полигонов.

4.Перспективные изображения из произвольной точки.

5.Новые модели подсветки.

6.Векторизованные полигоны для больших трехмерных моделей.

7.Поддержка данных, определенных на неравномерной сетке, включая триангуляционные и сеточные двух- и трехмерные поверхности.

219

8.Дескрипторная графика для множественных объектов.

9.Вывод на терминал, хранение и импорт 8-битовых образов.

10.Дополнительные форматы графических образов.

Презентационная графика

1.Двойные х- и у-оси.

2.Легенда графика.

3.Управление шрифтом текстовых объектов.

4.Надстрочные, подстрочные и греческие символы.

5.Трехмерные диаграммы, поля направлений, ленточные и стержневые графики.

6.Увеличенное количество стилей для маркировки линий.

С.5. Интерактивная документация

1. Возможность просмотра на основе Nescape Navigator 2.0

или Microsoft Internet Explorer 3.0.

2.Полная справочная документация в форматах HTML и PDF.

С.6. Перевод программ из MATLAB 3 в MATLAB 5

При переводе m-файлов, разработанных для пакета MATLAB версии 3 к версии 5, следует учитывать, что начиная с версии 4 для рабочих станций PC этот пакет работает под управлением ОС Windows или Linux. Поэтому при программировании графического вывода нет необходимости использовать функцию meta для сохранения графиков. Просто перед операторами вывода (например, перед оператором plot) следует открыть новое графическое окно (оператором figure), а затем сохранить график стандартными средствами ОС и соответствующих приложений (например, с помощью графического редактора Paint Microsoft). Надо обратить внимание на различие в цвете фона графиков, принятом по умолчанию в версиях 3 и 5, а также в способах определения цвета линий на графиках. Например, конструкция сп, где п задает цвет линии, в версии 5 не проходит. Следует также учесть, что оператор axis должен исполняться после вывода графика, а не перед ним (как в версии 3).

220