Теория автоматического управления конспект лекций (ТАУ). Конспект лекций по тау Теория автоматизированного управления


При вопрос по реализации ПИД-регуляторов несколько глубже чем и кажется. Настолько, что юных самоделкиных, решивших, реализовать такую схему регулирования ждет немало открытий чудных, а тема актуальная. Так что надеюсь сей опус, кому-нибудь да пригодиться, поэтому приступим.

Попытка номер раз

В качестве примера попытаемся реализовать схему регулирования на примере управления поворотом в простенькой космической 2D-аркаде, по шагам, начиная с самого начала (не забыли, что это туториал?).


Почему не 3D? Потому что реализация не измениться, за исключением того, что придется воротить ПИД-регулятор для контроля тангажа, рысканья и крена. Хотя вопрос корректного применения ПИД-регулирования вместе с кватернионами действительно интересный, возможно в будущем его и освящу, но даже в NASA предпочитают углы Эйлера вместо кватернионов, так что обойдемся простенькой моделью на двухмерной плоскости.


Для начала создадим сам объект игровой объект космического корабля, который будет состоять из собственно самого объекта корабля на верхнем уровне иерархии, прикрепим к нему дочерний объект Engine (чисто спецэффектов ради). Вот как это выглядит у меня:



А на сам объект космического корабля накидаем в инспекторе всяческих компонент. Забегая вперед, приведу скрин того, как он будет выглядеть в конце:



Но это потом, а пока в нем еще нет никаких скриптов, только стандартный джентльменский набор: Sprite Render, RigidBody2D, Polygon Collider, Audio Source (зачем?).


Собственно физика у нас сейчас самое главное и управление будет осуществляться исключительно через неё, в противном случае, применение ПИД-регулятора потеряло бы смысл. Масса нашего космического корабля оставим также в 1 кг, а все коэффициенты трения и гравитации равны нулю - в космосе же.


Т.к. помимо самого космического корабля есть куча других, менее умных космических объектов, то сначала опишем родительский класс BaseBody , который в себе будет содержать ссылки на на наши компоненты, методы инициализации и уничтожения, а также ряд дополнительных полей и методов, например для реализации небесной механики:


BaseBody.cs

