Консультация № 161142
22.02.2009, 19:16
0.00 руб.
0 0 0
Уважаемые эксперты, помогите пожалуйста составить программу:

Задание: разработать программу, осуществляющую опрос датчика и оптимизацию объекта методом Гаусса-Зайделя.
[/url]
Исходные данные : M – номер опрашиваемого датчика, K – число каналов управления, L1, L2, …, Lk – номера каналов управления, U1, U2,…,Uk – начальные значения управляющих воздействий, D – величина шага поиска.

Алгоритм :
1. Ввести исходные данные : M, K, L1,L2,…,Lk, U1,U2,…,Uk, D.
2. Подать управляющие воздействия на объект : U1 по каналу L1, U2 по каналу L2, …, Uk по каналу Lk.
3. Произвести опрос датчика M, сохранить в памяти измеренное значение Y.
4. Подать управление U1’ = U1+D по каналу L1.
5. Произвести опрос датчика M, сохранить в памяти измеренное значение Y+.
6. Ввести параметр A, задав его значение равным +1, если Y+>Y, или равным –1 при Y+< Y.
7. Подать управляющее воздействие U1’= U1+A*D по каналу L1, произвести опрос датчика M, запомнить измеренное значение Y’, вывести значения U1’ и Y’ на экран.
8. Если Y’Y, переписать U1' на место U1 и Y’ на место Y и повторить операции 7 и 8, иначе, если Y’<Y, перейти к операции 9.
9. Операции 2-8 повторить, подавая управляющие воздействия U2 по каналу L2, затем U3 по каналу L3 и т.д.

Дополнительное требование: структура программы должна включать подпрограммы ввода исходных данных и экспериментального определения значения параметра A (операции 4-6).

Исследовательская часть: изучить, как меняется значение Y, получаемое в конце поиска от величины шага D.

Необходимый модуль URL >>INTRFC.PAS

Заранеее благодарен.


Приложение:
МОДЕЛЬ ОБЪЕКТА
При разработке программ источником данных является программная модель объекта управления.
На объекте установлены датчики, осуществляющие измерение некоторых физических переменных: температуры, давления, скорости, расхода и др. Каждый датчик имеет свой уникальный номер, по которому они могут отличаться друг от друга. Вместе с аппаратурой связи с вычислительной системой датчик образует измерительный канал, которому можно приписать тот же номер, что и у датчика. Для того, чтобы указать, с помощью какого датчика требуется в данный момент произвести измерение, надо назвать номер этого датчика и получить измеренное значение.
Кроме того, на объекте имеются устройства управления, которые обеспечивают воздействие на объект с целью достижения некоторых желаемых его свойств. Такие воздействия могут, например, осуществляться путем увеличения или уменьшения подачи топлива, изменения скорости конвейера и т.д. Каждое устройство управления также имеет собственный номер, который должен указываться при подаче управляющих воздействий. Помимо этого, надо еще указать значение управляющего воздействия, которое должно быть подано на объект (например, какая скорость конвейера должна быть установлена).
Разработчик программы имеет возможность из своей программы инициировать измерения или управление объектом. Для реализации измерения по некоторому каналу в программе предусмотреть вызов процедуры OPROS(KAN_IZM, X, WSPOM), где KAN_IZM – переменная, в которой сохраняется номер датчика, от которого требуется получить измерение. После завершения выполнения процедуры и возврата управления в вызвавшую ее программу измеренное значение будет размещено в переменной, указанной на втором месте в списке фактических параметров процедуры (в примере – в переменной X). Третий параметр – WSPOM – вспомогательный, который должен быть описан в программе и использоваться только при обращении к процедурам измерения и управления.
Для реализации подачи управляющего воздействия на объект в программе должна быть вызвана процедура UPRAV(KAN_UPR, U, WSPOM), где KAN_UPR – переменная, которой до обращения к процедуре должно быть присвоено значение, равное номеру устройства управления, которое должно использоваться для воздействия на объект, U – переменная, которой также до обращения к процедуре должно быть присвоено значение управляющего воздействия, подаваемого на объект, WSPOM – тот же, что и в процедуре OPROS.
Переменные KAN_IZM и KAN_UPR должны быть описаны в программе как INTEGER, а переменные X и U – как REAL.
Процедуры OPROS, UPRAV находятся в модуле INTRFC.TPU, который должен быть включен в программу при ее построении. При этом программа должна быть построена по следующему шаблону:
Program A;
Uses INTRFC;
Var KAN_IZM, KAN_UPR: INTEGER;
X,U : REAL;
WSPOM : MASSIV;
. . . . . . . . . . . . . . . .
UPRAV(KAN_UPR, U, WSPOM);
. . . . . . . . . . . . . . . .
OPROS(KAN_IZM, X, WSPOM);
. . . . . . . . . . . . . . . . .

Обсуждение

Форма ответа