Искусство программирования на Си (984073), страница 58
Текст из файла (страница 58)
При вводе восемь возможных комбинаций трех битов четности лаются в определенные позиции. В основе !2-битового 72 4 пустОй стрОки В ОтВст на лкзбой запрОс Она завсршаст В соотВстстВии с приВсдснным сООтношснисм кОличс- рсзуде тата лежит псренумерация представляющая пол свою ра оту. После проверки введенных данных про- б . П ство колебинаций битов четности должно быть, по мень- нос закодированное сч во в виле битов от С) для млад- Для применения метода Гамлеинга, прсдназначенно- гРамма инвсртируст указанное число битов во введснго для выявления и исправления ошибок, четыре ко„т ном значении на получает код ном значении Она пол чает код Гамминга для исход- Ольнь битовычис1яю яд ял кдогооктстаипсрс ного и измененного зно нии и Объединяет их доптнитеелнне тематичеелиегт пжлн Ойробогпеа иифравло и гнилов ! часть гя Глава 16 Листинг 18.13.
Программа Нашгп)п9.с, иллюстрирующая использования кодов Гамминга. Если всполэнить о концепции передачи двух копий чсство. прн наличии любого полубайта и четырсх би- данных, можст возникнуть вопрос, как при отражснии тоа кода Гамминга они могут воссоздать отсутствуюшии ( диска уластся нзбсгать аналогичных проблему Когда полубайт данных и восстановить исходныс данные. ппв(чаед 1опч ча1пег диск отказывает, то часто он становится нсчитабсльнылп Одна из этих !2 комбинаций показана на рис. )85.
ппвляпед 1опч вод1(гед; и поэтолэу не возникает никакого сомнения относлпсль1опч гЬе Ьаг; но того, какой диск вышел из строя. Лаже сели такой 07 05 05 04 ОЗ 02 О! 00 Н4 НЗ Н2 Нэ 1пс Ьав; лпс вод Ьав; лиск отвечает на запросы, контроллеры дисков автомасЬаг Ьп(1(50); тичсски вычисляют СКС лля записывасмых ланных, а затсм повторно вычисляют и сравнивают ил прн считыгог (;; ) ванин. Таким образом, в обшсм случас нс возникает ( никаких проблем с опрслслснисм отказавшего диска, рг(пс(( Впсег а ча1пе Ьесиееп 0 апд 255 лп С посаслоп: ); когда считываемые данные нс совпадают. 11 (Вввс (15еса(ьп(1, асеев( Ьн(1, асд1п))) Однако, когда олин диск отказывает, система боль( шс нс располагает зашитой, прсдоставлясмон тслнологиси озражсния.
Если она должна продолжать функцн- 0)в)с 1 0)вй 2 0)вй 3 онировать, то новыс ланныс сохраняются только на е1ае 11 (льп(1 = '1п') ( оставшемся диске. Если второй диск отказываст прсж- РИСУНОК 18 5. Распределение данных с использованием подов Ьгеах; лс, чем псрвый отказавший писк будет замснсн и будет Гамм инго. выполнено повторное отраэкснис дисков, то данные Обрадгепка ггы/укгвык гианыав Яффа Глава 18 Ыйй Лонолнитегвные тематические разде.ни к з Сигнзл Часть )П и цртпн ов Контрспкые значение Выкопнси 7 ермин упраа,текил Определение начвние Выкопной сигнзя сигнал Устройство устройство Коэффициент пропорциональности Буква "Р" в названии Р10 означает "РгорогвопаГ' (пропорциональный).
При каждом обрастай связи управления прохоткдении по контуру текущая ошибка (разность между переменной процесса и контрольным значением) умножается на коэффициент пропорциональности для вычисления члена пропорциональности (Р], который участвует в вычислении выходного сигнала. Конггр обрзтнои Интегральный коэффициент "1" е названии Р10 означает '1п!есгаГ' (интегральный). Этот термин относится к Разамкнутыи и замкнутый контуры.
связи вычислениям, а не к программированию на языке С. В течение заданного интервала времени ошибка суммируется, или интегрируется, и эта сумма умножается на интегральный коэффициент для получения интегрального члена (1), который участвует в вычислении выходного сигнала. Производный коэффициент "0" в названии Р)0 означает "0епцавне" (производный) — еще один вычислителытый термин.
В теории управления он имеет такое же, как и в математике, значение— Процесс Процесс скорость изменения функции. В данном случае скорость изменения ошибки от одного интервала времени к другому является производной, и зто значение умножается на производный коэффициент для получения производного члена (О), участвующего в Раюикнугий «онгтр Заикнутыи юпур вычислении нового выходного значения. Смещение Смещение — это постоянный член, добавляемый к вычисленному значению выходного го значения, проходя через нуль.
Прн управлении со- чсния/выключения, разомкнутый контур нспрерывностоянисм включено/выключено используются только го выходного сигнала, замкнутый контур включения/ переменнои процесса. Дооо ~нательные о»еаато чески е разде ~ и Ойроботко Чифровол сигая ов Яффа Часть В1 Глава 1В Таблица 18.5. Определения терминов, используемых в управлении.
полые Е дала/ /* ввтегральаый хранястся в переменной цех! Еагдег, а разность между коэффвцвеет '1' '/ ним и тскущиле целевым значснисм вычисляется и соуерлтл улраклелыл Определенно доные д уауаГ /' провзводвыв хранястся в персмснной ассе!. Упреждающая гюпраека на скорость Упреждающая поправка иа скорост~ — это модифицированная форма определенного дооые асс ЕЕЕ /' упревдаыцая поправка Значснис 1л)з еггог вычисляется путсм вычитания ранее смещения Она вычисляется путем умножения контрольного значения на текущего значения персмснной процесса РЪ" из значспостоянный коэффициент, но по-прежнему остается независимой от сигнала обратной левые Егу ЕЕГ /* упревдаыдая поправка ния Ей!з Еагйет.
Производная ошибки (скорость измснссвязи, поступающего от пе сменной и ва тревве 'у' */ ния ошибки) вычисляется в беПУ путем вычитания знаУпреждаюнлая попРавка на трение Эта упреждающая поправка иногда используется в системах с достаточно большим левые те1 ЕЕ; /* улревдавцая поправка значением запирания, которое в обычных условиях заметно влияет на переменную ва скорость 'У' '/ процесса В общем случае эта поправка реализуется в виде дополнительного члена, дооЫе Ьо16; /* время сохравеввя добавляемого к выходному сигналу, когда значение переменной процесса находится в состояввя выходвого чснию интегральной ошибки в переменной !а!едка .
!. области, в которой запирание приводит к наибольшей нелинейности. На этом завершаются все вычисления, основываю- Время сохранения состояния Некоторые механизмы, управляемые выходным сигналом устройства управления, не полые Ыав; /* сыецевве 'В' */ ШиссЯ на тскушсм и прощлом зиаЧЕНИяХ ПСРелееиной могут работать с частотой, превышающей определенное значение, или даже могут быть довЫе ассе1; /*козффвцвевт ускореввя 'д'*/ процесса довЫе зетрт; /*ковтрольвое звачевве 'В''/ повреждены, если будут изменять свое состояние слишком быстро. Примером может доеЫе тгапв; /*коэффвцыевт передачи 'Т'*/ ы - /* фф .т.*/ При вычислении 1й!з оцсрв1 каждое из этих значсслужить компрессор холодильника или кондиционера воздуха.
Такое поведение доеые 1аеп /* залаздывааве взыевевая ний умножается на соотвстствующий коэффициент, а характерно для механизмов, которые могут находиться только в состояниях включения выходного сыгвала 'Ь' '/ пгюизвсдсния складываются, йсли значснис любого из или выключения и которые не изменяют своего состояния постоянно. Время сохранения состояния — зто время, выраженное в интервалах или тактах, по истечении которого долЫе афпг /» ывввыальвое заачееве коэффициснтов установлено равным О, соответствую- выходной сигнал может быть снова изменен.
щий член нс влияет на общую сумму. доеЫе вах; /* ыахсвыальвое звачевве Коэффициент холостого хода Иногда природа управляемого процесса диктует максимальную скорость изменения выходвого свгвала 'д' */ Затем функция выполняет срапненис ограничений с Яо оннитееы ые теманшнеекие риздееы Обработка цеефроено а енаноо 1 Часть !и Глава 18 Листинг 18.16. Функция Соглрц1ер(()О из файла р)с)!оор.с. /' двадратнчная оавбка вакаплввается в перемеавов гня еггог для создавая отчета в ковце работа программм, она ве участвует в вычислениях цикла Р10 */ всаг1с бооЫе гвз еггог += (ГЫн еггог * СЫв еггог); Совросертр(бооЫе РЧ) /* теперь, когда все переменнне члена змчвслеам, овв могут быть умаоневм ва соответствувдве /* Для хранеавя ваформацвв менду повтореввямв цвкла требуются трв статвческве перемевнме '/ козффвцвевтн, а результврувнве провзведеввя могут быть лросуммвроваан */ зсасгс бооЫе 1лседга1 гИз оогрос = рагавв.р дайн * гЫв еггог згаЫс бооЫе 1азс еггог О.О; зсаЫс болЫе 1азс оогрос — 0.0; рагамз.б дахл * бег1ч рагаав.асс ТТ * ассе1 бооЫе СЬ1в еггог/ агава.че1 ТТ * лекс Сагдес болЬ1е СЫз оосрос; + рагавз.угх ТТ * (ггсбйоа бооЫе ассе11 + рагамя.Ыаз; бооЬ1е бегтчс бооЫе ТггсЫол; 1аяг еггог ГЬга еггог; /* Требуеммм звачеввем РЧ для этой вте ацвн является заачевве, внчвслевное в качестве ерацвн является заачевве, внчвслевное в качестве /' Сравненве с коэффацвентом хоностого хода, огранвчявавдвм скорость взмевеавя вмходаого значеавя лехс Гагдес во время оредндунего вмлолвеввя цвкла */ сигнала */ ГЫв Гагдег = лехс Гагдег; нй (О !и рагааа.а1еч) /* Проверка ускореавя н вмчвслевве аового целевого значенвя РЧ для следувдего внполвеввя цвкла */ нй (рагавз.ассе1 > 0 Ьа СЫз Гагдес ! рагамв.негрс) Обработка иифровьо сиена,1ов Глава 16 $И3 Донолнил<елтне темап< ические го <дели В 4 часть <и 1ОΠ— 1ОО равно 1, никакая часть выходного сигнала вообше ни- ни, определяемого запаздыванием, значение выходнокогда на применяется к значению РУ, которое навсегда го сигнала устанавливается равным 20 00 останется равным О.
60 — — — — 60 60 При слсдуюшей итерации новое значение выходного сигнала добавляется к остатку значения Ьвлд цр и снова делится на составляюшие в соответствии со значением рагаш5.1аа. м 50 50 52 ° О Пропорциональное управление: коэффициент Р Коэффициент Р в вычислении управляюшсто сигнала <енерирует выхолной сигнал, пропорциональный теку + 44 о о шей ошибке Это кажется вполне логичныл< — когда 0 2 4 6 В 10 12 14 16 1В 20 0 2 4 6 В 1О 12 14 16 <В 20 ошибка велика, выходной сигнал требует большего из- 4' РИСУНОК 19.8. График процесса при иоюльзовонии то<ько РИСУНОК 18.9.