using UnityEngine; using System.Collections; using System.Collections.Generic; namespace Assets.Scripts.SpaceShooter.Bodies { public class BaseBody: MonoBehaviour { readonly float _deafultTimeDelay = 0.05f; public static List _bodies = new List(); #region RigidBody public Rigidbody2D _rb2d; public Collider2D _c2d; #endregion #region References public Transform _myTransform; public GameObject _myObject; ///

/// Объект, который появляется при уничтожении /// public GameObject _explodePrefab; #endregion #region Audio public AudioSource _audioSource; /// /// Звуки, которые проигрываются при получении повреждения /// public AudioClip _hitSounds; /// /// Звуки, которые проигрываются при появлении объекта /// public AudioClip _awakeSounds; /// /// Звуки, которые воспроизводятся перед смертью /// public AudioClip _deadSounds; #endregion #region External Force Variables /// /// Внешние силы воздйствующие на объект /// public Vector2 _ExternalForces = new Vector2(); /// /// Текущий вектор скорости /// public Vector2 _V = new Vector2(); /// /// Текущий вектор силы гравитации /// public Vector2 _G = new Vector2(); #endregion public virtual void Awake() { Init(); } public virtual void Start() { } public virtual void Init() { _myTransform = this.transform; _myObject = gameObject; _rb2d = GetComponent(); _c2d = GetComponentsInChildren(); _audioSource = GetComponent(); PlayRandomSound(_awakeSounds); BaseBody bb = GetComponent(); _bodies.Add(bb); } /// /// Уничтожение персонажа /// public virtual void Destroy() { _bodies.Remove(this); for (int i = 0; i < _c2d.Length; i++) { _c2d[i].enabled = false; } float _t = PlayRandomSound(_deadSounds); StartCoroutine(WaitAndDestroy(_t)); } /// /// Ждем некоторое время перед уничтожением /// /// Время ожидания /// public IEnumerator WaitAndDestroy(float waitTime) { yield return new WaitForSeconds(waitTime); if (_explodePrefab) { Instantiate(_explodePrefab, transform.position, Quaternion.identity); } Destroy(gameObject, _deafultTimeDelay); } /// /// Проигрывание случайного звука /// /// Массив звуков /// Длительность проигрываемого звука public float PlayRandomSound(AudioClip audioClip) { float _t = 0; if (audioClip.Length > 0) { int _i = UnityEngine.Random.Range(0, audioClip.Length - 1); AudioClip _audioClip = audioClip[_i]; _t = _audioClip.length; _audioSource.PlayOneShot(_audioClip); } return _t; } /// /// Получение урона /// /// Уровень урона public virtual void Damage(float damage) { PlayRandomSound(_hitSounds); } } }


Вроде описали все что надо, даже больше чем нужно (в рамках этой статьи). Теперь отнаследуем от него класс корабля Ship , который должен уметь двигаться и поворачивать:


SpaceShip.cs

using UnityEngine; using System.Collections; using System.Collections.Generic; namespace Assets.Scripts.SpaceShooter.Bodies { public class Ship: BaseBody { public Vector2 _movement = new Vector2(); public Vector2 _target = new Vector2(); public float _rotation = 0f; public void FixedUpdate() { float torque = ControlRotate(_rotation); Vector2 force = ControlForce(_movement); _rb2d.AddTorque(torque); _rb2d.AddRelativeForce(force); } public float ControlRotate(Vector2 rotate) { float result = 0f; return result; } public Vector2 ControlForce(Vector2 movement) { Vector2 result = new Vector2(); return result; } } }


Пока в нем нет ничего интересно, на текущий момент это просто класс-заглушка.


Также опишем базовый(абстрактный) класс для всех контроллеров ввода BaseInputController:


BaseInputController.cs

using UnityEngine; using Assets.Scripts.SpaceShooter.Bodies; namespace Assets.Scripts.SpaceShooter.InputController { public enum eSpriteRotation { Rigth = 0, Up = -90, Left = -180, Down = -270 } public abstract class BaseInputController: MonoBehaviour { public GameObject _agentObject; public Ship _agentBody; // Ссылка на компонент логики корабля public eSpriteRotation _spriteOrientation = eSpriteRotation.Up; //Это связано с нестандартной // ориентации спрайта "вверх" вместо "вправо" public abstract void ControlRotate(float dt); public abstract void ControlForce(float dt); public virtual void Start() { _agentObject = gameObject; _agentBody = gameObject.GetComponent(); } public virtual void FixedUpdate() { float dt = Time.fixedDeltaTime; ControlRotate(dt); ControlForce(dt); } public virtual void Update() { //TO DO } } }


И наконец, класс контроллера игрока PlayerFigtherInput :


PlayerInput.cs

using UnityEngine; using Assets.Scripts.SpaceShooter.Bodies; namespace Assets.Scripts.SpaceShooter.InputController { public class PlayerFigtherInput: BaseInputController { public override void ControlRotate(float dt) { // Определяем позицию мыши относительно игрока Vector3 worldPos = Input.mousePosition; worldPos = Camera.main.ScreenToWorldPoint(worldPos); // Сохраняем координаты указателя мыши float dx = -this.transform.position.x + worldPos.x; float dy = -this.transform.position.y + worldPos.y; //Передаем направление Vector2 target = new Vector2(dx, dy); _agentBody._target = target; //Вычисляем поворот в соответствии с нажатием клавиш float targetAngle = Mathf.Atan2(dy, dx) * Mathf.Rad2Deg; _agentBody._targetAngle = targetAngle + (float)_spriteOrientation; } public override void ControlForce(float dt) { //Передаем movement _agentBody._movement = Input.GetAxis("Vertical") * Vector2.up + Input.GetAxis("Horizontal") * Vector2.right; } } }


Вроде бы закончили, теперь наконец можно перейти к тому, ради чего все это затевалось, т.е. ПИД-регуляторам (не забыли надеюсь?). Его реализация кажется простой до безобразия:


using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Assets.Scripts.Regulator { // Этот атрибут необходим для того что бы поля регулятора // отображались в инспекторе и сериализовывались public class SimplePID { public float Kp, Ki, Kd; private float lastError; private float P, I, D; public SimplePID() { Kp = 1f; Ki = 0; Kd = 0.2f; } public SimplePID(float pFactor, float iFactor, float dFactor) { this.Kp = pFactor; this.Ki = iFactor; this.Kd = dFactor; } public float Update(float error, float dt) { P = error; I += error * dt; D = (error - lastError) / dt; lastError = error; float CO = P * Kp + I * Ki + D * Kd; return CO; } } }

Значения коэффициентов по умолчанию возьмем с потолка: это будет тривиальный единичный коэффициент пропорционального закона управления Kp = 1, небольшое значение коэффициента для дифференциального закона управления Kd = 0.2, который должен устранить ожидаемые колебания и нулевое значение для Ki, которое выбрано потому, что в нашей программной модели нет никаких статичных ошибок (но вы всегда можете их внести, а потом героически побороться с помощью интегратора).


Теперь вернемся к нашему классу SpaceShip и попробуем заюзать наше творение в качестве регулятора поворота космического корабля в методе ControlRotate:


public float ControlRotate(Vector2 rotate) { float MV = 0f; float dt = Time.fixedDeltaTime; //Вычисляем ошибку float angleError = Mathf.DeltaAngle(_myTransform.eulerAngles.z, targetAngle); //Получаем корректирующее ускорение MV = _angleController.Update(angleError, dt); return MV; }

ПИД-регулятор будет осуществлять точное угловое позиционировая космического корабля только за счет крутящего момента . Все честно, физика и САУ, почти как в реальной жизни.


И без этих ваших Quaternion.Lerp

if (!_rb2d.freezeRotation) rb2d.freezeRotation = true; float deltaAngle = Mathf.DeltaAngle(_myTransform.eulerAngles.z, targetAngle); float T = dt * Mathf.Abs(_rotationSpeed / deltaAngle); // Трансформируем угол в вектор Quaternion rot = Quaternion.Lerp(_myTransform.rotation, Quaternion.Euler(new Vector3(0, 0, targetAngle)), T); // Изменяем поворот объекта _myTransform.rotation = rot;


Получившейся исходный код Ship.cs под спойлером

using UnityEngine; using Assets.Scripts.Regulator; namespace Assets.Scripts.SpaceShooter.Bodies { public class Ship: BaseBody { public GameObject _flame; public Vector2 _movement = new Vector2(); public Vector2 _target = new Vector2(); public float _targetAngle = 0f; public float _angle = 0f; public SimplePID _angleController = new SimplePID(); public void FixedUpdate() { float torque = ControlRotate(_targetAngle); Vector2 force = ControlForce(_movement); _rb2d.AddTorque(torque); _rb2d.AddRelativeForce(force); } public float ControlRotate(float rotate) { float MV = 0f; float dt = Time.fixedDeltaTime; _angle = _myTransform.eulerAngles.z; //Вычисляем ошибку float angleError = Mathf.DeltaAngle(_angle, rotate); //Получаем корректирующее ускорение MV = _angleController.Update(angleError, dt); return MV; } public Vector2 ControlForce(Vector2 movement) { Vector2 MV = new Vector2(); //Кусок кода спецэффекта работающего двигателя ради if (movement != Vector2.zero) { if (_flame != null) { _flame.SetActive(true); } } else { if (_flame != null) { _flame.SetActive(false); } } MV = movement; return MV; } } }


Все? Расходимся по домам?



WTF! Что происходит? Почему корабль поворачивается как-то странно? И почему он так резко отскакивает от других объектов? Неужели этот глупый ПИД-регулятор не работает?


Без паники! Давайте попробуем разобраться что происходит.


В момент получения нового значения SP, происходит резкий (ступенчатый) скачок рассогласования ошибки, которая, как мы помним, вычисляется вот так: соответственно происходит резкий скачок производной ошибки , которую мы вычисляем в этой строчке кода:


D = (error - lastError) / dt;

Можно, конечно, попробовать другие схемы дифференцирования , например, трехточечную, или пятиточечную, или… но все равно это не поможет. Ну вот не любят производные резких скачков - в таких точках функция не является дифференцируемой . Однако поэкспериментировать с разными схемами дифференцирования и интегрирования стоит, но потом и не в этой статье.


Думаю что настал момент построить графики переходного процесса : ступенчатое воздействие от S(t) = 0 в SP(t) = 90 градусов для тела массой в 1 кг, длинной плеча силы в 1 метр и шагом сетки дифференцирования 0.02 с - прям как в нашем примере на Unity3D (на самом деле не совсем, при построении этих графиков не учитывалось, что момент инерции зависит от геометрии твердого тела, поэтому переходный процесс будет немножко другой, но все же достаточно похожий для демонстрации). Все величены на грифике приведены в абсолютных значениях:


Хм, что здесь происходит? Куда улетел отклик ПИД-регулятора?


Поздравляю, мы только что столкнулись с таким явлением как "удар" (kick). Очевидно, что в момент времени, когда процесс еще PV = 0, а уставка уже SP = 90, то при численном дифференцировании получим значение производной порядка 4500, которое умножится на Kd=0.2 и сложится с пропорциональным теромом, так что на выходе мы получим значение углового ускорения 990, а это уже форменное надругательство над физической моделью Unity3D (угловые скорости будут достигать 18000 град/с… я думаю это предельное значение угловой скорости для RigidBody2D).


  • Может стоит подобрать коэффициенты ручками, так чтобы скачок был не таким сильным?
  • Нет! Самое лучше чего мы таким образом сможем добиться - небольшая амплитуда скачка производной, однако сам скачок как был так и останется, при этом можно докрутиться до полной неэффективности дифференциальной составляющей.

Впрочем можете поэкспериментировать.

Попытка номер два. Сатурация

Логично, что привод (в нашем случае виртуальные маневровые двигатели SpaceShip), не может отрабатывать сколько угодно большие значения которые может выдать наш безумный регулятор. Так что первое что мы сделаем - сатурируем выход регулятора:


public float ControlRotate(Vector2 rotate, float thrust) { float CO = 0f; float MV = 0f; float dt = Time.fixedDeltaTime; //Вычисляем ошибку float angleError = Mathf.DeltaAngle(_myTransform.eulerAngles.z, targetAngle); //Получаем корректирующее ускорение CO = _angleController.Update(angleError, dt); //Сатурируем MV = CO; if (MV > thrust) MV = thrust; if (MV< -thrust) MV = -thrust; return MV; }

А очередной раз переписанный класс Ship полностью выглядит так

namespace Assets.Scripts.SpaceShooter.Bodies { public class Ship: BaseBody { public GameObject _flame; public Vector2 _movement = new Vector2(); public Vector2 _target = new Vector2(); public float _targetAngle = 0f; public float _angle = 0f; public float _thrust = 1f; public SimplePID _angleController = new SimplePID(0.1f,0f,0.05f); public void FixedUpdate() { _torque = ControlRotate(_targetAngle, _thrust); _force = ControlForce(_movement); _rb2d.AddTorque(_torque); _rb2d.AddRelativeForce(_force); } public float ControlRotate(float targetAngle, float thrust) { float CO = 0f; float MV = 0f; float dt = Time.fixedDeltaTime; //Вычисляем ошибку float angleError = Mathf.DeltaAngle(_myTransform.eulerAngles.z, targetAngle); //Получаем корректирующее ускорение CO = _angleController.Update(angleError, dt); //Сатурируем MV = CO; if (MV > thrust) MV = thrust; if (MV< -thrust) MV = -thrust; return MV; } public Vector2 ControlForce(Vector2 movement) { Vector2 MV = new Vector2(); if (movement != Vector2.zero) { if (_flame != null) { _flame.SetActive(true); } } else { if (_flame != null) { _flame.SetActive(false); } } MV = movement * _thrust; return MV; } public void Update() { } } }


Итоговая схема нашего САУ тогда станет уже вот такой


При этом уже становится понятно, что выход контроллера CO(t) немного не одно и тоже, что управляемая величина процесса MV(t) .


Собственно с этого места можно уже добавлять новую игровую сущность - привод , через которую и будет осуществляться управление процессом, логика работы которой может быть более сложной, чем просто Mathf.Clamp(), например, можно ввести дискретизацию значений (дабы не перегружать игровую физику величинами идущими шестыми после запятой), мертвую зону (опять таки не имеет смысл перегружать физику сверхмалыми реакциями), ввести задержку в упраление и нелинейность (например, сигмоиду) привода, после чего посмотреть, что из этого получится.


Запустив игру, мы обнаружим, что космический корабль стал наконец управляемым:



Если построить графики, то можно увидеть, что реакция контроллера стала уже вот такой:


Здесь уже используются нормированные величены, углы поделены на значение SP, а выход контроллера отнормирован относительно максимального значения на котором уже происходит сатурация.

Ниже приведена известна таблица влияния увеличения параметров ПИД-регулятора (как уменьшить шрифт, а то таблица безе переносов не лезет? ):



А общий алгоритм ручной настройки ПИД-регулятора следующий:


  1. Подбираем пропорциональный коэффициенты при отключенных дифференциальных и интегральных звеньях до тех пор пока не начнутся автоколебания.
  2. Постепенно увеличивая дифференциальную составляющую избавляемся от автоколебаний
  3. Если наблюдается остаточная ошибка регулирования (смещение), то устраняем её за счет интегральной составляющей.

Каких-то общих значений параметров ПИД-регулятора нет: конкретные значения зависят исключительно от параметров процесса (его передаточной характеристики): ПИД-регулятор отлично работающий с одним объектом управления окажется неработоспособным с другим. Более того, коэффициенты при пропорциональной, интегральной и дифференциальной составляющих еще и взаимозависимы.


Попытка номер три. Еще раз производные

Приделав костыль в виде ограничения значений выхода контроллера мы так и не решили самую главную проблему нашего регулятора - дифференциальная составляющая плохо себя чувствует при ступенчатом изменении ошибки на входе регуляторе. На самом деле есть множество других костылей, например, в момент скачкообразного изменения SP "отключать" дифференциальную составляющую или же поставить фильтры нижних частот между SP(t) и операцией за счет которого будет происходить плавное нарастание ошибки, а можно совсем развернуться и впендюрить самый настоящий фильтр Калмана для сглаживания входных данных. В общем костылей много, и добавить наблюдателя конечно хотелось бы, но не в этот раз.


Поэтому снова вернемся к производной ошибки рассогласования и внимательно на неё посмотрим:



Ничего не заметили? Если хорошенько присмотреться, то можно обнаружить, что вообще-то SP(t), не меняется во времени (за исключением моментов ступенчатого изменения, когда регулятор получает новую команду), т.е. её производная равна нулю:





Иными словами, вместо производной ошибки, которая дифференцируема не везде мы можем использовать производную от процесса, который в мире классической механики как правило непрерывен и дифференцируем везде, а схема нашей САУ уже приобретет следующий вид:




Модифицируем код регулятора:


using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Assets.Scripts.Regulator { public class SimplePID { public float Kp, Ki, Kd; private float P, I, D; private float lastPV = 0f; public SimplePID() { Kp = 1f; Ki = 0f; Kd = 0.2f; } public SimplePID(float pFactor, float iFactor, float dFactor) { this.Kp = pFactor; this.Ki = iFactor; this.Kd = dFactor; } public float Update(float error, float PV, float dt) { P = error; I += error * dt; D = -(PV - lastPV) / dt; lastPV = PV; float CO = Kp * P + Ki * I + Kd * D; return CO; } } }

И немного изменим метод ControlRotate:


public float ControlRotate(Vector2 rotate, float thrust) { float CO = 0f; float MV = 0f; float dt = Time.fixedDeltaTime; //Вычисляем ошибку float angleError = Mathf.DeltaAngle(_myTransform.eulerAngles.z, targetAngle); //Получаем корректирующее ускорение CO = _angleController.Update(angleError, _myTransform.eulerAngles.z, dt); //Сатурируем MV = CO; if (CO > < -thrust) MV = -thrust; return MV; }

И-и-и-и… если запустить игру, то обнаружиться, что на самом деле ничего ничего не изменилось с последней попытки, что и требовалось доказать. Однако, если убрать сатурацию, то график реакции регулятора будет выглядеть вот так:


Скачок CO(t) по прежнему присутствует, однако он уже не такой большой как был в самом начале, а самое главное - он стал предсказуемым, т.к. обеспечивается исключительно пропорциональной составляющей, и ограничен максимально возможной ошибкой рассогласования и пропорциональным коэффициентом ПИД-регулятора (а это уже намекает на то, что Kp имеет смысл выбрать все же меньше единицы, например, 1/90f), но не зависит от шага сетки дифференцирования (т.е. dt ). В общем, я настоятельно рекомендую использовать именно производную процесса, а не ошибки.


Думаю теперь никого не удивит, но таким же макаром можно заменить на , однако останавливаться на этом мы не будем, можете сами поэкспериментировать и рассказать в комментариях, что из этого получилось (самому интересно)

Попытка номер четыре. Альтернативные реализации ПИД-регулятор

Помимо описанного выше идеального представления ПИД-регулятора, на практике часто применяется стандартная форма, без коэффициентов Ki и Kd , вместо которых используются временные постоянные.


Такой подход связан с тем, что ряд методик настройки ПИД-регулятора основан на частотных характеристиках ПИД-регулятора и процесса. Собственно вся ТАУ и крутится вокруг частотных характеристик процессов, поэтому для желающих углубиться, и, внезапно, столкнувшихся с альтернативной номенклатурой, приведу пример т.н. стандартной формы ПИД-регулятора:




где, - постоянная дифференцирования, влияющая на прогнозирование состояния системы регулятором,
- постоянная интегрирования, влияющая на интервал усреднения ошибки интегральным звеном.


Основные принципы настройки ПИД-регулятора в стандартной форме аналогичны идеализированному ПИД-регулятору:

  • увеличение пропорционального коэффициента увеличивает быстродействие и снижает запас устойчивости;
  • с уменьшением интегральной составляющей ошибка регулирования с течением времени уменьшается быстрее;
  • уменьшение постоянной интегрирования уменьшает запас устойчивости;
  • увеличение дифференциальной составляющей увеличивает запас устойчивости и быстродействие

Исходный код стандартной формы, вы можете найти под спойлером

namespace Assets.Scripts.Regulator { public class StandartPID { public float Kp, Ti, Td; public float error, CO; public float P, I, D; private float lastPV = 0f; public StandartPID() { Kp = 0.1f; Ti = 10000f; Td = 0.5f; bias = 0f; } public StandartPID(float Kp, float Ti, float Td) { this.Kp = Kp; this.Ti = Ti; this.Td = Td; } public float Update(float error, float PV, float dt) { this.error = error; P = error; I += (1 / Ti) * error * dt; D = -Td * (PV - lastPV) / dt; CO = Kp * (P + I + D); lastPV = PV; return CO; } } }

В качестве значений по умолчанию, выбраны Kp = 0.01, Ti = 10000, Td = 0.5 - при таких значениях корабль поворачивается достаточно быстро и обладает некоторым запасом устойчивости.


Помимо такой формы ПИД-регулятора, часто используется т.н. реккурентная форма :



Не будем на ней останавливаться, т.к. она актуальна прежде всего для хардверных программистов, работающих с FPGA и микроконтроллерами, где такая реализация значительно удобнее и эффективнее. В нашем же случае - давайте что-нибудь сваям на Unity3D - это просто еще одна реализация ПИД-контроллера, которая ни чем не лучше других и даже менее понятная, так что еще раз дружно порадуемся как хорошо программировать в уютненьком C#, а не в жутком и страшном VHDL, например.

Вместо заключения. Куда бы еще присобачить ПИД-регулятор

Теперь попробуем немного усложнить управление корабля используя двухконтурное управление: один ПИД-регулятор, уже знакомый нам _angleController, отвечает по прежнему за угловое позиционирование, а вот второй - новый, _angularVelocityController - контролирует скорость поворота:


public float ControlRotate(float targetAngle, float thrust) { float CO = 0f; float MV = 0f; float dt = Time.fixedDeltaTime; _angle = _myTransform.eulerAngles.z; //Контроллер угла поворота float angleError = Mathf.DeltaAngle(_angle, targetAngle); float torqueCorrectionForAngle = _angleController.Update(angleError, _angle, dt); //Контроллер стабилизации скорости float angularVelocityError = -_rb2d.angularVelocity; float torqueCorrectionForAngularVelocity = _angularVelocityController.Update(angularVelocityError, -angularVelocityError, dt); //Суммарный выход контроллера CO = torqueCorrectionForAngle + torqueCorrectionForAngularVelocity; //Дискретизируем с шагом 100 CO = Mathf.Round(100f * CO) / 100f; //Сатурируем MV = CO; if (CO > thrust) MV = thrust; if (CO < -thrust) MV = -thrust; return MV; }

Назначение второго регулятора - гашение избыточных угловых скоростей, за счет изменения крутящего момента - это сродни наличию углового трения, которое мы отключили еще при создании игрового объекта. Такая схема управления [возможно] позволит получить более стабильное поведение корабля, и даже обойтись только пропорциональными коэффициентами управления - второй регулятор будет гасить все колебания, выполняя функцию, аналогичную дифференциальной составляющей первого регулятора.


Помимо этого, добавим новый класс ввода игрока - PlayerInputCorvette, в котором повороты буду осуществляться уже за счет нажатия клавиш "вправо-влево", а целеуказание с помощью мыши мы оставим для чего-нибудь более полезного, например, для управления турелью. Заодно у нас теперь появился такой параметр как _turnRate - отвечающий за скорость/отзывчивость поворота (не понятно только куда его поместить лучше в InputCOntroller или все же Ship).


public class PlayerCorvetteInput: BaseInputController { public float _turnSpeed = 90f; public override void ControlRotate() { // Находим указатель мыши Vector3 worldPos = Input.mousePosition; worldPos = Camera.main.ScreenToWorldPoint(worldPos); // Сохраняем относительные координаты указателя мыши float dx = -this.transform.position.x + worldPos.x; float dy = -this.transform.position.y + worldPos.y; //Передаем направление указателя мыши Vector2 target = new Vector2(dx, dy); _agentBody._target = target; //Вычисляем поворот в соответствии с нажатием клавиш _agentBody._rotation -= Input.GetAxis("Horizontal") * _turnSpeed * Time.deltaTime; } public override void ControlForce() { //Передаем movement _agentBody._movement = Input.GetAxis("Vertical") * Vector2.up; } }

Также для наглядности накидаем на коленках скрипт для отображения отладочной информации

namespace Assets.Scripts.SpaceShooter.UI { public class Debugger: MonoBehaviour { Ship _ship; BaseInputController _controller; List _pids = new List(); List _names = new List(); Vector2 _orientation = new Vector2(); // Use this for initialization void Start() { _ship = GetComponent(); _controller = GetComponent(); _pids.Add(_ship._angleController); _names.Add("Angle controller"); _pids.Add(_ship._angularVelocityController); _names.Add("Angular velocity controller"); } // Update is called once per frame void Update() { DrawDebug(); } Vector3 GetDiretion(eSpriteRotation spriteRotation) { switch (_controller._spriteOrientation) { case eSpriteRotation.Rigth: return transform.right; case eSpriteRotation.Up: return transform.up; case eSpriteRotation.Left: return -transform.right; case eSpriteRotation.Down: return -transform.up; } return Vector3.zero; } void DrawDebug() { //Направление поворота Vector3 vectorToTarget = transform.position + 5f * new Vector3(-Mathf.Sin(_ship._targetAngle * Mathf.Deg2Rad), Mathf.Cos(_ship._targetAngle * Mathf.Deg2Rad), 0f); // Текущее направление Vector3 heading = transform.position + 4f * GetDiretion(_controller._spriteOrientation); //Угловое ускорение Vector3 torque = heading - transform.right * _ship._Torque; Debug.DrawLine(transform.position, vectorToTarget, Color.white); Debug.DrawLine(transform.position, heading, Color.green); Debug.DrawLine(heading, torque, Color.red); } void OnGUI() { float x0 = 10; float y0 = 100; float dx = 200; float dy = 40; float SliderKpMax = 1; float SliderKpMin = 0; float SliderKiMax = .5f; float SliderKiMin = -.5f; float SliderKdMax = .5f; float SliderKdMin = 0; int i = 0; foreach (SimplePID pid in _pids) { y0 += 2 * dy; GUI.Box(new Rect(25 + x0, 5 + y0, dx, dy), ""); pid.Kp = GUI.HorizontalSlider(new Rect(25 + x0, 5 + y0, 200, 10), pid.Kp, SliderKpMin, SliderKpMax); pid.Ki = GUI.HorizontalSlider(new Rect(25 + x0, 20 + y0, 200, 10), pid.Ki, SliderKiMin, SliderKiMax); pid.Kd = GUI.HorizontalSlider(new Rect(25 + x0, 35 + y0, 200, 10), pid.Kd, SliderKdMin, SliderKdMax); GUIStyle style1 = new GUIStyle(); style1.alignment = TextAnchor.MiddleRight; style1.fontStyle = FontStyle.Bold; style1.normal.textColor = Color.yellow; style1.fontSize = 9; GUI.Label(new Rect(0 + x0, 5 + y0, 20, 10), "Kp", style1); GUI.Label(new Rect(0 + x0, 20 + y0, 20, 10), "Ki", style1); GUI.Label(new Rect(0 + x0, 35 + y0, 20, 10), "Kd", style1); GUIStyle style2 = new GUIStyle(); style2.alignment = TextAnchor.MiddleLeft; style2.fontStyle = FontStyle.Bold; style2.normal.textColor = Color.yellow; style2.fontSize = 9; GUI.TextField(new Rect(235 + x0, 5 + y0, 60, 10), pid.Kp.ToString(), style2); GUI.TextField(new Rect(235 + x0, 20 + y0, 60, 10), pid.Ki.ToString(), style2); GUI.TextField(new Rect(235 + x0, 35 + y0, 60, 10), pid.Kd.ToString(), style2); GUI.Label(new Rect(0 + x0, -8 + y0, 200, 10), _names, style2); } } } }


Класс Ship также претерпел необратимые мутации и теперь должен выглядеть вот так:

namespace Assets.Scripts.SpaceShooter.Bodies { public class Ship: BaseBody { public GameObject _flame; public Vector2 _movement = new Vector2(); public Vector2 _target = new Vector2(); public float _targetAngle = 0f; public float _angle = 0f; public float _thrust = 1f; public SimplePID _angleController = new SimplePID(0.1f,0f,0.05f); public SimplePID _angularVelocityController = new SimplePID(0f,0f,0f); private float _torque = 0f; public float _Torque { get { return _torque; } } private Vector2 _force = new Vector2(); public Vector2 _Force { get { return _force; } } public void FixedUpdate() { _torque = ControlRotate(_targetAngle, _thrust); _force = ControlForce(_movement, _thrust); _rb2d.AddTorque(_torque); _rb2d.AddRelativeForce(_force); } public float ControlRotate(float targetAngle, float thrust) { float CO = 0f; float MV = 0f; float dt = Time.fixedDeltaTime; _angle = _myTransform.eulerAngles.z; //Контроллер угла поворота float angleError = Mathf.DeltaAngle(_angle, targetAngle); float torqueCorrectionForAngle = _angleController.Update(angleError, _angle, dt); //Контроллер стабилизации скорости float angularVelocityError = -_rb2d.angularVelocity; float torqueCorrectionForAngularVelocity = _angularVelocityController.Update(angularVelocityError, -angularVelocityError, dt); //Суммарный выход контроллера CO = torqueCorrectionForAngle + torqueCorrectionForAngularVelocity; //Дискретизируем с шагом 100 CO = Mathf.Round(100f * CO) / 100f; //Сатурируем MV = CO; if (CO > thrust) MV = thrust; if (CO < -thrust) MV = -thrust; return MV; } public Vector2 ControlForce(Vector2 movement, float thrust) { Vector2 MV = new Vector2(); if (movement != Vector2.zero) { if (_flame != null) { _flame.SetActive(true); } } else { if (_flame != null) { _flame.SetActive(false); } } MV = movement * thrust; return MV; } public void Update() { } } }


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

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

Затем информацию с датчиков требуется обработать, и этим занимаются специальные регуляторы, которые представляют собой какое-либо математическое выражение, запрограммированное в микроконтроллере (или собранное в электронной схеме), которое на основании данных об управляющем воздействии и данных с сенсоров формирует управляющий сигнал для оптимального управления рабочим органом (нагревательным элементом в системе умного обогревателя, двигателем и т.д.).

Здесь с помощью информационного преобразователя формируется обратная связь, которая позволяет системе автоматического управления САУ всегда быть в курсе последних изменений и не давать задающему воздействию монополию на управление системой, иначе без учета внешних возмущающих воздействий система бы ушла в разнос. Из-за наличия обратной связи такие системы получили название замкнутой. Имеются и разомкнутые системы, у которых нет совсем датчиков или прочих инструментов, информирующих о внешнем пространстве. Но они максимально просты и для управления сложными объектами практически не одходят, т.к требуется досконально знать весь объект, изучить и правильно описать его поведение во всех вероятных ситуациях. Поэтому такие системы не являются комплексными агрегатами и управляются по времени. Например, простейшая схема поливки цветов по таймеру.

Разомкнутые системы не представляют собой практического интереса, поэтому дальше будем рассматривать только замкнутые. На рисунке был показан пример с одним контуром, поскольку обратная связь там всего одна. Но для более точного управления сложными объектами необходимо контролировать несколько величин, влияющих на поведение объекта в целом, а значит требуется несколько сенсоров, несколько регуляторов и обратных связей. В итоге САУ трансформируется в многоконтурную.

С точки зрения структурной организации широкое распространение получили САУ с последовательной и параллельной коррекцией.


САУ с последовательной коррекцией


САУ с последовательной и параллельной коррекцией

Как видно из схем выше, эти САУ имеют различную организацию обратных связей и регуляторов. При последовательной коррекцией выходная величина регулятора внешнего контура является входной для регулятора внутреннего контура, т.е сначала корректируется одна, затем другая величина и умножается на предыдущую и так далее по всей цепочке. Такую САУ также называют системой подчиненного регулирования. При параллельной коррекцией сигналы с преобразователей следуют на вход одного регулятора, который должен все это обработать. В результате у каждой системы есть свои плюсы и минусы. САУ с параллельной коррекцией работают быстро, но очень сложны в отладке,т.к в одном регуляторе требуется учесть все возможные нюансы различных обратных связей. При последовательной коррекции регуляторы настраиваются последовательно и без особых проблем, но быстродействие таких систем не очень, т.к чем больше контуров, тем больше нескомпенсированных временных постоянных, и тем дольше сигнал идет до выхода.

Имеется также комбинированные САУ, которая способна на многое. Но в данном курсе лекций она рассматриваться не будет.

В первой лекции, вы узнаете что такое предмет и дисциплины (ТАУ) и краткая историческая справка
Классификация САУ (систем автоматического управления)

Передаточная функция
Частотные характеристики.
Временные функции и характеристики
Структурные схемы и их преобразование
Типовые звенья и их характеристики
Минимально- и неминимально-фазовые звенья
Частотные характеристики разомкнутых систем
Соединения некоторых типовых звеньев

Понятие устойчивости линейных непрерывных САУ
Критерий устойчивости Гурвица
Критерий устойчивости Михайлова
Критерий устойчивости Найквиста
Понятие запаса устойчивости

Показатели качества
Критерии качества переходного процесса
Последовательная коррекция динамических свойств
Параллельная коррекция

Попов Е.П. Теория линейных систем автоматического регулирования и управления. - М. Наука, 1989. - 304 с.
Теория автоматического управления. Ч.1. Теория линейных систем автоматического управления/ Н.А. Бабаков и др.; Под ред. А.А. Воронова. - М.: Высшая школа, 1986. - 367 с.
Бабаков Н.А. и др. Теория автоматического управления. Ч.1/Под ред. А.А. Воронова. - М.: Высшая школа, 1977. - 303 с.
Юревич Е.И. Теория автоматического управления. - М.: Энергия, 1975. - 416 с.
Бесекерский В.А. и др. Сборник задач по теории автоматического регулирования и управления. - М.: Наука, 1978. - 512 с.
Теория автоматического управления. Ротач В.Я - Рассмотрены положения теории автоматического управления с позиций ее применения целью построения систем управления технологическими процессами.
конспект лекция студента ботаника

Размер: px

Начинать показ со страницы:

Транскрипт

1 ТЕОРИЯ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ ДЛЯ «ЧАЙНИКОВ» КЮ Поляков Санкт-Петербург 8

2 КЮ Поляков, 8 «В ВУЗе нужно излагать материал на высоком профессиональном уровне Но поскольку этот уровень проходит значительно выше головы среднего студента, я буду объяснять на пальцах Это не очень профессионально, зато понятно» Неизвестный преподаватель Предисловие Эта методичка предназначена для первого знакомства с предметом Ее задача объяснить «на пальцах» основные понятия теории автоматического регулирования и сделать так, чтобы после ее прочтения вы смогли воспринимать профессиональную литературу на эту тему Нужно рассматривать это пособие только как фундамент, стартовую площадку для серьезного изучения серьезного предмета, который может стать очень интересным и увлекательным Есть сотни учебников по автоматическому управлению Но вся проблема в том, что мозг при восприятии новой информации ищет что-то знакомое, за что можно «зацепиться», и на этой основе «привязать» новое к уже известным понятиям Практика показывает, что читать серьезные учебники современному студенту сложно Не за что зацепиться Да и за строгими научными доказательствами часто ускользает суть дела, которая обычно достаточно проста Автор попытался «спуститься» на уровень ниже и выстроить цепочку от «житейских» понятий к понятиям теории управления Изложение на каждом шагу грешит нестрогостью, доказательства не приводятся, формулы используются только там, где без них нельзя Математик найдет здесь много недоговоренностей и упущений, поскольку (в соответствии с целями пособия) между строгостью и понятностью выбор всегда делается в пользу понятности От читателя требуются небольшие предварительные знания Нужно иметь представление о некоторых разделах курса высшей математики:) производных и интегралах;) дифференциальных уравнениях; 3) линейной алгебре, матрицах; 4) комплексных числах Благодарности Автор выражает глубокую признательность дф-мн АН Чурилову, ктн ВН Калиниченко и ктн ВО Рыбинскому, которые внимательно прочитали предварительную версию пособия и высказали много ценных замечаний, которые позволили улучшить изложение и сделать его более понятным

3 КЮ Поляков, 8 Содержание ОСНОВНЫЕ ПОНЯТИЯ 4 Введение 4 Системы управления4 3 Какие бывают системы управления? 7 МАТЕМАТИЧЕСКИЕ МОДЕЛИ Что нужно знать для управления? Связь входа и выхода 3 Как строятся модели? 4 Линейность и нелинейность 5 Линеаризация уравнений3 6 Управление 7 3 МОДЕЛИ ЛИНЕЙНЫХ ОБЪЕКТОВ 3 Дифференциальные уравнения 3 Модели в пространстве состояний 33 Переходная функция 34 Импульсная характеристика (весовая функция) 4 35 Передаточная функция5 36 Преобразование Лапласа 6 37 Передаточная функция и пространство состояний9 38 Частотные характеристики 3 39 Логарифмические частотные характеристики3 4 ТИПОВЫЕ ДИНАМИЧЕСКИЕ ЗВЕНЬЯ34 4 Усилитель 34 4 Апериодическое звено34 43 Колебательное звено36 44 Интегрирующее звено38 45 Дифференцирующие звенья Запаздывание 4 47 «Обратные» звенья4 48 ЛАФЧХ сложных звеньев 4 5 СТРУКТУРНЫЕ СХЕМЫ43 5 Условные обозначения 43 5 Правила преобразования44 53 Типовая одноконтурная система 45 6 АНАЛИЗ СИСТЕМ УПРАВЛЕНИЯ 47 6 Требования к управлению47 6 Процесс на выходе47 63 Точность Устойчивость 5 65 Критерии устойчивости57 66 Переходный процесс6 67 Частотные оценки качества63 68 Корневые оценки качества65 69 Робастность 66 7 СИНТЕЗ РЕГУЛЯТОРОВ 69 7 Классическая схема69 7 ПИД-регуляторы7 73 Метод размещения полюсов 7 74 Коррекция ЛАФЧХ 7 75 Комбинированное управление75 76 Инвариантность75 77 Множество стабилизирующих регуляторов 76 ЗАКЛЮЧЕНИЕ79 ЛИТЕРАТУРА ДЛЯ ПОСЛЕДУЮЩЕГО ЧТЕНИЯ8 3

4 КЮ Поляков, 8 Основные понятия Введение С древних времен человек хотел использовать предметы и силы природы в своих целях, то есть управлять ими Управлять можно неодушевленными предметами (например, перекатывая камень на другое место), животными (дрессировка), людьми (начальник подчиненный) Множество задач управления в современном мире связано с техническими системами автомобилями, кораблями, самолетами, станками Например, нужно поддерживать заданный курс корабля, высоту самолета, частоту вращения двигателя, температуру в холодильнике или в печи Если эти задачи решаются без участия человека, говорят об автоматическом управлении Теория управления пытается ответить на вопрос «как нужно управлять?» До XIX века науки об управлении не существовало, хотя первые системы автоматического управления уже были (например, ветряные мельницы «научили» разворачиваться навстречу ветру) Развитие теории управления началось в период промышленной революции Сначала это направление в науке разрабатывалось механиками для решения задач регулирования, то есть поддержания заданного значения частоты вращения, температуры, давления в технических устройствах (например, в паровых машинах) Отсюда происходит название «теория автоматического регулирования» Позднее выяснилось, что принципы управления можно успешно применять не только в технике, но и в биологии, экономике, общественных науках Процессы управления и обработки информации в системах любой природы изучает наука кибернетика Один из ее разделов, связанный главным образом с техническими системами, называется теорией автоматического управления Кроме классических задач регулирования, она занимается также оптимизацией законов управления, вопросами приспособляемости (адаптации) Иногда названия «теория автоматического управления» и «теория автоматического регулирования» используются как синонимы Например, в современной зарубежной литературе вы встретите только один термин control theory Системы управления Из чего состоит система управления? В задачах управления всегда есть два объекта управляемый и управляющий Управляемый объект обычно называют объектом управления или просто объектом, а управляющий объект регулятором Например, при управлении частотой вращения объект управления это двигатель (электромотор, турбина); в задаче стабилизации курса корабля корабль, погруженный в воду; в задаче поддержания уровня громкости динамик Регуляторы могут быть построены на разных принципах Самый знаменитый из первых механических регуляторов центробежный регулятор Уатта для стабилизации частоты вращения паровой турбины (на рисунке справа) Когда частота вращения увеличивается, шарики расходятся из-за увеличения центробежной силы При этом через систему рычагов немного закрывается заслонка, уменьшая поток пара на турбину Регулятор температуры в холодильнике или термостате это электронная схема, которая включает режим охлаждения (или нагрева), если температура становится выше (или ниже) заданной Во многих современных системах регуляторы это микропроцессорные устройства, компьютеры Они успешно управляют самолетами и космическими кораблями без участия человепар на турбину 4

5 КЮ Поляков, 8 ка Современный автомобиль буквально «напичкан» управляющей электроникой, вплоть до бортовых компьютеров Обычно регулятор действует на объект управления не прямо, а через исполнительные механизмы (приводы), которые могут усиливать и преобразовывать сигнал управления, например, электрический сигнал может «превращаться» в перемещение клапана, регулирующего расход топлива, или в поворот руля на некоторый угол Чтобы регулятор мог «видеть», что фактически происходит с объектом, нужны датчики С помощью датчиков чаще всего измеряются те характеристики объекта, которыми нужно управлять Кроме того, качество управления можно улучшить, если получать дополнительную информацию измерять внутренние свойства объекта Структура системы Итак, в типичную систему управления входят объект, регулятор, привод и датчики Однако, набор этих элементов еще не система Для превращения в систему нужны каналы связи, через них идет обмен информацией между элементами Для передачи информации могут использоваться электрический ток, воздух (пневматические системы), жидкость (гидравлические системы), компьютерные сети Взаимосвязанные элементы это уже система, которая обладает (за счет связей) особыми свойствами, которых нет у отдельных элементов и любой их комбинации Основная интрига управления связана с тем, что на объект действует окружающая среда внешние возмущения, которые «мешают» регулятору выполнять поставленную задачу Большинство возмущений заранее непредсказуемы, то есть носят случайный характер Кроме того, датчики измеряют параметры не точно, а с некоторой ошибкой, пусть и малой В этом случае говорят о «шумах измерений» по аналогии с шумами в радиотехнике, которые искажают сигналы Подводя итого, можно нарисовать структурную схему системы управления так: задание регулятор управление привод объект внешние возмущения обратная связь датчики шумы измерений Например, в системе управления курсом корабля объект управления это сам корабль, находящийся в воде; для управления его курсом используется руль, изменяющий направление потока воды; регулятор цифровая вычислительная машина; привод рулевое устройство, которое усиливает управляющий электрический сигнал и преобразует его в поворот руля; датчики измерительная система, определяющая фактический курс; внешние возмущения это морское волнение и ветер, отклоняющие корабль от заданного курса; шумы измерений это ошибки датчиков Информация в системе управления как бы «ходит по кругу»: регулятор выдает сигнал управления на привод, который воздействует непосредственно на объект; затем информация об объекте через датчики возвращается обратно к регулятору и все начинается заново Говорят, что в системе есть обратная связь, то есть регулятор использует информацию о состоянии объекта для выработки управления Системы с обратной связью называют замкнутыми, поскольку информация передается по замкнутому контуру 5

6 КЮ Поляков, 8 3 Как работает регулятор? Регулятор сравнивает задающий сигнал («задание», «уставку», «желаемое значение») с сигналами обратной связи от датчиков и определяет рассогласование (ошибку управления) разницу между заданным и фактическим состоянием Если оно равно нулю, никакого управления не требуется Если разница есть, регулятор выдает управляющий сигнал, который стремится свести рассогласование к нулю Поэтому схему регулятора во многих случаях можно нарисовать так: задание рассогласование (ошибка) алгоритм управления управление обратная связь Такая схема показывает управление по ошибке (или по отклонению) Это значит, что для того, чтобы регулятор начал действовать, нужно, чтобы управляемая величина отклонилась от заданного значения Блок, обозначенный знаком, находит рассогласование В простейшем случае в нем из заданного значения вычитается сигнал обратной связи (измеренное значение) Можно ли управлять объектом так, чтобы не было ошибки? В реальных системах нет Прежде всего, из-за внешних воздействий и шумов, которые заранее неизвестны Кроме того, объекты управления обладают инерционностью, то есть, не могут мгновенно перейти из одного состояния в другое Возможности регулятора и приводов (то есть мощность сигнала управления) всегда ограничены, поэтому быстродействие системы управления (скорость перехода на новый режим) также ограничена Например, при управлении кораблем угол перекладки руля обычно не превышает 3 35, это ограничивает скорость изменения курса Мы рассмотрели вариант, когда обратная связь используется для того, чтобы уменьшить разницу между заданным и фактическим состоянием объекта управления Такая обратная связь называется отрицательной, потому что сигнал обратной связи вычитается из задающего сигнала Может ли быть наоборот? Оказывается, да В этом случае обратная связь называется положительной, она увеличивает рассогласование, то есть, стремится «раскачать» систему На практике положительная обратная связь применяется, например, в генераторах для поддержания незатухающих электрических колебаний 4 Разомкнутые системы Можно ли управлять, не используя обратную связь? В принципе, можно В этом случае регулятор не получает никакой информации о реальном состоянии объекта, поэтому должно быть точно известно, как этот объект себя ведет Только тогда можно заранее рассчитать, как им нужно управлять (построить нужную программу управления) Однако при этом нельзя гарантировать, что задание будет выполнено Такие системы называют системами программного управления или разомкнутыми системами, поскольку информация передается не по замкнутому контуру, а только в одном направлении программа регулятор управление привод объект внешние возмущения Слепой и глухой водитель тоже может вести машину Некоторое время Пока он помнит дорогу и сможет правильно рассчитать свое место Пока на пути не встретятся пешеходы или другие машины, о которых он заранее не может знать Из этого простого примера ясно, что без 6

7 КЮ Поляков, 8 обратной связи (информации с датчиков) невозможно учесть влияние неизвестных факторов, неполноту наших знаний Несмотря на эти недостатки, разомкнутые системы применяются на практике Например, информационное табло на вокзале Или простейшая система управления двигателем, в которой не требуется очень точно поддерживать частоту вращения Однако с точки зрения теории управления разомкнутые системы малоинтересны, и мы не будем больше про них вспоминать 3 Какие бывают системы управления? Автоматическая система это система, работающая без участия человека Есть еще автоматизированные системы, в которых рутинные процессы (сбор и анализ информации) выполняет компьютер, но управляет всей системой человек-оператор, который и принимает решения Мы будем далее изучать только автоматические системы 3 Задачи систем управления Автоматические системы управления применяются для решения трех типов задач: стабилизация, то есть поддержание заданного режима работы, который не меняется длительное время (задающий сигнал постоянная, часто нуль); программное управление управление по заранее известной программе (задающий сигнал меняется, но заранее известен); слежение за неизвестным задающим сигналом К системам стабилизации относятся, например, авторулевые на кораблях (поддержание заданного курса), системы регулирования частоты вращения турбин Системы программного управления широко используются в бытовой технике, например, в стиральных машинах Следящие системы служат для усиления и преобразования сигналов, они применяются в приводах и при передаче команд через линии связи, например, через Интернет 3 Одномерные и многомерные системы По количеству входов и выходов бывают одномерные системы, у которых один вход и один выход (они рассматриваются в так называемой классической теории управления); многомерные системы, имеющие несколько входов и/или выходов (главный предмет изучения современной теории управления) Мы будем изучать только одномерные системы, где и объект, и регулятор имеют один входной и один выходной сигнал Например, при управлении кораблем по курсу можно считать, что есть одно управляющее воздействие (поворот руля) и одна регулируемая величина (курс) Однако, в самом деле это не совсем верно Дело в том, что при изменении курса меняется также крен и дифферент корабля В одномерной модели мы пренебрегаем этими изменениями, хотя они могут быть очень существенными Например, при резком повороте крен может достигнуть недопустимого значения С другой стороны, для управления можно использовать не только руль, но и различные подруливающие устройства, стабилизаторы качки и тп, то есть объект имеет несколько входов Таким образом, реальная система управления курсом многомерная Исследование многомерных систем достаточно сложная задача и выходит за рамки этого пособия Поэтому в инженерных расчетах стараются иногда упрощенно представить многомерную систему как несколько одномерных, и довольно часто такой метод приводит к успеху 33 Непрерывные и дискретные системы По характеру сигналов системы могут быть непрерывными, в которых все сигналы функции непрерывного времени, определенные на некотором интервале; дискретными, в которых используются дискретные сигналы (последовательности чисел), определенные только в отдельные моменты времени; 7

8 КЮ Поляков, 8 непрерывно-дискретными, в которых есть как непрерывные, так и дискретные сигналы Непрерывные (или аналоговые) системы обычно описываются дифференциальными уравнениями Это все системы управления движением, в которых нет компьютеров и других элементов дискретного действия (микропроцессоров, логических интегральных схем) Микропроцессоры и компьютеры это дискретные системы, поскольку в них вся информация хранится и обрабатывается в дискретной форме Компьютер не может обрабатывать непрерывные сигналы, поскольку работает только с последовательностями чисел Примеры дискретных систем можно найти в экономике (период отсчета квартал или год) и в биологии (модель «хищник-жертва») Для их описания применяют разностные уравнения Существуют также и гибридные непрерывно-дискретные системы, например, компьютерные системы управления движущимися объектами (кораблями, самолетами, автомобилями и др) В них часть элементов описывается дифференциальными уравнениями, а часть разностными С точки зрения математики это создает большие сложности для их исследования, поэтому во многих случаях непрерывно-дискретные системы сводят к упрощенным чисто непрерывным или чисто дискретным моделям 34 Стационарные и нестационарные системы Для управления очень важен вопрос о том, изменяются ли характеристики объекта со временем Системы, в которых все параметры остаются постоянными, называются стационарными, что значит «не изменяющиеся во времени» В этом пособии рассматриваются только стационарные системы В практических задачах часто дело обстоит не так радужно Например, летящая ракета расходует топливо и за счет этого ее масса изменяется Таким образом, ракета нестационарный объект Системы, в которых параметры объекта или регулятора изменяются со временем, называются нестационарными Хотя теория нестационарных систем существует (формулы написаны), применить ее на практике не так просто 35 Определенность и случайность Самый простой вариант считать, что все параметры объекта определены (заданы) точно, так же, как и внешние воздействия В этом случае мы говорим о детерминированных системах, которые рассматривались в классической теории управления Тем не менее, в реальных задачах точных данных у нас нет Прежде всего, это относится к внешним воздействиям Например, для исследования качки корабля на первом этапе можно считать, что волна имеет форму синуса известной амплитуды и частоты Это детерминированная модель Так ли это на практике? Естественно нет С помощью такого подхода можно получить только приближенные, грубые результаты По современным представлениям форма волны приближенно описывается как сумма синусоид, которые имеют случайные, то есть неизвестные заранее, частоты, амплитуды и фазы Помехи, шум измерений это тоже случайные сигналы Системы, в которых действуют случайные возмущения или параметры объекта могут изменяться случайным образом, называются стохастическими (вероятностными) Теория стохастических систем позволяет получать только вероятностные результаты Например, нельзя гарантировать, что отклонение корабля от курса всегда будет составлять не более, но можно попытаться обеспечить такое отклонение с некоторой вероятностью (вероятность 99% означает, что требование будет выполнено в 99 случаях из) 36 Оптимальные системы Часто требования к системе можно сформулировать в виде задачи оптимизации В оптимальных системах регулятор строится так, чтобы обеспечить минимум или максимум какого-то критерия качества Нужно помнить, что выражение «оптимальная система» не означает, что она действительно идеальная Все определяется принятым критерием если он выбран удачно, система получится хорошая, если нет то наоборот 8

9 КЮ Поляков, 8 37 Особые классы систем Если параметры объекта или возмущений известны неточно или могут изменяться со временем (в нестационарных системах), применяют адаптивные или самонастраивающиеся регуляторы, в которых закон управления меняется при изменении условий В простейшем случае (когда есть несколько заранее известных режимов работы) происходит простое переключение между несколькими законами управления Часто в адаптивных системах регулятор оценивает параметры объекта в реальном времени и соответственно изменяет закон управления по заданному правилу Самонастраивающаяся система, которая пытается настроить регулятор так, чтобы «найти» максимум или минимум какого-то критерия качества, называется экстремальной (от слова экстремум, обозначающего максимум или минимум) Во многих современных бытовых устройствах (например, в стиральных машинах) используются нечеткие регуляторы, построенные на принципах нечеткой логики Этот подход позволяет формализовать человеческий способ принятия решения: «если корабль ушел сильно вправо, руль нужно сильно переложить влево» Одно из популярных направлений в современной теории применение достижений искусственного интеллекта для управления техническими системами Регулятор строится (или только настраивается) на основе нейронной сети, которую предварительно обучает человекэксперт 9

10 КЮ Поляков, 8 Математические модели Что нужно знать для управления? Цель любого управления изменить состояние объекта нужным образом (в соответствии с заданием) Теория автоматического регулирования должна ответить на вопрос: «как построить регулятор, который может управлять данным объектом так, чтобы достичь цели?» Для этого разработчику необходимо знать, как система управления будет реагировать на разные воздействия, то есть нужна модель системы: объекта, привода, датчиков, каналов связи, возмущений, шумов Модель это объект, который мы используем для изучения другого объекта (оригинала) Модель и оригинал должны быть в чем-то похожи, чтобы выводы, сделанные при изучении модели, можно было бы (с некоторой вероятностью) перенести на оригинал Нас будут интересовать в первую очередь математические модели, выраженные в виде формул Кроме того, в науке используются также описательные (словесные), графические, табличные и другие модели Связь входа и выхода Любой объект взаимодействует с внешней средой с помощью входов и выходов Входы это возможные воздействия на объект, выходы это те сигналы, которые можно измерить Например, для электродвигателя входами могут быть напряжение питания и нагрузка, а выходами частота вращения вала, температура Входы независимы, они «приходят» из внешней среды При изменении информации на входе меняется внутреннее состояние объекта (так называют его изменяющиеся свойства) и, как следствие, выходы: вход x выход y Это значит, что существует некоторое правило, по которому элемент преобразует вход x в выход y Это правило называется оператором Запись y U[x] означает, что выход y получен в результате применения оператора U ко входу x Построить модель это значит найти оператор, связывающий входы и выходы С его помощью можно предсказать реакцию объекта на любой входной сигнал Рассмотрим электродвигатель постоянного тока Вход этого объекта это напряжение питания (в вольтах), выход частота вращения (в оборотах в секунду) Будем считать, что при напряжении В частота вращения равна об/сек, а при напряжении В об/сек, то есть частота вращения равна по величине напряжению Легко видеть, что действие такого оператора можно записать в виде U [ x] x Теперь предположим, что этот же двигатель вращает колесо и в качестве выхода объекта мы выбрали число оборотов колеса относительно начального положения (в момент t) В этом случае при равномерном вращении произведение x t дает нам количество оборотов за время t, то есть y(x t (здесь запись y (явно обозначает зависимость выхода от времени t) Можно ли считать, что этой формулой мы определили оператор U? Очевидно, что нет, потому что полученная зависимость справедлива только для постоянного входного сигнала Если напряжение на входе x (меняется (все равно как!), угол поворота запишется в виде интеграла U Конечно, это будет справедливо только в некотором диапазоне напряжений

11 КЮ Поляков, 8 t U[ x] x(dt Оператор, который действует по такому правилу, называется оператором интегрирования С помощью этого оператора можно, например, описать наполнение пустого бака водой Если сечение бака S (в м) постоянно по всей его высоте, то уровень воды h определяется как интеграл от потока воды q (в м 3 /с), деленный на S: h(q(dt, S Обратный оператор оператор дифференцирования вычисляет производную: dx(U[ x(] x& (dt Как мы увидим, этот оператор играет очень важную роль в описании объектов управления Обычно оператор дифференцирования обозначается буквой p Запись y (p x(внешне выглядит как «умножение» оператора p на сигнал x (, но на самом деле обозначает действие этого оператора, то есть дифференцирование: dx(p x(() dt Где встречаются такие операторы? Приведем примеры из электротехники Например, известно, что ток i (в амперах), проходящий по цепи с конденсатором, пропорционален производной от разности потенциалов u (в вольтах) на его пластинах: i du(i (C C p u(dt u Здесь C емкость конденсатора (измеряется в фарадах) Кроме того, падение напряжения u на катушке индуктивности пропорционально производной от проходящего тока i: i di(u (L L p i(dt u где L индуктивность (измеряется в генри) Оператор дифференцирования это идеальный (физически нереализуемый) оператор, его невозможно реализовать на практике Чтобы понять это вспомним, что при мгновенном изменении сигнала его производная (скорость возрастания) будет равна бесконечности, а никакое реальное устройство не может работать с бесконечными сигналами 3 Как строятся модели? Во-первых, математические модели могут быть получены теоретически из законов физики (законы сохранения массы, энергии, импульса) Эти модели описывают внутренние связи в объекте и, как правило, наиболее точны Рассмотрим RLC-цепочку, то есть последовательное соединение резистора с сопротивлением R (в омах), катушки индуктивности с индуктивностью L и конденсатора с емкостью C Она может быть описана с помощью двух уравнений: u (R i (L C u c (t di(u(uc(L R i(dt duc(i(C dt Первое уравнение означает, что разность потенциалов на концах RLC-цепочки равна сумме разностей потенциалов на всех промежуточных участках Разность потенциалов R i(на рези-

12 КЮ Поляков, 8 сторе вычисляется по закону Ома, а на катушке по формуле, приведенной в предыдущем параграфе Второе уравнение описывает связь между напряжением и током для конденсатора Вход этого объекта напряжение u (на концах цепочки, а выход разность потенциалов u c (на пластинах конденсатора Второй способ построение модели в результате наблюдения за объектом при различных входных сигналах (этим занимается теория идентификации) Объект рассматривается как «черный ящик», то есть, его внутреннее устройство неизвестно Мы смотрим, как он реагирует на входные сигналы, и стараемся подстроить модель так, чтобы выходы модели и объекта совпадали как можно точнее при разнообразных входах На практике часто используется смешанный способ: структура модели (вид уравнения, связывающего вход и выход) определяется из теории, а коэффициенты находят опытным путем Например, общий вид уравнений движения корабля хорошо известен, однако в этих уравнениях есть коэффициенты, которые зависят от многих факторов (формы корпуса, шероховатости поверхности и тп), так что их крайне сложно (или невозможно) найти теоретически В этом случае для определения неизвестных коэффициентов строят масштабные модели и испытывают их в бассейнах по специальным методикам В авиастроении для тех же целей используют аэродинамические трубы Для любого объекта управления можно построить множество различных моделей, которые будут учитывать (или не учитывать) те или иные факторы Обычно на первом этапе стараются описать объект как можно более подробно, составить детальную модель Однако при этом будет трудно теоретически рассчитать закон управления, который отвечает заданным требованиям к системе Даже если мы сможем его рассчитать, он может оказаться слишком сложным для реализации или очень дорогим С другой стороны, можно упростить модель объекта, отбросив некоторые «детали», которые кажутся разработчику маловажными Для упрощенной модели закон управления также получается проще, и с его помощью часто можно добиться желаемого результата Однако в этом случае нет гарантии, что он будет так же хорошо управлять полной моделью (и реальным объектом) Обычно используется компромиссный вариант Начинают с простых моделей, стараясь спроектировать регулятор так, чтобы он «подходил» и для сложной модели Это свойство называют робастностью (грубостью) регулятора (или системы), оно означает нечувствительность к ошибкам моделирования Затем проверяют работу построенного закона управления на полной модели или на реальном объекте Если получен отрицательный результат (простой регулятор «не работает»), усложняют модель, вводя в нее дополнительные подробности И все начинается сначала 4 Линейность и нелинейность Из школьной математики известно, что проще всего решать линейные уравнения С нелинейными уравнениями (квадратными, кубическими и др) работать намного сложнее, многие типы уравнений математика пока не умеет решать аналитически (точно) Среди операторов самые простые также линейные Они обладают двумя свойствами: умножение на константу: U[ α x] α U[ x], где α любая постоянная (то есть, при увеличении входа в несколько раз выход увеличивается во столько же раз); принцип суперпозиции: если на вход подать сумму двух сигналов, выход будет представлять собой сумму реакций того же оператора на отдельные сигналы: U [ x x] U[ x ] U[ x] Модели, которые описываются линейными операторами, называются линейными С ними можно работать с помощью методов теории линейных систем, которая наиболее развита и позволяет точно решать большинство известных практических задач В математике эти свойства называют однородность и аддитивность

13 КЮ Поляков, 8 Однако, все модели реальных систем нелинейные Это легко понять хотя бы потому, что всегда есть предельно допустимое значение входного сигнала при его превышении объект может просто выйти из строя или даже разрушиться (линейность нарушается) Методы исследования нелинейных операторов очень сложны математически, в теории нелинейных систем точные решения известны только для достаточно узкого круга задач Здесь пока больше «белых пятен», чем полученных результатов, хотя это научное направление активно развивается в последние годы Что же делать? Чаще всего сначала проводят линеаризацию нелинейной модели объекта (привода), то есть строят приближенную линейную модель Затем на основе этой модели проектируют закон управления, применяя точные методы теории линейных систем Наконец, проверяют полученный регулятор с помощью компьютерного моделирования на полной нелинейной модели Нужно отметить, что если объект или привод имеют так называемую «существенную» нелинейность, этот подход может не сработать Тогда приходится использовать методы нелинейной теории, а также компьютерное моделирование Моделирование стало очень популярным в последнее время, поскольку появились мощные компьютерные программы для проведения вычислительных экспериментов, и можно проверить поведение системы при разнообразных допустимых входных сигналах Таким образом, в классификацию систем управления в разделе 3 нужно добавить еще одно деление, может быть, самое существенное системы бывают линейные и нелинейные В линейных системах все звенья описываются линейными операторами, и это значительно упрощает работу с ними 5 Линеаризация уравнений Вы уже знаете, что в теории управления лучше всего разработаны методы исследования линейных систем Однако строго линейных систем в окружающем нас мире не существует Поэтому для того, чтобы эти методы можно было применить на практике, нужно выполнить линеаризацию построить приближенную линейную модель на основе более реалистичной нелинейной модели объекта 5 Алгебраические уравнения Представим себе бак с водой В нижней части бака просверлено отверстие, через которое вытекает вода Площадь сечения бака обозначим через S, а площадь сечения отверстия через S Построим модель, которая связывает уровень воды в баке h (в метрах) и расход вытекающей воды q (в м 3 /с) Эту связь можно найти с помощью закона Бернулли, который в данном случае принимает вид ρ v ρ g h Здесь ρ плотность жидкости (в кг/м 3), g 9, 8 м/с ускорение свободного падения, v скорость вытекания жидкости (в м/с) Отсюда получаем v gh Учитывая, что расход воды вычисляется как q S v, находим q α h, () где α S g постоянная величина Это статическая модель, потому что она не содержит производных, характеризующих изменение сигналов во времени Статическая модель описывает установившееся состояние (статический режим), когда в баке поддерживается постоянный уровень воды и поток вытекающей воды тоже постоянный h S S q 3

14 КЮ Поляков, 8 Очевидно, что модель () нелинейная, поскольку содержит h Линеаризовать ее значит приближенно заменить уравнение () линейным уравнением q k h, где k некоторый коэффициент Как его выбрать? На этот вопрос нет однозначного ответа Предположим, что уровень воды изменяется в интервале от до м Тогда один из вариантов вычислить коэффициент как угол наклона отрезка, соединяющего точки кривой q α h на концах этого интервала Для определенности далее везде принимаем α, тогда получаем k Конечно, эта модель очень грубая и дает большую ошибку, особенно для уровней в диапазоне от, до,6 Чтобы уменьшить ошибку, можно попробовать несколько изменить k (например, увеличив его до,), однако точность приближения по-прежнему будет невысока, хотя и чуть-чуть лучше, чем в первом случае q q k, k,77 k h 5 h Теперь предположим, что обычно уровень мало изменяется вблизи среднего значения h,5 м В этом случае можно применить другой подход Заметим, что в этой области кривая q α h почти совпадает с касательной в точке (,5;), угол наклона которой равен производной dq k,77 dh h,5 h h,5 Касательная это прямая с наклоном k, проходящая через точку (,5;), ее уравнение имеет вид q kh b Свободный член b определим из равенства kh b,5 b b,354, 4 так что получаем модель q h (3) 4 Это линейное уравнение, однако модель (3) нелинейная, поскольку для нее не выполняется, например, свойство умножения на константу Это легко проверить, сравнив U[ h] и U[ h] : U [ h] h, U[ h] h U[ h] 4 Принцип суперпозиции также не выполняется Для того, чтобы получить из (3) линейную модель, нужно записать уравнения в отклонениях от рабочей точки (h ; q), в которой мы определяли наклон касательной Из (3) следует, что 4

15 КЮ Поляков, 8 q q (h h) (4) 4 Поскольку график зависимости (3) проходит через точку (h ; q), можно применить равенство q h Тогда из (4) находим 4 q h (5) Полученное таким образом уравнение это линейная модель объекта, записанная в отклонениях входа и выхода от номинальной (рабочей) точки (h ; q) Приближенная модель (5) точнее всего соответствует объекту вблизи этой точки, а при больших отклонениях от нее ошибка может значительно возрастать На этом простом примере мы познакомились с основными принципами линеаризации нелинейных алгебраических уравнений В следующем параграфе те же самые идеи используются для более сложной модели, которая описывает динамику системы (изменение во времени) 5 Дифференциальные уравнения Реальные объекты не могут мгновенно изменять свое состояние, поэтому вместо статических моделей типа () для их исследования используют динамические модели, которые описываются дифференциальными уравнениями, содержащими производные (скорости изменения сигналов) Как мы видели в разделе 3, такие модели могут быть получены из физических законов Во многих случаях более или менее точные модели представляют собой нелинейные дифференциальные уравнения, поэтому для того, чтобы применить теорию линейных систем, требуется линеаризация При этом применяется почти та же методика, что и для алгебраических уравнений Идея линеаризации заключается в том, что в системах регулирования (поддержания заданных значений величин) сигналы мало отклоняются от рабочей точки некоторого положения равновесия, в котором все сигналы имеют «правильные» значения и их производные равны нулю Поэтому для решения задач управления часто достаточно использовать линейную модель в отклонениях от этой рабочей точки Модель, только что построенная для бака с водой, не совсем правильная, потому что не учитывает, что уровень в баке изменяется уменьшается по мере вытекания воды Кроме того, предположим, что для поддержания уровня используется насос, который подкачивает воду в бак, его расход обозначим через Q Для такого объекта входом является расход Q, а выходом изменение уровня h Предположим, что в течение маленького интервала t расходы Q и q можно считать постоянным За это время объем воды, добавленной в бак насосом, равен Q t, а объем «ушедшей» воды q t Учитывая, что площадь сечения бака равна S, получаем изменение уровня: (Q q) h t Переходя к пределу при t, получаем дифференциальное уравнение S dh([ Q(q(] dt S Эта модель учитывает, что уровень воды и расходы изменяются во времени Вспомним, что расход вытекающей жидкости q (зависит от уровня воды в баке h (и связан с ним нелинейной зависимостью q(α h(Поэтому уравнение можно записать в виде dh(α Q(h((6) dt S S 5

16 КЮ Поляков, 8 Здесь остались только две изменяющиеся величины: расход насоса Q ((вход объекта) и уровень воды h ((выход) Далее для упрощения записи мы не будем явно указывать зависимость этих сигналов от времени В установившемся (статическом) режиме, когда сигналы не изменяются, все производные равны нулю В нашем случае, приняв в (6), получаем dh(dt Q Q α h h (7) α Эта зависимость между установившимися значениями входа Q и выхода h называется статической характеристикой Она позволяет для любого заданного постоянного значения Q на входе получить значение выхода h Теперь предположим, что задана некоторая рабочая точка, то есть, значения входа Q Q и выхода h h удовлетворяют уравнению (7), и система все время работает около этого положения равновесия Вблизи этой точки Q Q Q и h h h, где Q и h малые отклонения входа и выхода от рабочей точки Дальше для линеаризации используется разложение функций в ряд Тейлора Для некоторой функции f (x, y) в окрестности точки x,) этот ряд имеет вид: (y f (x, y) f (x, y) f (x, y) f (x, y) x y F(x, y), x y f (x, y) f (x, y) где и x y частные производные функции f (x, y) по x и по y в точке (x, y), а F (x, y) зависит от высших производных в той же точке (второй, третьей и тд) При малых значениях x и y можно считать, что «хвост» этого ряда F (x, y) очень мал, примерно равен нулю, поэтому f (x, y) f (x, y) f (x, y) f (x, y) x y (8) x y Применим формулу (8) для линеаризации правой части уравнения (6), где в роли x выступает расход Q, а в роли y уровень h Выполняя дифференцирование, находим α α α Q h, Q h Q S S S h S S S h Тогда с помощью формулы (8) получаем α α α Q h Q h Q h S S S S S S h Подставим Q Q Q и h h h в уравнение (6) и учтем, что d h α α Q h Q dt S S S S h h d(h h) d h Тогда dt dt α Вспоминая, что Q и h соответствуют статическому режиму, то есть Q h, получаем линеаризованное уравнение в отклонениях от рабочей точки: S S d h kh h kq Q, (9) dt 6

17 КЮ Поляков, 8 α где k h и k Q Заметим, что коэффициент k h зависит от h, то есть от выбора рабочей точки В этом проявляется нелинейность объекта S h S Обычно при записи линеаризованного уравнения знак (обозначающий отклонение) не пишут Таким образом, окончательно получаем линеаризованную модель dh(kh h(kq Q(() dt Но нужно помнить, что это уравнение в отклонениях, и оно справедливо только при малых отклонениях от рабочей точки (Q, h) При выборе другой рабочей точки коэффициент k h получится другой 6 Управление Посмотрим на примере, как можно управлять объектом и что из этого получается Немного изменим предыдущую задачу, разрешив потоку вытекающей жидкости q изменяться независимо (в теории управления это называется нагрузкой на объект) Для того, чтобы обеспечить водой всех жителей деревни, построили водонапорную башню, в которую насосом закачивается вода из реки Каждый житель может в любой момент включить воду на своем участке, например, для полива Нужно построить систему, которая автоматически поддерживает заданный уровень h воды в цистерне Q (в метрах) Будем считать, что жителей довольно много, поэтому у кого-то всегда включена вода и насос постоянно работает на закачку воды в цистерну Для управления уровнем воды h мы можем изменять его поток Q (в м 3 /с) Таким образом, уровень h это регулируемая величина, а поток Q сигнал управления Для обратной связи используем датчик, измеряющий уровень воды h в цистерне h q Построим математическую модель объекта, то есть цистерны Поток на выходе q (в м 3 /с) показывает, сколько воды вытекает из цистерны за с это нагрузка Изменение уровня h зависит от разности потоков Q q и площади сечения цистерны S Если разность потоков постоянна в течение интервала времени общем случае нужно использовать интеграл: t t, то Q(q(h(t В S h((Q(q() dt S Пусть в момент времени t уровень воды равен заданному значению, а входной и выходной потоки равны (Q () q() q), так что уровень не меняется Этот режим мы примем за номинальный (рабочую точку) Для того, чтобы получить уравнение в отклонениях, представим потоки в виде Q(q Q(, q(q q(, где Q(и q(малые отклонения потоков от номинального режима Тогда, опуская знак приращения, можно записать модель объекта управления в форме t h((Q(q() dt S 7

18 КЮ Поляков, 8 Здесь h (, Q (и q (обозначают отклонения этих величин от номинальных значений Заметим, что эта модель может быть записана как дифференциальное уравнение (если найти производные обеих частей равенства): dh([ Q(q(] dt S Для упрощения далее примем S м В качестве обратной связи мы будем использовать сигнал с датчика уровня Ошибка управления вычисляется как разница между заданным и измеренным уровнями воды: e(h (h(Применим самый простой регулятор усилитель с коэффициентом K (или пропорциональный регулятор, П-регулятор), который управляет потоком по закону q(K e(K [ h (h(] Структурная схема системы управления показана на рисунке ниже Знак интеграла обозначает звено, модель которого оператор интегрирования С помощью кружка с секторами обозначается сложение сигналов Если какой-то сектор закрашен черным цветом, входящий в него сигнал вычитается (учитывается в сумме со знаком «минус») Кроме сигналов, о которых уже шла речь, на рисунке показан также шум измерения m (, искажающий показания датчика q регулятор объект h e Q h К m Проверим работу этого регулятора при различных значениях коэффициента K Сначала будем считать, что шума измерений нет, то есть уровень измеряется точно Предположим, что расход воды на выходе q увеличивается скачком (все начали поливать огороды) Синяя линия на рисунке (см ниже) показывает изменение уровня при K, а зеленая при K 5 h K 5 t K По этим данным можно сделать некоторые выводы: при изменении нагрузки (потребления воды, потока q) регулятор-усилитель не может поддерживать заданный уровень (графики не приходят к значению h); чем больше К, тем меньше ошибка регулирования h в установившемся режиме; можно ожидать, что при K ошибка должна уменьшиться до нуля; чем больше К, тем быстрее заканчивается переход на новый режим Кажется, что для улучшения управления нужно увеличивать K, однако это только первое впечатление Теперь посмотрим, что будет, если есть шум измерений (случайная ошибка датчика) 8

19 КЮ Поляков, 8 h Q K 5 t K 5 K K t По графикам видно, что при неточных измерениях уровень колеблется около некоторого среднего значения (того, что было получено без шума), причем при бóльшем K колебания увеличиваются Этот эффект особенно хорошо виден на графике изменения расхода насоса q (рисунок справа) При увеличении K повышение точности (уменьшение установившейся ошибки) достигается за счет повышенной активности насоса, который все время «дергается» При этом механические части изнашиваются, и существенно уменьшается его срок службы Поэтому коэффициент K нельзя сильно увеличивать Один из главных выводов этого примера: управление чаще всего связано с компромиссом Здесь, с одной стороны, нужно увеличивать K, чтобы повысить точность, а с другой нужно уменьшать K, чтобы уменьшить влияние шума измерения При выборе управления мы шли самым простым путем, остановившись на регулятореусилителе (П-регуляторе) У вдумчивого читателя неизбежно должны были возникнуть вопросы следующего характера: любым ли объектом можно управлять с помощью регулятора-усилителя? как правильно выбрать коэффициент K (на каком значении остановиться)? можно ли добиться улучшения управления с помощью более сложного регулятора? какой регулятор нужно применить, чтобы улучшить управление? как обеспечить нулевую установившуюся ошибку (постоянный уровень при любом расходе q) и можно ли это сделать вообще? как подавить шумы измерений, чтобы они не приводили к «дерганию» насоса? В следующих разделах представлены основы теории автоматического управления, которая отвечает на такие вопросы и предлагает надежные методы проектирования регуляторов, решающих задачу управления в соответствии с заданными требованиями 9

20 КЮ Поляков, 8 3 Модели линейных объектов 3 Дифференциальные уравнения Составляя модель объекта на основании физических законов, мы чаще всего получаем систему дифференциальных R уравнений первого и второго порядка Для примера покажем, как построить модель двигателя постоянного тока, используя законы механики и электротехники Вход этого объекта напряжение якоря u ((в ω e u вольтах), выход угол поворота вала θ ((в радианах) i Сначала вспомним некоторые «житейские» знания об электродвигателях Вал двигателя начинает вращаться, когда приложено напряжение питания Если напряжение не меняется, угловая скорость вращения ω ((в радианах в секунду) остается постоянной, при этом угол θ (равномерно увеличивается Чем больше напряжение, тем быстрее вращается вал Если зажать вал рукой (или подключить нагрузку, например, заставить двигатель вращать турбину), скорость вращения постепенно уменьшается до нового значения, при котором вращающий момент двигателя будет равен моменту сопротивления (нагрузки) Пока эти моменты равны, скорость вращения остается постоянной и ее производная равна нулю Теперь переведем эти рассуждения на строгий язык математики Угловая скорость вращения ω (вычисляется как производная от угла поворота вала θ (, то есть ω (Соот- dθ (dt ветственно, угол θ (это интеграл от угловой скорости В механике уравнение вращательного движения обычно записывают в виде dω(J M (M H (, dt где M (вращающий момент (измеряется в H м), M H (момент нагрузки (возмущение, также в H м) Буквой J обозначен суммарный момент инерции якоря и нагрузки (в кг м) Величина момента инерции говорит о том, насколько легко «разогнать» двигатель (чем больше момент инерции, тем сложнее «разогнать») Перейдем к электротехнике В нашем случае момент M (это электромагнитный момент двигателя, который вычисляется по формуле M (CM Φ i(, где C M коэффициент, Φ магнитный поток, создаваемый обмоткой возбуждения (измеряется в веберах); i (ток якоря (в амперах), который может быть найден из уравнения u(e(R i(, где e (электродвижущая сила (ЭДС) якоря (в вольтах) и R сопротивление якорной цепи (в омах) В свою очередь, ЭДС рассчитывается через магнитный поток и частоту вращения: e(Cω Φ ω(, где C ω коэффициент Вводя новые постоянные k C M Φ и k C ω Φ, можно записать модель двигателя в виде системы уравнений dω(dθ (J k i(M H (, e (k ω, ω (, u(e(R i(() dt dt Модель () описывает связи реальных сигналов в системе, ее внутреннее устройство Часто нам достаточно знать, как будет реагировать объект на заданный входной сигнал (управление) При этом его внутреннее устройство нас не очень интересует, то есть мы рас-

21 КЮ Поляков, 8 сматриваем объект в качестве «черного ящика» Подставив второе уравнение из системы () в третье, найдем i (и подставим в первое уравнение Переходя к переменной θ (, получаем: d θ (k dθ (J u(k M (H dt R dt или, перенося все члены, зависящие от θ (, в левую часть равенства d θ (kk dθ (J k u(M (H () dt R dt Это дифференциальное уравнение второго порядка, связывающее вход u (и нагрузку M H (с выходом θ (В сравнении с системой (), все внутренние сигналы исходной модели (e (и i () были исключены из уравнений Поэтому уравнение () называется уравнением «входвыход» Порядком модели называют порядок соответствующего дифференциального уравнения В данном случае мы получили модель второго порядка В этом разделе на простом примере мы посмотрели, как на основе физических законов строятся математические модели объектов управления Как правило, они представляют собой дифференциальные уравнения В дальнейшем мы будем использовать готовые модели объектов управления, предполагая, что они были кем-то получены ранее (например, предоставлены заказчиком) 3 Модели в пространстве состояний Для того, чтобы было легче исследовать модель объекта, желательно привести ее к некоторому стандартному виду, для которого уже есть готовые общие решения Таким «стандартом» в теории управления считается система дифференциальных уравнений первого порядка, которая называется нормальной формой Коши Рассмотрим снова модель электродвигателя, считая, что M H ((нагрузки нет) Вспомнив, что ω (& θ (, можно записать () в виде системы & θ (ω(kk k & ω(ω(u(J R J R Эта система дифференциальных уравнений первого порядка быть записана в матричной форме: & θ ((kk θ k u((J R ((3) & ω ω J R Значения θ (и ω (определяют состояние двигателя в момент времени t Это значит, что зная их значения в некоторый момент времени t и входной сигнал u (при всех t t можно рассчитать поведение объекта для любого последующего момента При этом предыдущие значения θ (, ω (и u ((при t < t) не играют никакой роли Поэтому θ (и ω (называются переменными состояния, а вектор θ (вектором состояния ω(В теории управления принято обозначать вектор состояния через x (, вход объекта (сигнал управления) через u (Тогда модель (3) может быть записана в виде x& (A x(B u((4) θ (где x(, A kk ω(и B k Модель (4) связывает вход u (и вектор состояния x (, поэтому она называется моделью J R J R вход-состояние

22 КЮ Поляков, 8 Полная модель объекта в пространстве состояний содержит еще одно уравнение уравнение выхода, которое показывает, как формируется выход объекта y (: x& (A x(B u((5) y(C x(D u(Эта модель называется моделью вход-состояние-выход Выходная координата для двигателя постоянного тока это угол поворота вала: θ (y(θ ( x((, ω так что C и D Если же в качестве выхода принять угловую скорость, то C С помощью модели (5), изменяя матрицы C и D, можно принять за выход любую линейную комбинацию переменных состояния и входа Во многих практических задачах выход это одна или несколько переменных состояния, которые мы можем измерить Поскольку момент инерции J, сопротивление якоря R и коэффициенты k и k не зависят от времени, матрицы A, B, C и D в модели (5) постоянные Такие объекты называются стационарными, в отличие от нестационарных объектов, параметры которых изменяются во времени Запись моделей в единой форме (5) позволяет отвлечься от смысла переменных состояния и исследовать системы разной природы стандартными методами, которые хорошо разработаны и реализованы в современных компьютерных программах Покажем, как уравнения вида (5) могут быть решены и чем удобна именно такая форма записи Предположим, что мы знаем начальные условия, то есть вектор состояния x () при t Вспомним, что знание x () и входа u (при всех t > дает возможность однозначно определить дальнейшее поведение этого объекта Первое уравнение в (5) позволяет найти производную, то есть, скорость изменения вектора состояния x (в любой момент времени Будем считать, что при t t, где t малый интервал времени, эта производная не меняется Тогда значение вектора состояния при t t приближенно определяется формулой x(x() x& () t x() [ A x() B u() ] t, то есть, его можно легко вычислить Зная x(и сигнал управления u(, находим выход системы в тот же момент y(C x(D u(Эту методику можно применять и дальше, в конце второго интервала получаем x(x(x& (t x([ A x(B u(] t, y(C x(D u(Таким образом, можно (приближенно) рассчитать выход системы при всех t > Конечно, точность будет тем выше, чем меньше t, однако объем вычислений при этом также увеличится Этот метод приближенного решения дифференциальных уравнения называется методом Эйлера Так как мы не делали никаких предположений о постоянных матрицах A, B, C и D, его (как и другие, более совершенные методы) можно использовать без изменений для решения любых уравнений вида (5) 33 Переходная функция Один из методов построения моделей «вход-выход» определение реакции объекта на некоторый стандартный сигнал Один из простейших сигналов так называемый «единичный скачок» («единичный ступенчатый сигнал»), то есть мгновенное изменение входного сигнала с до в момент t Формально этот сигнал определяется так:, t < (, t


Лекция 3 Математическое описание систем управления В теории управления при анализе и синтезе систем управления имеют дело с их математической моделью Математическая модель САУ представляет собой уравнения

Лекция 14 Классификация САУ Неприспосабливающиеся системы наиболее простые системы, не изменяющие своей структуры и параметров в процессе управления. Применяются при стационарных объектах управления, у

ФГБОУ ВПО «Омский государственный технический университет» РАЗДЕЛ II НЕПРЕРЫВНЫЕ ЛИНЕЙНЫЕ СИСТЕМЫ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ Лекция 5 СОСТАВЛЕНИЕ ИСХОДНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ СИСТЕМ АВТОМАТИЧЕСКОГО

Задача. «Нелинейное трио» В данной задаче рассматриваются «нелинейные резисторы». Напряжение U на таком резисторе пропорционально квадрату силы текущего через резистор тока (с соблюдением полярности):

4 Лекция 5 АНАЛИЗ ДИНАМИЧЕСКИХ ЦЕПЕЙ План Уравнения состояния электрических цепей Алгоритм формирования уравнений состояния 3 Примеры составления уравнений состояния 4 Выводы Уравнения состояния электрических

Лекция 5 Автоматические регуляторы в системах управления и их настройка Автоматические регуляторы с типовыми алгоритмами регулирования релейными, пропорциональным (П), пропорционально-интегральным (ПИ),

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

Тема: Законы переменного тока Электрическим током называется упорядоченное движение заряженных частиц или макроскопических тел Переменным называется ток, который с течением времени изменяет свою величину

Зайцев Г. Ф. Теория автоматического управления и регулирования Издание второе, переработанное и дополненное Допущено Министерством высшего и среднего специального образования СССР в качестве учебного пособия

Лекция 6 Преобразование математических моделей систем. Передаточные функции. Модели в виде сигнальных графов Чтобы изучить свойства сложных физических систем и научиться управлять ими, необходимо иметь

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

Глава 1. Основные законы электрической цепи 1.1 Параметры электрической цепи Электрической цепью называют совокупность тел и сред, образующих замкнутые пути для протекания электрического тока. Обычно физические

Робототехника RAR1300 Sergei Pavlov TTÜ Virumaa Kolledž Управление приводами Управление движением рабочей машины или механинизма означает управление положением, скоростью и ускорением системы, которая

Основные термины и определения Общая теория управления, охватывающая как неживую, так и живую природу, является предметом науки кибернетики. Теория автоматического управления (ТАУ) это часть кибернетики.

Лекция 2 Линейные системы автоматического управления Свойства линейных систем На основе изучения многих моделей систем, можно придти к выводу, что системы, описываемые линейными дифференциальными уравнениями,

Лекция 1 Основные понятия и определения теории автоматического управления. Управление это совокупность действий, направленных на достижение поставленной цели. Регулирование частный случай управления техническими

4.1 Контрольные вопросы для самоконтроля 1 РАЗДЕЛ «Линейные непрерывные модели и характеристики систем управления» 1 Что изучает теория управления? 2 Определите понятия управление и объект управления.

Тест 1 по дисциплине «Управление техническими системами» Вариант 1 1. Каково функциональное назначение датчика в системе управлении? 1) регулировать параметры технологического процесса; 2) подавлять шумы

Тема 4.. Цепи переменного тока Вопросы темы.. Цепь переменного тока с индуктивностью.. Цепь переменного тока с индуктивностью и активным сопротивлением. 3. Цепь переменного тока с ёмкостью. 4. Цепь переменного

Приложение 4 Вынужденные электрические колебания Переменный ток Приведенные ниже теоретические сведения могут быть полезны при подготовке к лабораторным работам 6, 7, 8 в лаборатории "Электричество и магнетизм"

Синусоидальный ток «на ладони» Большая часть электрической энергии вырабатывается в виде ЭДС, изменяющейся во времени по закону гармонической (синусоидальной) функции. Источниками гармонической ЭДС служат

Лекция 1. Теория управления основные задачи, принципы, классификация В.1. Основные понятия и определения Система управления (СУ) совокупность управляющего устройства (УУ) и объекта управления (ОУ), действия

МЕТОДИЧЕСКИЕ УКАЗАНИЯ к домашнему заданию по курсу УТС Исследование нелинейной системы автоматического регулирования ОПРЕДЕЛЕНИЕ ИСХОДНЫХ ДАННЫХ Исходные данные для выполнения домашнего задания приведены

Переходные процессы «на ладони». Вам уже известны методы расчета цепи, находящейся в установившемся режиме, то есть в таком, когда токи, как и падения напряжений на отдельных элементах, неизменны во времени.

Классификация уляторов по реализуемому закону улирования 1-й тип. Пропорциональный или П-улятор с одним параметром настройки. Его передаточная функция совпадает с передаточной функцией пропорционального

Лабораторная работа 23 Вынужденные колебания в колебательном контуре Цель работы: экспериментально исследовать зависимость напряжения на конденсаторе в электромагнитном последовательном колебательном контуре

Глава II Построение модели системы управления Реальная система управления состоит из определенного числа взаимосвязанных приборов и устройств, включая, конечно, объект управления, обладающих различной

ФГБОУ ВПО «Омский государственный технический университет» РАЗДЕЛ II НЕПРЕРЫВНЫЕ ЛИНЕЙНЫЕ СИСТЕМЫ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ Лекция 4. ДИНАМИЧЕКИЕ ЗВЕНЬЯ. ОБЩИЕ ПОНЯТИЯ, ВРЕМЕННЫЕ ХАРАКТЕРИСТИКИ И ЧАСТОТНАЯ

54 Лекция 5 ПРЕОБРАЗОВАНИЕ ФУРЬЕ И СПЕКТРАЛЬНЫЙ МЕТОД АНАЛИЗА ЭЛЕКТРИЧЕ- СКИХ ЦЕПЕЙ План Спектры апериодических функций и преобразование Фурье Некоторые свойства преобразования Фурье 3 Спектральный метод

И. В. Яковлев Материалы по физике MathUs.ru Электромагнитные колебания Темы кодификатора ЕГЭ: свободные электромагнитные колебания, колебательный контур, вынужденные электромагнитные колебания, резонанс,

СЕМИНАР Основные понятия. Составление (вывод) дифференциального уравнения. Понятие решения дифференциального уравнения. Решение методом разделяющихся переменных. Решение линейного дифференциального уравнения

Управление высотой полета вертолета Рассмотрим задачу синтеза системы управления движением центра масс вертолета по высоте. Вертолет как объект автоматического управления представляет собой систему с несколькими

Лабораторная работа 1 1 ДИНАМИЧЕСКИЕ ХАРАКТЕРИСТИКИ ТИПОВЫХ ЗВЕНЬЕВ 1. Цель работы Исследовать динамические характеристики типовых звеньев систем автоматического управления (САУ), а также познакомиться

Решение систем нелинейных уравнений в частных производных с производной по времени первого порядка с коэффициентами зависящими от времени ЕГ Якубовский e-i uovi@rerru Аннотация В статье [ получено решение

Электромагнитные колебания Основные теоретические сведения Гармонические колебания в колебательном контуре Примером электрической цепи, в которой могут происходить свободные электрические колебания, служит

Лабораторная работа 8 Вынужденные колебания в последовательном колебательном контуре Цель работы: исследование амплитудно-частотной и фазовочастотной зависимостей напряжения на конденсаторе в последовательном

Московский государственный университет им. М.В.Ломоносова Физический факультет Кафедра общей физики Л а б о р а т о р н ы й п р а к т и к у м п о о б щ е й ф и з и к е (электричество и магнетизм) В.М.Буханов,

1 ВВЕДЕНИЕ Основные понятия и определения электротехники Рассчитать режим в заданной электрической цепи значит получить расчётным путем ток, напряжение, мощность в ее отдельных, интересуемых нас участках

1 Лабораторная работа 3 б ВЫНУЖДЕННЫЕ КОЛЕБАНИЯ В КОЛЕБАТЕЛЬНОМ КОНТУЕ Цель работы экспериментальное исследование частотной зависимости напряжения на конденсаторе при вынужденных колебаниях в колебательном

Лабораторная работа 1 1 ТИПОВЫЕ ЗВЕНЬЯ САУ 1. Цель работы Исследовать динамические характеристики типовых звеньев систем автоматического управления (САУ), а также познакомиться с основными правилами структурного

Осенний семестр учебного - года Тема 3 ГАРМОНИЧЕСКИЙ АНАЛИЗ НЕПЕРИОДИЧЕСКИХ СИГНАЛОВ Прямое и обратное преобразования Фурье Спектральная характеристика сигнала Амплитудно-частотный и фазо-частотный спектры

4. ПЕРЕХОДНАЯ ХАРАКТЕРИСТИКА МЕМБРАНЫ 4.1 Временные характеристики динамической системы Для оценки динамических свойств системы и отдельных звеньев принято исследовать их реакцию на типовые входные воздействия,

Тема 3 ГАРМОНИЧЕСКИЙ АНАЛИЗ НЕПЕРИОДИЧЕСКИХ СИГНАЛОВ Прямое и обратное преобразования Фурье Спектральная характеристика сигнала Амплитудно-частотный и фазо-частотный спектры Спектральные характеристики

Федеральное агентство по образованию ТВЕРСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра автоматизации технологических процессов В. Г. Васильев ПРОЦЕСС РЕГУЛИРОВАНИЯ И УПРАВЛЕНИЯ НА ПРИМЕРЕ ОБЪЕКТА

Выполнил: Приняла: Умаров Д. 1-14 ИКСУТП Абдурахманова М.И. Анализ устойчивости САУ Практическая пригодность систем регулирования определяется их устойчивостью и приемлемым качеством регулирования. Под

Глава 2. ЭЛЕКТРОМЕХАНИЧЕСКИЕ И РЕГУЛИРОВОЧНЫЕ СВОЙСТВА ЭЛЕКТРОПРИВОДОВ ПОСТОЯННОГО ТОКА 2.1. Механические характеристики электродвигателей и рабочих механизмов Механической характеристикой электродвигателя

Лекция 8 33 ОДНОМЕРНЫЕ СТАЦИОНАРНЫЕ СИСТЕМЫ ПРИМЕНЕНИЕ ПРЕОБРАЗОВАНИЯ ФУРЬЕ 33 Описание сигналов и систем Описание сигналов Для описания детерминированных сигналов используется преобразование Фурье: it

Клюев О.В., Садовой А.В. Сохина Ю.В. Днепродзержинский государственный технический университет Украина Днепродзержинск ИДЕНТИФИКАЦИЯ КООРДИНАТ И ПАРАМЕТРОВ АСИНХРОННОЙ МАШИНЫ ПРИ ВЕКТОРНОМ УПРАВЛЕНИИ ПО

ЭЛЕКТРОТЕХНИКА И ЭНЕРГЕТИКА 79 УДК 004.0:6.3.078 РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА ДЛЯ ИДЕНТИФИКАЦИИ ПАРАМЕТРОВ СХЕМЫ ЗАМЕЩЕНИЯ КЛЮЧЕВОГО ЭЛЕМЕНТА И СИНТЕЗА КОРРЕКТИРУЮЩЕГО ЗВЕНА В. М. ЛУКАШОВ, С. Н. КУХАРЕНКО,

Работа 13 Исследование зависимостей T(l) и A(t) математического маятника Оборудование: штатив, маятник, линейка, электронный счетчик-секундомер Описание метода Графический метод является наиболее простым

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Национальный исследовательский технологический университет «МИСиС» ПРОГРАММА вступительного экзамена

ТАУ Практические занятия Задания на контрольную работу и методические указания к ее выполнению Практическое занятие АФЧХ, ЛАХ, переходные и весовые характеристики динамических звеньев типовых Большинство

Точность по ающему воздействию. Статическая точность при гармоническом входном воздействии. Самым простым методом изучения точности является использование передаточной функции по ошибке. () (). U ; (

4 Лекция 1. ОСНОВНЫЕ ПОНЯТИЯ И ЭЛЕМЕНТЫ ЭЛЕКТРИЧЕСКИХ ЦЕПЕЙ План 1. Введение. 2. Электрические величины и единицы их измерения. 3. Двухполюсные элементы электрических цепей. 4. Управляемые (зависимые)

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

Оглавление Предисловие 9 Введение 11 РАЗДЕЛ1 Линейные автоматические системы управления 19 1. Составление уравнений движения элементов АСУ и методы их решения 19 1.1. Математическое описание элементов

Глава 2. Методы расчета переходных процессов. 2.1. Классический метод расчета. Теоретические сведения. В первой главе были рассмотрены методы расчета цепи, находящейся в установившемся режиме, то есть

УДК: 62-971 СИСТЕМА АВТОМАТИЧЕСКОГО РЕГУЛИРОВАНИЯ ТЕМ- ПЕРАТУРЫ ПЕЧИ ОБЖИГА КИРПИЧА студент гр.139114 Лаппо И.А. Научный руководитель Чигарев В.А. Белорусский национальный технический университет Минск,

Тема 8 ЛИНЕЙНЫЕ ДИСКРЕТНЫЕ СИСТЕМЫ Понятие дискретной системы Методы описания линейных дискретных систем: разностное уравнение, передаточная функция, импульсная характеристика, частотная передаточная функция

Работа 11 ИЗУЧЕНИЕ ВЫНУЖДЕННЫХ КОЛЕБАНИЙ И ЯВЛЕНИЯ РЕЗОНАНСА В КОЛЕБАТЕЛЬНОМ КОНТУРЕ В цепи, содержащей катушку индуктивности и конденсатор, могут возникать электрические колебания. В работе изучаются

ТЕОРИЯ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ ДЛЯ «ЧАЙНИКОВ»

К.Ю. Поляков

Санкт-Петербург

© К.Ю. Поляков, 2008

« В ВУЗе нужно излагать материал на высоком профессиональном уровне. Но поскольку этот уровень проходит значительно выше головы среднего студента, я буду объяснять на пальцах. Это не очень профессионально, зато понятно».

Неизвестный преподаватель

Предисловие

Эта методичка предназначена для первого знакомства с предметом. Ее задача – объяснить «на пальцах» основные понятия теории автоматического регулирования и сделать так, чтобы после ее прочтения вы смогли воспринимать профессиональную литературу на эту тему. Нужно рассматривать это пособие только как фундамент, стартовую площадку для серьезного изучения серьезного предмета, который может стать очень интересным и увлекательным.

Есть сотни учебников по автоматическому управлению. Но вся проблема в том, что мозг при восприятии новой информации ищет что-то знакомое, за что можно «зацепиться», и на этой основе «привязать» новое к уже известным понятиям. Практика показывает, что читать серьезные учебники современному студенту сложно. Не за что зацепиться. Да и за строгими научными доказательствами часто ускользает суть дела, которая обычно достаточно проста. Автор попытался «спуститься» на уровень ниже и выстроить цепочку от «житейских» понятий к понятиям теории управления.

Изложение на каждом шагу грешит нестрогостью, доказательства не приводятся, формулы используются только там, где без них нельзя. Математик найдет здесь много недоговоренностей и упущений, поскольку (в соответствии с целями пособия) между строгостью и понятностью выбор всегда делается в пользу понятности.

От читателя требуются небольшие предварительные знания. Нужно иметь представление

о некоторых разделах курса высшей математики:

1) производных и интегралах;

2) дифференциальных уравнениях;

3) линейной алгебре, матрицах;

4) комплексных числах.

Благодарности

Автор выражает глубокую признательность д.ф.-м.н. А.Н. Чурилову, к.т.н. В.Н. Калиниченко и к.т.н. В.О. Рыбинскому, которые внимательно прочитали предварительную версию пособия и высказали много ценных замечаний, которые позволили улучшить изложение и сделать его более понятным.

© К.Ю. Поляков, 2008

ОСНОВНЫЕ ПОНЯТИЯ ...

Введение.................................................................................................................................................

Системы управления.............................................................................................................................

1.3. Какие бывают системы управления? .................................................................................................

МАТЕМАТИЧЕСКИЕ МОДЕЛИ ..........................................................................................................................

2.1. Что нужно знать для управления? ...................................................................................................

2.2. Связь входа и выхода...........................................................................................................................

Как строятся модели? .......................................................................................................................

Линейность и нелинейность..............................................................................................................

Линеаризация уравнений.....................................................................................................................

Управление...........................................................................................................................................

3. МОДЕЛИ ЛИНЕЙНЫХ ОБЪЕКТОВ .....................................................................................................................

Дифференциальные уравнения...........................................................................................................

3.2. Модели в пространстве состояний..................................................................................................

Переходная функция............................................................................................................................

Импульсная характеристика (весовая функция) .............................................................................

Передаточная функция.......................................................................................................................

Преобразование Лапласа....................................................................................................................

3.7. Передаточная функция и пространство состояний.......................................................................

Частотные характеристики............................................................................................................

Логарифмические частотные характеристики..............................................................................

4. ТИПОВЫЕ ДИНАМИЧЕСКИЕ ЗВЕНЬЯ ................................................................................................................

Усилитель............................................................................................................................................

Апериодическое звено..........................................................................................................................

Колебательное звено...........................................................................................................................

Интегрирующее звено.........................................................................................................................

Дифференцирующие звенья................................................................................................................

Запаздывание.......................................................................................................................................

«Обратные» звенья.............................................................................................................................

ЛАФЧХ сложных звеньев...................................................................................................................

СТРУКТУРНЫЕ СХЕМЫ ....................................................................................................................................

Условные обозначения........................................................................................................................

Правила преобразования.....................................................................................................................

Типовая одноконтурная система......................................................................................................

АНАЛИЗ СИСТЕМ УПРАВЛЕНИЯ ......................................................................................................................

Требования к управлению....................................................................................................................

Процесс на выходе...............................................................................................................................

Точность..............................................................................................................................................

Устойчивость.....................................................................................................................................

Критерии устойчивости....................................................................................................................

Переходный процесс............................................................................................................................

Частотные оценки качества.............................................................................................................

Корневые оценки качества.................................................................................................................

Робастность.......................................................................................................................................

СИНТЕЗ РЕГУЛЯТОРОВ ....................................................................................................................................

Классическая схема.............................................................................................................................

ПИД-регуляторы.................................................................................................................................

Метод размещения полюсов..............................................................................................................

Коррекция ЛАФЧХ..............................................................................................................................

Комбинированное управление.............................................................................................................

Инвариантность.................................................................................................................................

Множество стабилизирующих регуляторов...................................................................................

ЗАКЛЮЧЕНИЕ ..........................................................................................................................................................

ЛИТЕРАТУРА ДЛЯ ПОСЛЕДУЮЩЕГО ЧТЕНИЯ ..........................................................................................................

© К.Ю. Поляков, 2008

1. Основные понятия

1.1. Введение

С древних времен человек хотел использовать предметы и силы природы в своих целях, то есть управлять ими. Управлять можно неодушевленными предметами (например, перекатывая камень на другое место), животными (дрессировка), людьми (начальник – подчиненный). Множество задач управления в современном мире связано с техническими системами – автомобилями, кораблями, самолетами, станками. Например, нужно поддерживать заданный курс корабля, высоту самолета, частоту вращения двигателя, температуру в холодильнике или в печи. Если эти задачи решаются без участия человека, говорят об автоматическом управлении .

Теория управления пытается ответить на вопрос «как нужно управлять?». До XIX века науки об управлении не существовало, хотя первые системы автоматического управления уже были (например, ветряные мельницы «научили» разворачиваться навстречу ветру). Развитие теории управления началось в период промышленной революции. Сначала это направление в науке разрабатывалось механиками для решения задач регулирования , то есть поддержания заданного значения частоты вращения, температуры, давления в технических устройствах (например, в паровых машинах). Отсюда происходит название «теория автоматического регулирования».

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

Иногда названия «теория автоматического управления» и «теория автоматического регулирования» используются как синонимы. Например, в современной зарубежной литературе вы встретите только один термин – control theory .

1.2. Системы управления

1.2.1. Из чего состоит система управления?

В задачах управления всегда есть два объекта – управляемый и управляющий. Управляемый объект обычно называют объектом управления или просто объектом , а управляющий объект – регулятором . Например, при управлении частотой вращения объект управления – это двигатель (электромотор, турбина); в задаче стабилизации курса корабля – корабль, погруженный в воду; в задаче поддержания уровня громкости – дина-

Регуляторы могут быть построены на разных принципах.

Самый знаменитый из первых механических регуляторов –

центробежный регулятор Уатта для стабилизации частоты

вращения паровой турбины (на рисунке справа). Когда частота

вращения увеличивается, шарики расходятся из-за увеличения

центробежной силы. При этом через систему рычагов немного

закрывается заслонка, уменьшая поток пара на турбину.

Регулятор температуры в холодильнике или термостате –

это электронная схема, которая включает режим охлаждения

(или нагрева), если температура становится выше (или ниже)

заданной.

Во многих современных системах регуляторы – это микропроцессорные устройства, ком-

пьютеры. Они успешно управляют самолетами и космическими кораблями без участия челове-

© К.Ю. Поляков, 2008

ка. Современный автомобиль буквально «напичкан» управляющей электроникой, вплоть до бортовых компьютеров.

Обычно регулятор действует на объект управления не прямо, а через исполнительные механизмы (приводы ), которые могут усиливать и преобразовывать сигнал управления, например, электрический сигнал может «превращаться» в перемещение клапана, регулирующего расход топлива, или в поворот руля на некоторый угол.

Чтобы регулятор мог «видеть», что фактически происходит с объектом, нужны датчики . С помощью датчиков чаще всего измеряются те характеристики объекта, которыми нужно управлять. Кроме того, качество управления можно улучшить, если получать дополнительную информацию – измерять внутренние свойства объекта.

1.2.2. Структура системы

Итак, в типичную систему управления входят объект, регулятор, привод и датчики. Однако, набор этих элементов – еще не система. Для превращения в систему нужны каналы связи, через них идет обмен информацией между элементами. Для передачи информации могут использоваться электрический ток, воздух (пневматические системы), жидкость (гидравлические системы), компьютерные сети.

Взаимосвязанные элементы – это уже система , которая обладает (за счет связей) особыми свойствами, которых нет у отдельных элементов и любой их комбинации.

Основная интрига управления связана с тем, что на объект действует окружающая среда – внешние возмущения , которые «мешают» регулятору выполнять поставленную задачу. Большинство возмущений заранее непредсказуемы, то есть носят случайный характер.

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

Подводя итого, можно нарисовать структурную схему системы управления так:

управление

регулятор

возмущения

обратная

измерений

Например, в системе управления курсом корабля

объект управления – это сам корабль, находящийся в воде; для управления его курсом используется руль, изменяющий направление потока воды;

регулятор – цифровая вычислительная машина;

привод – рулевое устройство, которое усиливает управляющий электрический сигнал и преобразует его в поворот руля;

датчики – измерительная система, определяющая фактический курс;

внешние возмущения – это морское волнение и ветер, отклоняющие корабль от заданного курса;

шумы измерений – это ошибки датчиков.

Информация в системе управления как бы «ходит по кругу»: регулятор выдает сигнал

управления на привод, который воздействует непосредственно на объект; затем информация об объекте через датчики возвращается обратно к регулятору и все начинается заново. Говорят, что в системе есть обратная связь , то есть регулятор использует информацию о состоянии объекта для выработки управления. Системы с обратной связью называют замкнутыми , поскольку информация передается по замкнутому контуру.

© К.Ю. Поляков, 2008

1.2.3. Как работает регулятор?

Регулятор сравнивает задающий сигнал («задание», «уставку », «желаемое значение») с сигналами обратной связи от датчиков и определяет рассогласование (ошибку управления ) – разницу между заданным и фактическим состоянием. Если оно равно нулю, никакого управления не требуется. Если разница есть, регулятор выдает управляющий сигнал, который стремится свести рассогласование к нулю. Поэтому схему регулятора во многих случаях можно нарисовать так:

рассогласование

алгоритм

управление

управления

обратная связь

Такая схема показывает управление по ошибке (или по отклонению ). Это значит, что для того, чтобы регулятор начал действовать, нужно, чтобы управляемая величина отклонилась от заданного значения. Блок, обозначенный знаком ≠ , находит рассогласование. В простейшем случае в нем из заданного значения вычитается сигнал обратной связи (измеренное значение).

Можно ли управлять объектом так, чтобы не было ошибки? В реальных системах – нет. Прежде всего, из-за внешних воздействий и шумов, которые заранее неизвестны. Кроме того, объекты управления обладают инерционностью , то есть, не могут мгновенно перейти из одного состояния в другое. Возможности регулятора и приводов (то есть мощность сигнала управления) всегда ограничены, поэтому быстродействие системы управления (скорость перехода на новый режим) также ограничена. Например, при управлении кораблем угол перекладки руля обычно не превышает 30 − 35° , это ограничивает скорость изменения курса.

Мы рассмотрели вариант, когда обратная связь используется для того, чтобы уменьшить разницу между заданным и фактическим состоянием объекта управления. Такая обратная связь называется отрицательной , потому что сигнал обратной связи вычитается из задающего сигнала. Может ли быть наоборот? Оказывается, да. В этом случае обратная связь называется положительной , она увеличивает рассогласование, то есть, стремится «раскачать» систему. На практике положительная обратная связь применяется, например, в генераторах для поддержания незатухающих электрических колебаний.

1.2.4. Разомкнутые системы

Можно ли управлять, не используя обратную связь? В принципе, можно. В этом случае регулятор не получает никакой информации о реальном состоянии объекта, поэтому должно быть точно известно, как этот объект себя ведет. Только тогда можно заранее рассчитать, как им нужно управлять (построить нужную программу управления). Однако при этом нельзя гарантировать, что задание будет выполнено. Такие системы называют системами программного управления или разомкнутыми системами , поскольку информация передается не по замкнутому контуру, а только в одном направлении.

программа

управление

регулятор

возмущения

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

© К.Ю. Поляков, 2008

обратной связи (информации с датчиков) невозможно учесть влияние неизвестных факторов, неполноту наших знаний.

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

1.3. Какие бывают системы управления?

Автоматическая система – это система, работающая без участия человека. Есть еще автоматизированные системы, в которых рутинные процессы (сбор и анализ информации) выполняет компьютер, но управляет всей системой человек-оператор, который и принимает решения. Мы будем далее изучать только автоматические системы.

1.3.1. Задачи систем управления

Автоматические системы управления применяются для решения трех типов задач:

стабилизация , то есть поддержание заданного режима работы, который не меняется длительное время (задающий сигнал – постоянная, часто нуль);

программное управление – управление по заранее известной программе (задающий сигнал меняется, но заранее известен);

слежение за неизвестным задающим сигналом.

К системам стабилизации относятся, например, авторулевые на кораблях (поддержание заданного курса), системы регулирования частоты вращения турбин. Системы программного управления широко используются в бытовой технике, например, в стиральных машинах. Следящие системы служат для усиления и преобразования сигналов, они применяются в приводах и при передаче команд через линии связи, например, через Интернет.

1.3.2. Одномерные и многомерные системы

По количеству входов и выходов бывают

одномерные системы, у которых один вход и один выход (они рассматриваются в так называемой классической теории управления);

многомерные системы, имеющие несколько входов и./или выходов (главный предмет изучения современной теории управления).

Мы будем изучать только одномерные системы, где и объект, и регулятор имеют один входной и один выходной сигнал. Например, при управлении кораблем по курсу можно считать, что есть одно управляющее воздействие (поворот руля) и одна регулируемая величина (курс).

Однако, в самом деле это не совсем верно. Дело в том, что при изменении курса меняется также крен и дифферент корабля. В одномерной модели мы пренебрегаем этими изменениями, хотя они могут быть очень существенными. Например, при резком повороте крен может достигнуть недопустимого значения. С другой стороны, для управления можно использовать не только руль, но и различные подруливающие устройства, стабилизаторы качки и т.п., то есть объект имеет несколько входов. Таким образом, реальная система управления курсом – многомерная.

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

1.3.3. Непрерывные и дискретные системы

По характеру сигналов системы могут быть

непрерывными , в которых все сигналы – функции непрерывного времени, определенные на некотором интервале;

дискретными , в которых используются дискретные сигналы (последовательности чисел), определенные только в отдельные моменты времени;

© К.Ю. Поляков, 2008

непрерывно-дискретными , в которых есть как непрерывные, так и дискретные сигналы. Непрерывные (или аналоговые ) системы обычно описываются дифференциальными уравнениями. Это все системы управления движением, в которых нет компьютеров и других эле-

ментов дискретного действия (микропроцессоров, логических интегральных схем). Микропроцессоры и компьютеры – это дискретные системы, поскольку в них вся инфор-

мация хранится и обрабатывается в дискретной форме. Компьютер не может обрабатывать непрерывные сигналы, поскольку работает только с последовательностями чисел. Примеры дискретных систем можно найти в экономике (период отсчета – квартал или год) и в биологии (модель «хищник-жертва»). Для их описания применяют разностные уравнения.

Существуют также и гибридные непрерывно-дискретные системы, например, компьютерные системы управления движущимися объектами (кораблями, самолетами, автомобилями и др.). В них часть элементов описывается дифференциальными уравнениями, а часть – разностными. С точки зрения математики это создает большие сложности для их исследования, поэтому во многих случаях непрерывно-дискретные системы сводят к упрощенным чисто непрерывным или чисто дискретным моделям.

1.3.4. Стационарные и нестационарные системы

Для управления очень важен вопрос о том, изменяются ли характеристики объекта со временем. Системы, в которых все параметры остаются постоянными, называются стационарными , что значит «не изменяющиеся во времени». В этом пособии рассматриваются только стационарные системы.

В практических задачах часто дело обстоит не так радужно. Например, летящая ракета расходует топливо и за счет этого ее масса изменяется. Таким образом, ракета – нестационарный объект. Системы, в которых параметры объекта или регулятора изменяются со временем, называются нестационарными . Хотя теория нестационарных систем существует (формулы написаны), применить ее на практике не так просто.

1.3.5. Определенность и случайность

Самый простой вариант – считать, что все параметры объекта определены (заданы) точно, так же, как и внешние воздействия. В этом случае мы говорим о детерминированных системах, которые рассматривались в классической теории управления.

Тем не менее, в реальных задачах точных данных у нас нет. Прежде всего, это относится к внешним воздействиям. Например, для исследования качки корабля на первом этапе можно считать, что волна имеет форму синуса известной амплитуды и частоты. Это детерминированная модель. Так ли это на практике? Естественно нет. С помощью такого подхода можно получить только приближенные, грубые результаты.

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

Системы, в которых действуют случайные возмущения или параметры объекта могут изменяться случайным образом, называются стохастическими (вероятностными). Теория стохастических систем позволяет получать только вероятностные результаты. Например, нельзя гарантировать, что отклонение корабля от курса всегда будет составлять не более 2° , но можно попытаться обеспечить такое отклонение с некоторой вероятностью (вероятность 99% означает, что требование будет выполнено в 99 случаях из 100).

1.3.6. Оптимальные системы

Часто требования к системе можно сформулировать в виде задачи оптимизации . В оптимальных системах регулятор строится так, чтобы обеспечить минимум или максимум какого-то критерия качества. Нужно помнить, что выражение «оптимальная система» не означает, что она действительно идеальная. Все определяется принятым критерием – если он выбран удачно, система получится хорошая, если нет – то наоборот.

© К.Ю. Поляков, 2008

1.3.7. Особые классы систем

Если параметры объекта или возмущений известны неточно или могут изменяться со временем (в нестационарных системах), применяют адаптивные или самонастраивающиеся регуляторы, в которых закон управления меняется при изменении условий. В простейшем случае (когда есть несколько заранее известных режимов работы) происходит простое переключение между несколькими законами управления. Часто в адаптивных системах регулятор оценивает параметры объекта в реальном времени и соответственно изменяет закон управления по заданному правилу.

Самонастраивающаяся система, которая пытается настроить регулятор так, чтобы «найти» максимум или минимум какого-то критерия качества, называется экстремальной (от слова экстремум , обозначающего максимум или минимум).

Во многих современных бытовых устройствах (например, в стиральных машинах) используются нечеткие регуляторы , построенные на принципах нечеткой логики . Этот подход позволяет формализовать человеческий способ принятия решения: «если корабль ушел сильно вправо, руль нужно сильно переложить влево».

Одно из популярных направлений в современной теории – применение достижений искусственного интеллекта для управления техническими системами. Регулятор строится (или только настраивается) на основе нейронной сети , которую предварительно обучает человекэксперт.

© К.Ю. Поляков, 2008

2. Математические модели

2.1. Что нужно знать для управления?

Цель любого управления – изменить состояние объекта нужным образом (в соответствии с заданием). Теория автоматического регулирования должна ответить на вопрос: «как построить регулятор, который может управлять данным объектом так, чтобы достичь цели?» Для этого разработчику необходимо знать, как система управления будет реагировать на разные воздействия, то есть нужна модель системы: объекта, привода, датчиков, каналов связи, возмущений, шумов.

Модель – это объект, который мы используем для изучения другого объекта (оригинала ). Модель и оригинал должны быть в чем-то похожи, чтобы выводы, сделанные при изучении модели, можно было бы (с некоторой вероятностью) перенести на оригинал. Нас будут интересовать в первую очередь математические модели , выраженные в виде формул. Кроме того, в науке используются также описательные (словесные), графические, табличные и другие модели.

2.2. Связь входа и выхода

Любой объект взаимодействует с внешней средой с помощью входов и выходов. Входы – это возможные воздействия на объект, выходы – это те сигналы, которые можно измерить. Например, для электродвигателя входами могут быть напряжение питания и нагрузка, а выходами

– частота вращения вала, температура.

Входы независимы, они «приходят» из внешней среды. При изменении информации на входе меняется внутреннее состояние объекта (так называют его изменяющиеся свойства) и, как следствие, выходы:

вход x

выход y

Это значит, что существует некоторое правило, по которому элемент преобразует вход x в выход y . Это правило называется оператором . Запись y = U означает, что выход y получен в

результате применения оператора U ко входу x.

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

Рассмотрим электродвигатель постоянного тока. Вход этого объекта – это напряжение питания (в вольтах), выход – частота вращения (в оборотах в секунду). Будем считать, что при напряжении 1 В частота вращения равна 1 об/сек, а при напряжении 2 В – 2 об/сек, то есть частота вращения равна по величине напряжению1 . Легко видеть, что действие такого оператора можно записать в виде

U[ x] = x .

Теперь предположим, что этот же двигатель вращает колесо и в качестве выхода объекта мы выбрали число оборотов колеса относительно начального положения (в момент t = 0). В этом случае при равномерном вращении произведение x ∆ t дает нам количество оборотов за время ∆ t , то есть y (t ) = x ∆ t (здесь запись y (t ) явно обозначает зависимость выхода от време-

ни t ). Можно ли считать, что этой формулой мы определили оператор U ? Очевидно, что нет, потому что полученная зависимость справедлива только для постоянного входного сигнала. Если напряжение на входе x (t ) меняется (все равно как!), угол поворота запишется в виде инте-

1 Конечно, это будет справедливо только в некотором диапазоне напряжений.

Случайные статьи

Вверх