A A A A Автор Тема: Расчет гражданский сумерек  (Прочитано 13467 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #60 : 12 Апр 2011 [01:11:56] »
Спасибо TAU, всё ok!
Только жаль, что программа занимает слишком много место. Еле помещается в контроллер.
Есть алгоритм на PHP, который для меня как лесь тёмный.
Вы бы не могли перевести на С или хотя бы  указать на литературу, чтоб разбираться самому?

Tau

  • Гость
Re: Расчет гражданский сумерек
« Ответ #61 : 12 Апр 2011 [01:55:22] »
Только жаль, что программа занимает слишком много место. Еле помещается в контроллер.
Так как переход летнее/зимнее время отменили, то процедура CorrectionDay убирается совсем, а от UniversalTime_MD остаются 2 строчки. Хотя это все как мертвому припарки :).
Цитата
Есть алгоритм на PHP, который для меня как лесь тёмный.
Вы бы не могли перевести на С или хотя бы  указать на литературу, чтоб разбираться самому?
Не, не могла бы. Справочников по Php под рукой нет.
Из литературы:
Астрономический календарь. Постоянная часть.
J.Meeus "Astronomical formulae for calculators"

или проконсультируйтесь с Маринером-9 по вопросам ужатия алгоритмов.
Странно, у меня никогда таких проблем не было, даже когда программировал на приставке с процессором 8080 (подключаемой к телевизору) и оперативной памятью 32 килобайта.. Вот что значит самому алгоритмы придумывать...

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #62 : 12 Апр 2011 [13:01:49] »
Вы настоящая бескорыстность.
Таких людей как вы на пальцах можно пересчитать!
Еще раз спасибо огромное! :)
Могу подарить вам букет цветов и (или) духи (по вашему усмотрению), только по какому счету и какую сумму переслать ?
P.S.  ;)(не смущайтесь, я абсолютно серёзно)
Еще раз, Спасибо Огромное! ^-^

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #63 : 12 Апр 2011 [13:17:00] »
Маринер-9
И как там на Марс, Господин Маринер-9, PHP understand? :-\
Может быть код по меньше будет в весе?

Mariner-9
And how there to Mars, Mister Mariner-9, PHP understand? :-\
There can be a code on will in weight less?

Маринер-9

  • Гость
Re: Расчет гражданский сумерек
« Ответ #64 : 12 Апр 2011 [18:28:13] »
Спасибо TAU, всё ok!
Только жаль, что программа занимает слишком много место. Еле помещается в контроллер.
  Нет, PHP не знаю. А что за проблема с местом? И зачем нужен чужой алгоритм, если есть готовые программы для таких расчётов?

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #65 : 12 Апр 2011 [18:41:51] »
Чтоб не изобрести велосипед! Чтобы на эксперименты меньше время потратить! Ведь ничего нового после Коперника не откроешь!
Вы можете дать короткий алгоритм, который бы помещался в дешевых микроконтроллерах? Весом так 5-8 кило? А то целых 9к получается. :police:

Tau

  • Гость
Re: Расчет гражданский сумерек
« Ответ #66 : 13 Апр 2011 [06:36:45] »
Цитата
Весом так 5-8 кило? А то целых 9к получается.
Вообще, интересная задача, только есть одно НО - в случае отработки такого алгоритма должна существовать обратная связь. То есть должен быть софт, которым пользуются для тестирования (?)  микроконтроллеров, чтобы в процессе ужатия кода, было видно, что не так: тут значащие цифры теряются, тут еще какая-то фигня происходит... Иначе это танцы с завязанными глазами.
Наблюдается парадокс: я могу ужать код (там много чего в общем виде записано), но у меня нет софта. У вас есть софт, но ужать чужой код вы не можете хотя бы потому что там использовалась типичная женская логика.

Вопрос: что это за софт используется-то?

Маринер-9

  • Гость
