Генерация сигнала
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Генерация сигнала
Добрый день! Помогите, пожалуйста! Имеется в наличии плата sbRIO-9636. Необходимо на ней реализовать трёхфазный генератор с выдачей напряжения +/-10В. Я взяла за основу пример из Labview и немного модифицировала его. Но возникла такие проблемы: при масштабировании сигнала на 10В синусоида делается очень ступенчатой и по графику видно, что синусоиды сдвинуты не на 120 градусов, хотя и выставила в пользовательском интерфейсе 120 градусов. Прилагаю проект и скриншот своих синусоид. Посмотрите, что я не так делаю. Сигнал должен быть плавным и сдвиг фаз чётко 120 градусов.
- Вложения
-
- Generator.rar
- (902.74 КБ) 162 скачивания
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Генерация сигнала
У вас на экране отображается амплитуда не в Вольтах, а в дискретах кода. То есть вся шкала +/- 32768. Если хотите перевести код в напряжение, то поделите его на 3276,8.
Vpp (V) это размах напряжения в Вольтах, должно стоять 20, если хотите получить амплитуду в 10 В.
Sample rate (S/s) установите в значение 100к, у вас явно не успевает код на ПЛИС выполняться, поэтому лезут ошибки.
Чтобы работало верно, надо чтобы совпадали значения Sample rate (S/s) и Actual Sample Rate (S/s).
Vpp (V) это размах напряжения в Вольтах, должно стоять 20, если хотите получить амплитуду в 10 В.
Sample rate (S/s) установите в значение 100к, у вас явно не успевает код на ПЛИС выполняться, поэтому лезут ошибки.
Чтобы работало верно, надо чтобы совпадали значения Sample rate (S/s) и Actual Sample Rate (S/s).
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Re: Генерация сигнала
Спасибо Вам за такой быстрый ответ! Я сделала, как Вы посоветовали, но ступеньки остались. И у третий график по фазе неправильно отображается.
- Вложения
-
- Generator2.rar
- (902.88 КБ) 135 скачиваний
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Генерация сигнала
1. Если сдвиг фазы постоянен между каналами, то задайте фазу как константы внутри Sine Wave Generator, это точно работает.
2. Почему у вас до сих пор диапазон SIN на картинке +/- 10 я не понимаю. Скорее всего значение Vpp (V) не обновилось.
3. Еще у вас на выходе с генератора на FPGA сигнал в формате I16 (+/- 32768), а ЦАП требует +/- 10 на входе своем, так что приведите сигнал к нужному формату перед подачей его на ЦАП, иначе на выходе sbRIO будет прямоугольник, а не синус.
4. У вас горят FIFO AO0 Full? и FIFO AO1 Full?, это значит, что что-то работает не так и отображается тоже не так. Фазы будут отображаться корректно только если эти индикаторы погашены, иначе на картинке вообще может быть что угодно. Добейтесь, чтобы они не загорались, например уменьшите Sample rate (S/s) до 10к.
Правильней использовать для передачи не три буфера Sine Wave AO0, а один. Но в программе для этого надо много чего поменять.
2. Почему у вас до сих пор диапазон SIN на картинке +/- 10 я не понимаю. Скорее всего значение Vpp (V) не обновилось.
3. Еще у вас на выходе с генератора на FPGA сигнал в формате I16 (+/- 32768), а ЦАП требует +/- 10 на входе своем, так что приведите сигнал к нужному формату перед подачей его на ЦАП, иначе на выходе sbRIO будет прямоугольник, а не синус.
4. У вас горят FIFO AO0 Full? и FIFO AO1 Full?, это значит, что что-то работает не так и отображается тоже не так. Фазы будут отображаться корректно только если эти индикаторы погашены, иначе на картинке вообще может быть что угодно. Добейтесь, чтобы они не загорались, например уменьшите Sample rate (S/s) до 10к.
Правильней использовать для передачи не три буфера Sine Wave AO0, а один. Но в программе для этого надо много чего поменять.
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Re: Генерация сигнала
1. А какой должен быть диапазон SIN? Я просто не поняла, где нужно делить код напряжения на 3276,8 и сделала это в UI (там, где Vpp). Или я Вас не правильно поняла?
2. Как привести сигнал к нужному формату перед подачей на ЦАП? Насколько я поняла, это нужно сделать в FPGA, но как это сделать?
3. FIFO AО0 Full? и FIFO AО1 Full? горят даже при Sample Rate 10k. Я попробовала сделать ещё другие скорости, но они либо продолжают гореть, либо ничего не работает.
2. Как привести сигнал к нужному формату перед подачей на ЦАП? Насколько я поняла, это нужно сделать в FPGA, но как это сделать?
3. FIFO AО0 Full? и FIFO AО1 Full? горят даже при Sample Rate 10k. Я попробовала сделать ещё другие скорости, но они либо продолжают гореть, либо ничего не работает.
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Генерация сигнала
1. и 2. разбирайтесь, это элементарные действия, тут никаких особых знаний не надо. Все в пределах курсовой работы по сложности.
3. Делайте передачу через один буфер FIFO, возможно на три буфера не хватает ресурсов, поэтому ничего и не работает.
1. и 2. На ПЛИС у вас генерируется сигнал синуса с амплитудой 32768. То есть получается, что число 32768 должно соответствовать значению напряжения 10 В. Найдете коэффициент, как получить из одного другое? То есть вам надо уменьшить амплитуду перед выдачей на экран и перед подачей на ЦАП в 3276,8 раз. Решить задачу можно десятком разных способов. Разберитесь для начала, как работает пример на один канал синуса.
3. Делайте передачу через один буфер FIFO, возможно на три буфера не хватает ресурсов, поэтому ничего и не работает.
1. и 2. На ПЛИС у вас генерируется сигнал синуса с амплитудой 32768. То есть получается, что число 32768 должно соответствовать значению напряжения 10 В. Найдете коэффициент, как получить из одного другое? То есть вам надо уменьшить амплитуду перед выдачей на экран и перед подачей на ЦАП в 3276,8 раз. Решить задачу можно десятком разных способов. Разберитесь для начала, как работает пример на один канал синуса.
Я не нашел в новом коде, где вы делите на 3276,8.Studentka419 писал(а):Я просто не поняла, где нужно делить код напряжения на 3276,8 и сделала это в UI (там, где Vpp). Или я Вас не правильно поняла?
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Re: Генерация сигнала
1.Вот тот проект, который я взяла за основу. Там генерируются две синусоиды, и используется всего один буфер. Фаза показывается как надо.
2.В этом проекте в UI я выделила розовым цветом 3276,8, на которое я делю амплитуду. Я вот и хотела узнать: я что-то не то поделила?
Вопросы у меня конечно глупые, но Вы меня уж простите! Вторую неделю уже борюсь с этими коэффициентами.
2.В этом проекте в UI я выделила розовым цветом 3276,8, на которое я делю амплитуду. Я вот и хотела узнать: я что-то не то поделила?
Вопросы у меня конечно глупые, но Вы меня уж простите! Вторую неделю уже борюсь с этими коэффициентами.
- Вложения
-
- My Sine Wave.rar
- (337.75 КБ) 157 скачиваний
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Генерация сигнала
1. Сделали верно, теперь попробуйте расширить на три канала, это уже чуть сложней.
2. Поделили конечно же не там. В вашем случае ничего не поменялось, что вы вводили число 0,003, что ввели 20 и поделили на 3276,8. В чем разница? На ПЛИС в обоих случаях пришло число 0,003, вот и не поменялась картинка. Попробуйте разобраться для чего производится каждое действие в программе, там нет ничего лишнего. Картинка с подсказкой ниже...
2. Поделили конечно же не там. В вашем случае ничего не поменялось, что вы вводили число 0,003, что ввели 20 и поделили на 3276,8. В чем разница? На ПЛИС в обоих случаях пришло число 0,003, вот и не поменялась картинка. Попробуйте разобраться для чего производится каждое действие в программе, там нет ничего лишнего. Картинка с подсказкой ниже...
- Вложения
-
- Scale.PNG (2.58 КБ) 7674 просмотра
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Re: Генерация сигнала
1. Спасибо за подсказку! На графике теперь действительно лучше отображается. Но мне нужно, чтобы сигнал 10 В оказался на выходах AO0 и AO1. Я добавила их в FPGA. Но при подключении осциллографа к AO0, например, синусоиды обрезаются примерно на 11В. А мне нужно, чтобы не только на графике в UI, но и на выходах сигнал был 10В.
- Вложения
-
- My Sine Wave2.rar
- (334.45 КБ) 123 скачивания
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Генерация сигнала
Andrew Lunev писал(а):3. Еще у вас на выходе с генератора на FPGA сигнал в формате I16 (+/- 32768), а ЦАП требует +/- 10 на входе своем, так что приведите сигнал к нужному формату перед подачей его на ЦАП, иначе на выходе sbRIO будет прямоугольник, а не синус.
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Re: Генерация сигнала
Я Вас об этом и спрашиваю: Как привести к нужному формату? Объясните, пожалуйста!Andrew Lunev писал(а):Andrew Lunev писал(а):3. Еще у вас на выходе с генератора на FPGA сигнал в формате I16 (+/- 32768), а ЦАП требует +/- 10 на входе своем, так что приведите сигнал к нужному формату перед подачей его на ЦАП, иначе на выходе sbRIO будет прямоугольник, а не синус.
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Генерация сигнала
Точно так же, как и для вывода на график. Поделите на 3276,8 перед подачей на ЦАП на ПЛИС.
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 14 Ответы
- 594 Просмотры
-
Последнее сообщение IvanLis