|
Моделирование обьекта на ПК, Как правильно использовать зависимость матмодели от времени? |
|
|
|
Jan 23 2011, 01:37
|
Группа: Новичок
Сообщений: 9
Регистрация: 26-09-10
Пользователь №: 59 745

|
Здравствуйте. Вопрос, может, очень простой, но меня беспокоит. Есть простейшая матмодель некоторого обьекта, уравнение которой показывает зависимость обьекта от времени, расхода и подпитки(уровень): y(t) = y0*exp(0.88*g*t) - х, где y0 - начальное значение, g - подпитка, x - расход, exp() - экспонента  , t - время К примеру, мне надо построить график - в маткаде без проблем, 5, 15 секунд - все отлично. А вот как описать это в алгоритме, я не совсем понимаю.. Ведь в программе уравнение будет в цикле, счетчик t будет инкрементироваться, и через пару сотен секунд будет оказывать влияние на результат куда больше, чем подпитка.. избавляться от t нельзя - начальные значение исказятся.. Какие методы необходимо применять для переноса алгоритма для непрерывного вычисления в цикле?
|
|
|
|
|
 |
Ответов
(1 - 8)
|
Jan 23 2011, 04:40
|
Частый гость
 
Группа: Участник
Сообщений: 131
Регистрация: 30-11-10
Пользователь №: 61 268

|
Цитата(DTF @ Jan 23 2011, 05:57)  У Вас зависимость только от времени? Другие параметры - константы? Как Вы пишите, так оно и будет, другого не дано - все согласно Вашему уравнению. С ростом времени будет расти аргумент экспоненты, экспонента и сама функция. Как можно избавляться от времени, если сама функция от времени? Либо уточните вопрос, если не так Вас понял. экспонента считается через разложение в степенной ряд Тейлора exp(x)=sum(x.^n/n!) n=0.........k k- любое целое положительное число http://ru.wikipedia.org/wiki/Экспонента
|
|
|
|
|
Jan 23 2011, 05:03
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 6-11-09
Пользователь №: 53 453

|
Цитата(Andrey_1 @ Jan 23 2011, 11:40)  экспонента считается через разложение в степенной ряд Тейлора exp(x)=sum(x.^n/n!) n=0.........k k- любое целое положительное число http://ru.wikipedia.org/wiki/ЭкспонентаВаш ответ, видимо, адресован автору темы? Насколько я понял, у него вопрос не в том, как посчитать экспоненту.
|
|
|
|
|
Jan 23 2011, 05:10
|
Частый гость
 
Группа: Участник
Сообщений: 131
Регистрация: 30-11-10
Пользователь №: 61 268

|
Цитата(DTF @ Jan 23 2011, 08:03)  Ваш ответ, видимо, адресован автору темы? Насколько я понял, у него вопрос не в том, как посчитать экспоненту. Конечно А как ВЫ думали компутер считает синусы-косинусы Бессели и экспоненты? Через разложение в степенной ряд или Вы знете другие алгоритмы расчета таких функций?
|
|
|
|
|
Jan 23 2011, 08:11
|

Любитель Кошек
    
Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873

|
Цитата(sour @ Jan 23 2011, 04:37)  Есть простейшая матмодель некоторого объекта... Какие методы необходимо применять для переноса алгоритма для непрерывного вычисления в цикле? Если я Вас правильно понял, то как вариант: организуете массив, и в том же цикле, после завершения счета очередной итерации, записываете туда интересующие параметры. После завершения расчета переписываете массив в файл в формате понятном для программы рисования графиков. (Можно,конечно, сразу писать в файл - но это медленнее, или передавать программе рисования значения для каждого значения, например по технологии OLE, если программа рисования его поддерживает  ).
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Jan 23 2011, 12:13
|
Группа: Новичок
Сообщений: 9
Регистрация: 26-09-10
Пользователь №: 59 745

|
Цитата(DTF @ Jan 23 2011, 04:57)  У Вас зависимость только от времени? Другие параметры - константы? Как Вы пишите, так оно и будет, другого не дано - все согласно Вашему уравнению. С ростом времени будет расти аргумент экспоненты, экспонента и сама функция. Подпитка изменяется также. Да будет расти, но до определенного значение. Вот график принебольшом расходе
Как видно, со временем система стабилизируется, но счетчик будет инкрементирватся, и в дальнейшем, даже малое изменение подпитки может повлечь за собой возбуждение:
Вот меня и интересует - можно ли как-то упростить зависимость от временой составляющей? например, по окончанию переходного процесса приравнять ее к 1, а при внесении возмущения снова запускать счетчик? Цитата(Andrey_1 @ Jan 23 2011, 06:40)  экспонента считается через разложение в степенной ряд Тейлора Спасибо, и это пригодится  Цитата(tyro @ Jan 23 2011, 10:11)  Если я Вас правильно понял, то как вариант: организуете массив, и в том же цикле, после завершения счета очередной итерации, записываете туда интересующие параметры. После завершения расчета переписываете массив в файл в формате понятном для программы рисования графиков. Мне не столько графики нужны, сколько непрерывный ввыод информации о уровне и подпитке..
|
|
|
|
Guest_TSerg_*
|
Feb 1 2011, 13:22
|
Guests

|
Еще раз выскажу "глубокую" мысль - заниматься надо не следствием, а причиной. Все эти Ваши подпитки, расходы и пр., это воздействующие факторы на некоторую физическую сущность. Как только Вы составите ее модель, а также модель "подпиток" - все станет на свои места. Результат ( графики ) Вы будете получать как следствие моделирования Вашей динамической системы. Все остальное - ненужная потеря времени, подгонка и т.д.
|
|
|
|
|
Mar 24 2011, 07:00
|
Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986

|
Цитата(sour @ Jan 23 2011, 04:37)  Есть простейшая матмодель некоторого обьекта ... y(t) = y0*exp(0.88*g*t) - х Судя по графикам, у вас не совсем простейшая модель, т.к. y=f(t), g=f(t), x=f(t). Действительно при неконтролируемом увеличении t будет иметь место как переполнение буферов, так и потеря точности. Как обычно исходной информации минимум, поэтому решение в общем виде: работайте с производными, задайте кванты времени, приведите формулу к ним, проанализируйте граничные условия всех переменных (min/max) за выбранный квант времени, проверьте разрядность АЦП и требуемую точность. Другими словами- уйдите от "времени".
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|