Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 08:32   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию Имитационное моделирование процессов управления

Привет всем.
Я вот тут с одной туёвиной вожусь, прогу пишу. Короче задание такое:
Есть тело, двужещеесе по осям XYZ;
Его движение описывается тремя законами управления:
По оси 0х: Ux = - k1 * x(T-t) - k2*Vx(T-t)
По оси 0y: Uy = - k1 * y(T-t) - k2*Vy(T-t)
По оси 0z: Uz= - k1 * z(T-t) - k2*Vz(T-t)

k1 = 6 / (T - t)^2; k2 =4 / (T - t).

T - это Итерация
http://ru.wikipedia.org/wiki/%D0%98%...86%D0%B8%D1%8F , ну, как я понял, предыдущее значение.

Вообщем прикинул пока для 0X
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x, xPrev: real;
t: cardinal;
v: integer;
k1, k2: real;

s: string;
c: integer;
begin
   xPrev := 0;
   t := 10;
   v := 40;

   for c := 1 to 6 do
   begin
      k1 := 6 / sqr((xPrev - t));
      k2 := 4 / (xPrev - t);

      x := (-k1 * (x * (xPrev - t)) - k2 * (v * (xPrev - t))) * 1000; //На 1000 умножаю для удобства
      s := s + 'C = '+intToStr(c)+'; X = '+floatToStr(x)+#13#10;
      xPrev := x;
   end;
   showMessage(s);
end;
Получилось:
Как вы видете, что-то типа убывающей прогрессии с лимитом.

Вот там дальше написанно:
Цитата:
имеем начальные XYZ, конечные, скорости по каждой из осей и время движения.
Я вообще, как-то не очень врубился, что это вообще такое. Если-бы разъяснил кто-нить.
Altera вне форума Ответить с цитированием
Старый 09.06.2009, 08:56   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Насколько я понял это не полный текст задания? Приведите пожалуйста условие задачи.
Вообще это траектория движения - в школе по физике проходят, только там в 2D - типа расчитать траекторию полета мяча или ракеты и пр. Здесь аналогично имеется определенные законы движения по осям и скорость и время. В принципе можно и график нарисовать для наглядности...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.06.2009, 14:25   #3
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Это курсач.
Сначала опишу то, что требуется от задачи.
Есть тело, движущееся в осях координат 0xyz.
Его движение описывается тремя законами управления:
По оси 0х: Ux = - k1 * x(T-t) - k2*Vx(T-t)
По оси 0y: Uy = - k1 * y(T-t) - k2*Vy(T-t)
По оси 0z: Uz= - k1 * z(T-t) - k2*Vz(T-t)

K1 = 6 / (T - t)^2; k2 =4 / (T - t).

Программа должна моделировать движение тела в два этапа:
1 этап.
Ввод с клавиатуры координат точки (т.е. X,Y,Z), в которой находится тело,
координат, в которые тело должно прилететь (т.е. X,Y,Z),
скоростей тела по осям(Vx, Vy и Vz(в том числе и отрицательные значения))
и времени, за которое тело должно проделать этот путь.
2 этап.
Ввод с клавиатуры скоростей тела по осям(Vx, Vy и Vz)
и времени, за которое тело должно добраться в начало координат.

На выходе должны быть несколько графиков зависимости(скоростей, координата от времени, ускорения от времени и т.д.) и несколько промежуточных значений.
Ну вот это то, что было.
Altera вне форума Ответить с цитированием
Старый 09.06.2009, 15:31   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
На выходе должны быть несколько графиков зависимости(скоростей, координата от времени, ускорения от времени и т.д.) и несколько промежуточных значений.
имхо это чистая математика
сначала подставляете коэффициенты k1 и k2 - получаете немного другие зависимости
потом эти уравнения дифференцируете по времени - получаете формулу изменения скоростей
еще раз дифференцируете - ускорения
и все это по каждой из осей

на основе этих уравнений можно строить графики
и дальше прикручивать блок решения по этапу 1 и 2
soleil@mmc вне форума Ответить с цитированием
Старый 09.06.2009, 15:38   #5
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Я в саму задачу не вьехал. Рассматриваю пока для одной оси.
Цитата:
Ux = - k1 * x(T-t) - k2*Vx(T-t)
Ux - это типа это закон управления для оси x. x - это типа координата. T - это предыдущее значение x.
t - это время,
Vx - скорость перемещения по оси x
Я не врубился, как с Ux работать...

Последний раз редактировалось Altera; 09.06.2009 в 15:41.
Altera вне форума Ответить с цитированием
Старый 09.06.2009, 15:52   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Его движение описывается тремя законами управления:
видимо, нужно понять чем они управляют
Ux - это типа дельта Х, т.е. итерация по координате Х при итерации по времени ?!?!
если так, то x(T-t) - это предыдущее положение, в частности, в начальный момент времени - начальная координата
и, по аналогии, Vx(T-t) - предыдущее значение скорости, в частности, в начальный момент времени - начальная скорость

остается подставить коэффициенты и получить уравнение
сами начальные условия будут заданы в проге юзером - этап 1

З.Ы.: хотя, все может быть и совсем не так...
soleil@mmc вне форума Ответить с цитированием
Старый 10.06.2009, 07:23   #7
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
видимо, нужно понять чем они управляют
Ux - это типа дельта Х, т.е. итерация по координате Х при итерации по времени ?!?!
если так, то x(T-t) - это предыдущее положение, в частности, в начальный момент времени - начальная координата
и, по аналогии, Vx(T-t) - предыдущее значение скорости, в частности, в начальный момент времени - начальная скорость

остается подставить коэффициенты и получить уравнение
сами начальные условия будут заданы в проге юзером - этап 1

З.Ы.: хотя, все может быть и совсем не так...
Ну вот и я тоже думаю... ...думаю, думаю, и ни чего не придумал ещё. Там есть Мат модель какая-то но я такое ещё не проходил в школе.
Вложения
Тип файла: rar мат.модель.rar (154.5 Кб, 22 просмотров)
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моделирование систем управления гримми Помощь студентам 2 18.03.2009 17:28
Имитационное моделирование систем массового обслуживания на Delphi или C++Builder Приватная Фриланс 4 04.12.2008 10:39
Моделирование системы. AND Помощь студентам 4 08.11.2007 17:59