Использование команд MATLAB — от версии к версии | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №2 (61) февраль 2014 г.

Дата публикации: 20.01.2014

Статья просмотрена: 1429 раз

Библиографическое описание:

Бильфельд, Н. В. Использование команд MATLAB — от версии к версии / Н. В. Бильфельд. — Текст : непосредственный // Молодой ученый. — 2014. — № 2 (61). — С. 83-84. — URL: https://moluch.ru/archive/61/8997/ (дата обращения: 16.11.2024).

Рассмотрены отличительные особенности команд пакетов MATLAB 6.5 и MATLAB7.11 при использовании их как серверов OLE автоматизации при решении задач автоматического управления. Приведены конкретные рабочие примеры, которые легко можно повторить.

Принято считать, что новые версии пакетов, предназначенных для разработки прикладного программного обеспечения, должны полностью поддерживать программы, разработанные в предыдущих версиях. Как правило, меняется интерфейс, улучшаются алгоритмы обработки, и добавляются новые функции и команды, расширяющие возможности пакета. Так обстоит дело с MS Excel, Delphi и другими пакетами.

В свое время я написал модуль для связи Delphi и MATLAB 6.5 и во многих прикладных программах на Delphi применял MATLAB как сервер OLE автоматизации, используя его вычислительные возможности.

После установки MATLAB 7.11 начались проблемы.

Рассмотрим несколько примеров.

Пример 1

Необходимо получить коэффициенты числителя и знаменателя передаточной функции. Для этого выполним следующий фрагмент кода:

W1=tf([10 1], [50 20 1]);

[PB, PA]=tfdata(W1)

В результате, независимо от версии в командном окне выведутся только размеры матриц:

PB = [1x3 double]

PA = [1x3 double]

Чтобы получить сами матрицы в MATLAB 6.5 можно выполнить команду tfdata следующим образом:

[PB, PA]=tfdata(W1,1).

В результате получим:

PB = 0 10 1; PA =50 20 1

В MATLAB 7.11 такая команда не сработает. Сработает только команда, как указано в Help

[PB, PA]=tfdata(W1,’v’)

Необходимо сказать, что и MATLAB 6.5 воспринимает такую команду.

Пример 2

Необходимо в одном графическом окне вывести реакцию на единичный скачок двух передаточных функций заданными цветами.

Для этого напишем следующий фрагмент кода:

hold on;

T=linspace(0,200,100)';

W1=tf([10 1], [50 20 1]);

W2=tf([1], [50 30 1]);

step(W1,T,'r'); step(W2,T,'b');

grid on;

Хотя у нас явно указаны красный и синий цвета, графики выводятся, независимо от этого синим и зеленым цветом по умолчанию. Это аналогично выводу без указания цветов:

step(W1,T); step(W2,T);

Чтобы каждый график выводился указанным цветом, выводим графики следующим образом:

step(W1,'r',T,'r'),grid on; step(W2,'b',T,'b'),grid on;

В этом случае все работает как надо. Если перенести данный фрагмент в MATLAB 7.11, то, как ни странно, MATLAB вообще не воспринимает такой формат команд и выдает ошибку:

??? Error using ==> DynamicSystem.step at 84

Invalid syntax for time or frequency response command.

See help the for the relevant command.

Вводим строку helpstep. Смотрим справку и никаких отличий в описании данных команд не видим. Опять же в MATLAB 7.11 корректно работает фрагмент:

step(W1,T,'r'); step(W2,T,'b');

и каждый график выводится указанным цветом.

Пример 3

Чтобы получить массивы годографа Найквиста в MATLAB 6.5 необходимо выполнить следующий фрагмент кода:

1.                 SysW=tf([1], [50 20 1])

2.                 SysT=logspace(-3,1,100)';

3.                 [X,Y]=NYQUIST(SysW,SysT);

4.                 X(:,1)= [];

5.                 Y(:,1)= [];

6.                 plot(X,Y),grid

Строки 4 и 5 необходимы для того, чтобы удалить из массивов необходимые столбцы, так как изначально предполагается, что система многомерная, и значение, например X, представлено в виде:

X(:,:,528) =-0.0465

X(:,:,529) =-0.0464

X(:,:,530) =-0.0463

X(:,:,531) =-0.0462

Построить график по таким значениям нельзя.

В MATLAB 7.11 приведенный выше фрагмент работать не будет, так как изначально возвращаются одномерные массивы. Следовательно, для построения графика в MATLAB 7.11 строки 4 и 5 вышеприведенного кода необходимо исключить.

Это только то, что удалось выявить. Скорее всего, таких нюансов много. Так что, если у Вас разработаны серьезные приложения с использованием MATLAB как сервера OLE автоматизации, не торопитесь менять старую версию на новую. Многое придется переписывать заново, но еще сложнее будет отыскать эти фрагменты и выяснить, в результате чего они не хотят работать.

Литература:

1.                 Ануфриев И. Е. MATLAB 7. — СПб.: БХВ-Петербург, 2005.– 1104 с.

2.                 Черных И. В. Моделирование электротехнических устройств в MATLAB, SimPowerSystem и Simulink. Питер ДМК, 2008..– 286 с.

3.                 Бильфельд Н. В. Моделирование систем с использованием блока чистого запаздывания. — Молодой ученый. Ежемесячный научный журнал. Чита 2013.-№ 6 С. 25–30

4.                 Бильфельд Н.В Использование пассивного эксперимента при идентификации объектов управления с изменяющимися свойствами. — Молодой ученый. Ежемесячный научный журнал. Чита 2013.-№ 8 С. 77–82

Основные термины (генерируются автоматически): MATLAB, OLE, фрагмент кода, NYQUIST, график, команда, указанный цвет.


Похожие статьи

