Страница 70 из 117 ПерваяПервая ... 2060686970717280 ... ПоследняяПоследняя
Показано с 691 по 700 из 1349

Тема: Hardella IDE

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    Мою формулу можно свести в итоге к такой: T = T0 + ΣdT. Приращение dT можно вычислить в программе CoDeSys и передать при обращении к программе PRU. В итоге все сведется к суммированию заранее известного числа раз. Или я не прав ?
    Это будет другая формула, и она будет неким приближением исходной. dT нужно будет корректировать каждые 100мкс.

  2. #2

    По умолчанию

    Да я не верно написал. Должно быть так: 1/T(t) = 1/T0 + a * t;

    1/T0 - это константа, она вычисляется однажды в основной программе и передается в PRU.
    Последний раз редактировалось Вольд; 12.03.2017 в 15:41.

  3. #3

    По умолчанию

    T(t) = T0/(1+T0*a*t); или T(t) = T0/(1+T0*aΣdt);

    Если делать вычисления в лоб, то на каждом шаге надо будет суммировать, умножать, и делить. Не фонтан.

    Надо попробовать разложить функцию в степенной ряд, возможно полегчает.

    Если ограничиться двумя членами, то в окрестности точки 133 мкс (7500 Гц) получается так:

    T(t) = T0/(1+T0*a*t) = 200/(1+200*0,000000833*t) = 196 - 0,0325*(t-133)

    Вроде не плохо получилось. Только что делать с коэффициентом 0,0325 ? Владимир, что скажите ?
    Изображения Изображения
    Последний раз редактировалось Вольд; 12.03.2017 в 14:52.

  4. #4

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    Вроде не плохо получилось. Владимир, что скажите ?
    Я бы предложил сделать вычисления без PRU, проверить, что получаются нужные цифры и тогда уже переходить к кодированию.

    И ещё: время лучше не в мкс измерять, а 5нс интервалах. PRU работает на частоте 200МГц, и 1 такт занимает 5нс. Счётчик тактов доступен из PRUграммы.

  5. #5

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    И ещё: время лучше не в мкс измерять, а 5нс интервалах.
    А это для чего нужно ?

  6. #6

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    А это для чего нужно ?
    Блок PRU_CURRENT_TIME: https://hardella.com/docs/pru/standa...u_current_time

  7. #7

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Зачем мерить время в 5 нс интервалах ? Что это дает ?

  8. #8

    По умолчанию

    Владимир, операция целочисленного деления сколько у вас времени занимает ?

  9. #9

    По умолчанию

    С коэффициентом 0,0325 в степенном ряду что делать ? Как с дробными числами работать ?

    Может так избавиться от дробного числа: 196 - 0,0325*(t-133) = 196 - (t-133)/31

    Тогда погрешность при целочисленном делении будет большая.

    Может так сделать T(t)*31 = 196*31 - (t-133), т.е. в результате вычислений получить T(t)*31, а потом результат поделить на 31.
    Последний раз редактировалось Вольд; 12.03.2017 в 15:40.

  10. #10

    По умолчанию

    А оператор CASE в Hardella есть ?

Страница 70 из 117 ПерваяПервая ... 2060686970717280 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •