|
Моделирование/макетирование RealTime, интересно узнать |
|
|
|
Dec 17 2010, 09:21
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 19-10-10
Пользователь №: 60 276

|
это что-то вроде автоматизированной системы технического контроля? то есть примерно так: с параллельного порта выдаю байт - далeе на плис - далее на устройство тестирования. с устройства - на плис - и в параллельный порт (а тут уже анализируем что пришло и что должно было придти.) итд. собственно этим занимаюсь..
|
|
|
|
|
Dec 17 2010, 11:11
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 19-10-10
Пользователь №: 60 276

|
Я думаю реально но! что значит реал. тайм. на какой частоте это все будет работать? на практике оказалось что на процессоре 500mhz - я достиг частоты (то есть между командами выдать, принять с одного порта) примерно задержка в 2миллис. т.е. до мгц ещё далеко.
|
|
|
|
|
Dec 17 2010, 11:15
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340

|
TigerSHARC, если на MATLAB/Simulink, то посмотрите в сторону xPC Target сюда или сюда
|
|
|
|
|
Dec 17 2010, 12:26
|
Знающий
   
Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195

|
Обработка осуществляется на процессоре бытового компьютера E2140 1.6Гц Если просто под виндой работать - то это никакой не реалтайм. Я вот рассматриваю вариант с QNX. Программа оиентировочно будет написана на MATLAB Simulink, она будет работать с двумя ком-портами. Теперь про частоты дискретизации. Планируется принимать данные с внешнего источника на пределе возможностей ком-порта (128 kb/s - стало быть частота выборок (16 битные данные) 8000 в секунду т.е. 8 кГц) Дело в том что микроконтроллер будет посылатьв компьютер подобие выборок с АЦП (эмуляция АЦП). Время отклика? хмм... верхняя граница по расчётам 0.2 с. - не медленнее. (т.е. за это время компьютер под управлением QNX и программы должен обработать блок данных из 0,2*8000 = 1600 выборок и выдать результат, а затем приступить к обработке следующего блока) Цитата(Tue @ Dec 17 2010, 17:15)  TigerSHARC, если на MATLAB/Simulink, то посмотрите в сторону xPC Target сюда или сюда из второй ссылки видно, что моделируется сигнал на компьютере, затем переносится в реалтайм систему а она уже управляет объектом. так вот в моём случае реалтайм система - это скажем обычный компьютер, но под управлением QNX, дабы обеспечить гарантированый отклик
|
|
|
|
|
Dec 18 2010, 08:20
|

Местный
  
Группа: Свой
Сообщений: 473
Регистрация: 10-09-06
Из: Тольятти. Самарская обл.
Пользователь №: 20 249

|
Цитата(TigerSHARC @ Dec 17 2010, 20:26)  так вот в моём случае реалтайм система - это скажем обычный компьютер, но под управлением QNX, дабы обеспечить гарантированый отклик Если использование нелицензионного софта не мучает вас ночами, то xPC это самое оно. На машине устанавливается ОС работающая в режиме жесткого реального времени, затем с другой машины на нее заливается программа получаемая нажатием кнопок Ctrl+B из симулинковой диаграммы. Минимальный квант времени в районе 1*10^-4 сек.
--------------------
Если все, то не я...
|
|
|
|
|
Dec 18 2010, 08:28
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340

|
Цитата(TigerSHARC @ Dec 17 2010, 18:26)  из второй ссылки видно, что моделируется сигнал на компьютере, затем переносится в реалтайм систему а она уже управляет объектом. Нет. Вы создаете модель в Симулинке, затем "легким движением руки" переносите ее на PC-компьютер с ОС реального времени (которая поставляется вместе с xPC Target) и эта ваша модель на нем выполняется. "реальность" зависит от многих факторов, в числе которых: скорость PC, сложность модели. Также Вы можете заводить в эту модель сигналы с плат ввода/вывода (если такие есть) или по последовательным интерфейсам типа RS232 и модель будет их в реальном времени обрабатывать. Из Ваших слов я не понял, что означает "моделируется сигнал на компьютере, затем переносится в реалтайм систему" ? В данном случае Вы можете заводить данные с "живого" железа, главное чтобы были соответствующие платы ввода/вывода. Тем более, если Вы говорите: Цитата Программа оиентировочно будет написана на MATLAB Simulink, она будет работать с двумя ком-портами. то Вам тем более стоит посмотреть в сторону xPC Target. Не думаю, что разобраться с xPC Target займет больше времени, чем освоение и прикручивание QNX к Вашей задаче. И 8кГц получить думаю вполне сможете (зависит от сложности Вашей обработки этого сигнала)
|
|
|
|
|
Dec 18 2010, 13:43
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Цитата(Tue @ Dec 18 2010, 14:28)  Нет. Вы создаете модель в Симулинке, затем "легким движением руки" переносите ее на PC-компьютер с ОС реального времени (которая поставляется вместе с xPC Target) и эта ваша модель на нем выполняется. "реальность" зависит от многих факторов, в числе которых: скорость PC, сложность модели. Также Вы можете заводить в эту модель сигналы с плат ввода/вывода (если такие есть) или по последовательным интерфейсам типа RS232 и модель будет их в реальном времени обрабатывать. Из Ваших слов я не понял, что означает "моделируется сигнал на компьютере, затем переносится в реалтайм систему" ? В данном случае Вы можете заводить данные с "живого" железа, главное чтобы были соответствующие платы ввода/вывода.
Тем более, если Вы говорите: то Вам тем более стоит посмотреть в сторону xPC Target. Не думаю, что разобраться с xPC Target займет больше времени, чем освоение и прикручивание QNX к Вашей задаче. И 8кГц получить думаю вполне сможете (зависит от сложности Вашей обработки этого сигнала) Это что-то новенькое! Интересно. Вместо QNX поставить xPCTarget это как? Если знаете расскажите подробнее. Вас послушать, так xPC это самое то! Буду читать Help матлаба... думаю там всё что надо есть. Только по таким вещам как RealTime Workshop и С Compiler хелп какой-то "мутный" в матлабе... Если вместе с xPCtarget поставляется ОС, то её тоже нужно освоить... интересно...
|
|
|
|
|
Dec 18 2010, 14:45
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340

