- •Основные определения (проектирование, автоматизированное, неавтоматизированное, автоматическое, система автоматизированного проектирования).
- •2. Аспекты проектирования (функциональный, конструкторский, технологический).
- •Деление процесса проектирования. Стадии проектирования.
- •Понятия этапов проектирования, проектного решения и процедур. Понятие о восходящем и нисходящем проектировании. Маршрут проектирования.
- •Процедуры синтеза и анализа
- •6. Принципы построения маршрутов проектирования.
- •7. Подходы к верификации.
- •8. Типовые проектные процедуры.
- •10. Подсистемы сапр. Программно-методические и программно-технические комплексы.
- •9. Виды обеспечения сапр.
- •11.Этапы создания проекта сапр.
- •13 Методы получения математических моделей
- •14. Пакет Simulink. Назначение
- •15. Параметры моделирования непрерывных и дискретных моделей. Задание параметров моделирования.
- •16 Функции численного интегрирования. Примеры функций и обоснование выбора.
- •17. Жесткая задача. Алгебраические контуры. Удаление алгебраических контуров.
- •18.Рекомендации для многотактовых дискретных систем. Фиксация пересечения нулевого значения.
- •19.Моделирование с помощью команд системы matlab. Команда sim.
- •Использование команды sim для моделирования
- •20.Задание дополнительных параметров моделирования с помощью функции simset, simget. Задание дополнительных параметров моделирования с помощью функции simset
- •Извлечение значений дополнительных параметров моделирования с помощью функции simget
- •21.Обзор s-функции.
- •22.Создание s-функций на основе м-файлов. Пример.
- •23.Использование локальных переменных при программировании в системе Matlab пакете Simulink. Динамическое задание размеров векторов входных и выходных переменных. Использование локальных переменных
- •Динамическое задание размеров векторов входных и выходных переменных
- •24.Обзор процедур ответных вызовов. Процедуры ответных вызовов
- •Обзор процедур ответных вызовов
- •25.Задание и получение параметров процедур ответных вызовов. Задание параметров процедур ответных вызовов
- •26.Команды построения моделей. Команды построения моделей
- •Задание значений параметров
- •28.Понятие модели, задачи идентификации. Понятие о моделировании и моделях
- •29.Назначение пакета System Identification. Назначение пакета System Identification
25.Задание и получение параметров процедур ответных вызовов. Задание параметров процедур ответных вызовов
Команда
set_param (object, parameter, value)
служит для задания параметров процедур ответных вызовов.
object – строковая переменная, содержащая имя модели или путь к блоку. В том случае, если ответный вызов связан с каким-либо свойством модели, параметр object должен представлять собой имя модели.
Пример
object='car_mod'
object='car_mod/Controller/Gain_l'
parameter – строковая переменная, содержащая наименование параметра процедуры ответного вызова, взятое из таблицы 5 или 6;
value – строковая переменная, содержащая значение параметра процедуры ответного вызова (имя функции, которая совпадает с именем М-файла).
Пример: Использование М-функции для организации ответного вызова
Рассмотрим модель системы Simulink, показанную на рисунке. Значение константы для блока Constant установлено равным In_val. Требуется, чтобы система MATLAB запросила у пользователя значение переменной In_val при загрузке файла данной модели.
Рисунок 1 – Модель с использованием простейшей функции ответного вызова
Процедура ответного вызова включает выражение:
In_val=input('Enter the value: ');
Сохраним данное выражение в М-файле с именем initm_l.m.
Для использования данной функции ответного вызова так, чтобы она выполнялась каждый раз при открытии файла модели, загрузим файл модели и введем следующее выражение в командной строке системы MATLAB:
set_param('model_name’ , 'PreLoadFcn1', 'initm_l' );
Далее сохраним файл и закроем окно модели. При следующей загрузке файла модели в командной строке системы MATLAB появится строка:
> Enter the value:
Введенное значение будет присвоено переменной In_val.
26.Команды построения моделей. Команды построения моделей
Система Simulink поддерживает несколько команд системы MATLAB, предназначенных для создания и редактирования моделей. Эти команды позволяют создавать и сохранять новые модели, добавлять и удалять блоки и линии связи, устанавливать и редактировать значения параметров блоков.
Таблица 4 – Команды системы S1MULINK, применяемые в процедурах ответных вызовов
Команда Описание
bdroot (object) Возвращает имя модели Simulink, соответствующее параметру object. Данный параметр представляет собой строковую переменную, содержащую полный путь Simulink к блоку или подсистеме.
gcb Возвращает полный путь Simulink к текущему блоку
gcs Возвращает полный путь Simulink к текущей системе или подсистеме
get_param(obj, param) Возвращает текущее значение параметра, соответствующего системе, подсистеме или блоку
set_param(obj ,param, value) Устанавливает значение параметра, соответствующего указанной системе, подсистеме или блоку
Задание значений параметров
Команда set_param предназначена для задания значений параметров моделей и блоков. Ряд параметров для указанного объекта (система, подсистема, блок) могут быть заданы при помощи однократного применения команды set_param. Например, следующая команда позволяет присвоить параметру Gain значение '10':
set_param(gcb, 'Gain', '10');
В последнем выражении параметру Gain присваивается значение в виде строкового выражения '10', а не в виде числа. Для того чтобы параметру Gain присвоить значение вектора [10 20 30], необходимо использовать следующую команду:
set_param(gcb, 'Gain', '[10 20 30]');
Команда set_param может выполняться в процессе моделирования. Если при помощи графического интерфейса пользователя изменить значение параметра Gain блока Gain, то коэффициент усиления изменится немедленно, что позволяет осуществлять изменение данного параметра в процессе моделирования.
Извлечение значений параметров
Команда get_param подобна рассмотренной выше команде set_param, однако, может возвращать значение только одного параметра. При использовании команды get_param для чтения численного значения параметра возвращаемое функцией значение описывается типом данных «массив символов».
g = get_param(gcb, 'Gain') g = [10 20 30]
Здесь переменная g является символьной строкой, а не числовым массивом. Чтобы получить численные значения элементов переменной g, необходимо ввести в командной строке MATLAB следующее выражение:
gv = str2num(g) gv=10 20 30
Параметр SimulationCommand
Параметру SimulationCommand могут быть присвоены следующие значения: start, stop, pause, continue. Установка значений параметра SimulationCommand эквивалентна выбору соответствующей команды меню Simulation окна модели.
set_param('model', 'SimulationCommand1, 'Start')
27.Использование локальных переменных и параметра UserData при работе с ответными вызовами. Проблемы программирования
Существует ряд проблем программирования, возникающих при разработке функций ответных вызовов в виде М-файлов. Использование имен блоков и подсистем:
Не рекомендуется использовать имена блоков и подсистем в явном виде в функциях ответных вызовов в виде М-файлов. Вместо этого следует применять команды gcb и gcs, а полученные значения присваивать переменным системы MATLAB.
Текущая система и текущий блок
Команды gcb и gcs могут быть использованы только в процедурах ответных вызовов Simulink. Использование этих команд в процедурах ответных вызовов, связанных с управлением графическим интерфейсом пользователя, не гарантирует, что данный блок или модель системы являются текущими. Например, команда gcb возвращает полный путь системы Simulink к блоку, который был последним выделен при помощи мыши, даже если этот блок находится в другом открытом окне модели системы Simulink.
Большинство процедур ответных вызовов, связанных с пользовательским интерфейсом, должны обращаться к различным параметрам модели системы Simulink, поэтому необходимо сохранять имя модели, системы или блока в локальной области, которая является доступной для функций ответного вызова.
Локальные переменные
Для организации ответных вызовов рекомендуется отдавать предпочтение М-функциям, которые, как правило, используют локальные переменные. Объявление в функциях одной или нескольких глобальных переменных может привести к возникновению ошибок, т. к. операция присвоения значения переменной возможна из любых функций.
Для задания данных, определенных пользователем, рекомендуется присваивать указанные значения параметру UserData или вводить значения в диалоговом окне маскированного блока.
Каждый блок Simulink имеет параметр UserData, которому можно присваивать значение любой переменной. Этот параметр не сохраняется вместе с моделью, поэтому он не может быть использован для хранения исходных данных. Параметр UserData доступен для блока системы Simulink лишь в течение того времени, пока окно модели открыто, поэтому удобен для хранения текущих значений параметров. Команда
set_param(gcb, 'UserData', value);
присваивает параметру UserData блока значение value. Функция
value=get_param(block, 'UserData');
позволяет извлечь значение параметра UserData. Здесь value может быть скалярной величиной, матрицей, массивом ячеек или структурой.
Ввод параметров диалоговых окон маскированных блоков является альтернативой задания параметра UserData. Переменные, определенные таким образом, доступны как функциям ответного вызова, так и любым блокам маскированной подсистемы. Значения переменных, связанных с каждым полем диалогового окна, обрабатываются как параметры маскированного блока (подсистемы), и могут быть установлены с помощью команды set_param, а извлечены при помощи команды get_param. Значения этих параметров должны вводиться в полях диалогового окна как строковые выражения.
