Отвлекитесь, эмбеддеры! Отвлеченные темы - обсудить проблемы тепловой смерти вселенной, или просто пиво. Этот раздел - для отдыха. |
20.11.2017, 19:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от ALEGYR
|
а в абстрактных попугаях или джоулях
|
да потомучто оно и меряется в этих попугаях. но по определенному закону. с датчика ты получаешь данные. на усилителе ты приводишь его к определенным значениям. темже 0 - 0 градусей, 1023 допустим 100. чтоб был запас по шкале. все на все остальные расчеты типа 1024*U/Uопоры можно ложить большой .... они тебе не нужны ну кроме интерфейса. ошибка в интегрировании как была так и будет. допустим уставка это 70 градусей - эквивалент по шкале будет допустим 875 считать лень. теперь считаем ошибку пида по уставке допустим на АЦП 500 Perr = 875 - 500 = 375. все все остальные расчеты пох...й. сколько градусей в действительности неипёт. есть ошибка на основе которой идет расчет и фсе. У пида основной закон какой - если разница между уставкой и текущим значением равна нулю - значит и воздействие равно нулю.
и одни плюсы имеем - целочисленная математика. нех.. считать дополнительно не нужно. а если правильно подобрать и период регулирования то можно вобще перейти к целочисленной четной математике. где все делается сдвигами вправо и влево. например умножить на 10 это сдвинуть влево 5 раз. разделить - вправо.
бл... позабывали все с этим языком высокого уровня что такое регистры и как это на асме решалось.
ИМХО такое впечетление что код писал человек умеющий писать только для компа.
|
|
|
|
20.11.2017, 19:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 14.03.2009
Сообщений: 1,601
Сказал спасибо: 1,069
Сказали Спасибо 1,560 раз(а) в 857 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
[QUOTE=ALEGYR;1159734 Почему, если мы производим нагрев бачка с маслом, мы должны оценивать нагрев бачка не в градусах, а в абстрактных попугаях или джоулях?[/QUOTE]
А какой-такой термометр выдает температуру в градусах? Обычно это или сопротивление или эдс, ну или инкрементальных дискретах. Кроме того, температура - редкое явление, обычно есть градиенты, теплоемкости датчиков и прочие неприятности. В некоторых случаях приходится вводить многопетлевые ОС. Особенно много хлопот доставляют коллекторные двигатели с редукторами, требующие разгона-торможения при подъеме-опускании. Там дохрена (много) состояний и моделей. Главное - это не работа в программе с физ. величинами в единицах СИ, а правильная интерпретация сигналов ошибки и результат воздействия на систему. Они нормируются внешними цепями, в программе расставляются допустимые лимиты и анализируются ошибки и аварии. При необходимости любую величину можно не спеша сконвертировать в удобную человеку.
|
|
|
|
20.11.2017, 19:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 7,774
Сказал спасибо: 2,668
Сказали Спасибо 2,644 раз(а) в 1,952 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от stalkernet
|
У пида основной закон какой - если разница между уставкой и текущим значением равна нулю - значит и воздействие равно нулю.
|
А разве не тому значению, что к этому моменту наинтегрировалось?
Это у П-регулятора (чисто пропорционального) такой закон.
Последний раз редактировалось Yuri222; 20.11.2017 в 20:04.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Yuri222 за это сообщение:
|
|
|
20.11.2017, 20:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 7,774
Сказал спасибо: 2,668
Сказали Спасибо 2,644 раз(а) в 1,952 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от ALEGYR
|
Для меня проблематично понять другое - Почему прерывание по этому таймеру ( то есть по таймеру Systick) ты взял именно 1 миллисекунду, а не 10,100, или даже 1000 миллисекунд?
|
Рискну предположить, что
1. просто так удобно. И такое время заложено в алгоритм.
Время отсчета - это как цифровой фильтр. Частота опроса датчиков должна как минимум в 2 раза превышать частоту высшей гармоники сигнала.
Думаю, если превышает на 1-2 порядка - можно вообще не учитывать то, что измерения происходят дискретно.
2. там еще куча другого от этого таймера может запускаться - может, это критично...
3. а чтобы контроллер не простаивал
Ну просто не жалко его - негр должен работать, чтобы мысли нехорошие в голову не лезли. Если больше делать нечего - пусть дергается по таймеру.
|
|
|
|
20.11.2017, 20:20
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от laser532
|
При необходимости любую величину можно не спеша сконвертировать в удобную человеку.
|
Вот именно поэтому человечество и пользуется единицами измерения
Цитата:
|
Единица физической величины — физическая величина фиксированного размера, которой условно по соглашению присвоено числовое значение, равное 1.
С единицей физической величины можно сравнить любую другую величину того же рода и выразить их отношение в виде числа.
Применяется для количественного выражения однородных с ней физических величин. Единицы измерения имеют присвоенные им по соглашению наименования и обозначения.
https://ru.wikipedia.org/wiki/%D0%95...87%D0%B8%D0%BD
|
Так что, уважаемые форумчане, давайте считать себя людьми, а не машинами, и условно по соглашению считать, что ТЕМПЕРАТУРУ нагрева чего-либо мы измеряем в ГРАДУСАХ, а попугаев в лесу в попугаях.
Мы же все же рассматриваем код программы, написанный человеком на человеческом языке, а не обсуждаем методы преобразования аналоговых сигналов в цифровые.
|
|
|
|
20.11.2017, 20:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 02.07.2009
Сообщений: 1,110
Сказал спасибо: 1,246
Сказали Спасибо 2,178 раз(а) в 624 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Yuri222, действительно - наитегрировалось. не точно выразился. Сенкс за поправку. смысл другой получается.
Сообщение от ALEGYR
|
код программы, написанный человеком на человеческом языке
|
мдя больше 20 лет программирую - а оказывается это человеческий язык. особенно Си... Как раз по мне тут опсуждаются методы преобразования сигналов из аналоговых в цифровые и на оборот, на основании четко описанных законов и методик.
как и контроллер. ну не воспринимает он напрямую языки высокого уровня. понятного основной массе в разной степени. ну вот подай ему машинный код и фсе - хоть тресни.
Хотя конечно картинка еще та... Стоит злектронщик - программист и уговаривает контроллер "ну сделай тото, потом это, а если вдруг случится то-то пох...й. А если не дай бог это то врубай аварию. ну пожалуйста...." Я бы точно скорую вызвал.... специализированую....
Последний раз редактировалось stalkernet; 20.11.2017 в 20:39.
|
|
|
|
20.11.2017, 20:45
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от Yuri222
|
Рискну предположить, что
1. просто так удобно. И такое время заложено в алгоритм.
|
Так алгоритм-то выбирает человек, и выбирая его, он на что-то опирается, чтобы выбрать наиболее оптимальный, а не абы какой!
Я бы например, зная что бачок у меня не может нагреваться быстрее чем 1-2 градуса в секунду (то есть до 100 градусов за 40-80 секунд) не стал бы измерять температуру с частотой 1000 раз в секунду! Мне бы хватило это делать и 10 раз в секунду (то есть иметь прерывание не через 1, а через 100 миллисекунд)! Тем более что и показания градусника, мы будем округлять до целого числа, чтобы не перегружать контроллер вычислением чисел с плавающей запятой!
|
|
|
|
20.11.2017, 20:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от ALEGYR
|
Для меня проблематично понять другое - Почему прерывание по этому таймеру ( то есть по таймеру Systick) ты взял именно 1 миллисекунду, а не 10,100, или даже 1000 миллисекунд?
|
Давай попробуем еще раз:
Сообщение от AR_Favorit
|
"Рассматривающему" это понять проблемно, но данный участок кода выдран из программы реального устройства, в которой помимо данного кусочка еще довольно много строк, оформленных в виде конечных автоматов, вызываемых раз в миллисекунду в основном цикле по флагу, устанавливаемому в этом прерывании.
|
Даже в приведенном участке кода видно, что нельзя взять прерывание Systick 100 м тем более или 1000 мс. PID-то продолжит работать (все равно будем вызывать его один раз в целое количество секунд, уменьшив множитель для EE_PID_TIME до, соответственно, 10 или 1). А вот исполнительная часть, реализующая ШИМ, накроется. Например, при периоде регулирования 1 с и периоде вызова процедуры 1 мс она фактически может реализовать 100 ступеней регулирования мощности (нагреватель работает от сети 220 В переменного тока 50 Гц, и управляется через оптореле, оно имеет схему детектора нуля, и симистор на выходе, следовательно всегда включается перед началом полупериода и выключается после окончания полупериода, а не "где попало", а в 1 секунде 100 полупериодов - дискретность не может быть менее 10 мс). А если мы вместо 1 мс настроим Systick на 1 с и начнем вызывать исполнительную часть один раз в секунду - она у нас будет выдавать IBV с периодом не 1 сек, а 100 секунд. То есть всё перестанет работать.
Как можно не увидеть это?!
Вот же человек понимает:
Сообщение от Yuri222
|
2. там еще куча другого от этого таймера может запускаться - может, это критично...
|
И действительно, помимо нагревателя и термодатчика у утройства еще куча входных и исполнительных цепей, которые надо контролировать, подавлять дребезг и т.д. 10 мс вообще максимальный период для приемлемой работы данной программы на конечных автоматах, реализующих в том числе и интерфейс с оператором, но 1 мс удобнее просто для наглядности.
|
|
|
|
20.11.2017, 20:55
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 682
Сказал спасибо: 362
Сказали Спасибо 756 раз(а) в 358 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от stalkernet
|
мдя больше 20 лет программирую - а оказывается это человеческий язык. особенно Си...
|
- Где так долго пропадал?
- В Британии был!
- И как там с английским?..
- Да проще простого: они всё из C++ взяли.
|
|
|
Сказали "Спасибо" j-Roger
|
|
|
20.11.2017, 20:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от ALEGYR
|
Я бы например, зная что бачок у меня не может нагреваться быстрее чем 1-2 градуса в секунду (то есть до 100 градусов за 40-80 секунд) не стал бы измерять температуру с частотой 1000 раз в секунду! Мне бы хватило это делать и 10 раз в секунду (то есть иметь прерывание не через 1, а через 100 миллисекунд)!
|
А где ты увидел измерение температуры раз в миллисекунду? Его - измерения - вообще нет в приведенном участке кода. Взялся рассматривать мой код - так и рассматривай его, а не свои выдумки.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:05.
|
|