Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Посоветуйте источники информации по ТАУ
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
_Ivana
Порекомендуйте пожалуйста книги/учебники/статьи (буду искать в электронном виде), сайты/форумы и что еще можно найти в интернете, что помогло бы мне освоить теорию управления системами на уровне, достаточном для построения и реализации математических моделей прикладных задач. ПИД, нелинейные системы, пространство состояний, фильтры альфа/бета и Калмана и т.п. Спрашиваю в этом разделе, т.к. теория общая, и применяется от механики до социологии (хотя мне в первую очередь интересны механические приложения).
TSerg
Их читать - не перечитатьsm.gif
На торренте как-то была подборка книг по заявленной тематике на CD-образе. Ну очень много.
На работе нет образа, дома - есть.

Из отечественных: Цыпкин, Бесекерский, Воронов, Попов, Иващенко, Солодовников, Зубов, Батенко..
Из западных еще больше.

Ага, вот и список:

Нажмите для просмотра прикрепленного файла

По оптимальной фильтрации и наблюдателям - отдельная пестня.
_Ivana
Спасибо за ответ и список. Я подозревал, что там много информации, буду пытаться скачать и читать то, что мне будет понятно. Для начала хочу применить теорию к этой задаче http://electronix.ru/forum/index.php?showt...t=0&start=0
SSerge
Мне вот эта понравилась:
Гродинз Ф. Теория регулирования и биологические системы.
Если Вы уже пытались читать "солидные" учебники по ТАУ и ничего там не поняли - эта книга для Вас! sm.gif
Читать первые 130 страниц.
Нажмите для просмотра прикрепленного файла
_Ivana
Спасибо всем отписавшимся. Теперь буду выбирать из всего этого многообразия, что читать в первую очередь.
Xenia
Цитата(_Ivana @ Feb 19 2014, 20:50) *
Теперь буду выбирать из всего этого многообразия, что читать в первую очередь.


Вы же "свой"! Тогда можете заглянуть на ftp вот сюда:
/pub/BOOKS/TAU/
А то я собирала-собирала, а никто не читает... crying.gif
_Ivana
Xenia, спасибо что напомнили, слона то я и позабыл ))
Хотя, в свое время внезапно обнаружив, что Матлаб там без двух третей "ненужных" библиотек типа СимМеканикс, немного разочаровался в источнике и был вынужден качать его с торрента. Но, разумеется, это никак не касается книг и модератора обменника - еще раз спасибо! Торжественно обещаю - буду качать и читать! ))

ЗЫ читаю Гродинза и сочувствую биологам - мне, закончившему в свое время физфак/радиофизика и электроника и то многое не очевидно при первом прочтении, представляю как им )) И это еще самый простой в изложении материал!...
vzelenuk
Посмотрите еще вот здесь, целый курс с лабами, документацией и примерами проектов моделирования http://model.exponenta.ru/bt/bt_contents.html
В свое время нашел этот ресурс, позволяет не просто выучить, но и "пощупать" в моделях
_Ivana
vzelenuk спасибо. Я надеялся, что в инете должны быть такие сайты.