|
Цитата(Zelepuk @ Dec 18 2010, 19:43)  Это что-то новенькое! Интересно. Вместо QNX поставить xPCTarget это как? Если знаете расскажите подробнее. Ну уже не новенькое, этот продукт давно у них существует. Кроме того, что уже рассказал, более рассказывать особо нечего. Если владеете аглицким, советую посмотреть соответствующие вебинары. Например этот, этот или этотЦитата(Zelepuk @ Dec 18 2010, 19:43)  Если вместе с xPCtarget поставляется ОС, то её тоже нужно освоить... интересно... Там осваивать ничего не надо, все за Вас сделает Simulink с RealTime Workshop
|
|
|
|
|
Dec 19 2010, 09:17
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Неадекватное восприятие однако реальности. Как вы себе представляете перенос проекта из MATLAB-а в QNX? dll-ку или exe-шник думаете скопировать? Вариант у вас только один только - получить из matlab-а полные исходники вашего проекта с заглушками для уровня абстракции от хардваре. Тут проблемы во всем. Во первых исходники всего в матлабе получить невозможно есть только подмножество примитивных алгоритмов для которых можно получить исходники. Во вторых уровень абстракции хардваре в QNX кардинально отличается от уровня абстракции под Windows. Значит кардинально придется перепахивать те немногие добытые тексты. Далее придется их запускать заново откомпилированные на QNX и заново делать профайлинг. При этом не забыть что работаете совершенно на другом уровне хардваре с неизвестным быстродействием. Никакие фичи риалтайма QNX здесь не помогут поскольку в модели MATLAB их использование не предусмотрено. Т.е. QNX будет работать по отношению к модели точно так же как Windows XP если не хуже поскольку драйвера MATLAB-а под Win XP все таки оптимизируют, а такой операционки как QNX MATLAB не знает. Я бы помотрел на LabView с пакетом для embedded. Там среда сразу компилит под ARM и может делать профайлинг на целевой платформе. Поскольку весь софт для вас черный ящик то единственным гарантом риалтайма является не чудесная операционка, а результаты профайлинга и ничего больше.
|
|
|
|
|
Dec 19 2010, 15:06
|

Местный
  
Группа: Свой
Сообщений: 214
Регистрация: 6-06-05
Из: г. Таганрог
Пользователь №: 5 759

|
Автор, если вопрос еще актуален:
делал что то подобное - прием данных по последовательному порту, обработка, выдача по UDP на распределенные подсистемы. Из модели, сделанной в симулинке генерируется исходный код, который затем можно использовать в своем приложении.
Обработку данных в реальном времени можно производить и в совсем классическом Linux и даже в Windows, главное, чтобы скорость выполнения одной итерации была намного больше скорости обновления данных (или получения новых данных в вашем случае). Если это условие не выполняется то никакая ОСРВ не поможет получить гарантированный отклик.
Чтобы заставить модель, разработанную в симулинке в работать в реальном времени нужно обеспечить заданную частоту итерации. То есть если у вас в модели задан timestep=125e-6 (8000 Гц) то в приложении функция blabla_x86_step(0) и должна вызываться 8000 раз в секунду. Делается это достаточно просто с использованием высокоточного таймера (QueryPerformanceCounter - win, gettimeofday - linux). 8кГц слишком небольшая частота чтобы привлекать QNX.
Попробуйте в приложении измерить время одной итерации, оно должно быть меньше 125 мкс. Не забудьте учесть погрешность его определения (для Linux ~5%) а также относительное отклонение, так как это не ОСРВ (5-15%). Если рабочий цикл (функция step и обмен данными) уложится в 80-90 мкс система будет работать. Перед началом обработки не забудьте накопить некоторый объем исходных данных в несколько отсчетов, т.к. чтение из ком-порта при пустом буфере займет время, а чтение при наличии данных составляет несколько мкс (копирование производится уже из памяти входящего FIFO).
Все остальное зависит от вас.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|