Программированиеи компьютеры /
←предыдущая следующая→
1 2
1.Классы вычислительных объектов
Объектно-ориентированный подход в программировании предполагает, что в программе должны быть определены классы, применяемых в программе объектов, составлены их описания, созданы экземпляры необходимых объектов и определено взаимодействие между ними.
Классом в системе Matlab принято называть определенную форму представления вычислительных объектовы в совокупности с правилами (процедурами) их преобразования. Класс определяет тип переменных, а правила – операции и функции, которые могут быть применены к этому типу. В свою очередь тип переменной определяет объем памяти, которая отводится на запись переменной в память, с структуру размещения данных в этом объеме памяти. Операции и функции, которые могут быть применены к объекту данного класса, определяют методы этого класса. Например, имеются такие встроенные классы вычислительных объектов, как double – числовые массивы в формате двойной точности, struct – массивы записей, sell – массивы ячеек. Каждому типу классов соответсвтуют собственные функции и операторы обработки, т.е. методы. Например, к объекту, принадлежащего классу array (массив) можно применить такие методы: size – для вычисления размеров матрицы, length – определение длины вектора, ndims – количество размерности массива и т.д.
Для преобразования и анализа свойств приборов и систем автоматического управления представляет большой интерес классы пакета Control System Toolbox.
Основным объектом этого пакета является родительский объект (класс) LTI (Linear Time-Invariant System), который позволяет исследовать линейные стационарные системы (ЛСС) автоматического управления.
Дочерние объекты (классы), т.е. подклассы класса LTI, соответсвуют трем разным представлениям ЛСС:
• tf - представление объектов в виде передаточных функций;
• zpk – представление информации об объекте, вычисляя нули, полюсы и коэффициент передачи;
• ss – представление описания объекта в пространстве состояния.
3.форм в другую, Первая и вторая применяются для преобразования модели в пространство состояния, третья — в передаточную функцию, а четвертая - в нули – полюсы - коэффициент передачи.
Модель, заданную как непрерывная, можно преобразовать в дискретную форму, воспользовавшись процедурой с2d в соответствии со схемой: sysd = c2d(sys, Ts, method)
Здесь sys — исходная непрерывная заданная модель, sysd - получаемый в результате работы процедуры дискретный исходной системы, Тs — задаваемое значение шага дискретизации, method — параметр, определяющий метод дискретизации. Последний параметр может принимать одно из значений:
• 'zoh' - соответствует применению экстраполятора нулевого порядка;
• 'foh' - соответствует применению экстраполятора первого порядка;
• 'tustin' - билинейная аппроксимация Тастина внутри интервала дискретизации;
• 'matched' - метод согласования нуля и полюса;
Далее рассмотрите примеры перевода введенного ранее непрерывного колебательного звена kzvl в дискретные звенья разными методами:
>>KZVD1 = c2d(kzv1, 0.01)
>>KZVd2 = c2d(kzv1, 0.01, ‘zoh’)
>>KZVd3 = c2d(kzv1, 0.01, ‘foh’)
>>KZVd4 = c2d(kzv1, 0.01, ‘tustin’)
>>KZVd6 = c2d(kzv1, 0.01, ‘matched’)
Процедура d2c осуществляет обратную операцию – переводит дискретную систему в непрерывную:
>> k1 = d2c(KZVd1)
>> k1 = d2c(KZVd1, ’tustin’)
Как можно убедиться, указанные операции являются взаимнообратными.
Процедура d2d позволяет переопределить дискретную систему, либо меняя шаг дискретизации:
• sysl = d2d(sys, Ts)
либо вводя групповые задержки Nd (целое, в количестве шагов дискретизации):
• sysl = d2d(sys, [], Nd)
Рассмотрите примеры. Вначале измените шаг
5.
>> Torsk = tf(25, [100 50])
и интегрирующего звена, описывающего переход от угловой скорости к углу поворота торпеды вокруг вертикали:
>> SkUg = tf(1, [1 0])
Определим ПФ последовательного соединения этих звеньев:
>> Tor = Torsk*SkUg
Сформируем цепь управления, входом которой является, угол рыскания торпеды, а выходом — момент, накладываемый на торпеду со стороны ее рулей направления. Ее будем предполагать состоящей из двух параллельно соединенных частей - части, управляемой гироскопом направления и представляющей собой обычное усилительное (статическое) звено:
>> GN = tf(2, 1)
и части, управляемой гиротахометром, которую можно представить как дифференцирующее-колебательное звено:
>> GT = tf([100 0], [1 10 100])
Определим передаточную функцию параллельно соединеных звеньев:
>> Izm = GN + GT
Теперь найдем модель всей системы автоматического управления угловым движением торпеды, рассматривая цепь управления как цепь отрицательной обратной связи для торпеды и пользуясь для объединения прямой и обратной цепи процедурой feedback:
>> sys = feedback(Tor, Izm)
После того как система сформирована, можно ввести при помощи процедуры set некоторые ее символьные описания. В частности, присвоить названия входам и выходам системы, а дать краткий комментарий к самой системе.
>> set (sys, ‘Input Name’, ‘Момент сил’, ‘Output Name’, ‘Угол рыскания’)
>> set (sys, ‘Notes’, ‘Угловое движение торпеды’)
>> get (sys)
2.1 Получение информации о модели
Чтобы получить отдельные характеристики (матрицы и векторы, описывающие пространство состояния, коэффициенты числителя и знаменателя передаточной функции и т.п.) полученной модели можно использовать одну из следующих процедур: tfdata (для получения векторов числителя и знаменателя передаточной функции системы), ssdata (для получения значений матриц уравнений пространства состояния) и zpkdata (для получения векторов значений полюсов и нулей системы).
>> [nom, den] = tfdata(sys, ‘v’)
>> sssys = ss(sys)
>> [A, B, C, D] = ssdata(sssys)
>> [z, p, k] = zpkdata(sys, ‘v’)
Процедура get дает возможность получить полную характери¬стику модели, включая имена входов и выходов, примечания, зна¬чения шага дискретизации и т.п. Например:
>> get(sys)
О числе входов и выходов системы можно узнать, обратившись к процедуре size:
>> size(sys)
>> size(ssys)
2.2 Анализ системы
Пакет CONTROL предоставляет широкий набор процедур, осуществляющих анализ САУ с самых различных точек зрения прежде всего, определение откликов системы на внешние воздействия как во временной, так и в частотной областях.
Для нахождения временных откликов системы на внешние воздействия некоторых видов предусмотрены функции:
• impulse - нахождение отклика системы на единичное импульсное входное воздействие;
• step - нахождение реакции системы на единичный скачок входного воздействия;
• initial - определение собственного движения системы при произвольных начальных условиях;
• lsim - определение реакции системы на входное воздействие произвольной формы, задаваемое в виде вектора его значений во времени;
Рассмотрим применение этих процедур на примере движет торпеды, параметры которой как САУ приведены ранее. Применяя процедуру step к созданной модели » step(sys), можно получить график переходной функции.. Аналогично, использование
)процедуры » impulse(sys) приведет к появлению в графическом окне графика импульсной переходной функции.
Чтобы применить процедуру initial, необходимо в число входных параметров включить, во-первых, полный вектор всех начальных условий по переменным состояния, а во-вторых, момент времени окончания процесса интегрирования: >> initial(ssys, [0 0 0 1], 20).
2.2 (1
Для применения процедуры lsim необходимо предварительно задать вектор t значений времени, в которых будут заданы значения входного воздействия, а затем задать соответствующий
←предыдущая следующая→
1 2
|
|