1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Генерация синуса через аппроксимацию рядом Тейлора

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)

Модератор: Глоб.модераторы

Ответить

Автор темы
NotSmarty
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 26 сен 2024, 05:47
Имя: Антон Дмитриевич
Страна: Россия
город/регион: Челябинск
Благодарил (а): 1 раз

Генерация синуса через аппроксимацию рядом Тейлора

Сообщение NotSmarty »

Добрый день! Столкнулся с такой проблемой: хотел сгенерировать функцию синуса, но не с помощью встроенной функции, а при помощи разложения в ряд Тейлора в FB на SCL (-1)^(n) *( x^(2n+1))/(2n+1)!. При вычислении факториала больше (13!) в DB функционального блока появляются мусорные значения типа(-2_555_263_125_365_852, заполнение старших байтов?), предполагаю, что не хватает размерности для типа данных Lint . Вопрос состоит в следующем, можно ли реализовать выполнение данной задачи или в связи с ограничением на целочисленные значения (2^64) напрямую реализовать это не получится? (S7-1500)

SaNNy
освоился
освоился
Сообщения: 259
Зарегистрирован: 01 фев 2010, 10:37
Имя: Александр
Страна: Россия
город/регион: Брянск
Благодарил (а): 10 раз
Поблагодарили: 33 раза

Генерация синуса через аппроксимацию рядом Тейлора

Сообщение SaNNy »

Почитайте статью https://habr.com/ru/articles/798991/

Михайло
эксперт
эксперт
Сообщения: 3643
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 8 раз
Поблагодарили: 286 раз

Генерация синуса через аппроксимацию рядом Тейлора

Сообщение Михайло »

Готовая библиотека LGF от Сименса - там нет?

Отправлено спустя 3 минуты 17 секунд:
P.S. нету

Отправлено спустя 8 минут 32 секунды:
Считать надо хитро:
(-1)^(i) * (x^(2i+1))/(2i+1)! = (-1)^(i) * (x/1) * (x/2) * (x/3) * ... * (x/(2i+1))

Я здесь не считал никакой факториал, он не нужен.

Автор темы
NotSmarty
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 26 сен 2024, 05:47
Имя: Антон Дмитриевич
Страна: Россия
город/регион: Челябинск
Благодарил (а): 1 раз

Генерация синуса через аппроксимацию рядом Тейлора

Сообщение NotSmarty »

Считать надо хитро:
(-1)^(i) * (x^(2i+1))/(2i+1)! = (-1)^(i) * (x/1) * (x/2) * (x/3) * ... * (x/(2i+1))
(x/(2i+1)) - это, полагаю последний член последовательности, (-1)^(i) * (x/1) * (x/2) * (x/3) - потому что тут в знаменателе идет чередование четностей,а тут вроде как только нечетные члены (x/(2i+1))? или я не понял?
Ответить

Вернуться в «Simatic TIA Portal»