You are on page 1of 28

Моделирање на лостов механизам во Simulink

Програмски дел од моделирањето на лостовиот механизам

Слика 1 Лостов механизам

Поради потребата за определување на позициите на зглобовите на овој механизам, како


и поставеноста на аглите на сите членови, произлегува потребата од пишување на м –
фајл. На овој начин полесно се добиваат потребните параметри на механизмот. М –
фајлот се креира преку Матлаб, каде преку структурно програмирање се добиваат сите
потребни параметри за симулирање во реални услови. Програмската скрипта е со
екстензија m.file. Откако ќе се отвори Матлаб, преку New>>Script отвараме нова скрипта.

Во продолжение претставена е програмата која се користи за добивање на вредностите


кои понатаму ќе бидат користени за моделирањето на лостовиот механизам.

clc;
clear;
close all;

OA=0.32;
OF=0.5;
FC=0.56;
CD=0.724;
h=0.56;
phi=pi/6;
beta=(4*pi)/5;

xO=0;
yO=0;

xA=-OA*cos(phi);
yA=-OA*sin(phi);

xF=OF;
yF=0;

1
phi2=atan((yF-yA)/(xF-xA));

phi3=pi-(beta-phi2);

xC=xF+FC*cos(phi3);
yC=yF+FC*sin(phi3);

yD=h;

ravD='(yD-yC)^2+(xC-xD)^2=CD^2';
solD=solve(ravD,'xD');
xD1=eval(solD(1));
xD2=eval(solD(2));

if xD1<xF xD=xD1;
else xD=xD2;
end

fprintf('Dobieni vrednosti \n\n')