ЗЫ вот, кстати, для самых маленьких в этой теме (типа меня) - приглашение на вэбинар http://www.youtube.com/watch?v=slS3RnI9KFw...H06uaTadcyO570A (ПИД в Матлабе), может еще кому будет интересно.
_Ivana
Вести с полей - навскидку накидал программку анимации двойного маятника в Матлабе (теория отсюда: http://www.math24.ru/double-pendulum.html ), со своим доморощенным кустарным методом решения системы линейных/нелинейных диффуров (придуман на коленке, допускаю, что далеко не оптимальный), желающие могут поиграться длинами/массами, временем/интервалом дискретизации и начальными условиями (с ними есть одна тонкость).
ЗЫ правда, мне придется вывести свою систему диффуров - у меня центр масс первого звена не в точке соединения звеньев а где-то между ней и точкой подвеса и надо заложить функцию внешнего воздействия в точке соединения звеньев. А потом и к симуляции ПИДа можно переходить.
CODE
function Main()
global l1 m1 l2 m2 g dt y
l1 = 1; m1 = 3;
l2 = 1.5; m2 = 1;
dt = 0.01;
t_max = 150;
g = 9.8;

function r = system_1_point(v)
r = [(m1+m2)*l1*v(3) + m2*l2*v(6)*cos(v(1)-v(4)) + m2*l2*v(5)^2*sin(v(1)-v(4)) + (m1+m2)*g*sin(v(1));
-v(1) + dt*v(2) + y(ii-1, 1);
-v(2) + dt*v(3) + y(ii-1, 2);
l2*v(6) + l1*v(3)*cos(v(1)-v(4)) - l1*v(2)^2*sin(v(1)-v(4)) + g*sin(v(4));
-v(4) + dt*v(5) + y(ii-1, 4);
-v(5) + dt*v(6) + y(ii-1, 5);
];
end
function r = system_2_point(v)
r = [(m1+m2)*l1*v(3) + m2*l2*v(6)*cos(v(1)-v(4)) + m2*l2*v(5)^2*sin(v(1)-v(4)) + (m1+m2)*g*sin(v(1));
-1.5*v(1) + dt*v(2) - 0.5*y(ii-2, 1) + 2*y(ii-1, 1);
-1.5*v(2) + dt*v(3) - 0.5*y(ii-2, 2) + 2*y(ii-1, 2);
l2*v(6) + l1*v(3)*cos(v(1)-v(4)) - l1*v(2)^2*sin(v(1)-v(4)) + g*sin(v(4));
-1.5*v(4) + dt*v(5) - 0.5*y(ii-2, 4) + 2*y(ii-1, 4);
-1.5*v(5) + dt*v(6) - 0.5*y(ii-2, 5) + 2*y(ii-1, 5)];
end

t = 0:dt:t_max;
N = numel(t);
y = zeros(N, 6); % 1,2,3 - угол первого звена с производными, 4,5,6 - второго

% начальные условия - задание примерных
% и потом пересчет их же для удовлетворения системе
y(1, 1) = 2; y(1, 2) = 0; y(1, 3) = 1;
y(1, 4) = y(1, 1); y(1, 5) = 0; y(1, 6) = 1;
ii = 2;
options = optimoptions('fsolve', 'Display','off');
v = fsolve(@system_1_point, y(ii - 1, :), options);
y(1, :) = v;

hf = figure(1);
clf reset
set(hf,'color', 'black');
axis off, axis equal
xlim([-(l1+l2) (l1+l2)]); ylim([-(l1+l2) (l1+l2)]);
title(['See Double Pendulum Run! ( l1=', num2str(l1), ', m1=', num2str(m1),....
', l2=', num2str(l2), ', m2=', num2str(m2), ' )'],'Color','white');
hold on
plot(0, 0, 'o', 'LineWidth', 3, 'color', [160/255 160/255 160/255]);
ht = plot(0, 0, ':w');
hl = plot([0, 0, 0], [0, 0, 0], '-', 'LineWidth', 4, 'color', [43/255 84/255 126/255]);
ha = plot(0, 0, 'o', 'LineWidth', 1 + round((m1*50)^(1/2)), 'color', [160/255 160/255 160/255]);
hb = plot(0, 0, 'o', 'LineWidth', 1 + round((m2*50)^(1/2)), 'color', [160/255 160/255 160/255]);
for ii = 2:N
options = optimoptions('fsolve', 'Display','off');
if ii == 2
v = fsolve(@system_1_point, y(ii - 1, :), options);
else
v = fsolve(@system_2_point, y(ii - 1, :), options);
end
y(ii, :) = v;

xa = l1.*sin(y(ii, 1));
ya = -l1.*cos(y(ii, 1));
xb = xa + l2.*sin(y(ii, 4));
yb = ya - l2.*cos(y(ii, 4));
set(hl,'XData',[0, xa, xb]); set(hl,'YData',[0, ya, yb]);
set(ha,'XData',xa); set(ha,'YData',ya);
set(hb,'XData',xb); set(hb,'YData',yb);
set(ht,'XData', l1.*sin(y(1:ii, 1)) + l2.*sin(y(1:ii, 4)))
set(ht,'YData', -l1.*cos(y(1:ii, 1)) - l2.*cos(y(1:ii, 4)))
drawnow
end
end
octobus
Отлично, поиграемся, выкладывайте еще, очень интересно, ну и полезно иметь рабочие исходники по ТАУ.
Marusis
Незнаю, будет ли вам интересен и полезен http://mgul-pm.narod.ru/mat/ Тем не менее для себя нашел интересное.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.