Re: Расчет гражданский сумерек
« Ответ #67 : 13 Апр 2011 [09:12:46] »
Вы можете дать короткий алгоритм, который бы помещался в дешевых микроконтроллерах? Весом так 5-8 кило? А то целых 9к получается. :police:
  Нет. В своё время (в эпоху программируемых калькуляторов) была литература по ужатию кодов.. В "Науке и Жизни" даже рубрика такая была..
   А вообще непонятно, про 5 кБ. Неужели есть сейчас техника с таким объёмом памяти?
И чисто практически - для чего?  Неужели свет включать на участке?
« Последнее редактирование: 13 Апр 2011 [09:36:30] от Маринер-9 »

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #68 : 17 Апр 2011 [10:00:26] »
маринер, вы не по существу
вы философ? Социолог? умнее всех? что за манера вмешиваться в чужие дела с насмешками и бесплатным обучением.
Идите и учитесь хорошему поведению.
Если вам по предмету форума нечего сказать, можете создать свой сайт, или форум на теме: как смеяться над другими на все!

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #69 : 17 Апр 2011 [10:38:33] »
Госпажа TAU,
 я работаю с программой СodeVisionAVR
(http://www.hpinfotech.ro/html/cvavr.htm).
Разрабатываю устройства автоматики на микроконтроллерах PIC и AVR. У них память на программу от 2-х до 32к. Помимо расчета восхода-захода, нужна чтоб программа  реагировала бы внешние и внутренние события (прерывания), настраивала бы порты для входных (клавиатура) и выходных (дисплей, исполняющее устройства-напр. реле). Так что питаюсь все вместе улажить в программе  наименьших размеров :)!. И мучаю вась тоже.

Tau

  • Гость
Re: Расчет гражданский сумерек
« Ответ #70 : 18 Апр 2011 [22:43:14] »
Спасибо за наводку на софт, давно я так не развлекалась.
Правда, так и не поняла: или я тупая, или CodeVisionAVR c типом long не работает вообще. Отладила макет - вычисление восхода и захода Солнца, но не уверена, что получилось короче  ;D. Если отключить lcd.h (надо же было мне куда-то результат выводить), то оно требует 35% памяти у ATmega16 (а сколько у ATmega16 памяти-то??). Все вводимые параметры в коде; на то, чтобы понять каким образом они должны вводиться в микроконтроллер,  сил у меня уже не хватило, увы.
Симулировала в VMLAB. Все претензии к нему.
Заодно вспомнила, за что я так ненавижу Си.  >:(

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #71 : 23 Апр 2011 [16:07:56] »
Спасибо госпажа TAU.
Отвечаю на ваши вопросы:
1....или CodeVisionAVR c типом long не работает вообще
Вы скачали некоммерческую версию, в котором ограничения на данных типа "double(+/-1,175e-38....+/- 3.402e38) ,  long int  (-2147483648....2147483647) ну и может бить (точнее не могу сказать-не пробовал),
2. ....а сколько у ATmega16 памяти?
Память у мега 16 =16к(16384), а 35%=5,734=5,8к естественно.
 

Но у меня возникли проблемы. :'(
1.Файл проекта VM.prj не открываеся CVAVR-ом
2. Установил VMLAB, запустил проект VM.prj , я попробовал компилировать ,но компилятор ругается, что не может открить test2.hex и просит "Rebuild all" (я не не работал с VMLAB-ом еще и не знаю, что дальше делать). :o
3.Сам создал test3.prj в CVAVR,  немного (по необходимости в препроцессоре не трогал ваш С-шник). Трансляция проходит но 12 предупреждений.
их можно разделить на 4 группы.
 Не могу ничего дальше делать :',( :o
Ну и в приложении все вместе в архиве "sunrise_f_nerab.rar".

Может бить поможете до конца?
Или может бить вы мне пришлёте формулы в математическом виде (желательно с комментарием)
 :)Большое  спасибо за ваше внимание.

Tau

  • Гость