fprintf('xO=%g\n',xO)
fprintf('yO=%g\n',yO)
fprintf('xA=%g\n',xA)
fprintf('yA=%g\n',yA)
fprintf('xF=%g\n',xF)
fprintf('yF=%g\n',yF)
fprintf('xC=%g\n',xC)
fprintf('yC=%g\n',yC)
fprintf('xD=%g\n',xD)
fprintf('yD=%g\n',yD)
fprintf('phi3=%g\n’,phi3)
fprintf('phi2=%g\n’,phi2)

1. Објаснување на програмскиот дел

Скриптата започнува со наредбата clc која се користи за бришење на содржината на


командниот прозорец.
Следно, наредбата clear all се користи за бришење на сите променливи од Workspace
прозорецот.

Ги задаваме вредностите на механизмот кои што ни се веќе дадени, како што се


должините на членовите и познатите агли измеѓу нив. Единиците на должините на
стаповите се дадени во метри, додека единиците на аглите се дадени во радијани.

Понатаму продолжуваме со определување на координатите (по х и по у) за секој


кинематски пар на механизмот.

Откако тоа сме го направиле, се повикуваме на наредбата fprintf за печатење на


добиените вредности на екран.

2
2. Моделирање на механизмот во Simulink

Моделирањето на лостовиот механизам во Simulink започнува со отварање на


програмскиот пакет Simulink. Откато се отвара Simulink, отвараме нов модел.

Пред да почнеме со извлекување на блоковите во новиот модел, ги копираме добиените


вредности од м – фајлот и ги зачувуваме во Simulink моделот. На овој начин, при
конфигурација на блоковите, Simulink-от директно ќе се повикува на веќе добиените
вредности. Зачувување на тие вредности во Simulink моделот се прави преку File>>Model
Properties>>Callbacks>>InitFcn*.

Слика 2. Зачувување на вредностите добиени од м-фајл во Simulink моделот

Откако тое е направено го извлекуваме блокот Machine Environment, кој што може да го
најдеме под библиотеката Simscape, односно подбиблиотеката Bodies,
Simscape>>SimMechanics>>First Generation>>Bodies.

3
2.1 Конфигурација на Machine Environment блокот

Слика 3. Конфигурација на Machine Environment блокот

Со двоен клик над блокот Machine Environment се отвара прозор за негова конфигурација.
Под Gravity vector ставаме вредности [0 -9.81 0] што означува дека земјиното забрзување
ќе дејствува во насока на y-оската. Под Analysis mode бираме Forward dynamics, кое се
користи за модели од било каква топологија, за разлика од Inverse Dynamics или
Kinematics кои се користат само за отворени, односно затворени топологии.

Со клик над Configuration Parameters се отвара следниот прозор:

4
Слика 4. Конфигурација на Machine Environment блокот

Тука е потребно да се штиклираат Display machines after updating diagram и Show


animation during simulation кои се наоѓаат под Visualization со цел да може да се прикаже
моделот и неговата симулација откако ќе се кликне ‘Run’ копчето.

Следно, од истата подбиблиотека Bodies, го извлекуваме блокот Ground.

2.2 Конфигурација на Ground блокот

Слика 5. Конфигурација на Ground блокот

5
Со двоен клик над него, се отвара прозор за негова конфигурација. Тука е потребно да
штиклираме Show Machine Environment port, со цел да можеме блокот Ground да го
поврземе со блокот Machine Environment. Под Location задаваме вредности [0,0,0].

Следно, извлекуваме Revolute блок од Simscape библиотеката, односно Joints


подбиблиотеката, Simscape>>SimMechanics>>First Generation>>Joints.

2.3 Конфигурација на Revolute блокот

Слика 6. Конфигурација на Revolute блокот

Кликаме два пати врз него за да вршиме негова конфигурација. Под Number of
sensor/actuator ports внесуваме 1. Ова служи за отварање на 1 новa портa на блокот
Revolute, на коja портa покасно ќе поврзуваме актуатор .

Под axes задаваме вредност на вектор [0 0 1] со што конфигурираме ротацијата да се


врши околу z-оската.

Понатаму додаваме блок Body, кој што може да се најде на следен начин:
Simscape>>SimMechanics>>First Generation>>Bodies.

2.4 Конфигурација на Body блокот

6
Слика 7. Конфигурација на Body блокот

Додаваме Body блок кој што може да го најдеме преку Simscape>>SimMechanics>>First


Generation>>Bodies.

Во овој блок го дефинираме стапот OA од механизмот. Вредностите за точките О и А се


задаваат во однос на референтиниот координатен систем, односно во однос на World, кој
што има координати 0,0,0.

Во овој прозор за конфигурација на блокот, со кликање на копчето Add, додаваме уште


еден координатен систем, CS3. Овој координатен систем ќе служи за поврзување на
сензор, преку кој ќе може да се измерат соодветни величини.

2.5 Конфигурација на Revolute1 блокот

Следно додаваме уште еден Revolute блок преку кој се дефинира кинематскиот пар во
точката А. Неговата конфигурација е скоро иста со таа од претходниот ротирен
кинематски пар, со тоа што тука нема потреба да додаваме нови порти на веќе
постоечките две порти.

7
Слика 8. Конфигурација на Revolute1 блокот

2.6 Конфигурација на Body1 блокот

Наредно додаваме уште еден Body блок. Преку овој блок дефинираме само една точка
преку која се претставува лизгачот во точката А.

Слика 9. Конфигурација на Body1 блокот

8
2.7 Конфигурација на Prismatic блокот

Додаваме Prismatic блок кој што може да го најдеме преку


Simscape>>SimMechanics>>First Generation>>Joints. Со ова се дефинира транслаторниот
кинематски пар во точката А.

Слика 10. Конфигурација на Prismatic блокот

Овој блок го конфигурираме на таков начин да по х оската имаме cos(0.2030) додека по у


оската имаме sin(0.2030). 0.2030 е аголот phi2 којшто го зафаќа стапот AF со
хоризонталата. На овој начин сме конфигурирале призматикот А да се движи по овој агол,
т.е, низ стапот AF.

Во овој блок отвараме уште една дополнителна порта, со тоа што под Number of
sensor/actuator ports пишуваме 1. Ова ќе служи понатаму за прикачување сензор на овој
кинематски пар.

2.8 Конфигурација на Body2 блокот

Преку Body2 блокот го конфигурираме стапот AF. Со CS1 и CS2 ги конфигурираме


точките А и F од механизмот. Преку Add копчето кое што се наоѓа во овој прозор
додаваме уште 3 координатни системи и тоа CS3, CS4 и CS5. Координатниот систем CS3
служи за круто спојување на точката F, односно крајот на стапот AF со стапот што
следува, т.е стапот, FC. Координатниот систем CS4 служи за додавање сензор, преку кој
ќе се измери величината на брзината во точката А од стапот AF, преку кој ќе се определи
аголната брзина, а тоа ќе служи за мерење на Кориолисовото забрзување.
Координатниот систем CS5 ќе служи како порта за приклучување сензор преку кој ќе се
мери брзина и забрзување во точката F.

9
Слика 11 Конфигурација на Body2 блокот

2.9 Конфигурација на Revolute2 блокот

Со координатниот систем CS2 од Body2 поврзуваме Revolute2 блок. На овој начин


дефинираме точката F од крутиот стап AFC да ротира околу z оската.

Слика 12 Конфигурација на Revolute2 блокот

10
2.10 Конфигурација на Ground2 блокот

За целосно да ја дефинираме ротацијата на точката F околу z оската, Revolute2 блокот го


поврзуваме со Ground2 блокот, чиј што координати се совпаѓаат со тие од точката F.

На сликата подоле може да се видат параметрите и поврзувањето.

Слика 13 Конфигурација на Ground2 блокот

2.11 Конфигурација на Weld блокот

Како што веќе кажавме, стапот AF круто се спојува со стапот FC со цел да ја


постигнуваме точната геометрија на механизмот. Крутото поврзување на два члена во
Simulink се постигнува со додавање Weld блок.

Слика 14 Конфигурација на Weld блокот

11
2.12 Конфигурација на Body3 блокот

Преку Body3 блокот се дефинира стапот FC. Преку CS1 е претставена точката F од
стапот, додека со CS2 е претставена точката C од стапот. На овој блок додаваме уште
еден дополнителен координатен систем кој ќе служи за поврзување со сензор.

Слика 15 Конфигурација на Body3 блокот

2.13 Конфигурација на Revolute3 блокот

Конфигурација на овој блок се прави на ист начин како и другите ротирни кинематски
парови. Ротацијата се врши околу z оската.

Слика 16 Конфигурација на Revolute3 блокот

12
2.14 Конфигурација на Body4 блокот

Преку овој блок се дефинира последниот стап на механизмот, т.е стапот CD. Како и
претходно, преку CS1 и CS2 ги дефинираме крајните точки на стапот. Додаваме
дополнителен координатен систем на кој ќе се поврзе сензорот за мерење на брзина и
забрзување во точката D.

Слика 17. Конфигурација на Body4 блокот

2.15 Конфигурација на Revolute4 блокот

Дефинирањето на овој ротирен кинематски пар е ист како и претходните Revolute


блокови.

Слика 18. Конфигурација на Revolute4 блокот

13
2.16 Конфигурација на Body5 блокот

Слично како во Body1 блокот и тука се дефинира точка која претставува лизгач во точката
D.

Слика 19. Конфигурација на Body5 блокот

2.17 Конфигурација на Prismatic1 блокот

На точката D се додава еден prismatic блок, со што се дефинира неговото движење по х


оската. Тоа се прави со внесување вредност [1 0 0] под Axis of Action [x y z]. Отвараме
уште една порта за сензор преку кој ќе се измери брзина и забрзување на транслаторниот
клип.

Слика 20. Конфигурација на Prismatic1 блокот

14
2.18 Конфигурација на Ground1 блокот

За целосно дефинирање на транслаторниот клип во точката D, се поврзува Prismatic1


блокот со Ground1 блокот. Со ова се моделира подлогата по која лизга лизгачот. Ground1
блокот го претставува лежиштето во точката D.

Слика 21. Конфигурација на Ground1 блокот

На овој начин, имаме комплетно моделирање на геометријата на механизмот. Целосниот


модел на овој механизам може да се види во сликата подоле.

Simulink модел на лостов механизам

3 .Задвижување на механизмот

По моделирањето на механизмот, со цел при симулацијата да се набљудуваат


движењата на поедините членови на механизмот, потребно е на погонскиот член да се
придодаде кинематска големина, во случајов, аголна брзина.

За таа цел ќего кориситме следниот подсистем:

15
Слика 22. Имитационен модел на мотор

Преку погорниот подсистем, претставен е идеален актуатор, односно мотор, со кој се


погонува погонскиот член на механизмот. Како што може да се види, овој подистем е
составен од неколку дела кои поединечно ќе бидат објаснети.

3.1 Конфигурација на Joint Actuator блокот

Овој блок може да се најде преку Simscape>>SimMechanics>>First Generation>>Joints.

Како што може да се примети од самото име, овој блок служи за да се актуираат
кинематски парови. Со негова помош, кинематските парови можат да се актуираат преку
генерализирана сила, или преку задавање движење на кинематските парови. Во нашиов
случај ние задаваме движење на кинематските парови, со цел понатаму да можеме да
вршиме кинематска анализа на механизмот, односно да измериме брзини и забрзувања
на поединечните членови од механизмот.

Со двоен клик над Joint Actuator блокот го отвараме неговиот конфигурационен прозор кој
што изгледа како на сликата подоле:

Слика 23. Конфигурација на Joint Actuator блокот

16
Под делот Actuate with имаме две опции и тоа: Generalized Forces и Motion. Како што веќе
напоменавме, ние ја користиме опцијата Motion.

Во зависност од тоа дали актуираме ротирен кинематски пар, или транслаторен


кинематски пар, ни се јавуваат соодветните влезни сигнали. Во нашиот случај бидејќи
погонуваме ротирен кинематски пар, во делот на влезните сигнали ни се јавуваат агол,
аголна брзина и аголно забрзување. Соодветно на тоа ги бираме и нивните единици, т.е,
радијани, рад/сек, рад/сек^2.

Откако ова е веќе направено, треба да ги дефинираме големините на влезните сигнали


во Joint Actuator блокот. Бидејќи имаме повеќе од еден сигнал, односно имаме три
сигнали, а Joint Actuator блокот има само една влезна порта, потребно е да додаваме Mux
блок.

3.2 Конфигурација на Mux блокот

Овој блок може да се најде преку: Simulink>>Signal Routing

Целта на користење на овој блок е да се спојот сите три влезни сигнали, и да можат како
една целина да се внесат во влезната порта на Joint Actuator блокот.

Слика 24.Конфигурација на Mux блокот

Под Number of inputs внесуваме 3, од причина што имаме 3 влезни сигнали. Со тоа е
завршено конфигурацијата на овој блок.

Во продолжение потребно е да го дефинираме бројот на вртежи на погонскиот член,


односно неговата аголна брзина.

Имајќи ја во предвид формулата за аголно движење, т.е , додаваме еден Gain


блок преку кој ќе го претставиме делот од погорната формула.

Блокот Gain може да го најдеме во Simulink>>Math Operations. Извлекуваме еден таков


блок и во него пишуваме 2*pi.

17
Слика 25. Конфигураицја на Gain блокот

3.3 Конфигурација на Constant блокот

Со цел да го допишеме изразот за аголна брзина , потребно е да додадеме


уште еден Constant блок. Овој блок може да се најде во Simulink>>Sources. Во него се
пишува бројот на вртежи кои му ги задаваме на погонскиот член.

Слика 26. Конфигурација на Constant блокот

На овој начин сме ја дефинирале аголната брзина која му се задава на погонскиот член.
Следува уште да ги определиме другите два влезни сигнали во актуатор блокот, и тоа
аголната величина, и аголното забрзување.

Тоа ќе го направиме со додавање на два други блокови, и тоа интегратор, и


диференцијатор. Преку Integrator блокот кој што може да се најде во Simulink>>Continuous
се врши интеграција на изразот при што се добива аголот.

Со додавање на Derivative блокот кој што исто така се наоѓа во Simulink>>Continuous се


врши диференцирање на изразот и на тој начин се добива аголното
забрзување.

18
Моделот на механизмот со додаден актуатор изгледа вака:

Слика 27. Модел на лостов механизам со актуатор

4 Кинематска анализа – определување на брзини и забрзувања

За извршување на кинематска анализа, потребно е да се додават сензори на сите точки


кои што сакаме да ги испитуваме. Тоа се прави на следниот начин.

Откако сме го додале актуаторот следува уште да ги додаваме сензорите на сите


отворени порти од членовите на механизмите и кинематските парови.

Со цел да се изврши точно мерење на брзините и забрзувањата на определени точки од


механизмот, потребно е да формираме подсистем на сензор кој што ќе може да го
користиме за анализа во секоја точка од механизмот.

Подсистемот го има следниот облик:

Слика 28. Моделирање на сензор за мерење брзина и забрзување на Body блоковите

Како што е прикажано во погорната слика, за мерење на кинематски величини потребно


ни е еден Body Sensor блок, еден подсистем кој што се состои од повеќе делови кои што
ќе бидат објаснети во продолжение, и еден Scope блок за прикажување на графовите на
брзините и забрзувањата на членовите на механизмот.

4.1 Конфигурација на Body Sensor блокот

Овој блок може да се најде во Simscape>>SimMechanics>>First


Generation>>Sensors&Actuators. Бидејќи сакаме да измериме брзина и забрзување на
определени членови на механизмот, во прзорот за конфигурација на овој блок

19
штиклираме само Velocity и Acceleration, и ги бираме единиците во кои посакуваме да ни
бидат прикажани овие измерени величини. Со цел од овој блок да добиеме 2 посебни
излезни сигнали ја де-штиклираме опцијата Output selected parameters as one signal.

Слика 29. Конфигурација на Body Sensor блокот

Со двоен клик над блокчето Subsystem се отвара следниот прозор:

Слика 30. Содржина на блокот Subsystem

20
Излезните сигнали од Body Sensor блокот, т.е брзина и забрзување, претставуваат
влезни сигнали во овој подсистем. Во горниот дел од овој систем, сигналот брзина се
расчленува на три сигнали, и тоа по x, y и z оска. Разчленување на сигналот се
постигнува преку Demux блокот кој што може да се најде на истото место каде и Mux
блокот, и се конфигурира на ист начин како што беше конфигуриран Mux блокот. Откао се
прави расчленување на сигналот по трите оски, тие сигнали се квадрираат, и потоа се
собираат. Од таа сума бараме квадратен корен, и на крај добиваме вредност за брзината
на точката која што ја измериме. Целта на оваа постапка е да се добие вкупната брзина,
бидејќи со самото поставување на сензор блок се добива брзината по координатите x, y и
z, но не и вкупната брзина во точката од интерес.

Истата постапка се повторува и за вториот дел од подсистемот, и на тој начин го


добиваме и вкупното забрзување во точката која што ја испитуваме.

4.2 Конфигурација на Scope блокот

Scope блокот може да се најде во Simulink>>Sinks. Тој служи за графичко прикажување на


резултатите. Бидејќи од подсистемот имаме два излезни сигнали, потребно е да му се
отвори уште една порта на Scope блокот. Со двојно кликање над Scope блокот се отвара
прозорот за негова конфигурација. Со кликање над Parameters копчето отвараме
дополнителен конфигурационен прозор како што е прикажано во сликата подоле:

Слика 31. Конфигурација на Scope parameters прозорот

Под Number of axes внесуваме 2, бидејќи имаме 2 сигнали кои сакаме да ги прикажуваме.
На овој начин Scope блокот ќе прикаже два посебни графови за двете сигнали.

Откако сме го изградиле сензорот за мерење на брзина и забрзување на точки од


стаповите на механизмот, може тие да ги додадеме на соодветните веќе отворени порти
од Body блоковите.

21
Моделот на механизмот со додадените Body Sensor системи изгледа како на сликата
подоле:

Слика 32 Модел на механизмот со додадени Body Sensor блокови

4.3 Додавање на Joint Sensor блокови

Бидејќи во блоковите Prismatic ја дефинираме патеката преку кој ќе се движи


транслаторниот блок, тука нема потреба да го расчленуваме сигналот, туку Joint Sensor
блокот директно ја дава крајната вредност на измерената големина. Поради оваа причина
градењето на овој сензор е поедноставен од претходниот.

Слика 33. Моделирање на Joint Sensor блокот

4.4 Конфигурација на Joint Sensor блокот

Исто како и кај Body Sensor блокот, и тука штиклираме Velocity и Аcceleration и ги бираме
нивните соодветни едници.

22
Слика 34. Конфигурација на Joint Sensor блокот

4.5 Определување на Кориолисово забрзување

Бидејќи вториот член на овој лостов механизам врши сложено движење, за точката А на
механизмот треба да определиме уште Кориолисово забрзување со цел кинематската
анализа, односно определувањето на забрзувањата да биде целосно. Кориолисовото
забрзување се пресметува праку фомулата , каде е преноснота аголна
брзина, односно аголната брзина на стапот AF, додека е релативната брзина на
лизгачот кој се лизга по стапот AF кој што врши ротација. Релативната брзина , сме ја
измериле со додавање на Joint Sensor блокот на транслаторниот кинематски пар означен
со Prismatic.

Преноснота аголна брзина ќе ја определиме преку делење на линиската брзината во


точката A со должината на стапот AF. Должината на стапот AF, ја претставуваме како
бројка со еден Constant блок. За делење на линиската брзина со должината на стапот AF,
кориситиме Divide блок, кој што може да се најде преку Simulink>>Math Operations.
Излезниот резултат од овој блок го ставаме во блокот Product кој што може да се најде во
истата библиотека. На крај уште множиме со 2 со цел да ја допишеме формулата за
пресметување на Кориолисово забрзување.

Слика 35. Определување на Кориолисово забрзување

23
Со додавање на овие сензори на соодветните кинематски парови, завршено е
моделирањето на механизмот во Simulink. Во продолжение ќе го прикажеме финалниот
модел на механизмот и графовите со измерени брзини и забрзувања.

Слика 36. Моделот на механизмот моделиран во Simulink

Слика 37. Изглед на симулацијата на лостовиот механизам во Simulink

24
5.Резултати од кинематската анализа – определување на брзини и
забрзувања

Слика 37. Брзина и забрзување на крајната точка од стапот OA

Слика 38. Брзина и забрзување на точката А од стапот AF

25
Слика 39. Брзина и забрзување на транслаторниот кинематички пар во точка А

Слика 40. Брзина и забрзување на точката F

26
Слика 41. Брзина и забрзување на точката C

Слика 42. Брзина и забрзување на крајната точка од стапот CD

27
Слика 43. Брзина и забрзувањена транслаторниот пар во точката D

Слика 44. Кориолисово забрзување

28

You might also like