• Регистрация
Hate_Matlab
Hate_Matlab -3.62
н/д

Что за знаки вопросов над блоками?

16.01.2021

Здравствуйте

Я не знаю, что произошло, но эта дрянь опять выпендривается. В прошлый раз, как я открыл модель, я шаманил только с методами решения и добавлял вот эти блоки + пару Bus Selector'ов, которые удалил потом за ненадобностью.

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

И это вообще во всех файлах slx, как я понимаю теперь. Оно сломалось полностью без каких-либо намёков, что пошло не так.

У кого-нибудь такое было? Я это д@#%мо настраивал несколько месяцев, если я сейчас буду полную переустановку matlab делать, то это полная ... она самая. Можно как-то спасти всё?

 

P.S. Если нужно окно ошибок при запуске, то вот оно. В принципе стандартное, ничего особенного, если бы не знаки вопросов:

Теги

    16.01.2021

    Ответы

    • aBoomest
      aBoomest+942.89
      16.01.2021 19:42

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

      Например три фазы тока можно в один проводник симулинка собрать и подать на осциллограф. Вот он такое "съест". И на осциллограмме у вас будет три тока на одном поле осциллографа. но есть блоки которые такое не могут обработать. Поищите. 

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

      • aBoomest
        aBoomest+942.89
        16.01.2021 19:44

        О.Крайний правый демукс там где конвертор альфа бетта ноль. У вас на входе размер 3 а на выходе только 2 порта. Возможно тут ошибка.

        • Hate_Matlab
          Hate_Matlab-3.62
          16.01.2021 19:58

          О.Крайний правый демукс там где конвертор альфа бетта ноль. У вас на входе размер 3 а на выходе только 2 порта. Возможно тут ошибка.

          Ну вообще должно быть 2 параметра на входе в Park to Clark Angle Transform, и 2 на выходе. Это же двухмерные системы координат (ну вот сама модель двигателя у меня работала с двумя сигналами всегда, и раньше не выпендривалась.

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

          Я попробую, конечно, посмотреть, что там по количеству входящих/выходящих параметров, но... есть какая-то альтернатива Mux и Demux? Потому что у меня там точно должно быть по 2 сигнала.

          • aBoomest
            aBoomest+942.89
            16.01.2021 21:22

            Ну вообще должно быть 2 параметра на входе в Park to Clark Angle Transform, и 2 на выходе.

            Это вопрос о самой модели, что там должно или не должно. А мы говорим чисто про размерности и об ошибке. Это одно. А второе - значит возможно в настройках этого блока можно сдеать так чтобы были такие размерности вх/вых сигналов. Хотя думается настроек у данного блока не так много. Вопрос а почему должно быть 2 параметра, а не три? Вроде как помнится что три, или путаю?
            Еще мысль такая, что кроме размерности (помнится) можно было много всякого отобразить, поэтому стоит проверить - может это у вас не размерность сигнала в скобках указана? (просто привык, что у меня обычно выведена размерность)

            • aBoomest
              aBoomest+942.89
              16.01.2021 21:26

              Альфа-бета нуль к dq0, dq0 к Альфа-Бета Нулю (exponenta.ru)вроде и хелп согласен с тройкой.

              • Hate_Matlab
                Hate_Matlab-3.62
                17.01.2021 08:47

                Вопрос а почему должно быть 2 параметра, а не три?

                Альфа-бета нуль к dq0, dq0 к Альфа-Бета Нулю (exponenta.ru)вроде и хелп согласен с тройкой.

                Я не понимаю. Почему-то в этих блоках добавлся какой-то "ноль", хотя вся литература говорит о двухмерной системе координат: абцисс - альфа/q, ординат - бета/d?

                И хотя я уже не удивляюсь, что разрабы почти всё сделали через три п@#%$ - колено, но здесь же они сами себе противоречат: на всех рисунках нет никакой третьей оси "ноль". Обычная двухмерная прямоугольная система координат.

                Однако вы, вероятно, в чём-то правы. Я уже забыл, почему у меня в модели двигателя нет ни одного преобразователя Кларка "abc-альфабета": там действительно matlab'овский блок бестолковый был, приходилось матрицу перевода собирать вручную из Gain'ов, Sum'ов и т.п.

                Вот только с Парком такого, увы, не получится. Там нужен этот угол, который меняется постоянно.

                может это у вас не размерность сигнала в скобках указана?

                Стёр полностью эту схему, да - заработало... правда только эта модель)) но она тут важнее всего. На торренте ответили, что у репака есть косяки, возможно, теперь придётся везде поубивать Mux'ы, и добавить заново.

                • aBoomest
                  aBoomest+942.89
                  17.01.2021 18:57

                  Я не понимаю. Почему-то в этих блоках добавлся какой-то "ноль", хотя вся литература говорит о двухмерной системе координат.

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

                  UPD: Я тут не знаю (про картинку), тем более, что она почему-то не увеличивается, но вероятно там НП не имеет значения, у вас же нет КЗ в двигателе, а при режимах без КЗ может ее нет? Вобщем это чисто интуитивно, воспоминания о ТОЭ со 2 курса. Может и не правильно рассуждаю.

                  • Hate_Matlab
                    Hate_Matlab-3.62
                    17.01.2021 19:15

                    Так в смысле? Даже в хелпе этот "ноль" никак не фигурирует. Вот вы мне ссылку дали на описание преобразователя Парка. Там шо на рисунках, шо в тексте этот ноль - вникуда.

                    И сам двигатель у меня работает только от 2 фаз: альфа и бета. Никакого нуля там и в помине нету. Как же он тогда работает, если он неправильный?..

                    Так. Короче. Вы мне просто скажите, чтобы вот эти знаки вопросов не возникали на блоках, мне надо не использовать блоки Clark to Park и Park to Clark? Потому что у меня банально кроме тока статора альфа и тока статора бета больше нечего на них подавать. Всё. Только 2 сигнала. Третьего не дано в принципе.

                    • aBoomest
                      aBoomest+942.89
                      17.01.2021 20:46

                      Так в смысле? Даже в хелпе этот "ноль" никак не фигурирует. Вот вы мне ссылку дали на описание преобразователя Парка. Там шо на рисунках, шо в тексте этот ноль - вникуда.

                      Не, имелось ввиду там в формулах везде НП есть.

                      И сам двигатель у меня работает только от 2 фаз: альфа и бета. Никакого нуля там и в помине нету. Как же он тогда работает, если он неправильный?..

                      НП характеризует несимметрию. Для работы двигателя (АД например) нужна только ПП. Это я к тому, что в обычном номинальном режиме ни обратной ни нулевой нет. Но из теории математических преобразований их не выкинешь. Они просто равны нулю в номинальном режиме и все. Но забывать про них нельзя и вероятно блок расчитан на все случаи жизни а не только на ваш.

                      Справедливости ради надо сказать что в инете на картинках видел эти преобразования в симулинк где на выходе например только d и q. Посмотерл у себя в матлаб этот блок - настроек вобще нет (чтоб не запутать вас я смотрел блок ABC to dq0). Я не знаю может это в более ранних версиях блока можно было настроить. не в курсе.

                      Так. Короче. Вы мне просто скажите, чтобы вот эти знаки вопросов не возникали на блоках, мне надо не использовать блоки Clark to Park и Park to Clark? Потому что у меня банально кроме тока статора альфа и тока статора бета больше нечего на них подавать. Всё. Только 2 сигнала. Третьего не дано в принципе.

                      В общем "высоком" понимании нужны все три, иначе математика не работает, по крайней мере с симметричными составляющими.

                      Но вобще, если у вас в модели нужны только dq, то пусть на выходе преобразования будет у вас все три, а используйте только две нужные, в чем проблема тут, НП формально есть, а реально равна нулю при вращении и без земляных поперечных несимметрий? Так что выделите 2 а на третью блок treminator и наверно норм.

                    • aBoomest
                      aBoomest+942.89
                      17.01.2021 20:51

                      Посмотрел картинку схемы вашей еще раз. У вас там фильтрики какие-то стоят и еще какието звенья... может подойдет вариант чтобы НП формально протащить просто параллельно этому всему без преобразовыаний, она ж все равно = 0?

                      • Hate_Matlab
                        Hate_Matlab-3.62
                        18.01.2021 12:27

                        У вас там фильтрики какие-то стоят и еще какието звенья... может подойдет вариант чтобы НП формально протащить просто параллельно этому всему без преобразовыаний, она ж все равно = 0?

                        Не понял, что за фильтры. Если вы про num(s)/den(s), то это какая-то передаточная функция. Что и как она делает я не спрашивайте, я не автоматик и какого чёрта вообще с этим имею дело не понимаю. Есть и есть, наверное нужна.

                        А нулевую ось я задал равной нулю константой (по крайней мере я так понял ваше предложение). Но теперь при запуске выдаёт ошибку (в прикрепе). Integrator, который не работает подсвечен. Я вроде на сумматор, куда скорость ротора и результат деления "псишек" сходятся добавил 0,0001, чтобы деление на ноль прогу не смущало, однако ошибка остаётся.

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

                        • aBoomest
                          aBoomest+942.89
                          18.01.2021 12:37

                          В тексте ошибки советуют уменьшить шаг или увеличить точность в настройках модели. Ну и в принципе настроек у данного блока вагон.

                          • Hate_Matlab
                            Hate_Matlab-3.62
                            18.01.2021 14:25

                            А я пробовал.

                            Relative Tolerance, Absolute Tolerance, Min step size, Max step size. Ещё пробовал разные методы решения диф. уравнений. И переключал на фиксированный шаг.

                            Как я понял, она упирается в деление на ноль в начале моделирования. А там ноль строгий, он от количества знаков после запятой не зависит.

                             

                            • aBoomest
                              aBoomest+942.89
                              18.01.2021 14:42

                              А есть там настройка начального значения?

                              • Hate_Matlab
                                Hate_Matlab-3.62
                                18.01.2021 14:50

                                Если вы про то, которое Initial step size, то есть. Ошибка остаётся.

                                И в интеграторе тоже есть. И там остаётся. Да оно-то и понятно - добавив в интеграл ещё одно слагаемое, от деления на ноль не избавишься. 

                          • Andrey Ermakov
                            Andrey Ermakov +56.93
                            18.01.2021 19:51

                            Попробуйте использовать блок bias  в сигнале делителя, с смещением 1e-9.

                             

                            • aBoomest
                              aBoomest+942.89
                              18.01.2021 20:59

                              Интересно, почму initial condition не решило проблему? Согласно сообщению об ошибке пока дело дальше 1-го отсчета не ушло. 

                              • Hate_Matlab
                                Hate_Matlab-3.62
                                19.01.2021 13:35

                                А я не понимаю может чего, но initial condition в интеграторе - это какая-то константа же.

                                То есть когда её добавляешь, то получается что-то типо "интеграл(1/x+C)dx". То есть если x=0, то деление на ноль всё равно остаётся. Ничего не меняется. Просто в итоге получается не бесконечность, а бесконечность + С.

                              • Hate_Matlab
                                Hate_Matlab-3.62
                                19.01.2021 13:33

                                Ну, попробовать стоило.

                                Ещё попытался применить приём из другой модели, просуммировав сигнал с блока Divide с ним же, пропущенным через блок Hit Crossing. В той модели сработало, здесь - нет, увы.

                                И если в Bias вбить любок другое отклонение, ошибка остаётся.

              • Hate_Matlab
                Hate_Matlab-3.62
                19.01.2021 14:32

                Короче. Забейте. Я пришёл к выводу, что проще уже будет всю модель двигателя перегнать из альфа-бета в dq сразу.

                И я понимаю, что что-то обязательно пойдёт не так, и придётся поднимать новую тему тут. Но надеюсь, что избежав преобразований альфа-бета/dq и обратно можно решить эту ошибку.

                Да и долбанное векторное управление заодно будет проходить в родных ей координатных осях, чтоб их #@%&*$.

                • Andrey Ermakov
                  Andrey Ermakov +56.93
                  20.01.2021 11:18

                  Это вы зря)

                  • aBoomest
                    aBoomest+942.89
                    20.01.2021 15:18

                    <thumbs up>