Page 128 - 363_
P. 128
129
dy
1
y ; 2
dt
dy
2
mgl n sin( t ) cos(y ) 1 R y 2 mgl 1 n sin( t ) sin y 1 ./ J
dt mx x my y
Порівнюючи одержану систему із загальною формою рівнянь Коші,
можна зробити висновок, що:
z l = y 2;
z 2 = (– mgln mxsin(t + x)cos(y l) – Ry 2 – mgl[1 + n mуsin(t + у)] sin(y l) )/ J
Саме обчислення цих двох функцій і повинно відбуватися у процедурі
правих частин. Назвемо майбутню процедуру fm0. Вихідною змінною в ній
буде вектор:
z = [zl z2],
а вхідними – момент часу t та вектор:
У = [yl y2].
Деякою складністю є те, що сталі коефіцієнти, які є у правих частинах,
не можна передавати у процедуру через її заголовок. Тому об'єднаємо їх у
вектор коефіцієнтів
k = [J, R, mgl, nmy, nmx, om, ey, ex]
і віднесемо цей вектор до категорії глобальних – global K.
Тоді М-файл матиме такий вигляд:
functionz = FM0(t, y);
% Процедура правих частин рівняння Фізичного Маятника.
% Здійснює розрахунок вектора “z”-похідних від вектора “у” змінних
% стану за формулами:
% z(l)=y(2);
% z(2)=(-mgl*nmx*sin(om*t+ex)*cos(y(l))-R*y(2)-...
% mgl*(l+nmy*sin(om*t+ey))*sin(y(l)))/J,
% Коефіцієнти передаються у процедуру через глобальний вектор
% K=[J, R, mgl, nmy, nmx, om, ey, ex|
global K
z(l) = y(2);
z(2) = (-K(3)*K(5)*sin(K(6)*t+K(8))*cos(y(l)) - K(2)*y(2) -...
K(3)*(l+K(4)*sin(K(6)*t+K(7)))*sin(y(l)))/K(1);
% Кінець процедури FM0
При використанні цієї процедури слід пам'ятати, що у тексті
програми попередньо має бути визначений вектор K із 8 елементів, і потім він
має бути перетворений на глобальний за допомогою службового слова global.
Цю ж процедуру можна дещо ускладнити, групуючи разом обчислення
усіх зовнішніх моментів сил, окрім моменту сил тяжіння, і, оформлюючи їх як