Файл: Элементы математического моделирования в программных средах MATLAB 5 и Scilab (Андриевский Фрадков).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.04.2024
Просмотров: 422
Скачиваний: 1
М= [Мр -Мр; Мр'Мр+еуе] ; - сцепление многочленных матриц; [Fi, F i ( : ,1)] - сцепление рациональных функций; F=syslin( ' с ' , F ) ; - определение линейной системы через передаточную функцию;
Num=F( 'num'); |
|
Den=F('den') ; - извлечение числителя и зна- |
|
менателя передаточной функции. |
|
||
Некоторые числовые операции |
|
||
inv(A) |
- |
обращение числовой матрицы; |
|
inv(Mp) |
- |
обращение многочленной |
матрицы; |
inv(Sl*Sl') |
- |
соединение двух линейных систем и обраще- |
|
|
|
ние; |
|
w=ss2tf (ans) |
- |
получение передаточной |
функции. |
Результатом выполнения последнего оператора будет: |
|||
w _ |
18 - 30418 .55^2 - 5д"з + |
О . бА |
|
|
|
6 . 5 - 5 5 + 5 2 |
|
wl=inv(ss2tf (Sl)*ss2tf (SI*)) - произведение двух передаточных функций и обращение;
A=rand(3,3); B=rand(3,l); n=contr(A,B) - проверка управляемости системы третьего порядка, заданной матрицами уравнений состояния Л, В со случайными значениями элементов;
K-ppol(A,B,[-l-Xi -1+y.i - 1]);
poly(A-B*K, 'z') - poly([ - l - e / . i -1+УД - 1 3 , ' z ' ) - синтез модального регулятора по состоянию (см. [4, 6]) и проверка правильности вычислений.
Врезультате выполнения этих операторов получим:
К= - 113.28616 111.62667 33.092441
s=sin(0:0.1:5*e /,pi); |
|
s s = f f t ( s ( l : 1 2 8 ) , - 1 ) ; - быстрое |
преобразование Фурье |
xbascO; plot2d3(H enn" , l , a b s ( s s ) ' ) ; - вывод графика |
|
Определение функции в режиме интерпретации |
|
d e f f ( ' [ x ] = f a c t ( n ) ' , ' if n=0 then |
x=l, |
else x=n*fact(n - l),end') |
|
10+fact(5) |
|
209
ы ScilabQrapbicl |
|.|у|к! и SciUbOrvhicZ |
|
I. |
|
|
в» го2ю |
1Mb» х>ш |
|
|
|
\ |
<с |
„ д » |
\ |
томи IK
а) |
б) |
Рис. А.1. Примеры графических изображений пакета Scilab. а - трехмерный график; 6 - моделирование велосипеда.
Оптимизация
d e f f ( ' [ f , g , i n d ] = r o s e n b r o ( x , i n d ) ' , 'a=x(2)-x(l)~2, b=l - x(2),
f=100.*a~2 + b~2 |
, |
|
g(l)= - 400 . *x(l)*a |
, g(2)=200.*a -2.*b ' ) ; |
|
[f ^jgDsoptimCrosenbro, [2;2] , ' q n ' ) |
||
Моделирование |
|
|
a=rand(3,3); |
e=expm(a); |
d e f f ( ' [ y d o t ] = f ( t , у ) ' , ' y d o t = a * y ' ) ; e ( : , l ) - o d e ( [ l ; 0 ; 0 ] , 0 , l , f )
Описание систем
Введем скалярную переменную 5 : s = p o l y ( 0 , ' s ' ) ;
Построим матрицу h рациональных функций от s : h=[1/s,1/(s+1); ..
1/s/(s+1),1/(s+2)/(s+2)]
Определим систему с именем w, заданную передаточной функцией с матрицей Л, и получим описание этой системы в форме уравнений состояния:
w=tf2ss(h); ss2tf(w)
210
Выведем результат, обнулив элементы с малыми значениями: 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