Программинг микроконтроллеров → Модельно-ориентированное проектирование, или продолжаем приручение Cortex M3 с помощью Matlab/Simulink

Изображение взято, и слегка отредактировано, из блога Антона Лопатина©. Ну очень вдохновляет.
Добрый день, уважаемое сообщество!
В прошлом топике я постарался сделать вводной экскурс в модельно-ориентированное проектирование встраиваемых систем с использованием ARM микропроцессоров Cortex M3 и MATLAB/Simulink. Продолжаем погружение, усложняем задачу. Жаль до концепта на заглавной иллюстрации еще далеко, но процесс разработки одного из важнейших его узлов, а именно системы самонаведения турели, я попытаюсь показать.
Ниже довольно много изображений, но без них скучновато и не наглядно.
Delphi → Использование dll библиотек математического ядра системы Matlab в приложениях Delphi из песочницы
Матлаб для математика — это… Это не имеет выражения в словах. Это просто наше все. Мощь, предоставляемая этим пакетом математического ПО просто ошеломляет. Если что-то нельзя сделать в матлабе, то это, скорее всего, нельзя сделать на компьютере вообще. А еще вероятнее, что Вы просто не знаете, как это делать.А теперь предадимся мечтам: как бы хотелось иметь всю эту мощь под рукой в родной и милой сердцу Delphi, например… Нет ничего проще!
Данная статья затрагивает лишь малую часть такой обширной темы, как взаимодействие разрабатываемых прикладных программ с сервисами, предлагаемыми Матлабом. Помимо описанного тут, существуют и другие способы воспользоваться услугами этого элитного математического пакета. Описанный способ хорош тем, что при наличии всех нужных dll библиотек, сам Матлаб уже не нужен. К тому же, данный способ относительно неплох в плане производительности. Минус его в том, что приходится таскать за собой пак библиотек почти на 10 Мб. Также не доступны функции тулбоксов Матлаба.
Математическое ядро Матлаба до xx версии (ну забыл я, до какой!) было сосредоточено в пакете dll библиотек. В этих библиотеках хранятся функции для выполнения самых различных вычислений. Если установить Матлаб без единого тулбокса и без Симулинка, то все вычисления, которые можно выполнить в командной строке среды, реализованы через функции из этих самых библиотек. Помните Pascal Numerical Toolbox? Так вот он — игрушечная лопатка, по сравнению с бульдозером Матлаба. А в чем же подвох? Вам придется изрядно потрудиться, чтобы этот бульдозер завести.
dll-библиотеки математического ядра Матлаба до определенной версии употребляются самим Матлабом, поэтому лежат среди исполняемых файлов пакета. В последних версиях самим Матлабом они уже не используются, однако архив с ними все равно поставляется вместе с пакетом (Необходим для работы программ, созданных в Matlab Compiler). Теоретически. Я его так и не нашел. Если хотите воспользоватеься библиотеками ищите их в интернете. Обычно, это файл mglinstaller.exe. И не забудьте поинтересоваться условиями использования — тут я тоже не в курсе. Далее я предполагаю, что библиотеки у Вас уже есть.
Маленькое и незаметное примечание
Данная статья затрагивает лишь малую часть такой обширной темы, как взаимодействие разрабатываемых прикладных программ с сервисами, предлагаемыми Матлабом. Помимо описанного тут, существуют и другие способы воспользоваться услугами этого элитного математического пакета. Описанный способ хорош тем, что при наличии всех нужных dll библиотек, сам Матлаб уже не нужен. К тому же, данный способ относительно неплох в плане производительности. Минус его в том, что приходится таскать за собой пак библиотек почти на 10 Мб. Также не доступны функции тулбоксов Матлаба.
О чем речь?
Математическое ядро Матлаба до xx версии (ну забыл я, до какой!) было сосредоточено в пакете dll библиотек. В этих библиотеках хранятся функции для выполнения самых различных вычислений. Если установить Матлаб без единого тулбокса и без Симулинка, то все вычисления, которые можно выполнить в командной строке среды, реализованы через функции из этих самых библиотек. Помните Pascal Numerical Toolbox? Так вот он — игрушечная лопатка, по сравнению с бульдозером Матлаба. А в чем же подвох? Вам придется изрядно потрудиться, чтобы этот бульдозер завести.
Большое и жирное примечание
dll-библиотеки математического ядра Матлаба до определенной версии употребляются самим Матлабом, поэтому лежат среди исполняемых файлов пакета. В последних версиях самим Матлабом они уже не используются, однако архив с ними все равно поставляется вместе с пакетом (Необходим для работы программ, созданных в Matlab Compiler). Теоретически. Я его так и не нашел. Если хотите воспользоватеься библиотеками ищите их в интернете. Обычно, это файл mglinstaller.exe. И не забудьте поинтересоваться условиями использования — тут я тоже не в курсе. Далее я предполагаю, что библиотеки у Вас уже есть.
Обработка изображений → Подавление шума на изображении средствами Matlab
Видел на хабре статью про подавление шумов, ну так сказать, из места в карьер, беремся за практику:)
Код сделан на Matlab'e отлажен и работает так что если у кого то появится желание то он может попробовать:)
Код сделан на Matlab'e отлажен и работает так что если у кого то появится желание то он может попробовать:)
Обработка изображений → Видео пособие по работе в системе Matlab
Надеюсь всем из Вас легче кто посмотрел будет интересно, так как смотреть видео уроки гораздно чем читать кучу литературы:)
ссылка на Урок 1
ссылка наУрок 2
ссылка на Урок 1
ссылка наУрок 2
Программирование → Рейтинг на основании истории
Постановка задачи
Контекст: есть шахматный турнир с достаточно большим количеством игроков самого разного уровня.
Приняты решения: не разбивать игроков на чётко определённые группы (друг друга не знаем ещё, непонятно, кого куда помещать), не делать турнир «на вылет» (много новичков, им просто обидно будет вылететь после первой партии). Более-менее (вручную) справляемся с выбором партнёром примерно одинакового уровня.
Задача: сделать систему рейтинга по результатам турнира. Поскольку играем не «на вылет», финала нет. Учитывать количество очков несерьёзно из-за разношерстности игроков. То есть система рейтинга должна быть такой, что выигрыш у самого слабого игрока или проигрыш у самого сильного практически не должны влиять на наш рейтинг.
Алгоритмы → Алгоритм скользящего среднего (Simple Moving Average)
Возникла задача реализовать на С++ алгоритм скользящего среднего, который находит широкое применение в обработке сигналов и статистике.