Применение Wolfram Mathematica для анализа работы модели безопасности Take-Grant

В работе представлен пакет расширения, реализованный авторами в рамках си-стемы Mathematica и предназначенный для исследования модели безопасности Take-Grant. Приведено описание функций и команд, используемых в данном пакете.

Параллельное программирование в Java

С появлением в последние годы многоядерных процессоров параллельное программирование — это способ в полной мере использовать преимущества новых рабочих лошадок обработки. Под параллельным программированием понимается одновременное выполнение процессо...

С++ библиотека компонентов генетических алгоритмов

В статье дается начальное представление о библиотеке GAlib, которая позволя-ет решать задачи с помощью генетических алгоритмов. Рассматриваются основные возможности и классы библиотеки, также рассматриваются особенности установки и настройки библиоте...

Автоматизированная среда оценки усвоения студентом учебного материала

Разработан Java модуль, позволяющий создавать произвольные типы ввода ответов и автоматизировать их оценку в системах электронного обучения. Преимуществом модуля является поддержка генерации алгоритмических вариаций задач, что позволяет преподавателю...

Сравнение потоков Java и Kotlin Coroutines в контексте Android-разработки

В современной разработке мобильных приложений на Android, понимание и эффективное использование многозадачности является ключевым для создания высокопроизводительных и отзывчивых приложений. Многозадачность позволяет приложениям одновременно обрабаты...

Общие компоненты при кроссплатформенной разработке для web-и мобильных приложений с использованием react и react-native

С появлением таких библиотек, как ReactJS и React-Native от компании Facebook изменился ландшафт разработки web и мобильных приложений. Основная идея заключается в том, что, выучив один подход (библиотеку), ее можно использовать везде как для web- та...

Масштабирование ресурсов с использованием Kubernetes

большее количество имеющихся ресурсов серверов путём одновременного использования серверов несколькими приложениями. В классическом подходе сервер выделяется для одного или нескольких приложений, однако нагрузка не перераспределяется если где-то есть...

Влияние индексации на производительность и объем данных в MySQL

В статье представлено экспериментальное исследование влияния B-Tree индексов на производительность и объем данных в MySQL. Рассматриваются основные характеристики B-Tree индексов и их роль в оптимизации выполнения запросов. Эксперимент проводился на ...

Развитие сетевой инфраструктуры на основе технологии программно конфигурируемых сетей и виртуализации сетевых функций

Несмотря на то, что уже было достаточно публикаций о возможности внедрения виртуализации в сети, существует много путаницы в отношении двух разных, но связанных подходов: программно-определяемых сетей и виртуализации. Основное сходство между программ...

Разработка компьютерной модели сверхширокополосного канала связи

В статье уделяется внимание разработке компьютерной модели сверхширокополосного канала связи. В данной работе были проведены исследования метода классификации Random Forest для обнаружения аномалий в сетевом трафике сверхширокополосного канала связи....

Похожие статьи

Применение Wolfram Mathematica для анализа работы модели безопасности Take-Grant

В работе представлен пакет расширения, реализованный авторами в рамках си-стемы Mathematica и предназначенный для исследования модели безопасности Take-Grant. Приведено описание функций и команд, используемых в данном пакете.

Параллельное программирование в Java

С появлением в последние годы многоядерных процессоров параллельное программирование — это способ в полной мере использовать преимущества новых рабочих лошадок обработки. Под параллельным программированием понимается одновременное выполнение процессо...

С++ библиотека компонентов генетических алгоритмов

В статье дается начальное представление о библиотеке GAlib, которая позволя-ет решать задачи с помощью генетических алгоритмов. Рассматриваются основные возможности и классы библиотеки, также рассматриваются особенности установки и настройки библиоте...

Автоматизированная среда оценки усвоения студентом учебного материала

Разработан Java модуль, позволяющий создавать произвольные типы ввода ответов и автоматизировать их оценку в системах электронного обучения. Преимуществом модуля является поддержка генерации алгоритмических вариаций задач, что позволяет преподавателю...

Сравнение потоков Java и Kotlin Coroutines в контексте Android-разработки

В современной разработке мобильных приложений на Android, понимание и эффективное использование многозадачности является ключевым для создания высокопроизводительных и отзывчивых приложений. Многозадачность позволяет приложениям одновременно обрабаты...

Общие компоненты при кроссплатформенной разработке для web-и мобильных приложений с использованием react и react-native

С появлением таких библиотек, как ReactJS и React-Native от компании Facebook изменился ландшафт разработки web и мобильных приложений. Основная идея заключается в том, что, выучив один подход (библиотеку), ее можно использовать везде как для web- та...

Масштабирование ресурсов с использованием Kubernetes

большее количество имеющихся ресурсов серверов путём одновременного использования серверов несколькими приложениями. В классическом подходе сервер выделяется для одного или нескольких приложений, однако нагрузка не перераспределяется если где-то есть...

Влияние индексации на производительность и объем данных в MySQL

В статье представлено экспериментальное исследование влияния B-Tree индексов на производительность и объем данных в MySQL. Рассматриваются основные характеристики B-Tree индексов и их роль в оптимизации выполнения запросов. Эксперимент проводился на ...

Развитие сетевой инфраструктуры на основе технологии программно конфигурируемых сетей и виртуализации сетевых функций

Несмотря на то, что уже было достаточно публикаций о возможности внедрения виртуализации в сети, существует много путаницы в отношении двух разных, но связанных подходов: программно-определяемых сетей и виртуализации. Основное сходство между программ...

Разработка компьютерной модели сверхширокополосного канала связи

В статье уделяется внимание разработке компьютерной модели сверхширокополосного канала связи. В данной работе были проведены исследования метода классификации Random Forest для обнаружения аномалий в сетевом трафике сверхширокополосного канала связи....

Задать вопрос