Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Математики, подскажите. |
Философия, технологии, алгоритмы! |
|
Опции темы |
25.01.2012, 21:48 | #1 |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 44
Не в сети |
Математики, подскажите.
Господа, есть задача, связанная с интегралами. ПОглядел я формулы и понял, что вспомниать давно забытое буду неделю. Может быть кто с ходу поможет решить.
Дана синусоида, точнее ее полуволна. Насколько я помню, площадь синусоиды, ограниченной двумя вертикальными прямыми вычисляется интегрированием. А у меня несколько иная задача. См. картинку http://ru.wikipedia.org/wiki/%D0%A4%...nder_curve.svg Дано: функция - sin(x), известно сколько составляет S от общей площади одной полуволны в процентах синусоиды, b на 90 градусах. Нужно найти на какмо расстоянии от нуля располагается а, если длина полуволны 10. Короче, это фазовый регулятор мощности сетевой нагрузки. Нужно вычислить в какой момент времени нужно коммутировать нагрузку, чтобы получить заранее заданную мощность в процентах от максимума. Я лентяй))) буду рад готовой формуле, выраженной языком, понятным какой-нибудь среде программирования. |
25.01.2012, 22:14 | #2 |
Форумец
Сообщений: 40,964
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
Чисто навскидку, тебе нужно определить расстояние от нижней точки синусоиды до 0 отметки (либо от высоты синусоиды + полувысота волны), умножить на длину, получив площадь прямоугольника ниже синусоиды и прибавить значение определенного итеграла от синуса (т.е. косинус от конечной точки - косинус от начальной точки) . Расписывать не буду - математику вспомнить приятное дело, а писать код бесплатно - увольте. Я этим весь день занимаюсь и так.
|
26.01.2012, 01:19 | #6 |
Форумец
Сообщений: 40,964
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
шутник)
кстати, напомню, что ко мне либо на ты (предпочтительно) либо на Вы, на вы - не надо. Ради одного интеграла - как из пушки по воробьям. Пусть автор объяснит - что ему надо. Брать определенный интеграл из синуса с помощью Mathematica - это я даже не знаю как назвать))) |
26.01.2012, 02:19 | #8 |
Форумец
|
А при помощи этого можно вычислить? http://www.wolframalpha.com/
|
26.01.2012, 07:16 | #11 |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 44
Не в сети |
Блин, да мне не разово надо! Так что навороченые кады не предлагать.
Распишу поподбробнее. Есть нагревательный элемент, который управляется ключом на на симмисторе, нужно регулировать его мощность. А регулируется она следующим образом: напряжение в сети - это синусоида. Детектируется переход напряжения через ноль. Если сразу подать импульс на симистор, то нагреватель будет включен в тевчение всего полупериода, то есть до следующего перехода через ноль, почле чего нужно снова подавать импульс. Так вот если подать импульс не сразу после перехода через ноль, а с задержкой, нагреватель будет включен не в течение всего полупериода, а меньше. Чем больше задержка, тем меньше мощность. То есть, если при 50 Гц (10мсек полупериод) подать управляющий импульс через 5 мсек, мощность будет 50%. А дальше и наченается математика - если бы ток был постоянный, тогда 1 мсек=10%, 3 мсек=30%, 8 мсек=80%. А здесь синусоида. Таким образом, мощность нагрева будет равняться площади фигуры под синусоидой, ограниченной двумя вертикалями - одна(b) на 90 градусах (10 мсек), другая (а) где-то между 0 и 90 градусами (0-10мсек). Отсюда задача - дана функция sin(x), дано b=90градусов, дана мощность P. Необходимо найти a. Переведу а в миллисекунды как-нибудь сам. Сложноть еще вот в чем- клю управляется микроконтроллером, который программируется языком C. математическая библиотека этого компилятора поддерживает плюс/минус/умножить/поделить и тригонометрические функции. Интегралы она не понимает. Посему мне нужно получить формулу, которую можно забить в программу. Буду рад помощи. |
26.01.2012, 11:13 | #12 |
старый хрыч
Сообщений: 6,705
Регистрация: 17.12.2006
Возраст: 37
Не в сети |
-=Женек=-, тригонометрические функции на микроконтроллере наверное работают медленно? Интеграл считать смысла нет. Проще задать заранее просчитанную таблицу, допустим через 5 градусов (ну или какая погрешность допустима будет...)
|
26.01.2012, 13:06 | #13 |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 44
Не в сети |
Господа ну это просто писец....
Задача которую решают школьники в 11 классе... используюя знания, которые я утратил за ненадобностью и прошу помощи на форуме у тех, кто возможно продолжает ими пользоваться... Это для знающего человека и задачей-то не является... А мне рассказывают про бесплатное программирование, про таблицы, про скорость работы микроконтроллера... XOR, если ты читал задачу, неужели непонятно что мне единожды нужно посчитать период времени и потом вставлять 1 цифру каждые 10 мсек. Тогда какого хрена ты мне такие советы даешь? Да еще и трансформируешь сложность задачи в ее бессмысленность. Господа, еще раз подчеркну, я создал тему потому что мне чтобы вспомнить все эти графики и интегралы потребуется много времени, а на форуме есть люди, которые просто могут это извлечь из памяти, это не запрещено, и наглостью не является.. Господа, вам не стыдно будет, если я все же потрачу несколько часов на восстановлени знаний и пару минут на выведение формулы? |
26.01.2012, 13:35 | #14 |
IGBT
Сообщений: 535
Регистрация: 09.10.2005
Не в сети |
Дана функция f(x) = sin(x).
Даны пределы pi/2 и a. Вычисляем первообразную от синуса F(x) = -cos(x). По теореме Ньютона-Лейбница значение P определенного интеграла P = F(pi/2) - F(a) P = -cos(pi/2) + cos(a) cos(a) = P + cos(pi/2) a = arcos(P + 0) |
26.01.2012, 14:01 | #16 |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 44
Не в сети |
Pengvin,
Огромное спасибо! Только здесь еще пробел в моих знаниях - 1 полупериод это не pi/2, а pi. Тогда a = arcos(P-1). Один только вопрос - интеграл от полупериода одного синуса равен 2. То есть за 100% мы принимает 2, а вместо P мы подставляем процент мощности*2/100? Правильно? Остальным: хоть и не я решил задачу, повторюсь - вам не стыдно? Spectator, сколько бабла я должен был бы Вам, если бы вы мне выдали такое решение? |
26.01.2012, 14:07 | #17 |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 44
Не в сети |
потный,
слово "не разово" было употреблено в ответ на предложение посчитать в каком-то математическом каде, дабы вбить полученную мощность раз и навсегда. "Не разово" означало, что мощность будет меняться а рассчитывать значения при изменении мощности придется каждый раз не в каде, а в контроллере. слово "единожды" подразумевало что нужно один раз вычислить а для одной и той же мощности, и не пересчитывать его для каждого полупериода. Не придирайтесь к словам. Последний раз редактировалось -=Женек=-; 26.01.2012 в 15:22. |
26.01.2012, 14:09 | #18 |
IGBT
Сообщений: 535
Регистрация: 09.10.2005
Не в сети |
90 градусов это pi/2. Потому что pi радиан = 180. Ну так в условии задачи было. Я как бы в суть не погружался.
Вопрос еще какой контроллер. А так придется с таблицами возится. У меня проблемы с оскоростью с тригонометрическим функциями были только на меге8. И это я уже забыл как страшный сон. Расскажу еще историю, как я просил математиков решить задачу мне на работе. Задача непростая скажем так. Сводится к решению системы 4х уравнений с 4мя неизвестными. Но собственно проблема: нужно систему уравнений вывести и решить. Понятно, что в матлабе система решается, но надо ведь это тоже в МК засунуть. Ну математик решил задачу то. Только взял он граничное условие задачи, которое часть коэффициентов при неизвестных в 0 обращала. И получилась линейная система из двух уравнений. Ну я посидел в общем виде повыводил на листочке решение. Потом плюнул решил все методом наименьших квадратов, т.е. почти перебором. |
26.01.2012, 22:40 | #19 |
Форумец
|
-=Женек=-, как мне кажется, для МК задачи тригонометрии - это сложная и емкая задача. Здешнее обсуждение уводит Вас все дальше и дальше в тригонометрию и математические ряды.
Давайте подумаем логически и немного по другому: ТЗ - нужно узнать площадь под синусоидой. Что известно (можно измерить контроллером): -- амплитуда (текущая, предшествующая, все предшествующие), -- время, прошедшее со времени перехода напряжения через ноль -- интеграл - это по своей сути бесконечная сумма бесконечно малых элементов. В Вашем случае, это сумма площадей бесконечно малых по ширине прямоугольничков высотой с аплитуду синусоиды. Т.о. если взять в рассчет некоторую вполне допустимую погрешность и считать, что на полуволне синусоиды умещается 100 таких прямоугольников (или вся их 1000 ). Тогда наша синусоида превращается в ступенчатую синусоиду. И контроллеру будет проще считать ее площадь (или часть ее площади) по средствам их суммирования. Тут отдельно следует выделить вопрос погрешности такого метода. Она будет составлять разницу между вычислением нужной плошади интегральным методом и методом предложенным мною. Что легко сделать на бумаге. И если она окажется не приемлемой, то следует выбрать более крупное число деления полупериуда синусоиды на отрезки. Если что-то не понятно, то спрашивайте. Я попробую разжевать более подробно. Вот нашел http://www.znannya.org/?view=geom-fi...pred-integrala Представьте на рисунке Вашу полуволну и не переходите от суммы площадей к интегральному вычислению. ---------------------------------------------------------------------- Восстановление информации с любых жестких дисков, любых USB флешек, любых карт памяти. http://bvf.ru/forum/showthread.php?p=15995699 |
26.01.2012, 23:03 | #21 |
Форумец
|
X0R, я о том же, но с треугольниками будет несколько сложнее вычислять.
Компу - ему пофигу. Микроконтроллер дело другое. ---------------------------------------------------------------------- Восстановление информации с любых жестких дисков, любых USB флешек, любых карт памяти. http://bvf.ru/forum/showthread.php?p=15995699 |
27.01.2012, 00:06 | #22 |
Форумец
Сообщений: 40,964
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
2 Erema
То что ты предлагаешь - это обыденные численные методы) Третий курс ПММ) На входе - погрешность, на выходе - шаг и программа) Один из вариантов решения задачи. У автора совсем другая проблема - ему хочется чтобы за него всё сделали, и бесплатно, при этом.) Не, ну пусть, желание ненаказуемо) |
27.01.2012, 00:11 | #23 |
Форумец
Сообщений: 40,964
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
|
27.01.2012, 00:18 | #24 | |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 57
Не в сети |
Цитата:
А вот с треугольниками, сложнее и погрешность будет больше. Честно, сказать я про треугольники в вычислении интеграла первый раз слышу. |
|
27.01.2012, 01:22 | #26 |
Форумец
Сообщений: 40,964
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
ОК, замечательно. Теперь попытайся таким образом решить задачу аппроксимации с заданной извне степенью точности)))
X0R, триангуляция имеет право на жизнь, но исключительно в прикладных задачах, в 3D играх, к примеру, когда нужно сделать нечто не просто быстро, а 100-1000-10000 раз в 1/30 секунды. Это явно не тот случай. |
27.01.2012, 06:47 | #28 | ||
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 44
Не в сети |
Spectator,
Цитата:
Цитата:
Erema, неоправданно громоздкие вещи предлагаешь. Уж лучше таблицы мощностей, что предложил XOR. P.S. Ради интереса измерил, сколько времени требуется ATMega32 на 16 МГц для вычисления арккосинуса - получилось 10,1 мкс. Господа прекратите пустой треп. |
||
27.01.2012, 09:01 | #29 |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 57
Не в сети |
Ну, т.е. ты хочешь полупериод находить - это будет длина основания. а высоту измерять как значение от половины полупериода?
Тут плохо то что ты не сможешь погрешность изменять, что возможно в случае с прямоугольниками. Я думаю Евгению будет проще создавать таблицу с заранее просчитанными значениями тригонометрических функций, как ты и предлагал. И пользоваться уже просчитанными значениями |
27.01.2012, 09:57 | #30 |
IGBT
Сообщений: 535
Регистрация: 09.10.2005
Не в сети |
Ахахаха прочитал топик весь. Самое интересное, что мое решение никто не опроверг. Может я неправильно решил. Писал из головы, то что вспомнил с 1 курса политеха.
Такие вопросы надо не у математиков, а у физиков спрашивать. Численными методами площадь под синусоидой считать это конечно круто. Но зачем? Я понимаю конечно, если у нас есть дискретный сигнал, и надо его проинтегрировать. Но тут получается надо посчитать значение синуса в некой точке, потом посчитать площадь прямоугольника/треугольника. А синус, кто считать будет? Таблицей забьем. Ок. А почему бы аркосинус не забить таблицей сразу? вот собственно самое главное |