За основу была взята функция smooth в MATLAB.
Данную функцию можно использовать для фильтрации сигналов. В качестве входных параметров определяются массив данных и окно усреднения.
Кому интересно, прошу под кат

За основу была взята функция smooth в MATLAB.
Данную функцию можно использовать для фильтрации сигналов. В качестве входных параметров определяются массив данных и окно усреднения.
Кому интересно, прошу под кат
.NET → Интегрируем MATLAB в С#.NET из песочницы
Вступление
В этой статье я постараюсь максимально полно и пошагово рассказать, как связать MATLAB с С#.NET и сделать приложение с интерфейсом на примере построения 3D-плоскости.
Зачем это нужно?
Очень часто перед программистом встает задача вычисления сложной математики. MATLAB в свою очередь является отличным средством для решения, но слаб в создании полноценного пользовательского приложения (можно воспользоваться инструментами GUI MATLAB'a, но это меня не устроило).
Программирование → MatLab и ООП, оптимизация из песочницы
Данный пост предназначен для людей, имеющих практику программирования ООП (извините за тавтологию), волей судеб вынужденых писать на MatLab. Язык приятный, но граблей достаточно большое количество, и не обязательно каждому наступить на них все.
На написание вдохновил недавний пост об оптимизации кода на MatLab, точнее комментарии, требовавшие большего углубления в тему.
Итак…
В MatLab ООП долгое время вообще не было.
Году в 2005 появились первые, страшно выглядящие потуги: класс — папка, метод — отдельный файл, свойства — единый метод доступа с параметром «имя свойства».
«Прекрасное» начало, к счастью от него быстро отказались.
Ещё через несколько лет сделали ООП в более привычном виде — классы, наследование, всё как у людей. Кроме нескольких деталей.
На написание вдохновил недавний пост об оптимизации кода на MatLab, точнее комментарии, требовавшие большего углубления в тему.
Итак…
История
В MatLab ООП долгое время вообще не было.
Году в 2005 появились первые, страшно выглядящие потуги: класс — папка, метод — отдельный файл, свойства — единый метод доступа с параметром «имя свойства».
«Прекрасное» начало, к счастью от него быстро отказались.
Ещё через несколько лет сделали ООП в более привычном виде — классы, наследование, всё как у людей. Кроме нескольких деталей.
Программирование → Увеличиваем скорость вычислений в Matlab из песочницы
Добрый день, уважаемые хабровчане!
Предлагаю вашему вниманию статью, на которую меня натолкнул недавний пост Matlab кластер своими руками. В свое время я столкнулся с теми же проблемами что и автор топика, однако для увеличения производительности я не стал уходить в дебри распределенных вычислений, а просто решил максимально оптимизировать свой код. Как это сделать в Matlab, прошу под кат за подробностями.
Статья является описанием жизненного опыта и вольным переводом англоязычной публикации.
Предлагаю вашему вниманию статью, на которую меня натолкнул недавний пост Matlab кластер своими руками. В свое время я столкнулся с теми же проблемами что и автор топика, однако для увеличения производительности я не стал уходить в дебри распределенных вычислений, а просто решил максимально оптимизировать свой код. Как это сделать в Matlab, прошу под кат за подробностями.
Статья является описанием жизненного опыта и вольным переводом англоязычной публикации.
Программинг микроконтроллеров → Модельно-ориентированное проектирование, или взятие Cortex M3 штурмом с помощью Matlab/Simulink

Оправдание
Сразу же оговорюсь, что изучение микроконтроллеров я начал с КР580 в составе УМК с такими устрашающими характеристиками:
Тип применяемого МП — КР580ВМ80А.
Объем ОЗУ — 3 Кбайт.
Объем ПЗУ — 2 КБайт.
Возможность прерывания — 1 вектор.
Программное обеспечение — системная программа «Монитор».
Уровни входных и выходных сигналов совместимы с уровнями ТТЛ.
…
Масса изделия не более 9,6 кг!