Mоделирование процессов и систем в Matlab (966709), страница 29
Текст из файла (страница 29)
Используется только для непрерывных систем. Используйте 020 для установки задержек а дискретных системах. Тб - Ц вЂ” для дискретных систем Имена вкодоа. Строка — для сишем с одним аходом. Массне ячеек из строк разиерои йпхт — для систем с несколькими входами (используйте синкопы ' ' для переменных без имени). Наприиер: '(отцие' или (ФгизС а!(егоп бейесйоп') Имена аыходоа. Строка — для систем с одним аыходои. Массив ячеек из строк размером йух1 — для систем с несколькими аыходами (используйте символы " для переменныхбез ииени).
Например рожеб или (зрееб';'апц(е о( ат(ас(() Заметки. Любая строка или массне ячеек из строк символов. Например Зта иодель создана а течение 2000 года' Дополнительная инфориация или данные. Используется любой из типов МАТ(АВ 1при!Мате Ои(ритйаве йосез Приведем перечень методов класса СТ1: вагц(п рага11е1 зеЬ бапр ей зр1 ау бззбаса Ьтего Ка1вап Ка1вб 1Чдгец 1Чгу 1 51п! 12! аицзсаЬе Ьа1геа1 ир1из грубаса пюбгеб птсйо15 51 ЦПВ 55255 рдзар Чсбс25ес цгав тври15е 1ПЬег12 Ьобе 55баса етд салоп гец г1осТ(пб 1п121а1 соппесс сочаг ПУЧи155 ОЬзч езс1 в еча1Тг зсер ЬТбайа г1оси5 !зсмк ссгЬ Тцг(б !5515о 121сдесЕ рабе зег!ез Ьгапце Плат!оп зуз - )С!(р.в.Т) 5(П Конструктор (Т1-объекта 3 5Т5 - СТПР,Н) создает СТ1-обьект размером рхп З 5Т5 - СТ1(Р.Н.Т) создает СТ1-объект размером риз с дискретон временм Т 5 По умолчанию систена непрерывна. а имена входа/выхода маляются $ зекторани ячеек с пустыми с!роками п1 - пагц!и: еггог(пагцсйк(1.3.п!)) тг !за(р,'1С!') 5 Дтблироаание СТ1-обьекта 5У5 Р: ге(игл е)зет( и! — 3 5 Т вЂ” О.
Конструктором ГП-объектов является файл (Ь).пт в подкаталоге (ю СТ1. Он создает только шаблон ГП-объекта по некоторым его параметрам, Ниже приведен текст шаблона. Производные классы зуз.Тз Т; зуз.ТО П: е)зе зуз.Т5 0; зуз.та - пегая(1.в); епе езтг - (''»; зуз.1прцгнвпе - езтг(онез(в, Ц.1): зуз.сцтрцгнаве - езтг(онез(р.
1). 1): зуз.иопез - (): зуз.нзеграта - П: зуз.пега)он - 1.0; зуз - с)азз(зуз.')Пт')-. т конец 6)йт/)тт. в Как видно из приведенного описания, непосредственное применение конструктора )гт позволяет задать только количество входов и выходов ЛСС, а также величину дискрета времени. Остальные атрибуты ЕТ1-объекта могут быть определены только с использованием других процедур: имена входов и выходов, некоторые вспомогательные данные — посредством процедуры зег; конкретные числовые характеристики ЛСС вЂ” с помощью одного из конструкторов дочерних классов. Рассмотрим пример создания ЕТ1-объекта для непрерывной ОМ-системы. » зуз )йт(1.1) )Гт оЬ)ест Убедимся, что созданный 1.Т1-объект имеет указанные параметры — воспользуемся процедурой яег(зуз) для получения значений атрибутов етого объекта.
» яей(зуз) Тз 0 ТО 0 [прцтивпе - (") Оцгрцпнаве - (") Иагез - () ОзегОата " П Как видите, большинство полей созданного ЕТ1-объекта пусты, только два из них равны нулю. Кроме того, из описания конструктора следует, что обращение к нему не предусматривает возможности установки значений таких полей ЕТ1-объекта, как [прцгнаве, ОцгриТИаве, Иопез и [)зег0ага.
Последнее можно сделать, лишь используя специальную функцию зег, обращаясь к ней таким образом: зег(<иня [Т1-обьента>.'<иия поля>'. <значение»). Рассмотрим зто на примере установки значений некоторых из указанных полей в уже сформированном ЕТ1-объекте зуз. » зег(зуз, '1нрцтнапе', 'угон', 'Оцзрцгйаве'. 'Напряиение'.
'Иопез', Тирптаионетр') Проконтролируем результат. » яее(зуз) Тз 0 ТО 0 [ирцтнаве - ('Угон') 154 Урок 4 ° Объекпю-ориентированное программирование оигринтапе - ('напрхиение'1 иотет - ('Гиротахонетр'1 05етэдтз П Подробнее с методами пакета Сопгго! и их использованном можно ознакомиться в главе 6. ! ример создания класса ро!употп Создание нового класса рассмотрим на примере класса многочленов. Назовем его ро1упап.
Объектом этого класса будет полипом, то есть функция одной переменной (например, х). р(х) - апих п + ... + а2хх"2+ а1их+ аэ Очевидно, полипом как функцию можно полностью определить целым положительным числом и, задающим наибольший показатель степени аргумента, коэффициент при котором не равен нулю (ап не равно нулю), и вектором его коэффициентов, имеющим длину и+1. с - [вп ... в2 в1 а01 Создание подкаталога 9~ро!упо!и Для создания подкаталога вызовите из командного окна команду Файл ° Открыть, в появившемся окне перейдите к палке Тоо!Ьох1й(а2(аЬ'1ро!У(нп и воспользуйтесь кнопкой создания новой папки в этом окне, чтобы открыть папку по имени Я РО(.УЙОИ.
Перейдя в нее, вы будете готовы к созданию М-файлов нового класса. Конструктор класса Первый шаг при создании нового класса объектов — создание консирукаора, ро1упопт-объекта, то есть М-файла, который образует новый ро1упопт-объект по некоторым заданным числовым данным. Для этого прежде необходимо установить структуру ро1упош-объекта в виде записи.
Из характеристики полинома как математического объекта следует, что можно выбрать представление ро1упопт-объекта в виде записи, которая состоит из двух полей: О и — целое число„задающее порядок полинома; О с — вектор коэффициентов полинома, имеющий длину и 1. Очевидно, входным аргументом ро1утюш-обьекта должен быть заданный вектор его коэффициентов. В процедуре конструктора нужно предусмотреть такие операции: О создание структуры (записи) р с полями р.
и и р. с; О преобразование этой структуры в ро1упош-объект. Последнее осуществляется посредством специальной функции с)азы р - с)авв(р.' инх класа>') Пример создания класса ро(упопт Ниже приведен возможный текст М-файла ро(уполз. П). Гцпсстоп Р Р01упош(ч,с5): $ РОЕТИОИ вЂ” конструктор ро1упсш-обьектов 3 Под ро1упсш-обьектои понинается обьект языка ИАТ(ЛО, который является звгисью с двуня поляки: $ .с — вектор-строка. Содершашая коэффициенты полиноиа, располоиениые в порядке 3 уиеньшения степени аргуиента: 3 .п — число. Равное порядку полиноиа 5 р - РОЕУДЕИ(ч) фориирует ро1упсш-объект "р" по заданнону вентору ч", $ который состоит из значений коз)фициентов будушего полинона. $ в порядке уиеньшения степени аргуиента д р - РО(удОИ(ч.сз) фсрнирует ро1упов-обьект р" по заданнону вектору "ч" корней полинона $ и значению "сэ" его старшего козф)ициента 1Г пагдтп О $ Эта часть Р.с-Ц: $ создает пустой полинон-обьект, р.п - О: т если Отсутствуют аргуиенты р - с!аэз(р.'ро1упоз'): е15етб тза(ч.'ро1упса') $ Эта часть создает дубликат, р ч 5 если аргунент является ро1улош-обьектон е15етб пагдтп — 2 т Эта часть работает.
если в обращении $ есть два аргуиента.то есть задан вектор корней попинона 1Г с5 О $ Если старший коэффициен~ равен нулю. С5 1' Х его следует залепить единицей: епб К = 1епдсц(ч); $ Определение длины заданного вектора коэффициентов Гог 1 - 1 : К ч5(1.:) (1 -ч(1)В епб р.п - К: т Определение порядка полинона Р.с С5ич5(1.:): $ Шорнирование Рог и 2: К д вектора Р.с сопч(р.с.ч5(п.:)): $ коэффициентов еп6 $ полиноиа р - С1а55(р.'ро1угою'): д Присвоение нетки ро1угоя-обьекта $ Эта часть работает.
если аргуиент ояин. $ то есть задан вектор коэффициентов е15е К - 1епдгл(ч).- п-К: ш-1; н)п1е ч(ш) -= 0 $ Этот цикл соирашает длину входного вектора п-п-1; $ (уиеньшает порядок полиноиа) в случае. ш - ш + 1: д если первые злеиенты вектора егк1 Д равны нулю р.п - п - 1: д Тут присваиваются значения полян р.с - ч(К - п + 1:епб); Д записи будуюего ро1упов-обьекта р - С1аэз(р.'ро1упош'): $ Присвоение негин ро1упош-обьекту нк) $ Завершение конструктора РОЕУДОИ Система МАТ1 АВ позволяет вызывать конструктор без аргументов. В атом случае конструктор может образовать шаблон объекта с пустыми полями. Возможно также, что конструктор будет вызываться с входным аргументом, который уже является полипом-объектом. Тогда конструктор должен создать дубликат входного аргумента.
Функция 15а проверяет принадлежносп входного аргумента к указанному классу. Если аргумент существует и является единственным, он перестраивается таким образом, что становится вектором-строкой и присваивается полю .с результата. Урок гв ° Объектно-ориентированное программирование При наличии двух аргументов первый из них является вектором корней полинома, а второй — значением старшего коэффициента полинома. Поскольку в этом случае порядок полинома обязательно должен быль равен числу корней, старший коэффициент не может быть равным нулю.
Поэтому, если второй аргумент ошибочно введен равным нулю, он исправляется на единицу. Функция с) азз используется для присвоения результату метки, ко)орал определяет его как ро1упот-объект. Процедура символьного представления ро1упогп-объекта Следующим шагом в формировании класса ро)увод целесообразно сделать создание М-файла, который должен образовывать символьное представление заданного ро1уп(яп-объекта. Такое представление позволит проверять правильность формирования ро!упош-объектов и контролировать нравнльность действий создаваемых методов класса ро)упои, а также получать наглядные результаты преобразований полиномов в программах.
Создадим этот М-файл в подкаталоге ®РО[УМОИ и назовем его с)заг. Единственным аргументом процедуры с))аг является заданный ро!увоза-обьект р, а выходной величиной — массив символов з, являющийся символьным представлением полинома. Ниже приведен вариант такого М-файла, формирующий символьную строку вида чзначение ан "х и + ... + <значение а2>нх"2 + <значение а)>"х + ... + <значение аОь с изъятием членов, коэффициенты при которых равны нулю. Гипс(топ з - сдаг(р) $ ИМ.УКОМ/СНАД Оорнирует синвольное представление полинона с - р.с; 1Г аИ(с — О) з 0 е) зе о-р.п: и 0+1: з-П: Гог )г - ): и а - с(х); 1Г а О: 1Г 1звтрту(з) В а — ) 5 = [5 'х"' тпт25тг(ОП: епо 1à — 15евреу(з) 11 а > О 3" [5'+ 3: е) зе з [3 - ]: а - -а: епо епо 1Га ЦО О в - [з п(и2згг(аП: 1ГОнО Пример создания класса ро(упоп~ 157 5 (5 в ]: епо епд 170' 2 5 - (5 "х"' (п(25сг(ОЦ: е15егг Π— 1 5 (5 х ]: епс нк( 0=0-1: епо епс 3 Зввереенне Р(М.тйОИ/СнАВ Для того чтобы эта символьная строка выводилась на экран, нужно создать еще один М-файл с именем т((вр(аула в том же подкаталоге ®РО(.:т)(О)(.