Диссертация (1026354), страница 17
Текст из файла (страница 17)
По результатам строится график зависимостисигнала по координате X от отклонения рукоятки по оси X, а также записьвходного параметра (величина отклонения рукоятки министика по оси X) исоответствующегоемувыходногозначения(результирующийсигналминистика по оси X) в таблицу значений по оси X.На втором этапе производится снятие характеристики для оси Y принулевом отклонении по оси X. По результатам строится график зависимостисигнала по координате Y от отклонения рукоятки по оси Y, а также записьвходного параметра (величина отклонения рукоятки министика по оси Y) исоответствующегоемувыходногозначения(результирующийсигналминистика по оси Y) в таблицу значений по оси Y.4) Поле числового ввода «Серия». Поле позволяет задать серию (номерлинии) на графике, в которую будут занесены рассчитанные значениярезультирующего выходного сигнала.
Номер может изменяться от 1 до 12 всоответствии с количеством серий на графике. Номер серии един для обоихграфиков.5) Флажковая кнопка «Авто++ номер серии». При установке флажкапосле каждого снятия характеристики (кнопка «Тест по Х-Y крестом»)производится автоматическое увеличение номера серии графика.1566) Кнопка «Сохранение». Позволяет сохранить сразу оба графика какфайлы изображений в формате *.bmp. При нажатии кнопки открывается диалогсохранения, позволяющий сохранить график по оси X.
После сохранения илизакрытия диалога открывается диалог сохранения графика по оси Y.7) Кнопка «Полная очистка». Кнопка позволяет полностью очиститьвсе результаты эксперимента для проведения новых. При нажатии кнопкипроизводится очистка таблиц значений по осям X и Y, очищаются все серииграфиков, а номером текущей серии устанавливается номер первой серии 1.Блок построения графиков выходного сигнала содержит два графиказависимости выходного сигнала министика от величины отклонения рукоятки.Левый график отображает зависимость координаты X сигнала министика отвеличины отклонения рукоятки по оси X.
Правый график отображаетзависимость координаты Y сигнала министика от величины отклонениярукоятки по оси Y.Графики полностью идентичны по возможностям. На каждом графикеможет быть построено до 12 серий данных. Каждая серия отображаетсясплошнойсглаженнойлиниейсобственногоцвета.Расшифровкапринадлежности цвета к конкретной серии приведена в легенде справа отграфика.Кроме того, каждый график содержит следующие управляющиеэлементы, одинаковые для обоих графиков:1) Кнопка «Оч. серии» и поле числового ввода. Кнопка позволяеточистить одну заданную серию графика от записанных значений. Номер серии(от 1 до 12) задается в поле ввода.2) Кнопка «Очистка».
Производит очистку всех серий графика.3) Кнопка «Сохр-е». При нажатии открывает диалог, позволяющийсохранить график как файл изображения в формате *.bmp.157Блок таблиц выходных значений содержит таблицы, в которые заносятсярезультаты расчетов при проведении автотестирования. Блок содержит двеотдельных таблицы, расположенные на двух разных страницах. На странице«таблица значений X» расположена таблица, содержащая значения отклонениярукоятки по оси Xи соответствующие ему значения результирующеговыходного сигнала министика по координате X. На странице «таблицазначений Y», соответственно, расположена таблица, содержащая значенияотклонения рукоятки по оси Yи соответствующие ему значениярезультирующего выходного сигнала министика по координате Y. Таблицыполностью идентичны по своим параметрам и возможностям.В крайний левый столбец таблицы заносится входной параметр –отклонение рукоятки министика, остальные столбцы содержат результаты.Результаты каждой новой серии автотестирования заносятся в новый столбец,который вставляется справа от текущего последнего столбца.Таблица содержит 120 строк с выходными результатами.
Далеедобавляются строки, содержащие минимальное значение выходного сигнала(«fmin»), максимальное значений выходного сигнала («fmax»), величинуотклонения с минимальным значением выходного сигнала («xmin») и величинуотклонения с максимальным значением выходного сигнала («xmax») иамплитуду выходного сигнала («Amp»).В последнюю ячейку столбца записывается перечень основныхпараметров, с которыми было произведено автотестирование.Таблица позволяет выделять ячейки одиночно или прямоугольныммассивом произвольной размерности.Для работы с полученными данными таблица содержит всплывающееменю, появляющееся при нажатии на таблицу правой кнопкой мыши.
Менюсодержит следующие пункты:1) «Копировать в буфер» – при нажатии производится копированиесодержимого ячеек выделенного фрагмента таблицы в буфер обмена.158Копирование производится в формате Microsoft Excel с разбивкой по строкам истолбцам, что позволяет вставить скопированные данные непосредственно втаблицы для последующей обработки.2) «Выделить все» – при нажатии производится выделение всех ячеектаблицы.3) «Очистить таблицу» – при нажатии все ячейки таблицы очищаются,количество столбцов устанавливается равным двум.Программа работает следующим образом.Основным входным параметром является отклонение ручки министика.Отклонение задается в блоке «Положение ручки министика» при помощисдвигания ползунков или перемещения символизирующего ручку круга припомощи мыши. Диапазон отклонения составляет -6..+6 мм с шагом 0,1 мм покаждой оси координат.Все входные параметры модели подразделяются на два типа: общиепараметры модели и индивидуальные параметры фотоприемников.В блоке ввода общих расчетных параметров задаются параметрыминистика, требуемые для вычисления расположения и размера световогопятна: высота ручки министика, расстояние до светоотражающей поверхности(СОП), высота светодиода (СИД), общая освещенность, дисперсия световогопятна по X (sigmaX) и по Y (sigmaY); также задается точность приближенногоинтегрирования для вычисления освещенности.В блоке ввода параметров фотоприемников задается количествофотоприемников(3,4или6),атакжеиндивидуальныепараметрыфотоприемников: координаты центра фотоприемника, вектор ориентациифотоприемника в пространстве и его размеры (длина и ширина).Вычисление выходного сигнала производится автоматически приизменении отклонения ручки.
Вычисление производится в несколько этапов.159На первом этапе производится вычисление μX и μY – матожиданияраспределения Гаусса по осям Xи Y, для данной модели обозначающегокоординаты центра светового пятна. Результат отображается в полях ввода«Центр пятна» (uX и uY).На втором этапе на основании матожидания производится вычислениеотносительной освещенности для каждого из фотоприемников. Результатырасчетов заносятся в последнюю колонку таблицы фотоприемников.Назавершающемэтапенаосновезначенийосвещенностифотоприемников и информации о количестве фотоприемников производитсявычисление результирующего выходного сигнала для координаты X икоординаты Y.
Полученные значения отображаются на графиках, и, припроведении автотеста, заносятся в таблицы значений.Дляавтоматизациипроведенияиспытанийпрограммаснабженафункцией «Автотест». При этом производится серия испытаний, в ходекоторых отклонение ручки изменяется от минимального до максимальногозначения. Возможен автотест по оси X, по оси Y и тест «крестом». Припоследнем варианте тестирование производится по обеим осям. Полученныезначения отображаются на графике; при использовании теста «крестом»строятся два графика, а данные заносятся в таблицы значений. Результатыкаждого автотеста заносятся в отдельный столбец таблицы и отображаютсяновой линией на графике (всего возможно до 12 линий).Графики выходных значений снабжены возможностью очистки всегографика или определенной серии, а также функцией сохранения изображения вфайл формата .bmp.
Кроме того, предусмотрены возможности сохранения иочистку сразу обоих графиков.Полученные при автотестировании значения заносятся в таблицызначений по оси X и по оси Y. В крайне левом столбце отображается входнойпараметр – отклонение ручки министика, в последующих - результаты расчетавыходного сигнала министика.160После завершения серии испытаний производится автоматическоеопределение минимального и максимального значений выходного сигнала,рабочегоучасткахарактеристикииамплитудывыходногосигнала.Вычисленные параметры добавляются в конец таблицы.Таблицы снабжены возможностью выделения всех или части их ячеек икопирования выделенного фрагмента в буфер обмена в формате с разбивкой поячейкам, пригодном для вставки в Microsoft Excel для последующей обработкиполученных экспериментальных данных.Для разработки программы использовалась среда быстрой разработкиCodeGear RAD Studio 2009.Программа содержит следующие модули:1)Стартовый модуль Matmod.
Модуль содержит стартовую функциюWinAPI, запускающую основную программу.2)Главный (интерфейсный) модуль MainForm. Модуль производитчтение входных параметров, определение положения ручки министика, расчетμ – матожидания распределения Гаусса – и передачу параметров в модульCalc3D для вычисления освещенности фотоприемников. На основаниивычисленных показателей освещенности фотоприемников модуль производитрасчетрезультирующеговыходногосигналаипостроениеграфиковзависимости сигнала от отклонения ручки.
Модуль также производитавтоматическоеснятиехарактеристикипризаданныхпараметровспостроением графиков и занесением полученных данных в таблицы. Дляпоследующей обработки данных модуль позволяет сохранять графики в файлизображения и производить копирование данных таблицы в буфер обмена вформате Microsoft Excel.3)Математический модуль Calc3D.
Модуль производит вычислениеинтегральной освещенности фотоприемника на основе переданных параметровположения и размера светового пятна и фотоприемника (функция GetE), атакже содержит вспомогательные функции для осуществления расчетов.161Диаграммы программных модулей приведены на Рисунке П.2.MainFormvoid __fastcall XsliderChange(TObject *Sender);void __fastcall FormCreate(TObject *Sender);void __fastcall YsliderChange(TObject *Sender);void __fastcall Shape1MouseDown(TObject *Sender,TMouseButton Button, TShiftState Shift, int X, int Y);void __fastcall Shape1MouseUp(TObject *Sender,TMouseButton Button, TShiftState Shift, int X, int Y);void __fastcall Shape1MouseMove(TObject *Sender, TShiftStateShift, int X, int Y);void __fastcall x_editChange(TObject *Sender);void __fastcall auto_rbClick(TObject *Sender);void __fastcall manual_rbClick(TObject *Sender);void __fastcall savx_btnClick(TObject *Sender);void __fastcall N1Click(TObject *Sender);void __fastcall N2Click(TObject *Sender);void __fastcall N3Click(TObject *Sender);void __fastcall lcenX_editChange(TObject *Sender);void __fastcall lcenY_editChange(TObject *Sender);void __fastcall y_editChange(TObject *Sender);void __fastcall clx_btnClick(TObject *Sender);void __fastcall cly_btnClick(TObject *Sender);void __fastcall atx_btnClick(TObject *Sender);void __fastcall aty_btnClick(TObject *Sender);void __fastcall savy_btnClick(TObject *Sender);void __fastcall srx_clrClick(TObject *Sender);void __fastcall sry_clrClick(TObject *Sender);void __fastcall Button1Click(TObject *Sender);void __fastcall PD_selectorClick(TObject *Sender);void __fastcall setr0_btnClick(TObject *Sender);void __fastcall MenuItem1Click(TObject *Sender);void __fastcall MenuItem2Click(TObject *Sender);void __fastcall MenuItem3Click(TObject *Sender);void __fastcall clrAll_btnClick(TObject *Sender);void __fastcall savAll_btnClick(TObject *Sender);void __fastcall setdim_btnClick(TObject *Sender);void __fastcall Button2Click(TObject *Sender);void __fastcall Button3Click(TObject *Sender);MatmodWINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR,int)Calc3Ddouble GetE(double PDCenter_x, double PDCenter_y,double PDOrientationVector_x, doublePDOrientationVector_y, double PDLength, double PDWidth,double SigmaX, double SigmaY, int Precision, doubleLightSpotCenter_x, double LightSpotCenter_y, doubleE_Full);int GetLightSpot(PhotoDetector* PDListStart, doubleSigmaX, double SigmaY, int Precision, double Error, intPartitionNumber, double E_Full, double PlatformLength,double PlatformWidth, double* LightSpotCenter_x, double*LightSpotCenter_y);void calcSignal ();void calcMju ();void CopyTable(TStringGrid * resultTable);void ClearTable(TStringGrid * resultTable);void SelAllTable(TStringGrid * resultTable);void writeStat (TStringGrid * resultTable, int &wr_index);Рисунок П.2 – Диаграммы модулей программы MinistickMatModel 3D162163164165.