Re: Расчет гражданский сумерек
« Ответ #72 : 23 Апр 2011 [21:49:13] »
1) VM.prj - файл проекта для VMLAB, конечно CVAVR его не откроет.
2) В VMLAB нужно открыть проект (Project-> Open project), затем сделать Rebuild (Project-> Re-build all), затем нажать на кнопку со светофором (он будет зеленым, если rebuild прошел успешно) и смотреть на LCD.
3) В test3.prj у меня предупреждения 3: два о возможном переполнении при умножении (но если вы не будете задавать месяц=100 или год =10000, то в реальности переполнения не случится) и одно - о вашей неиспользуемой функции Calculation, которая ниоткуда не вызывается.
Вообщем, наблюдаем несовпадение компиляторов. :(
Попозже напишу формулы.

Tau

  • Гость
Re: Расчет гражданский сумерек
« Ответ #73 : 23 Апр 2011 [23:54:28] »
Цепляю формулы. Хотя на мой взгляд это тот же  самый код  ;D

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #74 : 08 Мая 2011 [01:13:12] »
Здравствуйте госпажа TAU.
Приходиться опят побеспокоить вас.
Дело в том что программу, которую я составил, намного больше в габаритах.Ваша програма более компактная.
Но мне больше нравится ваша последняя программа, составленная в среде VMLAB. Но или я чего то не так делаю, либо....  В общем, не могли бы вы ваш файл "sunrise_f.rar"  дополнить всеми файлами и папками, которая у вас получается после компиляций,
                  или хотя бы выложит отдельно файл "test2.hex"?
 Иначе до "светофоров" дело не доходит, а build выдаёт такую ошибку :"Cannot open test2.hex. 'Rebuild All' is recommended"

Tau

  • Гость
Re: Расчет гражданский сумерек
« Ответ #75 : 08 Мая 2011 [17:49:31] »
Держите.

Оффлайн esdees

  • Новичок
  • *
  • Сообщений: 12
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от esdees
Re: Расчет гражданский сумерек
« Ответ #76 : 08 Мая 2011 [23:54:28] »
Океан благодарности !!!!!!!!!!!!!!!!!!!!! :)
Вы настоящая скорая помощь !!!!!!!!!! :)

Оффлайн Prodigy

  • Новичок
  • *
  • Сообщений: 2
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Prodigy
Re: Расчет гражданский сумерек
« Ответ #77 : 12 Июл 2025 [14:17:36] »
Часовой угол t восхода/захода Солнца:
cos(t) = (-sin(po + R) - sin(Lat) * sin(Dec)) / cos(Lat) / cos(Dec)
Lat - широта места
Dec - склонение Солнца
po - рефракция на горизонте = 35'
R - радиус Солнца = 16'

Находим t.

cos(t + dt) = (sin (h) - sin(Lat)*sin(Dec) ) / cos(Lat) / cos(Dec)
h - высота Солнца (для гражданских сумерек h = -6)
dt - продолжительность сумерек

Находим t+dt = A
dt = |A - t|
Переводим dt из углов в часы (/15).

Здесь считается, что утренние и вечерние сумерки симметричны по времени внутри суток. На самом деле это не так, но погрешность меньше минуты.

Формулы работают при условии Dec >= 90 - Lat + h
Если условие не выполняется, то сумерки длятся всю ночь.

Источник: "Астрономический календарь. Постоянная часть."

Спасибо Вам и Tau за подробное решение.
Спустя 16 лет, я сделал тоже самое, но для Excel.
Файл содержит формулы для подсчета гражданских сумерек (-6 град).
Я использую эти данные для гражданской авиации.
Может кому-нибудь поможет тоже.

Оффлайн библиограф

  • *****
  • Сообщений: 11 094
  • Благодарностей: 896
    • Сообщения от библиограф

Оффлайн SternDen

  • Новичок
  • *
  • Сообщений: 25
  • Благодарностей: 2
    • Сообщения от SternDen
Re: Расчет гражданский сумерек
« Ответ #79 : 12 Июл 2025 [14:46:13] »
Сейчас это уже никому не нужно.
https://voshod-solnca.ru/sun/%D1%81%D0%B0%D0%BD%D0%BA%D1%82-%D0%BF%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3

Спасибо за ссылку! Я новичок в ЛА, поэтому что-то подобное искал.
А есть такие люди, они прекрасно слышат,
Как звезда со звездою говорит.