Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Такая вот задача. Есть массив чисел. Мне нужно сравнить скажем первые 4 числа и если между ними есть разница 10 - поднять флаг. То есть функция примет аргументы - массив, количество элементов для сравнения и разницу между числами. Код: plaintext 1. У меня получаются какие то громоздкие решения. Как это можно сделать максимально быстро? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 17:42 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Что значит "если между ними есть разница 10" ? Между какими разница? Максимальным и минимальным? Соседними? Еще как-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 17:45 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Dima TЧто значит "если между ними есть разница 10" ? Между какими разница? Максимальным и минимальным? Соседними? Еще как-то? в принципе мне надо отследить разницу между любым из них. это моторы. когда их было два - я по энкодерам брал их позицию, сравнивал, и если была разница в позициях больше пороговой - один мотор замедлял, другой ускорял. теперь моторов 4 и алгоритмика намного усложнилась, не соображу как отследить разницу в позициях моторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 17:56 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7, число парных сочетаний среди 4-х элементов = 6. Наверно вот столько флагов теперь ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 18:00 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Вот как я делал на два мотора Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. Вот ломаю голову как сделать на четыре мотора Модератор: Просьба убирать большие исходники под спойлер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 18:59 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Вот ломаю голову как сделать на четыре мотора отсортировать массив . соотвественно в массиве должны быть структуры номер двигла и значение параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 22:38 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Dima TЧто значит "если между ними есть разница 10" ? Между какими разница? Максимальным и минимальным? Соседними? Еще как-то? в принципе мне надо отследить разницу между любым из них. это моторы. когда их было два - я по энкодерам брал их позицию, сравнивал, и если была разница в позициях больше пороговой - один мотор замедлял, другой ускорял. теперь моторов 4 и алгоритмика намного усложнилась, не соображу как отследить разницу в позициях моторов. ИМХО в случае с 4-мя моторами, как понимаю, может потребоваться коррекция работы нескольких моторов. Как вариант выводить какое-то среднее и относительно него выравнивать работу всех моторов. Вобщем алгоритм непонятен, надо сначала сформулировать алгоритм, а затем его реализацией заниматься. Опиши не на двигателях, а на массивах, т.е.: массив такой-то на входе, на выходе такой-то результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 08:56 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Вот как я делал на два мотора Код: plaintext 1. 2. 3. 4. 5. 6. 7. Пытаюсь понять как два работают. Непонятно это место. Как понимаю это случай когда оба мотора работают почти синхронно, т.е. расхождение в пределах нормы. Но зачем-то происходит изменение их скоростей. Они не могут дальше работать как работали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 09:15 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Как тебе такой алгоритм: 1. Считаем медиану массива. 2. Проверяем каждый элемент на отклонение от медианы, если отклонение более допустимого, то корректируем работу данного двигателя. Для расчета медианы необязательно сортировать, можно поизобретать альтернативные алгоритмы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 09:34 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Dima Tjenya7Вот как я делал на два мотора Код: plaintext 1. 2. 3. 4. 5. 6. 7. Пытаюсь понять как два работают. Непонятно это место. Как понимаю это случай когда оба мотора работают почти синхронно, т.е. расхождение в пределах нормы. Но зачем-то происходит изменение их скоростей. Они не могут дальше работать как работали? в этом месте если расхождения нет или оно приемлимо я устанавливаю максимальную скорость для двух моторов. не пойму какой алгоритм выбрать. наверно нужна какая то структура для каждого мотора содержащая разницу по отношению к каждому из соседних моторов. но как тогда принимать решение? какой замедлить а какой ускорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 09:41 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Dima TКак тебе такой алгоритм: 1. Считаем медиану массива. 2. Проверяем каждый элемент на отклонение от медианы, если отклонение более допустимого, то корректируем работу данного двигателя. Для расчета медианы необязательно сортировать, можно поизобретать альтернативные алгоритмы. то есть принимать решение ускорить или замедлить мотор относительно среднего значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 09:46 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Dima TКак тебе такой алгоритм: 1. Считаем медиану массива. 2. Проверяем каждый элемент на отклонение от медианы, если отклонение более допустимого, то корректируем работу данного двигателя. Для расчета медианы необязательно сортировать, можно поизобретать альтернативные алгоритмы. то есть принимать решение ускорить или замедлить мотор относительно среднего значения? Да. Думаю что медиана тут больше подходит, но можно среднее арифметическое взять вместо нее. Его считать проще. По сути с двумя ты именно так и делаешь: если оба отклонились от среднего больше нормы и ты корректируешь оба двигателя. Еще могут возникнуть неразрешимые состояния из-за ограничений максимума: допустим все 4 двигателя на максимуме, но один из двигателей отстает, но ускорять его нельзя, т.к. максимум, т.е. надо замедлить остальные три. Подобное надо как-то обрабатывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 10:02 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7, Вам виднее. От задачи тоже зависит, среднее: константа/статическое/динамическое, траектория: гладкая/неважно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 10:34 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
А что если так. Создаю структуру содержащую сортированые позиции, указатели на моторы, и адейтированые значения скорости Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Сортирую позиции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Принимаю решение относительно средней позиции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 11:43 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7А что если так. Создаю структуру содержащую сортированые позиции, указатели на моторы, и адейтированые значения скорости Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Сортирую позиции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Принимаю решение относительно средней позиции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Правильно, по науке нужно считать через Среднеквадрати́ческое отклоне́ниестанда́ртное отклоне́ние, станда́ртный разбро́с) — в теории вероятностей и статистике наиболее распространённый показатель рассеивания значений случайной величины относительно её математического ожидания. Массив должен быть 2-х мерным по строкам отколнение между двигателями. по стобцам - статистика плавности изменения скоростей. Конечно же, от задачи зависит, от необходимой точности позиционирования. Если задача требует изменение скоростей и точность позиционирования, а не только их синхронизацию на одной скорости то нужен думерный массив и среднеквадратичное отколение скоростей , в противном случае вы будет пролетать позиции за счет инерции и дергать двигателями в пустую ( бороться с законами физики) . Еще рекомнедую в массивах держать значение тока двигателя что бы через него параметризовать управление текущим( динамическим) значением момента инерции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:13 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
д0kХПравильно, по науке нужно считать через Среднеквадрати́ческое отклоне́ниестанда́ртное отклоне́ние, станда́ртный разбро́с) — в теории вероятностей и статистике наиболее распространённый показатель рассеивания значений случайной величины относительно её математического ожидания. Массив должен быть 2-х мерным по строкам отколнение между двигателями. по стобцам - статистика плавности изменения скоростей. Конечно же, от задачи зависит, от необходимой точности позиционирования. Если задача требует изменение скоростей и точность позиционирования, а не только их синхронизацию на одной скорости то нужен думерный массив и среднеквадратичное отколение скоростей , в противном случае вы будет пролетать позиции за счет инерции и дергать двигателями в пустую ( бороться с законами физики) . Еще рекомнедую в массивах держать значение тока двигателя что бы через него параметризовать управление текущим( динамическим) значением момента инерции. а компот пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:16 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
д0kХЕще рекомнедую в массивах держать значение тока двигателя что бы через него параметризовать управление текущим( динамическим) значением момента инерции. Если у вас начинает расти ток , но скорость еще укладывается в допуск , можете потихоньку начинать увеличивать скорость , потому как через несколько тактов измерений она вылетит за допуск. инфа сотка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:18 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7д0kХПравильно, по науке нужно считать через пропущено... Массив должен быть 2-х мерным по строкам отколнение между двигателями. по стобцам - статистика плавности изменения скоростей. Конечно же, от задачи зависит, от необходимой точности позиционирования. Если задача требует изменение скоростей и точность позиционирования, а не только их синхронизацию на одной скорости то нужен думерный массив и среднеквадратичное отколение скоростей , в противном случае вы будет пролетать позиции за счет инерции и дергать двигателями в пустую ( бороться с законами физики) . Еще рекомнедую в массивах держать значение тока двигателя что бы через него параметризовать управление текущим( динамическим) значением момента инерции. а компот пример? пример чего ? Долить литр воды в компот мне не жалко абстрактный пример для двигателя переменного тока. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:23 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Доработал функцию принятия решения. Добавил счетчик попыток. Если он превышен - немедленная остановка всех моторов. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Вопрос будет ли это работать. Скажем в одной итерации средняя позиция у мотора №3 в другой - позиции поменялись и средняя позиция у мотора №2. Не создаст ли это race condition? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:33 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Принимаю решение относительно средней позиции Код: plaintext 1. Для массивов четного размера решение не очень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:37 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Если у вас двигатели постоянного тока то компот можно развести 50 на 50 . авторКоэффициент мощности математически можно интерпретировать как косинус угла между векторами тока и напряжения. Поэтому в случае синусоидальных напряжения и тока величина коэффициента мощности совпадает с косинусом угла, на который отстают соответствующие фазы. что бы небыло приторно, а компот оставался компотом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:37 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
А вобще компот есть на алиэкспрессе :) Гораздо дешевле и вкуснее, чем варить его из костылей ) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:44 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Dima Tjenya7Принимаю решение относительно средней позиции Код: plaintext 1. Для массивов четного размера решение не очень. а что если привязку делать к минимальной позиции а не к средней? все моторы замедлять до минимальной позиции? только раньше я компенсировал скорости Код: plaintext 1. 2. 3. 4. 5. 6. а теперь что делать ума не приложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:48 |
|
||
|
Найти числовую разницу в массиве в С.
|
|||
|---|---|---|---|
|
#18+
Раньше у тебя вообще как-то коряво написано Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Т.е. ты включаешь на максимум, а потом возвращаешь как было. Что на самом деле происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:56 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39597364&tid=1340170]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 275ms |
| total: | 543ms |

| 0 / 0 |
